From bf393ae1cd25ae3921ffa41b4385fc2ec14c212f Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Fri, 19 Oct 2018 16:23:34 -0700 Subject: [PATCH] Check EOF token to get errors for JSDoc (#28000) * Check EOF token to get errors for JSDoc * outputFile instead of noEmit for test --- src/compiler/checker.ts | 1 + .../reference/checkJsdocOnEndOfFile.errors.txt | 10 ++++++++++ tests/baselines/reference/checkJsdocOnEndOfFile.js | 10 ++++++++++ .../baselines/reference/checkJsdocOnEndOfFile.symbols | 6 ++++++ tests/baselines/reference/checkJsdocOnEndOfFile.types | 6 ++++++ tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts | 8 ++++++++ 6 files changed, 41 insertions(+) create mode 100644 tests/baselines/reference/checkJsdocOnEndOfFile.errors.txt create mode 100644 tests/baselines/reference/checkJsdocOnEndOfFile.js create mode 100644 tests/baselines/reference/checkJsdocOnEndOfFile.symbols create mode 100644 tests/baselines/reference/checkJsdocOnEndOfFile.types create mode 100644 tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ea5e27c2c9e..885396e7d73 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -27305,6 +27305,7 @@ namespace ts { clear(potentialNewTargetCollisions); forEach(node.statements, checkSourceElement); + checkSourceElement(node.endOfFileToken); checkDeferredNodes(node); diff --git a/tests/baselines/reference/checkJsdocOnEndOfFile.errors.txt b/tests/baselines/reference/checkJsdocOnEndOfFile.errors.txt new file mode 100644 index 00000000000..4dc2320dcd8 --- /dev/null +++ b/tests/baselines/reference/checkJsdocOnEndOfFile.errors.txt @@ -0,0 +1,10 @@ +tests/cases/conformance/jsdoc/eof.js(2,20): error TS2304: Cannot find name 'bad'. + + +==== tests/cases/conformance/jsdoc/eof.js (1 errors) ==== + /** + * @typedef {Array} Should have error here + ~~~ +!!! error TS2304: Cannot find name 'bad'. + */ + \ No newline at end of file diff --git a/tests/baselines/reference/checkJsdocOnEndOfFile.js b/tests/baselines/reference/checkJsdocOnEndOfFile.js new file mode 100644 index 00000000000..a9d07d45e54 --- /dev/null +++ b/tests/baselines/reference/checkJsdocOnEndOfFile.js @@ -0,0 +1,10 @@ +//// [eof.js] +/** + * @typedef {Array} Should have error here + */ + + +//// [output.js] +/** + * @typedef {Array} Should have error here + */ diff --git a/tests/baselines/reference/checkJsdocOnEndOfFile.symbols b/tests/baselines/reference/checkJsdocOnEndOfFile.symbols new file mode 100644 index 00000000000..bda09fa653e --- /dev/null +++ b/tests/baselines/reference/checkJsdocOnEndOfFile.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/jsdoc/eof.js === +/** +No type information for this code. * @typedef {Array} Should have error here +No type information for this code. */ +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/checkJsdocOnEndOfFile.types b/tests/baselines/reference/checkJsdocOnEndOfFile.types new file mode 100644 index 00000000000..bda09fa653e --- /dev/null +++ b/tests/baselines/reference/checkJsdocOnEndOfFile.types @@ -0,0 +1,6 @@ +=== tests/cases/conformance/jsdoc/eof.js === +/** +No type information for this code. * @typedef {Array} Should have error here +No type information for this code. */ +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts b/tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts new file mode 100644 index 00000000000..f9f3157084d --- /dev/null +++ b/tests/cases/conformance/jsdoc/checkJsdocOnEndOfFile.ts @@ -0,0 +1,8 @@ +// @outFile: output.js +// @allowJs: true +// @checkJs: true +// @Filename: eof.js + +/** + * @typedef {Array} Should have error here + */