Remove excess comment ranges from initialized and property parameter emit (#22152)
This commit is contained in:
parent
95dfd271e2
commit
0dc5f18bdb
8 changed files with 76 additions and 22 deletions
|
@ -1311,24 +1311,27 @@ namespace ts {
|
|||
setTextRange(
|
||||
createBlock([
|
||||
createStatement(
|
||||
setTextRange(
|
||||
createAssignment(
|
||||
setEmitFlags(getMutableClone(name), EmitFlags.NoSourceMap),
|
||||
setEmitFlags(initializer, EmitFlags.NoSourceMap | getEmitFlags(initializer))
|
||||
setEmitFlags(
|
||||
setTextRange(
|
||||
createAssignment(
|
||||
setEmitFlags(getMutableClone(name), EmitFlags.NoSourceMap),
|
||||
setEmitFlags(initializer, EmitFlags.NoSourceMap | getEmitFlags(initializer) | EmitFlags.NoComments)
|
||||
),
|
||||
parameter
|
||||
),
|
||||
parameter
|
||||
EmitFlags.NoComments
|
||||
)
|
||||
)
|
||||
]),
|
||||
parameter
|
||||
),
|
||||
EmitFlags.SingleLine | EmitFlags.NoTrailingSourceMap | EmitFlags.NoTokenSourceMaps
|
||||
EmitFlags.SingleLine | EmitFlags.NoTrailingSourceMap | EmitFlags.NoTokenSourceMaps | EmitFlags.NoComments
|
||||
)
|
||||
);
|
||||
|
||||
startOnNewLine(statement);
|
||||
setTextRange(statement, parameter);
|
||||
setEmitFlags(statement, EmitFlags.NoTokenSourceMaps | EmitFlags.NoTrailingSourceMap | EmitFlags.CustomPrologue);
|
||||
setEmitFlags(statement, EmitFlags.NoTokenSourceMaps | EmitFlags.NoTrailingSourceMap | EmitFlags.CustomPrologue | EmitFlags.NoComments);
|
||||
statements.push(statement);
|
||||
}
|
||||
|
||||
|
|
|
@ -1147,20 +1147,23 @@ namespace ts {
|
|||
setEmitFlags(localName, EmitFlags.NoComments);
|
||||
|
||||
return startOnNewLine(
|
||||
setTextRange(
|
||||
createStatement(
|
||||
createAssignment(
|
||||
setTextRange(
|
||||
createPropertyAccess(
|
||||
createThis(),
|
||||
propertyName
|
||||
setEmitFlags(
|
||||
setTextRange(
|
||||
createStatement(
|
||||
createAssignment(
|
||||
setTextRange(
|
||||
createPropertyAccess(
|
||||
createThis(),
|
||||
propertyName
|
||||
),
|
||||
node.name
|
||||
),
|
||||
node.name
|
||||
),
|
||||
localName
|
||||
)
|
||||
localName
|
||||
)
|
||||
),
|
||||
moveRangePos(node, -1)
|
||||
),
|
||||
moveRangePos(node, -1)
|
||||
EmitFlags.NoComments
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
//// [defaultParameterTrailingComments.ts]
|
||||
class C {
|
||||
constructor(defaultParam: boolean = false /* Emit only once*/) {}
|
||||
}
|
||||
|
||||
function foo(defaultParam = 10 /*emit only once*/) {}
|
||||
|
||||
//// [defaultParameterTrailingComments.js]
|
||||
var C = /** @class */ (function () {
|
||||
function C(defaultParam /* Emit only once*/) {
|
||||
if (defaultParam === void 0) { defaultParam = false; }
|
||||
}
|
||||
return C;
|
||||
}());
|
||||
function foo(defaultParam /*emit only once*/) {
|
||||
if (defaultParam === void 0) { defaultParam = 10; }
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
=== tests/cases/compiler/defaultParameterTrailingComments.ts ===
|
||||
class C {
|
||||
>C : Symbol(C, Decl(defaultParameterTrailingComments.ts, 0, 0))
|
||||
|
||||
constructor(defaultParam: boolean = false /* Emit only once*/) {}
|
||||
>defaultParam : Symbol(defaultParam, Decl(defaultParameterTrailingComments.ts, 1, 16))
|
||||
}
|
||||
|
||||
function foo(defaultParam = 10 /*emit only once*/) {}
|
||||
>foo : Symbol(foo, Decl(defaultParameterTrailingComments.ts, 2, 1))
|
||||
>defaultParam : Symbol(defaultParam, Decl(defaultParameterTrailingComments.ts, 4, 13))
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
=== tests/cases/compiler/defaultParameterTrailingComments.ts ===
|
||||
class C {
|
||||
>C : C
|
||||
|
||||
constructor(defaultParam: boolean = false /* Emit only once*/) {}
|
||||
>defaultParam : boolean
|
||||
>false : false
|
||||
}
|
||||
|
||||
function foo(defaultParam = 10 /*emit only once*/) {}
|
||||
>foo : (defaultParam?: number) => void
|
||||
>defaultParam : number
|
||||
>10 : 10
|
||||
|
|
@ -19,8 +19,8 @@ function fn(y, set) {
|
|||
var C = /** @class */ (function () {
|
||||
function C(y, x // expected to work, but actually doesn't
|
||||
) {
|
||||
if (x === void 0) { x = fn(y, function (y, x) { return y.x = x; }); } // expected to work, but actually doesn't
|
||||
this.x = x; // expected to work, but actually doesn't
|
||||
if (x === void 0) { x = fn(y, function (y, x) { return y.x = x; }); }
|
||||
this.x = x;
|
||||
}
|
||||
return C;
|
||||
}());
|
||||
|
|
5
tests/cases/compiler/defaultParameterTrailingComments.ts
Normal file
5
tests/cases/compiler/defaultParameterTrailingComments.ts
Normal file
|
@ -0,0 +1,5 @@
|
|||
class C {
|
||||
constructor(defaultParam: boolean = false /* Emit only once*/) {}
|
||||
}
|
||||
|
||||
function foo(defaultParam = 10 /*emit only once*/) {}
|
|
@ -1 +1 @@
|
|||
Subproject commit ed149eb0c787b1195a95b44105822c64bb6eb636
|
||||
Subproject commit 40bdb4eadabc9fbed7d83e3f26817a931c0763b6
|
Loading…
Reference in a new issue