diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index cb96731dbcf68..e917ef9bfe6e1 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -5428,11 +5428,13 @@ namespace ts { // reference comment. while (true) { const kind = triviaScanner.scan(); - if (kind === SyntaxKind.WhitespaceTrivia || kind === SyntaxKind.NewLineTrivia || kind === SyntaxKind.MultiLineCommentTrivia) { - continue; - } if (kind !== SyntaxKind.SingleLineCommentTrivia) { - break; + if (isTrivia(kind)) { + continue; + } + else { + break; + } } const range = { pos: triviaScanner.getTokenPos(), end: triviaScanner.getTextPos(), kind: triviaScanner.getToken() }; diff --git a/tests/baselines/reference/shebangBeforeReferences.js b/tests/baselines/reference/shebangBeforeReferences.js new file mode 100644 index 0000000000000..6be2707277d0b --- /dev/null +++ b/tests/baselines/reference/shebangBeforeReferences.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/shebangBeforeReferences.ts] //// + +//// [f.d.ts] + +declare module "test" { + let x: number; +} + +//// [f.ts] +#!/usr/bin/env node + +/// + +declare function use(f: number): void; +import {x} from "test"; +use(x); + +//// [f.js] +#!/usr/bin/env node"use strict"; +var test_1 = require("test"); +use(test_1.x); diff --git a/tests/baselines/reference/shebangBeforeReferences.symbols b/tests/baselines/reference/shebangBeforeReferences.symbols new file mode 100644 index 0000000000000..23bfe58fc6294 --- /dev/null +++ b/tests/baselines/reference/shebangBeforeReferences.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/f.ts === +#!/usr/bin/env node + +/// + +declare function use(f: number): void; +>use : Symbol(use, Decl(f.ts, 0, 0)) +>f : Symbol(f, Decl(f.ts, 4, 21)) + +import {x} from "test"; +>x : Symbol(x, Decl(f.ts, 5, 8)) + +use(x); +>use : Symbol(use, Decl(f.ts, 0, 0)) +>x : Symbol(x, Decl(f.ts, 5, 8)) + +=== tests/cases/compiler/f.d.ts === + +declare module "test" { + let x: number; +>x : Symbol(x, Decl(f.d.ts, 2, 7)) +} + diff --git a/tests/baselines/reference/shebangBeforeReferences.types b/tests/baselines/reference/shebangBeforeReferences.types new file mode 100644 index 0000000000000..89b63a1a0b440 --- /dev/null +++ b/tests/baselines/reference/shebangBeforeReferences.types @@ -0,0 +1,24 @@ +=== tests/cases/compiler/f.ts === +#!/usr/bin/env node + +/// + +declare function use(f: number): void; +>use : (f: number) => void +>f : number + +import {x} from "test"; +>x : number + +use(x); +>use(x) : void +>use : (f: number) => void +>x : number + +=== tests/cases/compiler/f.d.ts === + +declare module "test" { + let x: number; +>x : number +} + diff --git a/tests/cases/compiler/shebangBeforeReferences.ts b/tests/cases/compiler/shebangBeforeReferences.ts new file mode 100644 index 0000000000000..f03933959ee6a --- /dev/null +++ b/tests/cases/compiler/shebangBeforeReferences.ts @@ -0,0 +1,15 @@ +// @module: commonjs + +// @filename: f.d.ts +declare module "test" { + let x: number; +} + +// @filename: f.ts +#!/usr/bin/env node + +/// + +declare function use(f: number): void; +import {x} from "test"; +use(x); \ No newline at end of file