From 7d30e7a3c84a4b3ffb334ec09dd90e72d0a5f614 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Tue, 12 Apr 2016 10:01:05 -0700 Subject: [PATCH] addressed PR feedback: added more tests --- .../reference/typeReferenceDirectives13.js | 26 +++++++++++++++++++ .../typeReferenceDirectives13.symbols | 24 +++++++++++++++++ .../typeReferenceDirectives13.trace.json | 14 ++++++++++ .../reference/typeReferenceDirectives13.types | 24 +++++++++++++++++ .../compiler/typeReferenceDirectives13.ts | 17 ++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 tests/baselines/reference/typeReferenceDirectives13.js create mode 100644 tests/baselines/reference/typeReferenceDirectives13.symbols create mode 100644 tests/baselines/reference/typeReferenceDirectives13.trace.json create mode 100644 tests/baselines/reference/typeReferenceDirectives13.types create mode 100644 tests/cases/compiler/typeReferenceDirectives13.ts diff --git a/tests/baselines/reference/typeReferenceDirectives13.js b/tests/baselines/reference/typeReferenceDirectives13.js new file mode 100644 index 00000000000..9fecdd47f77 --- /dev/null +++ b/tests/baselines/reference/typeReferenceDirectives13.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/typeReferenceDirectives13.ts] //// + +//// [ref.d.ts] + +export interface $ { x } + +//// [index.d.ts] +declare let $: { x: number } + +//// [app.ts] +/// +import {$} from "./ref"; +export interface A { + x: () => typeof $ +} + + +//// [app.js] +"use strict"; + + +//// [app.d.ts] +/// +export interface A { + x: () => typeof $; +} diff --git a/tests/baselines/reference/typeReferenceDirectives13.symbols b/tests/baselines/reference/typeReferenceDirectives13.symbols new file mode 100644 index 00000000000..90a32b16341 --- /dev/null +++ b/tests/baselines/reference/typeReferenceDirectives13.symbols @@ -0,0 +1,24 @@ +=== /app.ts === +/// +import {$} from "./ref"; +>$ : Symbol($, Decl(app.ts, 1, 8)) + +export interface A { +>A : Symbol(A, Decl(app.ts, 1, 24)) + + x: () => typeof $ +>x : Symbol(A.x, Decl(app.ts, 2, 20)) +>$ : Symbol($, Decl(app.ts, 1, 8)) +} + +=== /ref.d.ts === + +export interface $ { x } +>$ : Symbol($, Decl(ref.d.ts, 0, 0)) +>x : Symbol($.x, Decl(ref.d.ts, 1, 20)) + +=== /types/lib/index.d.ts === +declare let $: { x: number } +>$ : Symbol($, Decl(index.d.ts, 0, 11)) +>x : Symbol(x, Decl(index.d.ts, 0, 16)) + diff --git a/tests/baselines/reference/typeReferenceDirectives13.trace.json b/tests/baselines/reference/typeReferenceDirectives13.trace.json new file mode 100644 index 00000000000..b6adaf1f513 --- /dev/null +++ b/tests/baselines/reference/typeReferenceDirectives13.trace.json @@ -0,0 +1,14 @@ +[ + "======== Resolving type reference directive 'lib', containing file '/app.ts', root directory '/'. ========", + "Resolving with primary search path '/types/'", + "File '/types/lib/package.json' does not exist.", + "File '/types/lib/index.d.ts' exist - use it as a name resolution result.", + "======== Type reference directive 'lib' was successfully resolved to '/types/lib/index.d.ts', primary: true. ========", + "======== Resolving module './ref' from '/app.ts'. ========", + "Module resolution kind is not specified, using 'NodeJs'.", + "Loading module as file / folder, candidate module location '/ref'.", + "File '/ref.ts' does not exist.", + "File '/ref.tsx' does not exist.", + "File '/ref.d.ts' exist - use it as a name resolution result.", + "======== Module name './ref' was successfully resolved to '/ref.d.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/typeReferenceDirectives13.types b/tests/baselines/reference/typeReferenceDirectives13.types new file mode 100644 index 00000000000..240661883bb --- /dev/null +++ b/tests/baselines/reference/typeReferenceDirectives13.types @@ -0,0 +1,24 @@ +=== /app.ts === +/// +import {$} from "./ref"; +>$ : any + +export interface A { +>A : A + + x: () => typeof $ +>x : () => { x: number; } +>$ : { x: number; } +} + +=== /ref.d.ts === + +export interface $ { x } +>$ : $ +>x : any + +=== /types/lib/index.d.ts === +declare let $: { x: number } +>$ : { x: number; } +>x : number + diff --git a/tests/cases/compiler/typeReferenceDirectives13.ts b/tests/cases/compiler/typeReferenceDirectives13.ts new file mode 100644 index 00000000000..816d419e9d5 --- /dev/null +++ b/tests/cases/compiler/typeReferenceDirectives13.ts @@ -0,0 +1,17 @@ +// @noImplicitReferences: true +// @declaration: true +// @typesRoot: / +// @traceResolution: true + +// @filename: /ref.d.ts +export interface $ { x } + +// @filename: /types/lib/index.d.ts +declare let $: { x: number } + +// @filename: /app.ts +/// +import {$} from "./ref"; +export interface A { + x: () => typeof $ +}