From 7ce43d471612ed2c27e2a96cd8bae16f48ecfbbb Mon Sep 17 00:00:00 2001 From: Anton Tolmachev Date: Tue, 29 Mar 2016 22:48:53 +0300 Subject: [PATCH] Fix #7101 --- src/compiler/emitter.ts | 4 ++- .../commentsAfterFunctionExpression1.js | 14 ++++++++++ .../commentsAfterFunctionExpression1.symbols | 17 ++++++++++++ .../commentsAfterFunctionExpression1.types | 26 +++++++++++++++++++ .../commentsAfterFunctionExpression1.ts | 6 +++++ 5 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/commentsAfterFunctionExpression1.js create mode 100644 tests/baselines/reference/commentsAfterFunctionExpression1.symbols create mode 100644 tests/baselines/reference/commentsAfterFunctionExpression1.types create mode 100644 tests/cases/compiler/commentsAfterFunctionExpression1.ts diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 0cb28a72a67..469530bb6be 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -4609,7 +4609,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge } emitEnd(node); - if (kind !== SyntaxKind.MethodDeclaration && kind !== SyntaxKind.MethodSignature) { + if (kind !== SyntaxKind.MethodDeclaration && + kind !== SyntaxKind.MethodSignature && + kind !== SyntaxKind.ArrowFunction) { emitTrailingComments(node); } } diff --git a/tests/baselines/reference/commentsAfterFunctionExpression1.js b/tests/baselines/reference/commentsAfterFunctionExpression1.js new file mode 100644 index 00000000000..7a591391052 --- /dev/null +++ b/tests/baselines/reference/commentsAfterFunctionExpression1.js @@ -0,0 +1,14 @@ +//// [commentsAfterFunctionExpression1.ts] +var v = { + f: a => 0 /*t1*/, + g: (a => 0) /*t2*/, + h: (a => 0 /*t3*/) +} + + +//// [commentsAfterFunctionExpression1.js] +var v = { + f: function (a) { return 0; } /*t1*/, + g: (function (a) { return 0; }) /*t2*/, + h: (function (a) { return 0; } /*t3*/) +}; diff --git a/tests/baselines/reference/commentsAfterFunctionExpression1.symbols b/tests/baselines/reference/commentsAfterFunctionExpression1.symbols new file mode 100644 index 00000000000..450bb990c89 --- /dev/null +++ b/tests/baselines/reference/commentsAfterFunctionExpression1.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/commentsAfterFunctionExpression1.ts === +var v = { +>v : Symbol(v, Decl(commentsAfterFunctionExpression1.ts, 0, 3)) + + f: a => 0 /*t1*/, +>f : Symbol(f, Decl(commentsAfterFunctionExpression1.ts, 0, 9)) +>a : Symbol(a, Decl(commentsAfterFunctionExpression1.ts, 1, 6)) + + g: (a => 0) /*t2*/, +>g : Symbol(g, Decl(commentsAfterFunctionExpression1.ts, 1, 21)) +>a : Symbol(a, Decl(commentsAfterFunctionExpression1.ts, 2, 8)) + + h: (a => 0 /*t3*/) +>h : Symbol(h, Decl(commentsAfterFunctionExpression1.ts, 2, 23)) +>a : Symbol(a, Decl(commentsAfterFunctionExpression1.ts, 3, 8)) +} + diff --git a/tests/baselines/reference/commentsAfterFunctionExpression1.types b/tests/baselines/reference/commentsAfterFunctionExpression1.types new file mode 100644 index 00000000000..4a6b12bc210 --- /dev/null +++ b/tests/baselines/reference/commentsAfterFunctionExpression1.types @@ -0,0 +1,26 @@ +=== tests/cases/compiler/commentsAfterFunctionExpression1.ts === +var v = { +>v : { f: (a: any) => number; g: (a: any) => number; h: (a: any) => number; } +>{ f: a => 0 /*t1*/, g: (a => 0) /*t2*/, h: (a => 0 /*t3*/)} : { f: (a: any) => number; g: (a: any) => number; h: (a: any) => number; } + + f: a => 0 /*t1*/, +>f : (a: any) => number +>a => 0 : (a: any) => number +>a : any +>0 : number + + g: (a => 0) /*t2*/, +>g : (a: any) => number +>(a => 0) : (a: any) => number +>a => 0 : (a: any) => number +>a : any +>0 : number + + h: (a => 0 /*t3*/) +>h : (a: any) => number +>(a => 0 /*t3*/) : (a: any) => number +>a => 0 : (a: any) => number +>a : any +>0 : number +} + diff --git a/tests/cases/compiler/commentsAfterFunctionExpression1.ts b/tests/cases/compiler/commentsAfterFunctionExpression1.ts new file mode 100644 index 00000000000..04fb0aec3b1 --- /dev/null +++ b/tests/cases/compiler/commentsAfterFunctionExpression1.ts @@ -0,0 +1,6 @@ +// @removeComments: false +var v = { + f: a => 0 /*t1*/, + g: (a => 0) /*t2*/, + h: (a => 0 /*t3*/) +}