-
-
Notifications
You must be signed in to change notification settings - Fork 191
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: new diag for async/generator on getter/setter
closes #1066
- Loading branch information
1 parent
4e36b74
commit be755cb
Showing
11 changed files
with
267 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# E0713: getters and setters cannot be generators | ||
|
||
Use of the '*' character, defining generator functions, is not allowed on getters or setters. | ||
Getters and setters are synchronous operations and do not support the generator functionality. | ||
|
||
```javascript | ||
class C { | ||
constructor() { | ||
this._value = 0; | ||
} | ||
|
||
get *value() { | ||
return this._value; | ||
} | ||
set *value(newValue) { | ||
this._value = newValue; | ||
} | ||
} | ||
``` | ||
|
||
To fix this error define a getter or setter, using regular function syntax. | ||
|
||
```javascript | ||
class C { | ||
constructor() { | ||
this._value = 0; | ||
} | ||
|
||
get value() { | ||
return this._value; | ||
} | ||
set value(newValue) { | ||
this._value = newValue; | ||
} | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# E0714: 'async' keyword is not allowed on getters or setters | ||
|
||
Use of 'async' keyword, defining asynchronous functions, is not allowed on getters or setters. | ||
Getters and setters are synchronous operations and do not support the asynchronous functionality. | ||
|
||
|
||
```javascript | ||
class C { | ||
constructor() { | ||
this._value = 0; | ||
} | ||
|
||
async get value() { | ||
return this._value; | ||
} | ||
|
||
async set value(newValue) { | ||
this._value = newValue; | ||
} | ||
} | ||
``` | ||
|
||
To fix this error simply remove 'async' keyword from getters and setters, | ||
so they can function properly as synchronous operations. | ||
|
||
|
||
```javascript | ||
class C { | ||
constructor() { | ||
this._value = 0; | ||
} | ||
|
||
get value() { | ||
return this._value; | ||
} | ||
|
||
set value(newValue) { | ||
this._value = newValue; | ||
} | ||
} | ||
``` | ||
|
||
However, if you require asynchronous behavior within getters or setters, | ||
you can achieve this by implementing separate asynchronous methods. | ||
|
||
|
||
```javascript | ||
class C { | ||
constructor() { | ||
this._value = 0; | ||
} | ||
|
||
async getValueAsync() { | ||
return await fetch(this._value); | ||
} | ||
|
||
async setValueAsync(newValue) { | ||
this._value = await fetch(newValue); | ||
} | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters