Skip to content

Commit 0dc5f18

Browse files
authored
Remove excess comment ranges from initialized and property parameter emit (#22152)
1 parent 95dfd27 commit 0dc5f18

File tree

8 files changed

+76
-22
lines changed

8 files changed

+76
-22
lines changed

src/compiler/transformers/es2015.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1311,24 +1311,27 @@ namespace ts {
13111311
setTextRange(
13121312
createBlock([
13131313
createStatement(
1314-
setTextRange(
1315-
createAssignment(
1316-
setEmitFlags(getMutableClone(name), EmitFlags.NoSourceMap),
1317-
setEmitFlags(initializer, EmitFlags.NoSourceMap | getEmitFlags(initializer))
1314+
setEmitFlags(
1315+
setTextRange(
1316+
createAssignment(
1317+
setEmitFlags(getMutableClone(name), EmitFlags.NoSourceMap),
1318+
setEmitFlags(initializer, EmitFlags.NoSourceMap | getEmitFlags(initializer) | EmitFlags.NoComments)
1319+
),
1320+
parameter
13181321
),
1319-
parameter
1322+
EmitFlags.NoComments
13201323
)
13211324
)
13221325
]),
13231326
parameter
13241327
),
1325-
EmitFlags.SingleLine | EmitFlags.NoTrailingSourceMap | EmitFlags.NoTokenSourceMaps
1328+
EmitFlags.SingleLine | EmitFlags.NoTrailingSourceMap | EmitFlags.NoTokenSourceMaps | EmitFlags.NoComments
13261329
)
13271330
);
13281331

13291332
startOnNewLine(statement);
13301333
setTextRange(statement, parameter);
1331-
setEmitFlags(statement, EmitFlags.NoTokenSourceMaps | EmitFlags.NoTrailingSourceMap | EmitFlags.CustomPrologue);
1334+
setEmitFlags(statement, EmitFlags.NoTokenSourceMaps | EmitFlags.NoTrailingSourceMap | EmitFlags.CustomPrologue | EmitFlags.NoComments);
13321335
statements.push(statement);
13331336
}
13341337

src/compiler/transformers/ts.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1147,20 +1147,23 @@ namespace ts {
11471147
setEmitFlags(localName, EmitFlags.NoComments);
11481148

11491149
return startOnNewLine(
1150-
setTextRange(
1151-
createStatement(
1152-
createAssignment(
1153-
setTextRange(
1154-
createPropertyAccess(
1155-
createThis(),
1156-
propertyName
1150+
setEmitFlags(
1151+
setTextRange(
1152+
createStatement(
1153+
createAssignment(
1154+
setTextRange(
1155+
createPropertyAccess(
1156+
createThis(),
1157+
propertyName
1158+
),
1159+
node.name
11571160
),
1158-
node.name
1159-
),
1160-
localName
1161-
)
1161+
localName
1162+
)
1163+
),
1164+
moveRangePos(node, -1)
11621165
),
1163-
moveRangePos(node, -1)
1166+
EmitFlags.NoComments
11641167
)
11651168
);
11661169
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//// [defaultParameterTrailingComments.ts]
2+
class C {
3+
constructor(defaultParam: boolean = false /* Emit only once*/) {}
4+
}
5+
6+
function foo(defaultParam = 10 /*emit only once*/) {}
7+
8+
//// [defaultParameterTrailingComments.js]
9+
var C = /** @class */ (function () {
10+
function C(defaultParam /* Emit only once*/) {
11+
if (defaultParam === void 0) { defaultParam = false; }
12+
}
13+
return C;
14+
}());
15+
function foo(defaultParam /*emit only once*/) {
16+
if (defaultParam === void 0) { defaultParam = 10; }
17+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
=== tests/cases/compiler/defaultParameterTrailingComments.ts ===
2+
class C {
3+
>C : Symbol(C, Decl(defaultParameterTrailingComments.ts, 0, 0))
4+
5+
constructor(defaultParam: boolean = false /* Emit only once*/) {}
6+
>defaultParam : Symbol(defaultParam, Decl(defaultParameterTrailingComments.ts, 1, 16))
7+
}
8+
9+
function foo(defaultParam = 10 /*emit only once*/) {}
10+
>foo : Symbol(foo, Decl(defaultParameterTrailingComments.ts, 2, 1))
11+
>defaultParam : Symbol(defaultParam, Decl(defaultParameterTrailingComments.ts, 4, 13))
12+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
=== tests/cases/compiler/defaultParameterTrailingComments.ts ===
2+
class C {
3+
>C : C
4+
5+
constructor(defaultParam: boolean = false /* Emit only once*/) {}
6+
>defaultParam : boolean
7+
>false : false
8+
}
9+
10+
function foo(defaultParam = 10 /*emit only once*/) {}
11+
>foo : (defaultParam?: number) => void
12+
>defaultParam : number
13+
>10 : 10
14+

tests/baselines/reference/parameterReferenceInInitializer1.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ function fn(y, set) {
1919
var C = /** @class */ (function () {
2020
function C(y, x // expected to work, but actually doesn't
2121
) {
22-
if (x === void 0) { x = fn(y, function (y, x) { return y.x = x; }); } // expected to work, but actually doesn't
23-
this.x = x; // expected to work, but actually doesn't
22+
if (x === void 0) { x = fn(y, function (y, x) { return y.x = x; }); }
23+
this.x = x;
2424
}
2525
return C;
2626
}());
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class C {
2+
constructor(defaultParam: boolean = false /* Emit only once*/) {}
3+
}
4+
5+
function foo(defaultParam = 10 /*emit only once*/) {}

0 commit comments

Comments
 (0)