541e553163
Error message improvement for unexpected tokens in the following situations: * A word was parsed that seems to have a low edit distance from a known common keyword * A word was parsed that seems to be a known common keyword and a name _without_ a space in-between * Parsing in a particular type of node (mostly a class property declaration) got a different word or token than expected ___ * Specific diagnostic suggestions for unexpected keywords or identifier * Don't reach into there, that's not allowed * Improved error when there is already an initializer * Specific module error message for invalid template literal strings * Skip 'unexpected keyword or identifier' diagnostics for declare nodes * Improve error for function calls in type positions * Switch class properties to old diagnostic * Corrected errors in class members and reused existing textToKeywordObj map * Corrected more baselines from the merge * Update src/compiler/parser.ts Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com> * Mostly addressed feedback * Clarified function call type message * Split up and clarified parsing vs error functions * Swap interface name complaints back, and skip new errors on unknown (invalid) tokens * Used tokenToString, not a raw semicolon * Inline getExpressionText helper * Remove remarks in src/compiler/parser.ts Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>
38 lines
1.9 KiB
Plaintext
38 lines
1.9 KiB
Plaintext
tests/cases/compiler/parseErrorIncorrectReturnToken.ts(2,17): error TS1005: ':' expected.
|
|
tests/cases/compiler/parseErrorIncorrectReturnToken.ts(4,22): error TS1005: '=>' expected.
|
|
tests/cases/compiler/parseErrorIncorrectReturnToken.ts(4,24): error TS2693: 'string' only refers to a type, but is being used as a value here.
|
|
tests/cases/compiler/parseErrorIncorrectReturnToken.ts(9,18): error TS1005: '{' expected.
|
|
tests/cases/compiler/parseErrorIncorrectReturnToken.ts(9,21): error TS1434: Unexpected keyword or identifier.
|
|
tests/cases/compiler/parseErrorIncorrectReturnToken.ts(9,21): error TS2693: 'string' only refers to a type, but is being used as a value here.
|
|
tests/cases/compiler/parseErrorIncorrectReturnToken.ts(12,1): error TS1128: Declaration or statement expected.
|
|
|
|
|
|
==== tests/cases/compiler/parseErrorIncorrectReturnToken.ts (7 errors) ====
|
|
type F1 = {
|
|
(n: number) => string; // should be : not =>
|
|
~~
|
|
!!! error TS1005: ':' expected.
|
|
}
|
|
type F2 = (n: number): string; // should be => not :
|
|
~
|
|
!!! error TS1005: '=>' expected.
|
|
~~~~~~
|
|
!!! error TS2693: 'string' only refers to a type, but is being used as a value here.
|
|
|
|
// doesn't work in non-type contexts, where the return type is optional
|
|
let f = (n: number) => string => n.toString();
|
|
let o = {
|
|
m(n: number) => string {
|
|
~~
|
|
!!! error TS1005: '{' expected.
|
|
!!! related TS1007 tests/cases/compiler/parseErrorIncorrectReturnToken.ts:8:9: The parser expected to find a '}' to match the '{' token here.
|
|
~~~~~~
|
|
!!! error TS1434: Unexpected keyword or identifier.
|
|
~~~~~~
|
|
!!! error TS2693: 'string' only refers to a type, but is being used as a value here.
|
|
return n.toString();
|
|
}
|
|
};
|
|
~
|
|
!!! error TS1128: Declaration or statement expected.
|
|
|