mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-15 03:23:08 -06:00
Parse stray identifier-ish as JSXText instead of trivia
This commit is contained in:
parent
feaef9c829
commit
2856aabd70
@ -4439,8 +4439,9 @@ namespace ts {
|
||||
parseExpected(SyntaxKind.CloseBraceToken);
|
||||
}
|
||||
else {
|
||||
parseExpected(SyntaxKind.CloseBraceToken, /*message*/ undefined, /*shouldAdvance*/ false);
|
||||
scanJsxText();
|
||||
if (parseExpected(SyntaxKind.CloseBraceToken, /*message*/ undefined, /*shouldAdvance*/ false)) {
|
||||
scanJsxText();
|
||||
}
|
||||
}
|
||||
|
||||
return finishNode(node);
|
||||
|
||||
@ -582,12 +582,13 @@ namespace FourSlash {
|
||||
});
|
||||
}
|
||||
|
||||
public verifyErrorExistsAtRange(range: Range, code: number) {
|
||||
public verifyErrorExistsAtRange(range: Range, code: number, expectedMessage?: string) {
|
||||
const span = ts.createTextSpanFromRange(range);
|
||||
const hasMatchingError = ts.some(
|
||||
this.getDiagnostics(range.fileName),
|
||||
({ code, start, length }) =>
|
||||
({ code, messageText, start, length }) =>
|
||||
code === code &&
|
||||
(!expectedMessage || expectedMessage === messageText) &&
|
||||
ts.isNumber(start) && ts.isNumber(length) &&
|
||||
ts.textSpansEqual(span, { start, length }));
|
||||
|
||||
@ -3982,8 +3983,8 @@ namespace FourSlashInterface {
|
||||
this.state.verifyNoErrors();
|
||||
}
|
||||
|
||||
public errorExistsAtRange(range: FourSlash.Range, code: number) {
|
||||
this.state.verifyErrorExistsAtRange(range, code);
|
||||
public errorExistsAtRange(range: FourSlash.Range, code: number, message?: string) {
|
||||
this.state.verifyErrorExistsAtRange(range, code, message);
|
||||
}
|
||||
|
||||
public numberOfErrorsInCurrentFile(expected: number) {
|
||||
|
||||
@ -238,7 +238,7 @@ declare namespace FourSlashInterface {
|
||||
signatureHelp(...options: VerifySignatureHelpOptions[], ): void;
|
||||
// Checks that there are no compile errors.
|
||||
noErrors(): void;
|
||||
errorExistsAtRange(range: Range, code: number): void;
|
||||
errorExistsAtRange(range: Range, code: number, message?: string): void;
|
||||
numberOfErrorsInCurrentFile(expected: number): void;
|
||||
baselineCurrentFileBreakpointLocations(): void;
|
||||
baselineCurrentFileNameOrDottedNameSpans(): void;
|
||||
|
||||
@ -2,14 +2,11 @@
|
||||
|
||||
//@Filename: jsxExpressionFollowedByIdentifier.tsx
|
||||
////declare var React: any;
|
||||
////declare var x: string;
|
||||
////const a = <div>{<div />[|x|]}</div>
|
||||
////const b = <div x={<div />[|x|]} />
|
||||
|
||||
const range = test.ranges()[0];
|
||||
verify.getSyntacticDiagnostics([{
|
||||
code: 1005,
|
||||
message: "'}' expected.",
|
||||
range,
|
||||
}]);
|
||||
verify.quickInfoAt(range, 'var x: string');
|
||||
test.ranges().forEach(range => {
|
||||
verify.errorExistsAtRange(range, 1005, "'}' expected.");
|
||||
// This is just to ensure getting quick info doesn’t crash
|
||||
verify.not.quickInfoExists();
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user