Skip to content

Corrected codegen to support shadowed module names. #623

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 8, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 10 additions & 19 deletions src/compiler/emitter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1755,16 +1755,13 @@ module ts {
if (!isInstantiated(node)) {
return emitPinnedOrTripleSlashComments(node);
}

emitLeadingComments(node);
if (!(node.flags & NodeFlags.Export)) {
emitStart(node);
write("var ");
emit(node.name);
write(";");
emitEnd(node);
writeLine();
}
emitStart(node);
write("var ");
emit(node.name);
write(";");
emitEnd(node);
writeLine();
emitStart(node);
write("(function (");
emitStart(node.name);
Expand All @@ -1788,21 +1785,15 @@ module ts {
scopeEmitEnd();
}
write(")(");
if (node.flags & NodeFlags.Export) {
emit(node.name);
write(" = ");
}
emitModuleMemberName(node);
write(" || (");
emitModuleMemberName(node);
write(" = {}));");
emitEnd(node);
if (node.flags & NodeFlags.Export) {
writeLine();
emitStart(node);
write("var ");
emit(node.name);
write(" = ");
emitModuleMemberName(node);
emitEnd(node);
write(";");
}
emitTrailingComments(node);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,11 @@ var A;
return Point;
})();
A.Point = Point;
var Point;
(function (Point) {
function Origin() {
return "";
}
Point.Origin = Origin; //expected duplicate identifier error
})(A.Point || (A.Point = {}));
var Point = A.Point;
})(Point = A.Point || (A.Point = {}));
})(A || (A = {}));
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ var A;
return Point;
})();
A.Point = Point;
var Point;
(function (Point) {
function Origin() {
return "";
} // not an error since not exported
})(A.Point || (A.Point = {}));
var Point = A.Point;
})(Point = A.Point || (A.Point = {}));
})(A || (A = {}));
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ var A;
return Point;
})();
A.Point = Point;
var Point;
(function (Point) {
Point.Origin = ""; //expected duplicate identifier error
})(A.Point || (A.Point = {}));
var Point = A.Point;
})(Point = A.Point || (A.Point = {}));
})(A || (A = {}));
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ var A;
return Point;
})();
A.Point = Point;
var Point;
(function (Point) {
var Origin = ""; // not an error since not exported
})(A.Point || (A.Point = {}));
var Point = A.Point;
})(Point = A.Point || (A.Point = {}));
})(A || (A = {}));
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ var a: { id: string };
//// [class.js]
var X;
(function (X) {
var Y;
(function (Y) {
var Point = (function () {
function Point(x, y) {
Expand All @@ -52,19 +53,18 @@ var X;
return Point;
})();
Y.Point = Point;
})(X.Y || (X.Y = {}));
var Y = X.Y;
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
//// [module.js]
var X;
(function (X) {
var Y;
(function (Y) {
var Point;
(function (Point) {
Point.Origin = new Point(0, 0);
})(Y.Point || (Y.Point = {}));
var Point = Y.Point;
})(X.Y || (X.Y = {}));
var Y = X.Y;
})(Point = Y.Point || (Y.Point = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
//// [test.js]
//var cl: { x: number; y: number; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ var A;
return Point;
})();
A.Point = Point;
var B;
(function (B) {
B.Origin = new Point(0, 0);
var Line = (function () {
Expand All @@ -42,6 +43,5 @@ var A;
return Line;
})();
B.Line = Line;
})(A.B || (A.B = {}));
var B = A.B;
})(B = A.B || (A.B = {}));
})(A || (A = {}));
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,10 @@ var A;
//// [module.js]
var A;
(function (A) {
var Point;
(function (Point) {
Point.Origin = { x: 0, y: 0 };
})(A.Point || (A.Point = {}));
var Point = A.Point;
})(Point = A.Point || (A.Point = {}));
})(A || (A = {}));
//// [test.js]
var fn;
Expand All @@ -72,10 +72,10 @@ var B;
return { x: 0, y: 0 };
}
B.Point = Point;
var Point;
(function (Point) {
Point.Origin = { x: 0, y: 0 };
})(B.Point || (B.Point = {}));
var Point = B.Point;
})(Point = B.Point || (B.Point = {}));
})(B || (B = {}));
var fn;
var fn = B.Point; // not expected to be an error. bug 840000: [corelang] Function of fundule not assignalbe as expected
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ var A;
//// [module.js]
var B;
(function (B) {
var Point;
(function (Point) {
Point.Origin = { x: 0, y: 0 };
})(B.Point || (B.Point = {}));
var Point = B.Point;
})(Point = B.Point || (B.Point = {}));
})(B || (B = {}));
//// [test.js]
var fn;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,18 @@ class A {
//// [module.js]
var X;
(function (X) {
var Y;
(function (Y) {
var Point;
(function (Point) {
Point.Origin = new Point(0, 0);
})(Y.Point || (Y.Point = {}));
var Point = Y.Point;
})(X.Y || (X.Y = {}));
var Y = X.Y;
})(Point = Y.Point || (Y.Point = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
//// [classPoint.js]
var X;
(function (X) {
var Y;
(function (Y) {
// duplicate identifier
var Point = (function () {
Expand All @@ -55,8 +56,7 @@ var X;
return Point;
})();
Y.Point = Point;
})(X.Y || (X.Y = {}));
var Y = X.Y;
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
//// [simple.js]
var A;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ module B {
//// [module.js]
var A;
(function (A) {
var Point;
(function (Point) {
Point.Origin = { x: 0, y: 0 };
})(A.Point || (A.Point = {}));
var Point = A.Point;
})(Point = A.Point || (A.Point = {}));
})(A || (A = {}));
//// [function.js]
var A;
Expand All @@ -49,10 +49,10 @@ var A;
//// [simple.js]
var B;
(function (B) {
var Point;
(function (Point) {
Point.Origin = { x: 0, y: 0 };
})(B.Point || (B.Point = {}));
var Point = B.Point;
})(Point = B.Point || (B.Point = {}));
// duplicate identifier error
function Point() {
return { x: 0, y: 0 };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,32 +66,32 @@ var p;
var p;
var X;
(function (X) {
var Y;
(function (Y) {
var Z;
(function (Z) {
var Line = (function () {
function Line() {
}
return Line;
})();
Z.Line = Line;
})(Y.Z || (Y.Z = {}));
var Z = Y.Z;
})(X.Y || (X.Y = {}));
var Y = X.Y;
})(Z = Y.Z || (Y.Z = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
var X;
(function (X) {
var Y;
(function (Y) {
var Z;
(function (Z) {
var Line = (function () {
function Line() {
}
return Line;
})();
})(Y.Z || (Y.Z = {}));
var Z = Y.Z;
})(X.Y || (X.Y = {}));
var Y = X.Y;
})(Z = Y.Z || (Y.Z = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
// ensure merges as expected
var l;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,21 @@ var p = new A.Utils.Plane(o, { x: 1, y: 1 });
//// [part1.js]
var A;
(function (A) {
var Utils;
(function (Utils) {
function mirror(p) {
return { x: p.y, y: p.x };
}
Utils.mirror = mirror;
})(A.Utils || (A.Utils = {}));
var Utils = A.Utils;
})(Utils = A.Utils || (A.Utils = {}));
A.Origin = { x: 0, y: 0 };
})(A || (A = {}));
//// [part2.js]
var A;
(function (A) {
// not a collision, since we don't export
var Origin = "0,0";
var Utils;
(function (Utils) {
var Plane = (function () {
function Plane(tl, br) {
Expand All @@ -67,8 +68,7 @@ var A;
return Plane;
})();
Utils.Plane = Plane;
})(A.Utils || (A.Utils = {}));
var Utils = A.Utils;
})(Utils = A.Utils || (A.Utils = {}));
})(A || (A = {}));
//// [part3.js]
// test the merging actually worked
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,24 @@ var A;
})(A || (A = {}));
var X;
(function (X) {
var Y;
(function (Y) {
var Z;
(function (Z) {
var Line = (function () {
function Line() {
}
return Line;
})();
Z.Line = Line;
})(Y.Z || (Y.Z = {}));
var Z = Y.Z;
})(X.Y || (X.Y = {}));
var Y = X.Y;
})(Z = Y.Z || (Y.Z = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
var X;
(function (X) {
var Y;
(function (Y) {
var Z;
(function (Z) {
// expected error
var Line = (function () {
Expand All @@ -78,8 +80,6 @@ var X;
return Line;
})();
Z.Line = Line;
})(Y.Z || (Y.Z = {}));
var Z = Y.Z;
})(X.Y || (X.Y = {}));
var Y = X.Y;
})(Z = Y.Z || (Y.Z = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
Loading