mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 07:45:18 -06:00
Emit pinned/tripleslash reference comments of ambient declarations
Fixes #501
This commit is contained in:
parent
393464eb18
commit
5353128387
@ -1989,7 +1989,14 @@ module ts {
|
||||
}
|
||||
|
||||
function emitNode(node: Node) {
|
||||
if (!node || node.flags & NodeFlags.Ambient) return;
|
||||
if (!node) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (node.flags & NodeFlags.Ambient) {
|
||||
return emitPinnedOrTripleSlashComments(node);
|
||||
}
|
||||
|
||||
switch (node.kind) {
|
||||
case SyntaxKind.Identifier:
|
||||
return emitIdentifier(<Identifier>node);
|
||||
|
||||
@ -1,10 +1,20 @@
|
||||
//// [commentOnAmbientClass1.ts]
|
||||
//// [tests/cases/compiler/commentOnAmbientClass1.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
/*! Keep this pinned comment */
|
||||
declare class C {
|
||||
}
|
||||
|
||||
// Don't keep this comment.
|
||||
declare class D {
|
||||
}
|
||||
|
||||
//// [b.ts]
|
||||
///<reference path="a.ts"/>
|
||||
declare class E extends C {
|
||||
}
|
||||
|
||||
//// [commentOnAmbientClass1.js]
|
||||
//// [a.js]
|
||||
/*! Keep this pinned comment */
|
||||
//// [b.js]
|
||||
///<reference path="a.ts"/>
|
||||
|
||||
@ -1,4 +1,10 @@
|
||||
=== tests/cases/compiler/commentOnAmbientClass1.ts ===
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
///<reference path="a.ts"/>
|
||||
declare class E extends C {
|
||||
>E : E
|
||||
>C : C
|
||||
}
|
||||
=== tests/cases/compiler/a.ts ===
|
||||
/*! Keep this pinned comment */
|
||||
declare class C {
|
||||
>C : C
|
||||
@ -8,3 +14,4 @@ declare class C {
|
||||
declare class D {
|
||||
>D : D
|
||||
}
|
||||
|
||||
|
||||
23
tests/baselines/reference/commentOnAmbientEnum.js
Normal file
23
tests/baselines/reference/commentOnAmbientEnum.js
Normal file
@ -0,0 +1,23 @@
|
||||
//// [tests/cases/compiler/commentOnAmbientEnum.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
/*! Keep this pinned comment */
|
||||
declare enum C {
|
||||
a,
|
||||
b,
|
||||
c
|
||||
}
|
||||
|
||||
// Don't keep this comment.
|
||||
declare enum D {
|
||||
}
|
||||
|
||||
//// [b.ts]
|
||||
///<reference path="a.ts"/>
|
||||
declare enum E {
|
||||
}
|
||||
|
||||
//// [a.js]
|
||||
/*! Keep this pinned comment */
|
||||
//// [b.js]
|
||||
///<reference path="a.ts"/>
|
||||
25
tests/baselines/reference/commentOnAmbientEnum.types
Normal file
25
tests/baselines/reference/commentOnAmbientEnum.types
Normal file
@ -0,0 +1,25 @@
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
///<reference path="a.ts"/>
|
||||
declare enum E {
|
||||
>E : E
|
||||
}
|
||||
=== tests/cases/compiler/a.ts ===
|
||||
/*! Keep this pinned comment */
|
||||
declare enum C {
|
||||
>C : C
|
||||
|
||||
a,
|
||||
>a : C
|
||||
|
||||
b,
|
||||
>b : C
|
||||
|
||||
c
|
||||
>c : C
|
||||
}
|
||||
|
||||
// Don't keep this comment.
|
||||
declare enum D {
|
||||
>D : D
|
||||
}
|
||||
|
||||
25
tests/baselines/reference/commentOnAmbientModule.js
Normal file
25
tests/baselines/reference/commentOnAmbientModule.js
Normal file
@ -0,0 +1,25 @@
|
||||
//// [tests/cases/compiler/commentOnAmbientModule.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
/*! Keep this pinned comment */
|
||||
declare module C {
|
||||
function foo();
|
||||
}
|
||||
|
||||
// Don't keep this comment.
|
||||
declare module D {
|
||||
class bar { }
|
||||
}
|
||||
|
||||
//// [b.ts]
|
||||
///<reference path="a.ts"/>
|
||||
declare module E {
|
||||
class foobar extends D.bar {
|
||||
foo();
|
||||
}
|
||||
}
|
||||
|
||||
//// [a.js]
|
||||
/*! Keep this pinned comment */
|
||||
//// [b.js]
|
||||
///<reference path="a.ts"/>
|
||||
31
tests/baselines/reference/commentOnAmbientModule.types
Normal file
31
tests/baselines/reference/commentOnAmbientModule.types
Normal file
@ -0,0 +1,31 @@
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
///<reference path="a.ts"/>
|
||||
declare module E {
|
||||
>E : typeof E
|
||||
|
||||
class foobar extends D.bar {
|
||||
>foobar : foobar
|
||||
>D : D
|
||||
>bar : bar
|
||||
|
||||
foo();
|
||||
>foo : () => any
|
||||
}
|
||||
}
|
||||
=== tests/cases/compiler/a.ts ===
|
||||
/*! Keep this pinned comment */
|
||||
declare module C {
|
||||
>C : typeof C
|
||||
|
||||
function foo();
|
||||
>foo : () => any
|
||||
}
|
||||
|
||||
// Don't keep this comment.
|
||||
declare module D {
|
||||
>D : typeof D
|
||||
|
||||
class bar { }
|
||||
>bar : bar
|
||||
}
|
||||
|
||||
@ -6,3 +6,4 @@ declare var v: number;
|
||||
declare var y: number;
|
||||
|
||||
//// [commentOnAmbientVariable1.js]
|
||||
/*! Keep this pinned comment */
|
||||
|
||||
@ -11,4 +11,5 @@ x = 2;
|
||||
//// [commentOnAmbientVariable2_1.js]
|
||||
var y = 1;
|
||||
//// [commentOnAmbientVariable2_2.js]
|
||||
/// <reference path='commentOnAmbientVariable2_1.ts'/>
|
||||
x = 2;
|
||||
|
||||
17
tests/baselines/reference/commentOnAmbientfunction.js
Normal file
17
tests/baselines/reference/commentOnAmbientfunction.js
Normal file
@ -0,0 +1,17 @@
|
||||
//// [tests/cases/compiler/commentOnAmbientfunction.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
/*! Keep this pinned comment */
|
||||
declare function foo();
|
||||
|
||||
// Don't keep this comment.
|
||||
declare function bar();
|
||||
|
||||
//// [b.ts]
|
||||
///<reference path="a.ts"/>
|
||||
declare function foobar(a: typeof foo): typeof bar;
|
||||
|
||||
//// [a.js]
|
||||
/*! Keep this pinned comment */
|
||||
//// [b.js]
|
||||
///<reference path="a.ts"/>
|
||||
17
tests/baselines/reference/commentOnAmbientfunction.types
Normal file
17
tests/baselines/reference/commentOnAmbientfunction.types
Normal file
@ -0,0 +1,17 @@
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
///<reference path="a.ts"/>
|
||||
declare function foobar(a: typeof foo): typeof bar;
|
||||
>foobar : (a: () => any) => () => any
|
||||
>a : () => any
|
||||
>foo : () => any
|
||||
>bar : () => any
|
||||
|
||||
=== tests/cases/compiler/a.ts ===
|
||||
/*! Keep this pinned comment */
|
||||
declare function foo();
|
||||
>foo : () => any
|
||||
|
||||
// Don't keep this comment.
|
||||
declare function bar();
|
||||
>bar : () => any
|
||||
|
||||
@ -22,3 +22,4 @@ interface C {
|
||||
var q1;
|
||||
var x = q1.each(function (x) { return c.log(x); });
|
||||
//// [file2.js]
|
||||
///<reference path='file1.ts'/>
|
||||
|
||||
@ -49,6 +49,8 @@ var Microsoft;
|
||||
/// <reference path="emitMemberAccessExpression_file3.ts" />
|
||||
"use strict";
|
||||
//// [emitMemberAccessExpression_file3.js]
|
||||
/// <reference path="emitMemberAccessExpression_file2.ts" />
|
||||
/// <reference path="emitMemberAccessExpression_file1.ts" />
|
||||
var Microsoft;
|
||||
(function (Microsoft) {
|
||||
(function (PeopleAtWork) {
|
||||
|
||||
@ -17,6 +17,7 @@ module bar {
|
||||
|
||||
//// [reuseInnerModuleMember_0.js]
|
||||
//// [reuseInnerModuleMember_1.js]
|
||||
///<reference path='reuseInnerModuleMember_0.ts'/>
|
||||
var bar;
|
||||
(function (bar) {
|
||||
var x;
|
||||
|
||||
@ -1,7 +1,13 @@
|
||||
//@filename: a.ts
|
||||
/*! Keep this pinned comment */
|
||||
declare class C {
|
||||
}
|
||||
|
||||
// Don't keep this comment.
|
||||
declare class D {
|
||||
}
|
||||
|
||||
//@filename: b.ts
|
||||
///<reference path="a.ts"/>
|
||||
declare class E extends C {
|
||||
}
|
||||
16
tests/cases/compiler/commentOnAmbientEnum.ts
Normal file
16
tests/cases/compiler/commentOnAmbientEnum.ts
Normal file
@ -0,0 +1,16 @@
|
||||
//@filename: a.ts
|
||||
/*! Keep this pinned comment */
|
||||
declare enum C {
|
||||
a,
|
||||
b,
|
||||
c
|
||||
}
|
||||
|
||||
// Don't keep this comment.
|
||||
declare enum D {
|
||||
}
|
||||
|
||||
//@filename: b.ts
|
||||
///<reference path="a.ts"/>
|
||||
declare enum E {
|
||||
}
|
||||
18
tests/cases/compiler/commentOnAmbientModule.ts
Normal file
18
tests/cases/compiler/commentOnAmbientModule.ts
Normal file
@ -0,0 +1,18 @@
|
||||
//@filename: a.ts
|
||||
/*! Keep this pinned comment */
|
||||
declare module C {
|
||||
function foo();
|
||||
}
|
||||
|
||||
// Don't keep this comment.
|
||||
declare module D {
|
||||
class bar { }
|
||||
}
|
||||
|
||||
//@filename: b.ts
|
||||
///<reference path="a.ts"/>
|
||||
declare module E {
|
||||
class foobar extends D.bar {
|
||||
foo();
|
||||
}
|
||||
}
|
||||
10
tests/cases/compiler/commentOnAmbientfunction.ts
Normal file
10
tests/cases/compiler/commentOnAmbientfunction.ts
Normal file
@ -0,0 +1,10 @@
|
||||
//@filename: a.ts
|
||||
/*! Keep this pinned comment */
|
||||
declare function foo();
|
||||
|
||||
// Don't keep this comment.
|
||||
declare function bar();
|
||||
|
||||
//@filename: b.ts
|
||||
///<reference path="a.ts"/>
|
||||
declare function foobar(a: typeof foo): typeof bar;
|
||||
Loading…
x
Reference in New Issue
Block a user