Do not emit extra var decls for merged enums/namespaces

This commit is contained in:
Ron Buckton
2016-09-30 14:20:06 -07:00
parent edd8eb8733
commit ae7f1be427
188 changed files with 749 additions and 943 deletions
+63 -12
View File
@@ -51,6 +51,7 @@ namespace ts {
let currentNamespace: ModuleDeclaration;
let currentNamespaceContainerName: Identifier;
let currentScope: SourceFile | Block | ModuleBlock | CaseBlock;
let currentScopeFirstDeclarationsOfName: Map<Node>;
let currentSourceFileExternalHelpersModuleName: Identifier;
/**
@@ -100,6 +101,7 @@ namespace ts {
function saveStateAndInvoke<T>(node: Node, f: (node: Node) => T): T {
// Save state
const savedCurrentScope = currentScope;
const savedCurrentScopeFirstDeclarationsOfName = currentScopeFirstDeclarationsOfName;
// Handle state changes before visiting a node.
onBeforeVisitNode(node);
@@ -107,8 +109,11 @@ namespace ts {
const visited = f(node);
// Restore state
currentScope = savedCurrentScope;
if (currentScope !== savedCurrentScope) {
currentScopeFirstDeclarationsOfName = savedCurrentScopeFirstDeclarationsOfName;
}
currentScope = savedCurrentScope;
return visited;
}
@@ -414,6 +419,16 @@ namespace ts {
case SyntaxKind.ModuleBlock:
case SyntaxKind.Block:
currentScope = <SourceFile | CaseBlock | ModuleBlock | Block>node;
currentScopeFirstDeclarationsOfName = undefined;
break;
case SyntaxKind.ClassDeclaration:
case SyntaxKind.FunctionDeclaration:
if (hasModifier(node, ModifierFlags.Ambient)) {
break;
}
recordEmittedDeclarationInScope(node);
break;
}
}
@@ -2502,10 +2517,12 @@ namespace ts {
}
function shouldEmitVarForEnumDeclaration(node: EnumDeclaration | ModuleDeclaration) {
return !hasModifier(node, ModifierFlags.Export)
|| (isES6ExportedDeclaration(node) && isFirstDeclarationOfKind(node, node.kind));
return isFirstEmittedDeclarationInScope(node)
&& (!hasModifier(node, ModifierFlags.Export)
|| isES6ExportedDeclaration(node));
}
/*
* Adds a trailing VariableStatement for an enum or module declaration.
*/
@@ -2543,6 +2560,7 @@ namespace ts {
// If needed, we should emit a variable declaration for the enum. If we emit
// a leading variable declaration, we should not emit leading comments for the
// enum body.
recordEmittedDeclarationInScope(node);
if (shouldEmitVarForEnumDeclaration(node)) {
addVarForEnumOrModuleDeclaration(statements, node);
@@ -2679,20 +2697,48 @@ namespace ts {
return isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules);
}
function isModuleMergedWithES6Class(node: ModuleDeclaration) {
return languageVersion === ScriptTarget.ES6
&& isMergedWithClass(node);
}
function isES6ExportedDeclaration(node: Node) {
return isExternalModuleExport(node)
&& moduleKind === ModuleKind.ES6;
}
/**
* Records that a declaration was emitted in the current scope, if it was the first
* declaration for the provided symbol.
*
* NOTE: if there is ever a transformation above this one, we may not be able to rely
* on symbol names.
*/
function recordEmittedDeclarationInScope(node: Node) {
const name = node.symbol && node.symbol.name;
if (name) {
if (!currentScopeFirstDeclarationsOfName) {
currentScopeFirstDeclarationsOfName = createMap<Node>();
}
if (!(name in currentScopeFirstDeclarationsOfName)) {
currentScopeFirstDeclarationsOfName[name] = node;
}
}
}
/**
* Determines whether a declaration is the first declaration with the same name emitted
* in the current scope.
*/
function isFirstEmittedDeclarationInScope(node: Node) {
if (currentScopeFirstDeclarationsOfName) {
const name = node.symbol && node.symbol.name;
if (name) {
return currentScopeFirstDeclarationsOfName[name] === node;
}
}
return false;
}
function shouldEmitVarForModuleDeclaration(node: ModuleDeclaration) {
return !isModuleMergedWithES6Class(node)
&& (!isES6ExportedDeclaration(node)
|| isFirstDeclarationOfKind(node, node.kind));
return isFirstEmittedDeclarationInScope(node);
}
/**
@@ -2768,6 +2814,7 @@ namespace ts {
// If needed, we should emit a variable declaration for the module. If we emit
// a leading variable declaration, we should not emit leading comments for the
// module body.
recordEmittedDeclarationInScope(node);
if (shouldEmitVarForModuleDeclaration(node)) {
addVarForEnumOrModuleDeclaration(statements, node);
// We should still emit the comments if we are emitting a system module.
@@ -2837,8 +2884,10 @@ namespace ts {
function transformModuleBody(node: ModuleDeclaration, namespaceLocalName: Identifier): Block {
const savedCurrentNamespaceContainerName = currentNamespaceContainerName;
const savedCurrentNamespace = currentNamespace;
const savedCurrentScopeFirstDeclarationsOfName = currentScopeFirstDeclarationsOfName;
currentNamespaceContainerName = namespaceLocalName;
currentNamespace = node;
currentScopeFirstDeclarationsOfName = undefined;
const statements: Statement[] = [];
startLexicalEnvironment();
@@ -2865,10 +2914,12 @@ namespace ts {
const moduleBlock = <ModuleBlock>getInnerMostModuleDeclarationFromDottedModule(node).body;
statementsLocation = moveRangePos(moduleBlock.statements, -1);
}
addRange(statements, endLexicalEnvironment());
addRange(statements, endLexicalEnvironment());
currentNamespaceContainerName = savedCurrentNamespaceContainerName;
currentNamespace = savedCurrentNamespace;
currentScopeFirstDeclarationsOfName = savedCurrentScopeFirstDeclarationsOfName;
const block = createBlock(
createNodeArray(
statements,
@@ -56,7 +56,6 @@ var clodule1 = (function () {
}
return clodule1;
}());
var clodule1;
(function (clodule1) {
function f(x) { }
})(clodule1 || (clodule1 = {}));
@@ -65,7 +64,6 @@ var clodule2 = (function () {
}
return clodule2;
}());
var clodule2;
(function (clodule2) {
var x;
var D = (function () {
@@ -79,7 +77,6 @@ var clodule3 = (function () {
}
return clodule3;
}());
var clodule3;
(function (clodule3) {
clodule3.y = { id: T };
})(clodule3 || (clodule3 = {}));
@@ -88,7 +85,6 @@ var clodule4 = (function () {
}
return clodule4;
}());
var clodule4;
(function (clodule4) {
var D = (function () {
function D() {
@@ -22,7 +22,6 @@ var clodule = (function () {
clodule.fn = function (id) { };
return clodule;
}());
var clodule;
(function (clodule) {
// error: duplicate identifier expected
function fn(x, y) {
@@ -22,7 +22,6 @@ var clodule = (function () {
clodule.fn = function (id) { };
return clodule;
}());
var clodule;
(function (clodule) {
// error: duplicate identifier expected
function fn(x, y) {
@@ -22,7 +22,6 @@ var clodule = (function () {
clodule.sfn = function (id) { return 42; };
return clodule;
}());
var clodule;
(function (clodule) {
// error: duplicate identifier expected
function fn(x, y) {
@@ -31,7 +31,6 @@ var Point = (function () {
Point.Origin = function () { return { x: 0, y: 0 }; }; // unexpected error here bug 840246
return Point;
}());
var Point;
(function (Point) {
function Origin() { return null; } //expected duplicate identifier error
Point.Origin = Origin;
@@ -47,7 +46,6 @@ var A;
return Point;
}());
A.Point = Point;
var Point;
(function (Point) {
function Origin() { return ""; } //expected duplicate identifier error
Point.Origin = Origin;
@@ -31,7 +31,6 @@ var Point = (function () {
Point.Origin = function () { return { x: 0, y: 0 }; };
return Point;
}());
var Point;
(function (Point) {
function Origin() { return ""; } // not an error, since not exported
})(Point || (Point = {}));
@@ -46,7 +45,6 @@ var A;
return Point;
}());
A.Point = Point;
var Point;
(function (Point) {
function Origin() { return ""; } // not an error since not exported
})(Point = A.Point || (A.Point = {}));
@@ -31,7 +31,6 @@ var Point = (function () {
return Point;
}());
Point.Origin = { x: 0, y: 0 };
var Point;
(function (Point) {
Point.Origin = ""; //expected duplicate identifier error
})(Point || (Point = {}));
@@ -46,7 +45,6 @@ var A;
}());
Point.Origin = { x: 0, y: 0 };
A.Point = Point;
var Point;
(function (Point) {
Point.Origin = ""; //expected duplicate identifier error
})(Point = A.Point || (A.Point = {}));
@@ -31,7 +31,6 @@ var Point = (function () {
return Point;
}());
Point.Origin = { x: 0, y: 0 };
var Point;
(function (Point) {
var Origin = ""; // not an error, since not exported
})(Point || (Point = {}));
@@ -46,7 +45,6 @@ var A;
}());
Point.Origin = { x: 0, y: 0 };
A.Point = Point;
var Point;
(function (Point) {
var Origin = ""; // not an error since not exported
})(Point = A.Point || (A.Point = {}));
@@ -76,7 +76,6 @@ var A = (function () {
}
return A;
}());
var A;
(function (A) {
A.Instance = new A();
})(A || (A = {}));
@@ -22,7 +22,6 @@ var enumdule;
enumdule[enumdule["Red"] = 0] = "Red";
enumdule[enumdule["Blue"] = 1] = "Blue";
})(enumdule || (enumdule = {}));
var enumdule;
(function (enumdule) {
var Point = (function () {
function Point(x, y) {
@@ -72,7 +72,6 @@ var B;
return { x: 0, y: 0 };
}
B.Point = Point;
var Point;
(function (Point) {
Point.Origin = { x: 0, y: 0 };
})(Point = B.Point || (B.Point = {}));
@@ -28,7 +28,6 @@ var enumdule;
}());
enumdule.Point = Point;
})(enumdule || (enumdule = {}));
var enumdule;
(function (enumdule) {
enumdule[enumdule["Red"] = 0] = "Red";
enumdule[enumdule["Blue"] = 1] = "Blue";
@@ -50,7 +50,6 @@ var A;
}());
A.Point = Point;
})(A || (A = {}));
var A;
(function (A) {
var Point = (function () {
function Point() {
@@ -79,7 +78,6 @@ var X;
})(Z = Y.Z || (Y.Z = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
var X;
(function (X) {
var Y;
(function (Y) {
@@ -42,7 +42,6 @@ var A;
}());
A.Point = Point;
})(A || (A = {}));
var A;
(function (A) {
// expected error
var Point = (function () {
@@ -67,7 +66,6 @@ var X;
})(Z = Y.Z || (Y.Z = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
var X;
(function (X) {
var Y;
(function (Y) {
@@ -41,7 +41,6 @@ var A;
(function (B) {
})(B = A.B || (A.B = {}));
})(A || (A = {}));
var A;
(function (A) {
var B;
(function (B) {
@@ -65,7 +64,6 @@ var X;
})(Z = Y.Z || (Y.Z = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
var X;
(function (X) {
var Y;
(function (Y) {
@@ -119,7 +119,6 @@ var E;
})(E || (E = {}));
var r3 = foo3(a); // any
function f() { }
var f;
(function (f) {
f.bar = 1;
})(f || (f = {}));
@@ -129,7 +128,6 @@ var CC = (function () {
}
return CC;
}());
var CC;
(function (CC) {
CC.bar = 1;
})(CC || (CC = {}));
@@ -147,7 +147,6 @@ var E;
E[E["A"] = 0] = "A";
})(E || (E = {}));
function f() { }
var f;
(function (f) {
f.bar = 1;
})(f || (f = {}));
@@ -156,7 +155,6 @@ var c = (function () {
}
return c;
}());
var c;
(function (c) {
c.bar = 1;
})(c || (c = {}));
@@ -157,7 +157,6 @@ var TargetIsPublic;
e = d; // errror
e = e;
})(TargetIsPublic || (TargetIsPublic = {}));
var TargetIsPublic;
(function (TargetIsPublic) {
// targets
var Base = (function () {
@@ -38,20 +38,17 @@ var goodObj = {
}; // Ok, because toString is a subtype of Object's toString
var errFun = {}; // Error for no call signature
function foo() { }
var foo;
(function (foo) {
foo.boom = 0;
})(foo || (foo = {}));
var goodFundule = foo; // ok
function bar() { }
var bar;
(function (bar) {
function apply(thisArg, argArray) { }
bar.apply = apply;
})(bar || (bar = {}));
var goodFundule2 = bar; // ok
function bad() { }
var bad;
(function (bad) {
bad.apply = 0;
})(bad || (bad = {}));
@@ -28,7 +28,6 @@ let b = x.b;
define(["require", "exports"], function (require, exports) {
"use strict";
function foo() { }
var foo;
(function (foo) {
foo.v = 1;
})(foo || (foo = {}));
@@ -32,7 +32,6 @@ define(["require", "exports"], function (require, exports) {
}
return foo;
}());
var foo;
(function (foo) {
foo.v = 1;
})(foo || (foo = {}));
@@ -36,7 +36,6 @@ define(["require", "exports"], function (require, exports) {
}
return foo;
}());
var foo;
(function (foo) {
var A = (function () {
function A() {
@@ -23,7 +23,6 @@ var c4 = (function () {
c4.prototype.foo = function () { };
return c4;
}());
var c4;
(function (c4) {
c4[c4["One"] = 0] = "One";
})(c4 || (c4 = {})); // error
@@ -51,7 +51,6 @@ var c33 = (function () {
};
return c33;
}());
var c33;
(function (c33) {
c33[c33["One"] = 0] = "One";
})(c33 || (c33 = {}));
@@ -27,7 +27,6 @@ var c5a = (function () {
c5a.prototype.foo = function () { };
return c5a;
}());
var c5a;
(function (c5a) {
var y = 2;
})(c5a || (c5a = {})); // should be ok
@@ -37,7 +36,6 @@ var c5b = (function () {
c5b.prototype.foo = function () { };
return c5b;
}());
var c5b;
(function (c5b) {
c5b.y = 2;
})(c5b || (c5b = {})); // should be ok
@@ -69,7 +69,6 @@ var e5;
(function (e5) {
e5[e5["One"] = 0] = "One";
})(e5 || (e5 = {}));
var e5;
(function (e5) {
e5[e5["Two"] = 0] = "Two";
})(e5 || (e5 = {})); // error
@@ -77,7 +76,6 @@ var e5a;
(function (e5a) {
e5a[e5a["One"] = 0] = "One";
})(e5a || (e5a = {})); // error
var e5a;
(function (e5a) {
e5a[e5a["One"] = 0] = "One";
})(e5a || (e5a = {})); // error
@@ -90,7 +88,6 @@ var e6a;
(function (e6a) {
e6a[e6a["One"] = 0] = "One";
})(e6a || (e6a = {}));
var e6a;
(function (e6a) {
var y = 2;
})(e6a || (e6a = {})); // should be error
@@ -98,7 +95,6 @@ var e6b;
(function (e6b) {
e6b[e6b["One"] = 0] = "One";
})(e6b || (e6b = {}));
var e6b;
(function (e6b) {
e6b.y = 2;
})(e6b || (e6b = {})); // should be error
@@ -25,13 +25,11 @@ var E;
(function (E) {
var t;
})(E || (E = {}));
var E;
(function (E) {
})(E || (E = {}));
var F;
(function (F) {
})(F || (F = {}));
var F;
(function (F) {
var t;
})(F || (F = {}));
@@ -39,15 +37,12 @@ var A;
(function (A) {
var o;
})(A || (A = {}));
var A;
(function (A) {
A[A["b"] = 0] = "b";
})(A || (A = {}));
var A;
(function (A) {
A[A["c"] = 0] = "c";
})(A || (A = {}));
var A;
(function (A) {
var p;
})(A || (A = {}));
@@ -63,19 +63,16 @@ var y3a = (function () {
}()); // error
// function then enum
function y4() { } // error
var y4;
(function (y4) {
y4[y4["One"] = 0] = "One";
})(y4 || (y4 = {})); // error
// function then internal module
function y5() { }
function y5a() { }
var y5a;
(function (y5a) {
var y = 2;
})(y5a || (y5a = {})); // should be an error
function y5b() { }
var y5b;
(function (y5b) {
y5b.y = 3;
})(y5b || (y5b = {})); // should be an error
@@ -138,7 +138,6 @@ function m2b() { }
// should be errors to have function first
function m2c() { }
;
var m2c;
(function (m2c) {
m2c.y = 2;
})(m2c || (m2c = {}));
@@ -146,7 +145,6 @@ function m2f() { }
;
function m2g() { }
;
var m2g;
(function (m2g) {
var C = (function () {
function C() {
@@ -177,7 +175,6 @@ var m3b = (function () {
m3b.prototype.foo = function () { };
return m3b;
}());
var m3b;
(function (m3b) {
var y = 2;
})(m3b || (m3b = {}));
@@ -187,7 +184,6 @@ var m3c = (function () {
m3c.prototype.foo = function () { };
return m3c;
}());
var m3c;
(function (m3c) {
m3c.y = 2;
})(m3c || (m3c = {}));
@@ -216,7 +212,6 @@ var m4a;
(function (m4a) {
var y = 2;
})(m4a || (m4a = {}));
var m4a;
(function (m4a) {
m4a[m4a["One"] = 0] = "One";
})(m4a || (m4a = {}));
@@ -224,7 +219,6 @@ var m4b;
(function (m4b) {
m4b.y = 2;
})(m4b || (m4b = {}));
var m4b;
(function (m4b) {
m4b[m4b["One"] = 0] = "One";
})(m4b || (m4b = {}));
@@ -241,7 +235,6 @@ var m4d;
return C;
}());
})(m4d || (m4d = {}));
var m4d;
(function (m4d) {
m4d[m4d["One"] = 0] = "One";
})(m4d || (m4d = {}));
@@ -45,7 +45,6 @@ function m2b() { }
; // error since the module is instantiated
function m2c() { }
;
var m2c;
(function (m2c) {
m2c.y = 2;
})(m2c || (m2c = {}));
@@ -59,7 +58,6 @@ function m2f() { }
;
function m2g() { }
;
var m2g;
(function (m2g) {
var C = (function () {
function C() {
@@ -25,7 +25,6 @@ var m3b = (function () {
m3b.prototype.foo = function () { };
return m3b;
}());
var m3b;
(function (m3b) {
var y = 2;
})(m3b || (m3b = {}));
@@ -35,7 +34,6 @@ var m3c = (function () {
m3c.prototype.foo = function () { };
return m3c;
}());
var m3c;
(function (m3c) {
m3c.y = 2;
})(m3c || (m3c = {}));
@@ -30,7 +30,6 @@ var m4a;
(function (m4a) {
var y = 2;
})(m4a || (m4a = {}));
var m4a;
(function (m4a) {
m4a[m4a["One"] = 0] = "One";
})(m4a || (m4a = {}));
@@ -38,7 +37,6 @@ var m4b;
(function (m4b) {
m4b.y = 2;
})(m4b || (m4b = {}));
var m4b;
(function (m4b) {
m4b[m4b["One"] = 0] = "One";
})(m4b || (m4b = {}));
@@ -55,7 +53,6 @@ var m4d;
return C;
}());
})(m4d || (m4d = {}));
var m4d;
(function (m4d) {
m4d[m4d["One"] = 0] = "One";
})(m4d || (m4d = {}));
@@ -12,7 +12,6 @@ var Foo;
(function (Foo) {
Foo[Foo["a"] = 1] = "a";
})(Foo || (Foo = {}));
var Foo;
(function (Foo) {
Foo[Foo["b"] = 0] = "b"; // should work fine
})(Foo || (Foo = {}));
@@ -204,7 +204,6 @@ function foo12() {
}
var r12 = foo12();
function m1() { return 1; }
var m1;
(function (m1) {
m1.y = 2;
})(m1 || (m1 = {}));
@@ -217,7 +216,6 @@ var c1 = (function () {
}
return c1;
}());
var c1;
(function (c1) {
c1.x = 1;
})(c1 || (c1 = {}));
@@ -229,7 +227,6 @@ var e1;
(function (e1) {
e1[e1["A"] = 0] = "A";
})(e1 || (e1 = {}));
var e1;
(function (e1) {
e1.y = 1;
})(e1 || (e1 = {}));
@@ -27,7 +27,6 @@ var Foo = (function () {
function maker(value) {
return maker.Bar;
}
var maker;
(function (maker) {
var Bar = (function (_super) {
__extends(Bar, _super);
@@ -25,12 +25,10 @@ var M;
return N;
}());
M.N = N;
var N;
(function (N) {
N.v = 0;
})(N = M.N || (M.N = {}));
})(M || (M = {}));
var M;
(function (M) {
var O = (function (_super) {
__extends(O, _super);
@@ -24,7 +24,6 @@ var A = (function () {
}
return A;
}());
var A;
(function (A) {
})(A || (A = {}));
var Foo;
@@ -27,7 +27,6 @@ var A;
}());
A.B = B;
})(A || (A = {}));
var A;
(function (A) {
var B;
(function (B) {
@@ -19,7 +19,6 @@ var Foo = (function () {
}
return Foo;
}());
var Foo;
(function (Foo) {
var Baz = (function () {
function Baz() {
@@ -20,7 +20,6 @@ var Clod = (function () {
}());
Clod.x = 10;
Clod.y = 10;
var Clod;
(function (Clod) {
var p = Clod.x;
var q = x;
@@ -34,11 +34,9 @@ var C = (function () {
C.foo = function () { };
return C;
}());
var C;
(function (C) {
C.x = 1;
})(C || (C = {}));
var C;
(function (C) {
function foo() { }
C.foo = foo;
@@ -27,11 +27,9 @@ var C = (function () {
});
return C;
}());
var C;
(function (C) {
C.x = 1;
})(C || (C = {}));
var C;
(function (C) {
function x() { }
C.x = x;
@@ -28,7 +28,6 @@ var Moclodule = (function () {
return Moclodule;
}());
// Instantiated module.
var Moclodule;
(function (Moclodule) {
var Manager = (function () {
function Manager() {
@@ -22,7 +22,6 @@ var Moclodule = (function () {
return Moclodule;
}());
// Instantiated module.
var Moclodule;
(function (Moclodule) {
var Manager = (function () {
function Manager() {
@@ -16,7 +16,6 @@ var M;
return C;
}());
M.C = C;
var C;
(function (C_1) {
C_1.C = M.C;
})(C = M.C || (M.C = {}));
@@ -33,7 +33,6 @@ var Shape = (function () {
}
return Shape;
}());
var Shape;
(function (Shape) {
var Utils;
(function (Utils) {
@@ -48,7 +47,6 @@ var Path = (function (_super) {
}
return Path;
}(Shape));
var Path;
(function (Path) {
var Utils;
(function (Utils) {
@@ -62,7 +62,6 @@ var M;
return c;
}());
})(M || (M = {}));
var M;
(function (M_2) {
var d = (function () {
function d() {
@@ -78,7 +77,6 @@ var M;
return d;
}());
})(M || (M = {}));
var M;
(function (M) {
var e = (function () {
function e() {
@@ -93,7 +91,6 @@ var M;
return e;
}());
})(M || (M = {}));
var M;
(function (M_3) {
var f = (function () {
function f() {
@@ -109,7 +106,6 @@ var M;
return f;
}());
})(M || (M = {}));
var M;
(function (M) {
var e = (function () {
function e() {
@@ -34,7 +34,6 @@ var M;
return c;
}());
})(M || (M = {}));
var M;
(function (M_2) {
var d = (function () {
function d(M, p) {
@@ -44,7 +43,6 @@ var M;
return d;
}());
})(M || (M = {}));
var M;
(function (M_3) {
var d2 = (function () {
function d2() {
@@ -27,14 +27,12 @@ var M;
if (p === void 0) { p = M_1.x; }
}
})(M || (M = {}));
var M;
(function (M_2) {
function fn2() {
var M;
var p = M_2.x;
}
})(M || (M = {}));
var M;
(function (M_3) {
function fn3() {
function M() {
@@ -45,7 +45,6 @@ var M;
return c;
}());
})(M || (M = {}));
var M;
(function (M_2) {
var d = (function () {
function d() {
@@ -57,7 +56,6 @@ var M;
return d;
}());
})(M || (M = {}));
var M;
(function (M_3) {
var e = (function () {
function e() {
@@ -70,7 +68,6 @@ var M;
return e;
}());
})(M || (M = {}));
var M;
(function (M) {
var f = (function () {
function f() {
@@ -52,7 +52,6 @@ var M;
var p = M_1.x;
})(m1 || (m1 = {}));
})(M || (M = {}));
var M;
(function (M_2) {
var m2;
(function (m2) {
@@ -65,7 +64,6 @@ var M;
var p2 = new M();
})(m2 || (m2 = {}));
})(M || (M = {}));
var M;
(function (M_3) {
var m3;
(function (m3) {
@@ -75,7 +73,6 @@ var M;
var p2 = M();
})(m3 || (m3 = {}));
})(M || (M = {}));
var M;
(function (M) {
var m3;
(function (m3) {
@@ -83,7 +80,6 @@ var M;
var p2;
})(m3 || (m3 = {}));
})(M || (M = {}));
var M;
(function (M_4) {
var m4;
(function (m4) {
@@ -40,7 +40,6 @@ var m1;
m1_1.m1 = m1;
})(m1 || (m1 = {}));
var foo = new m1.m1();
var m1;
(function (m1) {
var c1 = (function () {
function c1() {
@@ -64,7 +63,6 @@ var m2;
var x = new c1();
})(m2 || (m2 = {}));
var foo3 = new m2.c1();
var m2;
(function (m2_1) {
var m2 = (function () {
function m2() {
@@ -51,7 +51,6 @@ define(["require", "exports"], function (require, exports) {
multiM.b = b;
})(multiM = exports.multiM || (exports.multiM = {}));
/** thi is multi module 2*/
var multiM;
(function (multiM) {
/** class c comment*/
var c = (function () {
@@ -44,7 +44,6 @@ var multiM;
multiM.d = d;
})(multiM || (multiM = {}));
/// this is multi module 2
var multiM;
(function (multiM) {
/** class c comment*/
var c = (function () {
@@ -47,7 +47,6 @@ var C = (function () {
}
return C;
}());
var C;
(function (C) {
C.x = 1;
})(C || (C = {}));
@@ -57,7 +56,6 @@ var C2 = (function () {
}
return C2;
}());
var C2;
(function (C2) {
C2.x = 1;
})(C2 || (C2 = {}));
@@ -67,7 +67,6 @@ var templa;
})(dom = templa.dom || (templa.dom = {}));
})(templa || (templa = {}));
// Module
var templa;
(function (templa) {
var dom;
(function (dom) {
@@ -50,7 +50,6 @@ var M;
m.c = c;
})(m = M.m || (M.m = {}));
})(M || (M = {}));
var M;
(function (M) {
var N;
(function (N) {
@@ -43,7 +43,6 @@ var X;
})(base = Y.base || (Y.base = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
var X;
(function (X) {
var Y;
(function (Y) {
@@ -36,7 +36,6 @@ var A;
B.EventManager = EventManager;
})(B = A.B || (A.B = {}));
})(A || (A = {}));
var A;
(function (A) {
var B;
(function (B) {
@@ -85,7 +85,6 @@ var M;
M.c = N;
M.d = im;
})(M = exports.M || (exports.M = {}));
var M;
(function (M) {
var P;
(function (P) {
@@ -111,7 +110,6 @@ var M;
P.d = M.d; // emitted incorrectly as typeof im
})(P = M.P || (M.P = {}));
})(M = exports.M || (exports.M = {}));
var M;
(function (M) {
var Q;
(function (Q) {
@@ -39,7 +39,6 @@ var X;
})(base = Y.base || (Y.base = {}));
})(Y = X.Y || (X.Y = {}));
})(X || (X = {}));
var X;
(function (X) {
var Y;
(function (Y) {
@@ -50,7 +50,6 @@ var M;
E.f = f;
})(E = M.E || (M.E = {}));
})(M || (M = {}));
var M;
(function (M) {
var P;
(function (P) {
@@ -37,7 +37,6 @@ var M;
})(X = N.X || (N.X = {}));
})(N = M.N || (M.N = {}));
})(M || (M = {}));
var M;
(function (M) {
var N;
(function (N) {
@@ -60,7 +60,6 @@ var AA;
})(AA || (AA = {}));
var tmpOK = AA.B.x;
var tmpError = A.B.x;
var A;
(function (A) {
var B;
(function (B) {
@@ -41,7 +41,6 @@ var Foo;
// Inner should show up in intellisense
Foo.Outer = 0;
})(Foo || (Foo = {}));
var Foo;
(function (Foo) {
// Should not be an error
var Helper = (function () {
@@ -65,7 +65,6 @@ var F;
return Helper;
}());
})(F || (F = {}));
var F;
(function (F) {
// Should not be an error
var Helper = (function () {
@@ -82,7 +81,6 @@ var Foo;
return Helper;
}());
})(Foo || (Foo = {}));
var Foo;
(function (Foo) {
// Should not be an error
var Helper = (function () {
@@ -101,7 +99,6 @@ var Gar;
return Helper;
}());
})(Foo || (Foo = {}));
var Foo;
(function (Foo) {
// Should not be an error
var Helper = (function () {
@@ -62,12 +62,10 @@ var M;
}());
M.I = I;
})(M || (M = {}));
var M;
(function (M) {
function f() { }
M.f = f;
})(M || (M = {}));
var M;
(function (M) {
var f = (function () {
function f() {
@@ -76,11 +74,9 @@ var M;
}()); // error
M.f = f;
})(M || (M = {}));
var M;
(function (M) {
function g() { }
})(M || (M = {}));
var M;
(function (M) {
var g = (function () {
function g() {
@@ -89,7 +85,6 @@ var M;
}()); // no error
M.g = g;
})(M || (M = {}));
var M;
(function (M) {
var C = (function () {
function C() {
@@ -98,15 +93,12 @@ var M;
}());
M.C = C;
})(M || (M = {}));
var M;
(function (M) {
function C() { } // no error
})(M || (M = {}));
var M;
(function (M) {
M.v = 3;
})(M || (M = {}));
var M;
(function (M) {
M.v = 3; // error for redeclaring var in a different parent
})(M || (M = {}));
@@ -115,7 +107,6 @@ var Foo = (function () {
}
return Foo;
}());
var Foo;
(function (Foo) {
})(Foo || (Foo = {}));
var N;
@@ -75,7 +75,6 @@ define(["require", "exports"], function (require, exports) {
(function (inst) {
var t;
})(inst || (inst = {}));
var inst;
(function (inst) {
var t;
})(inst = M.inst || (M.inst = {}));
@@ -86,7 +85,6 @@ define(["require", "exports"], function (require, exports) {
var v;
var w;
})(M2 || (M2 = {}));
var M;
(function (M) {
var F;
(function (F) {
@@ -95,14 +93,12 @@ define(["require", "exports"], function (require, exports) {
function F() { } // Only one error for duplicate identifier (don't consider visibility)
M.F = F;
})(M || (M = {}));
var M;
(function (M) {
var C = (function () {
function C() {
}
return C;
}());
var C;
(function (C) {
var t;
})(C = M.C || (M.C = {}));
@@ -145,7 +145,6 @@ var E2;
})(E2 || (E2 = {}));
var r4 = foo13(E.A);
function f() { }
var f;
(function (f) {
f.bar = 1;
})(f || (f = {}));
@@ -155,7 +154,6 @@ var CC = (function () {
}
return CC;
}());
var CC;
(function (CC) {
CC.bar = 1;
})(CC || (CC = {}));
@@ -48,7 +48,6 @@ var W;
}());
W.D = D;
})(W || (W = {}));
var W;
(function (W) {
W[W["a"] = 0] = "a";
W[W["b"] = 1] = "b";
@@ -44,7 +44,6 @@ var W;
W[W["b"] = 1] = "b";
W[W["c"] = 2] = "c";
})(W || (W = {}));
var W;
(function (W) {
var D = (function () {
function D() {
@@ -164,7 +164,6 @@ var Merged2;
E[E["c"] = 2] = "c";
})(Merged2.E || (Merged2.E = {}));
var E = Merged2.E;
var E;
(function (E) {
E.d = 5;
})(E = Merged2.E || (Merged2.E = {}));
-1
View File
@@ -69,7 +69,6 @@ var E2;
E2[E2["A"] = 0] = "A";
E2[E2["B"] = 1] = "B";
})(E2 || (E2 = {}));
var E2;
(function (E2) {
E2[E2["C"] = 0] = "C";
E2[E2["D"] = 1] = "D";
@@ -9,7 +9,6 @@ var X = (function () {
}
return X;
}());
var X;
(function (X) {
X[X["MyVal"] = 0] = "MyVal";
})(X || (X = {}));
@@ -151,7 +151,6 @@ var E2;
E2[E2["A"] = 0] = "A";
})(E2 || (E2 = {}));
function f() { }
var f;
(function (f) {
f.bar = 1;
})(f || (f = {}));
@@ -160,7 +159,6 @@ var c = (function () {
}
return c;
}());
var c;
(function (c) {
c.bar = 1;
})(c || (c = {}));
-3
View File
@@ -77,7 +77,6 @@ var M1;
EImpl1[EImpl1["B"] = 1] = "B";
EImpl1[EImpl1["C"] = 2] = "C";
})(EImpl1 || (EImpl1 = {}));
var EImpl1;
(function (EImpl1) {
EImpl1[EImpl1["D"] = 1] = "D";
EImpl1[EImpl1["E"] = 2] = "E";
@@ -122,7 +121,6 @@ var M3;
EInit[EInit["A"] = 0] = "A";
EInit[EInit["B"] = 1] = "B";
})(EInit || (EInit = {}));
var EInit;
(function (EInit) {
EInit[EInit["C"] = 1] = "C";
EInit[EInit["D"] = 2] = "D";
@@ -160,7 +158,6 @@ var M6;
var Color = A.Color;
})(A = M6.A || (M6.A = {}));
})(M6 || (M6 = {}));
var M6;
(function (M6) {
var A;
(function (A) {
@@ -59,7 +59,6 @@ var M;
})(M.E3 || (M.E3 = {}));
var E3 = M.E3;
})(M || (M = {}));
var M;
(function (M) {
(function (E1) {
E1[E1["B"] = 'foo'.length] = "B";
@@ -74,7 +73,6 @@ var M;
})(M.E3 || (M.E3 = {}));
var E3 = M.E3;
})(M || (M = {}));
var M;
(function (M) {
(function (E1) {
E1[E1["C"] = 0] = "C";
@@ -97,14 +95,12 @@ var M1;
})(M1.E1 || (M1.E1 = {}));
var E1 = M1.E1;
})(M1 || (M1 = {}));
var M1;
(function (M1) {
(function (E1) {
E1[E1["B"] = 0] = "B";
})(M1.E1 || (M1.E1 = {}));
var E1 = M1.E1;
})(M1 || (M1 = {}));
var M1;
(function (M1) {
(function (E1) {
E1[E1["C"] = 0] = "C";
@@ -119,14 +115,12 @@ var M2;
})(M2.E1 || (M2.E1 = {}));
var E1 = M2.E1;
})(M2 || (M2 = {}));
var M2;
(function (M2) {
(function (E1) {
E1[E1["B"] = 0] = "B";
})(M2.E1 || (M2.E1 = {}));
var E1 = M2.E1;
})(M2 || (M2 = {}));
var M2;
(function (M2) {
(function (E1) {
E1[E1["C"] = 0] = "C";
@@ -16,11 +16,9 @@ var E;
(function (E) {
E[E["A"] = 0] = "A";
})(E || (E = {}));
var E;
(function (E) {
E[E["B"] = 0] = "B";
})(E || (E = {}));
var E;
(function (E) {
E[E["C"] = 0] = "C";
})(E || (E = {}));
@@ -16,11 +16,9 @@ var E;
(function (E) {
E[E["A"] = 0] = "A";
})(E || (E = {}));
var E;
(function (E) {
E[E["B"] = 1] = "B";
})(E || (E = {}));
var E;
(function (E) {
E[E["C"] = 0] = "C";
})(E || (E = {}));
@@ -0,0 +1,70 @@
//// [es6modulekindWithES5Target12.ts]
export class C {
}
export namespace C {
export const x = 1;
}
export enum E {
w = 1
}
export enum E {
x = 2
}
export namespace E {
export const y = 1;
}
export namespace E {
export const z = 1;
}
export namespace N {
}
export namespace N {
export const x = 1;
}
export function F() {
}
export namespace F {
export const x = 1;
}
//// [es6modulekindWithES5Target12.js]
export var C = (function () {
function C() {
}
return C;
}());
(function (C) {
C.x = 1;
})(C || (C = {}));
export var E;
(function (E) {
E[E["w"] = 1] = "w";
})(E || (E = {}));
(function (E) {
E[E["x"] = 2] = "x";
})(E || (E = {}));
(function (E) {
E.y = 1;
})(E || (E = {}));
(function (E) {
E.z = 1;
})(E || (E = {}));
export var N;
(function (N) {
N.x = 1;
})(N || (N = {}));
export function F() {
}
(function (F) {
F.x = 1;
})(F || (F = {}));
@@ -0,0 +1,62 @@
=== tests/cases/compiler/es6modulekindWithES5Target12.ts ===
export class C {
>C : Symbol(C, Decl(es6modulekindWithES5Target12.ts, 0, 0), Decl(es6modulekindWithES5Target12.ts, 2, 1))
}
export namespace C {
>C : Symbol(C, Decl(es6modulekindWithES5Target12.ts, 0, 0), Decl(es6modulekindWithES5Target12.ts, 2, 1))
export const x = 1;
>x : Symbol(x, Decl(es6modulekindWithES5Target12.ts, 5, 16))
}
export enum E {
>E : Symbol(E, Decl(es6modulekindWithES5Target12.ts, 6, 1), Decl(es6modulekindWithES5Target12.ts, 10, 1), Decl(es6modulekindWithES5Target12.ts, 14, 1), Decl(es6modulekindWithES5Target12.ts, 18, 1))
w = 1
>w : Symbol(E.w, Decl(es6modulekindWithES5Target12.ts, 8, 15))
}
export enum E {
>E : Symbol(E, Decl(es6modulekindWithES5Target12.ts, 6, 1), Decl(es6modulekindWithES5Target12.ts, 10, 1), Decl(es6modulekindWithES5Target12.ts, 14, 1), Decl(es6modulekindWithES5Target12.ts, 18, 1))
x = 2
>x : Symbol(E.x, Decl(es6modulekindWithES5Target12.ts, 12, 15))
}
export namespace E {
>E : Symbol(E, Decl(es6modulekindWithES5Target12.ts, 6, 1), Decl(es6modulekindWithES5Target12.ts, 10, 1), Decl(es6modulekindWithES5Target12.ts, 14, 1), Decl(es6modulekindWithES5Target12.ts, 18, 1))
export const y = 1;
>y : Symbol(y, Decl(es6modulekindWithES5Target12.ts, 17, 16))
}
export namespace E {
>E : Symbol(E, Decl(es6modulekindWithES5Target12.ts, 6, 1), Decl(es6modulekindWithES5Target12.ts, 10, 1), Decl(es6modulekindWithES5Target12.ts, 14, 1), Decl(es6modulekindWithES5Target12.ts, 18, 1))
export const z = 1;
>z : Symbol(z, Decl(es6modulekindWithES5Target12.ts, 21, 16))
}
export namespace N {
>N : Symbol(N, Decl(es6modulekindWithES5Target12.ts, 22, 1), Decl(es6modulekindWithES5Target12.ts, 25, 1))
}
export namespace N {
>N : Symbol(N, Decl(es6modulekindWithES5Target12.ts, 22, 1), Decl(es6modulekindWithES5Target12.ts, 25, 1))
export const x = 1;
>x : Symbol(x, Decl(es6modulekindWithES5Target12.ts, 28, 16))
}
export function F() {
>F : Symbol(F, Decl(es6modulekindWithES5Target12.ts, 29, 1), Decl(es6modulekindWithES5Target12.ts, 32, 1))
}
export namespace F {
>F : Symbol(F, Decl(es6modulekindWithES5Target12.ts, 29, 1), Decl(es6modulekindWithES5Target12.ts, 32, 1))
export const x = 1;
>x : Symbol(x, Decl(es6modulekindWithES5Target12.ts, 35, 16))
}
@@ -0,0 +1,69 @@
=== tests/cases/compiler/es6modulekindWithES5Target12.ts ===
export class C {
>C : C
}
export namespace C {
>C : typeof C
export const x = 1;
>x : 1
>1 : 1
}
export enum E {
>E : E
w = 1
>w : E.w
>1 : 1
}
export enum E {
>E : E
x = 2
>x : E.x
>2 : 2
}
export namespace E {
>E : typeof E
export const y = 1;
>y : 1
>1 : 1
}
export namespace E {
>E : typeof E
export const z = 1;
>z : 1
>1 : 1
}
export namespace N {
>N : typeof N
}
export namespace N {
>N : typeof N
export const x = 1;
>x : 1
>1 : 1
}
export function F() {
>F : typeof F
}
export namespace F {
>F : typeof F
export const x = 1;
>x : 1
>1 : 1
}
@@ -34,7 +34,6 @@ var Foo;
Foo.a = a;
Foo.b = true;
})(Foo || (Foo = {}));
var Foo;
(function (Foo) {
function c(a) {
return a;
@@ -25,7 +25,6 @@ define(["require", "exports"], function (require, exports) {
}
return Foo;
}());
var Foo;
(function (Foo) {
Foo.answer = 42;
})(Foo || (Foo = {}));
@@ -26,7 +26,6 @@ define(["require", "exports"], function (require, exports) {
foo[foo["green"] = 1] = "green";
foo[foo["blue"] = 2] = "blue";
})(foo || (foo = {}));
var foo;
(function (foo) {
foo.answer = 42;
})(foo || (foo = {}));
@@ -22,7 +22,6 @@ define(["require", "exports"], function (require, exports) {
function foo() {
return "test";
}
var foo;
(function (foo) {
foo.answer = 42;
})(foo || (foo = {}));
@@ -36,7 +36,6 @@ var Aaa = (function (_super) {
}
return Aaa;
}(Bbb));
var Aaa;
(function (Aaa) {
var SomeType = (function () {
function SomeType() {
@@ -45,7 +44,6 @@ var Aaa;
}());
Aaa.SomeType = SomeType;
})(Aaa || (Aaa = {}));
var Bbb;
(function (Bbb) {
var SomeType = (function () {
function SomeType() {
@@ -51,7 +51,6 @@ var A;
return B;
}());
A.B = B;
var B;
(function (B) {
B.b = 0;
})(B = A.B || (A.B = {}));
@@ -50,7 +50,6 @@ var A;
return B;
}());
A.B = B;
var B;
(function (B) {
B.b = 0;
})(B = A.B || (A.B = {}));
@@ -96,7 +96,6 @@ var X;
return 42;
}
X.Y = Y;
var Y;
(function (Y) {
var Point = (function () {
function Point(x, y) {
@@ -124,7 +123,6 @@ var K;
return L;
}());
K.L = L;
var L;
(function (L) {
L.y = 12;
})(L = K.L || (K.L = {}));
@@ -29,7 +29,6 @@ var K;
return L;
}());
K.L = L;
var L;
(function (L) {
L.y = 12;
})(L = K.L || (K.L = {}));
@@ -43,7 +43,6 @@ var M;
}(B));
M.C = C;
})(M || (M = {}));
var M;
(function (M) {
var C2 = (function (_super) {
__extends(C2, _super);
@@ -25,7 +25,6 @@ var E1;
E1[E1["Y"] = E1.Z] = "Y";
E1[E1["Y1"] = E1["Z"]] = "Y1";
})(E1 || (E1 = {}));
var E1;
(function (E1) {
E1[E1["Z"] = 4] = "Z";
})(E1 || (E1 = {}));
-1
View File
@@ -21,7 +21,6 @@ class foo3 { } // Should error
//// [funClodule.js]
function foo3() { }
var foo3;
(function (foo3) {
function x() { }
foo3.x = x;
@@ -18,7 +18,6 @@ module foo.Baz {
function foo(title) {
var x = 10;
}
var foo;
(function (foo) {
var Bar;
(function (Bar) {
@@ -27,7 +26,6 @@ var foo;
Bar.f = f;
})(Bar = foo.Bar || (foo.Bar = {}));
})(foo || (foo = {}));
var foo;
(function (foo) {
var Baz;
(function (Baz) {
@@ -11,7 +11,6 @@ module fn {
function fn() {
return fn.n;
}
var fn;
(function (fn) {
fn.n = 1;
})(fn || (fn = {}));
@@ -23,7 +23,6 @@ var A;
return B;
}());
A.B = B;
var B;
(function (B) {
B.x = 1;
})(B = A.B || (A.B = {}));
@@ -27,7 +27,6 @@ var A;
}());
A.B = B;
})(A || (A = {}));
var A;
(function (A) {
var B;
(function (B) {
@@ -45,7 +45,6 @@ var EndGate;
Tweening.Tween = Tween;
})(Tweening = EndGate.Tweening || (EndGate.Tweening = {}));
})(EndGate || (EndGate = {}));
var EndGate;
(function (EndGate) {
var Tweening;
(function (Tweening) {

Some files were not shown because too many files have changed in this diff Show More