From f428a166808003e3cbf6c7415fa71865e0e0db9e Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Thu, 14 Aug 2014 16:32:21 -0700 Subject: [PATCH] Fix the trailing comments for variable declaration and function/arrow expressions --- src/compiler/emitter.ts | 8 ++++++-- tests/baselines/reference/arrayAssignmentTest2.js | 2 +- tests/baselines/reference/arrayAssignmentTest4.js | 2 +- .../reference/arrowFunctionInConstructorArgument1.js | 2 +- ...CompatWithCallSignaturesWithOptionalParameters.js | 2 +- tests/baselines/reference/augmentedTypesEnum.js | 2 +- tests/baselines/reference/augmentedTypesFunction.js | 2 +- tests/baselines/reference/augmentedTypesVar.js | 2 +- .../derivedClassConstructorWithoutSuperCall.js | 2 +- tests/baselines/reference/genericChainedCalls.js | 2 +- tests/baselines/reference/genericOfACloduleType1.js | 2 +- .../reference/genericWithOpenTypeParameters1.js | 8 ++++---- ...mplicitAnyDeclareFunctionExprWithoutFormalType.js | 2 +- .../implicitAnyDeclareTypePropertyWithoutType.js | 2 +- ...implicitAnyFunctionInvocationWithAnyArguements.js | 2 +- tests/baselines/reference/indexer3.js | 2 +- .../instanceMemberAssignsToClassPrototype.js | 2 +- .../reference/recursiveIdenticalAssignment.js | 2 +- ...taticMemberAssignsToConstructorFunctionMembers.js | 2 +- tests/baselines/reference/targetTypeCalls.js | 8 ++++---- .../reference/typeOfEnumAndVarRedeclarations.js | 2 +- .../reference/voidFunctionAssignmentCompat.js | 12 ++++++------ 22 files changed, 38 insertions(+), 34 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 338980fe32b..77d884c4a16 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1094,6 +1094,7 @@ module ts { emitLeadingComments(node); emitModuleMemberName(node); emitOptional(" = ", node.initializer); + var variableStatement = node.parent; emitTrailingComments(node); } @@ -1935,8 +1936,11 @@ module ts { } function emitTrailingDeclarationComments(node: Declaration) { - var trailingComments = getTrailingComments(currentSourceFile.text, node.end); - emitComments(trailingComments, writer, writeComment); + // Emit the trailing declaration comments only if the parent's end doesnt match + if (node.parent.kind === SyntaxKind.SourceFile || node.end !== node.parent.end) { + var trailingComments = getTrailingComments(currentSourceFile.text, node.end); + emitComments(trailingComments, writer, writeComment); + } } if (compilerOptions.sourceMap) { diff --git a/tests/baselines/reference/arrayAssignmentTest2.js b/tests/baselines/reference/arrayAssignmentTest2.js index 2f6d610ee1a..d7aef759546 100644 --- a/tests/baselines/reference/arrayAssignmentTest2.js +++ b/tests/baselines/reference/arrayAssignmentTest2.js @@ -129,7 +129,7 @@ arr_c3 = arr_i1_2; arr_any = f1; arr_any = function () { return null; -}// should be an error - is ; +}; arr_any = o1; arr_any = a1; arr_any = c1; diff --git a/tests/baselines/reference/arrayAssignmentTest4.js b/tests/baselines/reference/arrayAssignmentTest4.js index 6a391264399..87ddf2d41b4 100644 --- a/tests/baselines/reference/arrayAssignmentTest4.js +++ b/tests/baselines/reference/arrayAssignmentTest4.js @@ -51,5 +51,5 @@ var o1 = { one: 1 }; var arr_any = []; arr_any = function () { return null; -}// should be an error - is ; +}; arr_any = c3; diff --git a/tests/baselines/reference/arrowFunctionInConstructorArgument1.js b/tests/baselines/reference/arrowFunctionInConstructorArgument1.js index 42046f09c45..8bd4d01b67e 100644 --- a/tests/baselines/reference/arrowFunctionInConstructorArgument1.js +++ b/tests/baselines/reference/arrowFunctionInConstructorArgument1.js @@ -13,4 +13,4 @@ var C = (function () { })(); var c = new C(function () { return asdf; -})// should error ;// should error +});// should error diff --git a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.js b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.js index b95f41207e7..da0bb3bac22 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.js +++ b/tests/baselines/reference/assignmentCompatWithCallSignaturesWithOptionalParameters.js @@ -72,7 +72,7 @@ var a5: (x?: number, y?: number) => number; //// [assignmentCompatWithCallSignaturesWithOptionalParameters.js] var b; var a; -a = function () { return 1; }// ok, same number of required params ; +a = function () { return 1; }; a = function (x) { return 1; }; a = function (x) { return 1; }; a = b.a; diff --git a/tests/baselines/reference/augmentedTypesEnum.js b/tests/baselines/reference/augmentedTypesEnum.js index 5795f40e018..96410bbbdd3 100644 --- a/tests/baselines/reference/augmentedTypesEnum.js +++ b/tests/baselines/reference/augmentedTypesEnum.js @@ -54,7 +54,7 @@ var e3; e3[e3["One"] = 0] = "One"; })(e3 || (e3 = {})); var e3 = function () { -}// error // error ;// error +};// error // enum then class var e4; (function (e4) { diff --git a/tests/baselines/reference/augmentedTypesFunction.js b/tests/baselines/reference/augmentedTypesFunction.js index cecb3f9c905..9edf863a95e 100644 --- a/tests/baselines/reference/augmentedTypesFunction.js +++ b/tests/baselines/reference/augmentedTypesFunction.js @@ -51,7 +51,7 @@ function y2() { function y2a() { } var y2a = function () { -}// error // error ;// error +};// error // function then class function y3() { } diff --git a/tests/baselines/reference/augmentedTypesVar.js b/tests/baselines/reference/augmentedTypesVar.js index d76526b9aa0..b102575f1a8 100644 --- a/tests/baselines/reference/augmentedTypesVar.js +++ b/tests/baselines/reference/augmentedTypesVar.js @@ -46,7 +46,7 @@ function x2() { }// should be an error var x3 = 1; var x3 = function () { -}// should be an error // should be an error ;// should be an error +};// should be an error // var then class var x4 = 1; var x4 = (function () { diff --git a/tests/baselines/reference/derivedClassConstructorWithoutSuperCall.js b/tests/baselines/reference/derivedClassConstructorWithoutSuperCall.js index ce6f336b960..9f7895e0885 100644 --- a/tests/baselines/reference/derivedClassConstructorWithoutSuperCall.js +++ b/tests/baselines/reference/derivedClassConstructorWithoutSuperCall.js @@ -68,7 +68,7 @@ var Derived3 = (function (_super) { function Derived3() { var r = function () { _super.call(this); - }// error // error ;// error + };// error } return Derived3; })(Base2); diff --git a/tests/baselines/reference/genericChainedCalls.js b/tests/baselines/reference/genericChainedCalls.js index 6ffd554a45c..fdf8b576465 100644 --- a/tests/baselines/reference/genericChainedCalls.js +++ b/tests/baselines/reference/genericChainedCalls.js @@ -17,5 +17,5 @@ var s3 = s2.func(num => num.toString()) //// [genericChainedCalls.js] var r1 = v1.func(function (num) { return num.toString(); }).func(function (str) { return str.length; }).func(function (num) { return num.toString(); }); var s1 = v1.func(function (num) { return num.toString(); }); -var s2 = s1.func(function (str) { return str.length; })// should also error ;// should also error +var s2 = s1.func(function (str) { return str.length; });// should also error var s3 = s2.func(function (num) { return num.toString(); }); diff --git a/tests/baselines/reference/genericOfACloduleType1.js b/tests/baselines/reference/genericOfACloduleType1.js index f8fbebdaac0..1b0e3dc1945 100644 --- a/tests/baselines/reference/genericOfACloduleType1.js +++ b/tests/baselines/reference/genericOfACloduleType1.js @@ -43,4 +43,4 @@ var M; var g1 = new G(); g1.bar(null).foo(); })(M || (M = {})); -var g2 = new G()// was: error Type reference cannot refer to container 'M.C'. ;// was: error Type reference cannot refer to container 'M.C'. +var g2 = new G();// was: error Type reference cannot refer to container 'M.C'. diff --git a/tests/baselines/reference/genericWithOpenTypeParameters1.js b/tests/baselines/reference/genericWithOpenTypeParameters1.js index b7b257c283a..1a5016e7457 100644 --- a/tests/baselines/reference/genericWithOpenTypeParameters1.js +++ b/tests/baselines/reference/genericWithOpenTypeParameters1.js @@ -24,13 +24,13 @@ var x; x.foo(1); var f = function (x) { return x.foo(1); -}// error // error ;// error +};// error var f2 = function (x) { return x.foo(1); -}// error // error ;// error +};// error var f3 = function (x) { return x.foo(1); -}// error // error ;// error +};// error var f4 = function (x) { return x.foo(1); -}// no error // no error ;// no error +};// no error diff --git a/tests/baselines/reference/implicitAnyDeclareFunctionExprWithoutFormalType.js b/tests/baselines/reference/implicitAnyDeclareFunctionExprWithoutFormalType.js index fd9668952b7..9c4eef45ba6 100644 --- a/tests/baselines/reference/implicitAnyDeclareFunctionExprWithoutFormalType.js +++ b/tests/baselines/reference/implicitAnyDeclareFunctionExprWithoutFormalType.js @@ -22,7 +22,7 @@ var lambda10 = function temp1() { return 5; } var lambda = function (l1) { };// Error at "l1" var lambd2 = function (ll1, ll2) { -}// Error at "ll1" // Error at "ll1" ;// Error at "ll1" +};// Error at "ll1" var lamda3 = function myLambda3(myParam) { }; var lamda4 = function () { diff --git a/tests/baselines/reference/implicitAnyDeclareTypePropertyWithoutType.js b/tests/baselines/reference/implicitAnyDeclareTypePropertyWithoutType.js index d4b9e29701e..92e95631909 100644 --- a/tests/baselines/reference/implicitAnyDeclareTypePropertyWithoutType.js +++ b/tests/baselines/reference/implicitAnyDeclareTypePropertyWithoutType.js @@ -24,7 +24,7 @@ var C = (function () { return C; })(); // this should be an error -var x// error at "y,z" ;// error at "y,z" +var x;// error at "y,z" var x1;// error at "z1" var x11;// error at "new" var x2;// error at "y2" diff --git a/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js b/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js index acf9b46a818..9bb00ae546f 100644 --- a/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js +++ b/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js @@ -39,7 +39,7 @@ var newC2 = new C([], null) // this should be errors var arg0 = null;// error at "arg0" var anyArray = [null, undefined];// error at array literal -var objL// error at "y,z" ;// error at "y,z" +var objL;// error at "y,z" var funcL; function temp1(arg1) { }// error at "temp1" diff --git a/tests/baselines/reference/indexer3.js b/tests/baselines/reference/indexer3.js index 7b84415d1c8..5d8e5e3fe48 100644 --- a/tests/baselines/reference/indexer3.js +++ b/tests/baselines/reference/indexer3.js @@ -4,4 +4,4 @@ var r: Date = dateMap["hello"] // result type includes indexer using BCT //// [indexer3.js] var dateMap = {}; -var r = dateMap["hello"]// result type includes indexer using BCT ;// result type includes indexer using BCT +var r = dateMap["hello"];// result type includes indexer using BCT diff --git a/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js b/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js index 3f5203de077..8ba9f1ea983 100644 --- a/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js +++ b/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js @@ -22,7 +22,7 @@ var C = (function () { }; C.prototype.bar = function (x) { C.prototype.bar = function () { - }// error ; + }; C.prototype.bar = function (x) { return x; }; C.prototype.bar = function (x) { return 1; }; return 1; diff --git a/tests/baselines/reference/recursiveIdenticalAssignment.js b/tests/baselines/reference/recursiveIdenticalAssignment.js index 5520052c02b..e958e980dc2 100644 --- a/tests/baselines/reference/recursiveIdenticalAssignment.js +++ b/tests/baselines/reference/recursiveIdenticalAssignment.js @@ -13,4 +13,4 @@ var b: B> = a // Error, any does not satisfy constraint B> //// [recursiveIdenticalAssignment.js] var a; -var b = a// Error, any does not satisfy constraint B> ;// Error, any does not satisfy constraint B> +var b = a;// Error, any does not satisfy constraint B> diff --git a/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js b/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js index bae1e6c189f..7f06aa0b9f1 100644 --- a/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js +++ b/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js @@ -22,7 +22,7 @@ var C = (function () { }; C.bar = function (x) { C.bar = function () { - }// error ; + }; C.bar = function (x) { return x; }; C.bar = function (x) { return 1; }; return 1; diff --git a/tests/baselines/reference/targetTypeCalls.js b/tests/baselines/reference/targetTypeCalls.js index be383e56065..556d0ed40c7 100644 --- a/tests/baselines/reference/targetTypeCalls.js +++ b/tests/baselines/reference/targetTypeCalls.js @@ -10,23 +10,23 @@ var fra1 = function () { return function (v) { return v; }; -}()// should work ;// should work +}();// should work var fra2 = function () { return function () { return 0; }; -}()// should work ;// should work +}();// should work var fra3 = function () { return function () { return function (v) { return v; }; }(); -}()// should work ;// should work +}();// should work var fra4 = function () { return function () { return function (v) { return v; }; }(); -}()// should work ;// should work +}();// should work diff --git a/tests/baselines/reference/typeOfEnumAndVarRedeclarations.js b/tests/baselines/reference/typeOfEnumAndVarRedeclarations.js index e5d45aee948..2948ec3f8c9 100644 --- a/tests/baselines/reference/typeOfEnumAndVarRedeclarations.js +++ b/tests/baselines/reference/typeOfEnumAndVarRedeclarations.js @@ -22,4 +22,4 @@ var E; var x = E; var x;// Shouldnt error var y = E; -var y// two errors: the types are not identical and duplicate signatures ;// two errors: the types are not identical and duplicate signatures +var y;// two errors: the types are not identical and duplicate signatures diff --git a/tests/baselines/reference/voidFunctionAssignmentCompat.js b/tests/baselines/reference/voidFunctionAssignmentCompat.js index 53d9712b5a0..ec10b14abe3 100644 --- a/tests/baselines/reference/voidFunctionAssignmentCompat.js +++ b/tests/baselines/reference/voidFunctionAssignmentCompat.js @@ -24,12 +24,12 @@ var fa = function () { return 3; }; fa = function () { -}// should not work ; +}; var fv = function () { }; fv = function () { return 0; -}// should work ; +}; function execAny(callback) { return callback(0); } @@ -44,19 +44,19 @@ execVoid(function () { var fra = function () { return function () { }; -}// should work // should work ;// should work +};// should work var frv = function () { return function () { return 0; }; -}// should work // should work ;// should work +};// should work var fra3 = (function () { return function (v) { return v; }; -})()// should work ;// should work +})();// should work var frv3 = (function () { return function () { return 0; }; -})()// should work ;// should work +})();// should work