From 393464eb18d4bb914ed0fdb45dfbe48915f35d78 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Fri, 22 Aug 2014 14:17:52 -0700 Subject: [PATCH] Emit pinned/tripleslash reference comments of interfaces Fixes #501 --- src/compiler/emitter.ts | 6 ++++++ tests/baselines/reference/checkInterfaceBases.js | 1 + tests/baselines/reference/commentOnInterface1.js | 14 ++++++++++++-- .../baselines/reference/commentOnInterface1.types | 8 +++++++- tests/cases/compiler/commentOnInterface1.ts | 6 ++++++ 5 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index deedb693205..c827d4c9159 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1682,6 +1682,10 @@ module ts { } } + function emitInterfaceDeclaration(node: InterfaceDeclaration) { + emitPinnedOrTripleSlashComments(node); + } + function emitEnumDeclaration(node: EnumDeclaration) { emitLeadingComments(node); if (!(node.flags & NodeFlags.Export)) { @@ -2089,6 +2093,8 @@ module ts { return emitVariableDeclaration(node); case SyntaxKind.ClassDeclaration: return emitClassDeclaration(node); + case SyntaxKind.InterfaceDeclaration: + return emitInterfaceDeclaration(node); case SyntaxKind.EnumDeclaration: return emitEnumDeclaration(node); case SyntaxKind.ModuleDeclaration: diff --git a/tests/baselines/reference/checkInterfaceBases.js b/tests/baselines/reference/checkInterfaceBases.js index 54718986340..a30f4938c9e 100644 --- a/tests/baselines/reference/checkInterfaceBases.js +++ b/tests/baselines/reference/checkInterfaceBases.js @@ -16,3 +16,4 @@ interface Third extends JQueryEventObjectTest, SecondEvent {} //// [app.js] +/// diff --git a/tests/baselines/reference/commentOnInterface1.js b/tests/baselines/reference/commentOnInterface1.js index 2785341ed1a..bde6202f03f 100644 --- a/tests/baselines/reference/commentOnInterface1.js +++ b/tests/baselines/reference/commentOnInterface1.js @@ -1,10 +1,20 @@ -//// [commentOnInterface1.ts] +//// [tests/cases/compiler/commentOnInterface1.ts] //// + +//// [a.ts] /*! Keep this pinned comment */ interface I { } // Don't keep this comment. interface I2 { +} + +//// [b.ts] +/// +interface I3 { } -//// [commentOnInterface1.js] +//// [a.js] +/*! Keep this pinned comment */ +//// [b.js] +/// diff --git a/tests/baselines/reference/commentOnInterface1.types b/tests/baselines/reference/commentOnInterface1.types index 60ddb0ccae6..d03b1939026 100644 --- a/tests/baselines/reference/commentOnInterface1.types +++ b/tests/baselines/reference/commentOnInterface1.types @@ -1,4 +1,9 @@ -=== tests/cases/compiler/commentOnInterface1.ts === +=== tests/cases/compiler/b.ts === +/// +interface I3 { +>I3 : I3 +} +=== tests/cases/compiler/a.ts === /*! Keep this pinned comment */ interface I { >I : I @@ -8,3 +13,4 @@ interface I { interface I2 { >I2 : I2 } + diff --git a/tests/cases/compiler/commentOnInterface1.ts b/tests/cases/compiler/commentOnInterface1.ts index 304a4c96733..a394da0dd2c 100644 --- a/tests/cases/compiler/commentOnInterface1.ts +++ b/tests/cases/compiler/commentOnInterface1.ts @@ -1,7 +1,13 @@ +//@filename: a.ts /*! Keep this pinned comment */ interface I { } // Don't keep this comment. interface I2 { +} + +//@filename: b.ts +/// +interface I3 { } \ No newline at end of file