Skip to content

Commit 5f9f9e3

Browse files
fix(44477): emit full path to access expressions in comments (microsoft#44545)
Co-authored-by: Wesley Wigham <[email protected]>
1 parent 4abad55 commit 5f9f9e3

40 files changed

+253
-257
lines changed

src/compiler/transformers/ts.ts

+1-5
Original file line numberDiff line numberDiff line change
@@ -3368,13 +3368,9 @@ namespace ts {
33683368
const substitute = typeof constantValue === "string" ? factory.createStringLiteral(constantValue) : factory.createNumericLiteral(constantValue);
33693369
if (!compilerOptions.removeComments) {
33703370
const originalNode = getOriginalNode(node, isAccessExpression);
3371-
const propertyName = isPropertyAccessExpression(originalNode)
3372-
? declarationNameToString(originalNode.name)
3373-
: safeMultiLineComment(getTextOfNode(originalNode.argumentExpression));
33743371

3375-
addSyntheticTrailingComment(substitute, SyntaxKind.MultiLineCommentTrivia, ` ${propertyName} `);
3372+
addSyntheticTrailingComment(substitute, SyntaxKind.MultiLineCommentTrivia, ` ${safeMultiLineComment(getTextOfNode(originalNode))} `);
33763373
}
3377-
33783374
return substitute;
33793375
}
33803376

tests/baselines/reference/amdModuleConstEnumUsage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ define(["require", "exports"], function (require, exports) {
3434
function User() {
3535
}
3636
User.prototype.method = function (input) {
37-
if (0 /* A */ === input) { }
37+
if (0 /* CharCode.A */ === input) { }
3838
};
3939
return User;
4040
}());

tests/baselines/reference/assignmentNonObjectTypeConstraints.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ function foo(x) {
2424
var y = x; // Ok
2525
}
2626
foo(5);
27-
foo(0 /* A */);
27+
foo(0 /* E.A */);
2828
var A = /** @class */ (function () {
2929
function A() {
3030
}

tests/baselines/reference/blockScopedEnumVariablesUseBeforeDef.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ function foo1() {
1818
})(E || (E = {}));
1919
}
2020
function foo2() {
21-
return 0 /* A */;
21+
return 0 /* E.A */;
2222
}

tests/baselines/reference/blockScopedEnumVariablesUseBeforeDef_preserve.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function foo1() {
1818
})(E || (E = {}));
1919
}
2020
function foo2() {
21-
return 0 /* A */;
21+
return 0 /* E.A */;
2222
var E;
2323
(function (E) {
2424
E[E["A"] = 0] = "A";

tests/baselines/reference/constEnum3.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ f2('bar')
1414
//// [constEnum3.js]
1515
function f1(f) { }
1616
function f2(f) { }
17-
f1(0 /* foo */);
18-
f1(1 /* bar */);
17+
f1(0 /* TestType.foo */);
18+
f1(1 /* TestType.bar */);
1919
f2('foo');
2020
f2('bar');

tests/baselines/reference/constEnumExternalModule.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ define(["require", "exports"], function (require, exports) {
1919
define(["require", "exports"], function (require, exports) {
2020
"use strict";
2121
exports.__esModule = true;
22-
var v = 100 /* V */;
22+
var v = 100 /* A.V */;
2323
});

tests/baselines/reference/constEnumNamespaceReferenceCausesNoImport(isolatedmodules=false).js

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ exports.fooFunc = fooFunc;
2929
exports.__esModule = true;
3030
function check(x) {
3131
switch (x) {
32-
case 0 /* Some */:
32+
case 0 /* Foo.ConstFooEnum.Some */:
3333
break;
3434
}
3535
}

tests/baselines/reference/constEnumNamespaceReferenceCausesNoImport2.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ module.exports = Foo.ConstEnumOnlyModule;
4444
exports.__esModule = true;
4545
function check(x) {
4646
switch (x) {
47-
case 0 /* Some */:
47+
case 0 /* Foo.ConstFooEnum.Some */:
4848
break;
4949
}
5050
}

tests/baselines/reference/constEnumNoEmitReexport.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ exports.__esModule = true;
4747
//// [Usage1.js]
4848
"use strict";
4949
exports.__esModule = true;
50-
0 /* Foo */;
51-
0 /* Foo */;
50+
0 /* MyConstEnum1.Foo */;
51+
0 /* MyConstEnum2.Foo */;
5252
//// [Usage2.js]
5353
"use strict";
5454
exports.__esModule = true;
55-
0 /* Foo */;
55+
0 /* MyConstEnum.Foo */;
5656
//// [Usage3.js]
5757
"use strict";
5858
exports.__esModule = true;
59-
0 /* Foo */;
59+
0 /* MyConstEnum.Foo */;

tests/baselines/reference/constEnumNoPreserveDeclarationReexport.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ StillEnum.Foo;
2323
//// [usages.js]
2424
"use strict";
2525
exports.__esModule = true;
26-
0 /* Foo */;
27-
0 /* Foo */;
28-
0 /* Foo */;
26+
0 /* MyConstEnum.Foo */;
27+
0 /* AlsoEnum.Foo */;
28+
0 /* StillEnum.Foo */;

tests/baselines/reference/constEnumOnlyModuleMerging.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ var Outer;
2121
var B;
2222
(function (B) {
2323
var O = Outer;
24-
var x = 0 /* X */;
24+
var x = 0 /* O.A.X */;
2525
var y = O.x;
2626
})(B || (B = {}));

tests/baselines/reference/constEnumPropertyAccess1.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ class C {
3737
var o = {
3838
1: true
3939
};
40-
var a = 1 /* A */;
41-
var a1 = 1 /* "A" */;
42-
var g = o[1 /* A */];
40+
var a = 1 /* G.A */;
41+
var a1 = 1 /* G["A"] */;
42+
var g = o[1 /* G.A */];
4343
class C {
44-
[1 /* A */]() { }
45-
get [2 /* B */]() {
44+
[1 /* G.A */]() { }
45+
get [2 /* G.B */]() {
4646
return true;
4747
}
48-
set [2 /* B */](x) { }
48+
set [2 /* G.B */](x) { }
4949
}
5050

5151

tests/baselines/reference/constEnumPropertyAccess2.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ G.B = 3;
2525
// than a property access that selects one of the enum's members
2626
// Error from referring constant enum in any other context than a property access
2727
var z = G;
28-
var z1 = G[1 /* A */];
28+
var z1 = G[1 /* G.A */];
2929
var g;
3030
g = "string";
3131
function foo(x) { }
32-
2 /* B */ = 3;
32+
2 /* G.B */ = 3;
3333

3434

3535
//// [constEnumPropertyAccess2.d.ts]

tests/baselines/reference/constEnumSyntheticNodesComments.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ function assert(x) {
2424
}
2525
function verify(a) {
2626
switch (a) {
27-
case 0 /* A */:
27+
case 0 /* En.A */:
2828
return assert(a);
29-
case 1 /* "B" */:
29+
case 1 /* En["B"] */:
3030
return assert(a);
31-
case 2 /* `C` */:
31+
case 2 /* En[`C`] */:
3232
return assert(a);
33-
case 3 /* "\u{44}" */:
33+
case 3 /* En["\u{44}"] */:
3434
return assert(a);
3535
}
3636
}

tests/baselines/reference/constEnumToStringWithComments.js

+12-12
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ let c1 = Foo["C"].toString();
2323

2424

2525
//// [constEnumToStringWithComments.js]
26-
var x0 = 100 /* X */.toString();
27-
var x1 = 100 /* "X" */.toString();
28-
var y0 = 0.5 /* Y */.toString();
29-
var y1 = 0.5 /* "Y" */.toString();
30-
var z0 = 2 /* Z */.toString();
31-
var z1 = 2 /* "Z" */.toString();
32-
var a0 = -1 /* A */.toString();
33-
var a1 = -1 /* "A" */.toString();
34-
var b0 = -1.5 /* B */.toString();
35-
var b1 = -1.5 /* "B" */.toString();
36-
var c0 = -1 /* C */.toString();
37-
var c1 = -1 /* "C" */.toString();
26+
var x0 = 100 /* Foo.X */.toString();
27+
var x1 = 100 /* Foo["X"] */.toString();
28+
var y0 = 0.5 /* Foo.Y */.toString();
29+
var y1 = 0.5 /* Foo["Y"] */.toString();
30+
var z0 = 2 /* Foo.Z */.toString();
31+
var z1 = 2 /* Foo["Z"] */.toString();
32+
var a0 = -1 /* Foo.A */.toString();
33+
var a1 = -1 /* Foo["A"] */.toString();
34+
var b0 = -1.5 /* Foo.B */.toString();
35+
var b1 = -1.5 /* Foo["B"] */.toString();
36+
var c0 = -1 /* Foo.C */.toString();
37+
var c1 = -1 /* Foo["C"] */.toString();

tests/baselines/reference/constEnums.js

+44-44
Original file line numberDiff line numberDiff line change
@@ -192,72 +192,72 @@ var A2;
192192
})(A2 || (A2 = {}));
193193
var I2 = A2.B;
194194
function foo0(e) {
195-
if (e === 1 /* V1 */) {
195+
if (e === 1 /* I.V1 */) {
196196
}
197-
else if (e === 101 /* V2 */) {
197+
else if (e === 101 /* I.V2 */) {
198198
}
199199
}
200200
function foo1(e) {
201-
if (e === 10 /* V1 */) {
201+
if (e === 10 /* I1.C.E.V1 */) {
202202
}
203-
else if (e === 110 /* V2 */) {
203+
else if (e === 110 /* I1.C.E.V2 */) {
204204
}
205205
}
206206
function foo2(e) {
207-
if (e === 10 /* V1 */) {
207+
if (e === 10 /* I2.C.E.V1 */) {
208208
}
209-
else if (e === 110 /* V2 */) {
209+
else if (e === 110 /* I2.C.E.V2 */) {
210210
}
211211
}
212212
function foo(x) {
213213
switch (x) {
214-
case 0 /* A */:
215-
case 1 /* B */:
216-
case 10 /* C */:
217-
case 1 /* D */:
218-
case 1 /* E */:
219-
case 1 /* F */:
220-
case 1 /* G */:
221-
case -2 /* H */:
222-
case 0 /* I */:
223-
case 0 /* J */:
224-
case -6 /* K */:
225-
case -2 /* L */:
226-
case 2 /* M */:
227-
case 2 /* N */:
228-
case 0 /* O */:
229-
case 0 /* P */:
230-
case 1 /* PQ */:
231-
case -1 /* Q */:
232-
case 0 /* R */:
233-
case 0 /* S */:
234-
case 11 /* "T" */:
235-
case 11 /* `U` */:
236-
case 11 /* V */:
237-
case 11 /* W */:
238-
case 100 /* W1 */:
239-
case 100 /* W2 */:
240-
case 100 /* W3 */:
241-
case 11 /* W4 */:
214+
case 0 /* Enum1.A */:
215+
case 1 /* Enum1.B */:
216+
case 10 /* Enum1.C */:
217+
case 1 /* Enum1.D */:
218+
case 1 /* Enum1.E */:
219+
case 1 /* Enum1.F */:
220+
case 1 /* Enum1.G */:
221+
case -2 /* Enum1.H */:
222+
case 0 /* Enum1.I */:
223+
case 0 /* Enum1.J */:
224+
case -6 /* Enum1.K */:
225+
case -2 /* Enum1.L */:
226+
case 2 /* Enum1.M */:
227+
case 2 /* Enum1.N */:
228+
case 0 /* Enum1.O */:
229+
case 0 /* Enum1.P */:
230+
case 1 /* Enum1.PQ */:
231+
case -1 /* Enum1.Q */:
232+
case 0 /* Enum1.R */:
233+
case 0 /* Enum1.S */:
234+
case 11 /* Enum1["T"] */:
235+
case 11 /* Enum1[`U`] */:
236+
case 11 /* Enum1.V */:
237+
case 11 /* Enum1.W */:
238+
case 100 /* Enum1.W1 */:
239+
case 100 /* Enum1.W2 */:
240+
case 100 /* Enum1.W3 */:
241+
case 11 /* Enum1.W4 */:
242242
break;
243243
}
244244
}
245245
function bar(e) {
246246
switch (e) {
247-
case 1 /* V1 */: return 1;
248-
case 101 /* V2 */: return 1;
249-
case 64 /* V3 */: return 1;
247+
case 1 /* A.B.C.E.V1 */: return 1;
248+
case 101 /* A.B.C.E.V2 */: return 1;
249+
case 64 /* A.B.C.E.V3 */: return 1;
250250
}
251251
}
252252
function baz(c) {
253253
switch (c) {
254-
case 0 /* "//" */:
255-
case 1 /* "/*" */:
256-
case 2 /* "*_/" */:
257-
case 3 /* "///" */:
258-
case 4 /* "#" */:
259-
case 5 /* "<!--" */:
260-
case 6 /* "-->" */:
254+
case 0 /* Comments["//"] */:
255+
case 1 /* Comments["/*"] */:
256+
case 2 /* Comments["*_/"] */:
257+
case 3 /* Comments["///"] */:
258+
case 4 /* Comments["#"] */:
259+
case 5 /* Comments["<!--"] */:
260+
case 6 /* Comments["-->"] */:
261261
break;
262262
}
263263
}

tests/baselines/reference/constIndexedAccess.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ let n3 = test[numbersNotConst.one];
3333
var test;
3434
var s = test[0];
3535
var n = test[1];
36-
var s1 = test[0 /* zero */];
37-
var n1 = test[1 /* one */];
38-
var s2 = test[0 /* "zero" */];
39-
var n2 = test[1 /* "one" */];
36+
var s1 = test[0 /* numbers.zero */];
37+
var n1 = test[1 /* numbers.one */];
38+
var s2 = test[0 /* numbers["zero"] */];
39+
var n2 = test[1 /* numbers["one"] */];
4040
var numbersNotConst;
4141
(function (numbersNotConst) {
4242
numbersNotConst[numbersNotConst["zero"] = 0] = "zero";

tests/baselines/reference/constantEnumAssert.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ var foo2 = { a: E2.a };
7676
var foo3 = { a: E1.a };
7777
var foo4 = { a: E2.a };
7878
var foo5 = { a: E3.a };
79-
var foo6 = { a: 0 /* a */ };
79+
var foo6 = { a: 0 /* E4.a */ };
8080
var foo7 = { a: E5.a };
8181
var foo8 = { a: E1.a };
8282
var foo9 = { a: E2.a };
8383
var foo10 = { a: E3.a };
84-
var foo11 = { a: 0 /* a */ };
84+
var foo11 = { a: 0 /* E4.a */ };
8585
var foo12 = { a: E5.a };

tests/baselines/reference/declarationEmitStringEnumUsedInNonlocalSpread.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ var A = /** @class */ (function () {
4141
A.prototype.getA = function () {
4242
var _a;
4343
return _a = {},
44-
_a["123123" /* Test1 */] = '123',
45-
_a["12312312312" /* Test2 */] = '123',
44+
_a["123123" /* TestEnum.Test1 */] = '123',
45+
_a["12312312312" /* TestEnum.Test2 */] = '123',
4646
_a;
4747
};
4848
return A;

tests/baselines/reference/destructuringParameterDeclaration3ES5.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,4 @@ var E;
7676
})(E || (E = {}));
7777
function foo1(...a) { }
7878
foo1(1, 2, 3, E.a);
79-
foo1(1, 2, 3, 0 /* a */, E.b);
79+
foo1(1, 2, 3, 0 /* E1.a */, E.b);

tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -142,4 +142,4 @@ function foo1() {
142142
}
143143
}
144144
foo1(1, 2, 3, E.a);
145-
foo1(1, 2, 3, 0 /* a */, E.b);
145+
foo1(1, 2, 3, 0 /* E1.a */, E.b);

tests/baselines/reference/destructuringParameterDeclaration3ES6.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,4 @@ var E;
7676
})(E || (E = {}));
7777
function foo1(...a) { }
7878
foo1(1, 2, 3, E.a);
79-
foo1(1, 2, 3, 0 /* a */, E.b);
79+
foo1(1, 2, 3, 0 /* E1.a */, E.b);

tests/baselines/reference/discriminantPropertyCheck.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -321,9 +321,9 @@ function onlyPlus(arg) {
321321
function func3(value) {
322322
if (value.type !== undefined) {
323323
switch (value.type) {
324-
case 1 /* bar1 */:
324+
case 1 /* BarEnum.bar1 */:
325325
break;
326-
case 2 /* bar2 */:
326+
case 2 /* BarEnum.bar2 */:
327327
break;
328328
default:
329329
never(value.type);

0 commit comments

Comments
 (0)