Declaration emit for NamedImport syntax

This commit is contained in:
Sheetal Nandi 2015-02-09 08:51:55 -08:00
parent 96139ca4d8
commit f2a28a5975
26 changed files with 917 additions and 5 deletions

View File

@ -4912,7 +4912,13 @@ module ts {
getSymbolLinks(rightSide).referenced = true;
Debug.assert((rightSide.flags & SymbolFlags.Import) !== 0);
nodeLinks = getNodeLinks(getDeclarationOfKind(rightSide, SyntaxKind.ImportEqualsDeclaration))
var importEqualsDeclaration = getDeclarationOfKind(rightSide, SyntaxKind.ImportEqualsDeclaration);
if (importEqualsDeclaration) {
nodeLinks = getNodeLinks(importEqualsDeclaration);
}
else {
break;
}
}
}
}

View File

@ -780,6 +780,11 @@ module ts {
writeTextOfNode(currentSourceFile,(<NamespaceImport>node.importClause.namedBindings).name);
write(" ");
}
else {
write("{");
emitCommaList((<NamedImports>node.importClause.namedBindings).elements, emitImportSpecifier);
write(" } ");
}
}
write("from ");
}
@ -788,6 +793,15 @@ module ts {
writer.writeLine();
}
function emitImportSpecifier(node: ImportSpecifier) {
write(" ");
if (node.propertyName) {
writeTextOfNode(currentSourceFile, node.propertyName);
write(" as ");
}
writeTextOfNode(currentSourceFile, node.name);
}
function emitModuleDeclaration(node: ModuleDeclaration) {
if (resolver.isDeclarationVisible(node)) {
emitJsDocComments(node);

View File

@ -7,16 +7,39 @@ export var x = a;
export var m = a;
export var a1 = 10;
export var x1 = 10;
export var z1 = 10;
export var z2 = 10;
export var aaaa = 10;
//// [es6ImportNamedImport_1.ts]
import { } from "es6ImportNamedImport_0";
import { a } from "es6ImportNamedImport_0";
var xxxx = a;
import { a as b } from "es6ImportNamedImport_0";
var xxxx = b;
import { x, a as y } from "es6ImportNamedImport_0";
var xxxx = x;
var xxxx = y;
import { x as z, } from "es6ImportNamedImport_0";
var xxxx = z;
import { m, } from "es6ImportNamedImport_0";
var xxxx = m;
import { a1, x1 } from "es6ImportNamedImport_0";
import { a1 as a11, x1 as x11 } from "es6ImportNamedImport_0";
var xxxx = a1;
var xxxx = x1;
import { a1 as a11, x1 as x11 } from "es6ImportNamedImport_0";
var xxxx = a11;
var xxxx = x11;
import { z1 } from "es6ImportNamedImport_0";
var z111 = z1;
import { z2 as z3 } from "es6ImportNamedImport_0";
var z2 = z3; // z2 shouldn't give redeclare error
// These are elided
import { aaaa } from "es6ImportNamedImport_0";
// These are elided
import { aaaa as bbbb } from "es6ImportNamedImport_0";
//// [es6ImportNamedImport_0.js]
exports.a = 10;
@ -24,4 +47,64 @@ exports.x = exports.a;
exports.m = exports.a;
exports.a1 = 10;
exports.x1 = 10;
exports.z1 = 10;
exports.z2 = 10;
exports.aaaa = 10;
//// [es6ImportNamedImport_1.js]
var _a = require("es6ImportNamedImport_0");
var a = _a.a;
var xxxx = a;
var _b = require("es6ImportNamedImport_0");
var b = _b.a;
var xxxx = b;
var _c = require("es6ImportNamedImport_0");
var x = _c.x;
var y = _c.a;
var xxxx = x;
var xxxx = y;
var _d = require("es6ImportNamedImport_0");
var z = _d.x;
var xxxx = z;
var _e = require("es6ImportNamedImport_0");
var m = _e.m;
var xxxx = m;
var _f = require("es6ImportNamedImport_0");
var a1 = _f.a1;
var x1 = _f.x1;
var xxxx = a1;
var xxxx = x1;
var _g = require("es6ImportNamedImport_0");
var a11 = _g.a1;
var x11 = _g.x1;
var xxxx = a11;
var xxxx = x11;
var _h = require("es6ImportNamedImport_0");
var z1 = _h.z1;
var z111 = z1;
var _j = require("es6ImportNamedImport_0");
var z3 = _j.z2;
var z2 = z3; // z2 shouldn't give redeclare error
//// [es6ImportNamedImport_0.d.ts]
export declare var a: number;
export declare var x: number;
export declare var m: number;
export declare var a1: number;
export declare var x1: number;
export declare var z1: number;
export declare var z2: number;
export declare var aaaa: number;
//// [es6ImportNamedImport_1.d.ts]
import { } from "es6ImportNamedImport_0";
import { a } from "es6ImportNamedImport_0";
import { a as b } from "es6ImportNamedImport_0";
import { x, a as y } from "es6ImportNamedImport_0";
import { x as z } from "es6ImportNamedImport_0";
import { m } from "es6ImportNamedImport_0";
import { a1, x1 } from "es6ImportNamedImport_0";
import { a1 as a11, x1 as x11 } from "es6ImportNamedImport_0";
import { z1 } from "es6ImportNamedImport_0";
import { z2 as z3 } from "es6ImportNamedImport_0";
import { aaaa } from "es6ImportNamedImport_0";
import { aaaa as bbbb } from "es6ImportNamedImport_0";

View File

@ -17,34 +17,107 @@ export var a1 = 10;
export var x1 = 10;
>x1 : number
export var z1 = 10;
>z1 : number
export var z2 = 10;
>z2 : number
export var aaaa = 10;
>aaaa : number
=== tests/cases/compiler/es6ImportNamedImport_1.ts ===
import { } from "es6ImportNamedImport_0";
import { a } from "es6ImportNamedImport_0";
>a : number
var xxxx = a;
>xxxx : number
>a : number
import { a as b } from "es6ImportNamedImport_0";
>a : unknown
>b : number
var xxxx = b;
>xxxx : number
>b : number
import { x, a as y } from "es6ImportNamedImport_0";
>x : number
>a : unknown
>y : number
var xxxx = x;
>xxxx : number
>x : number
var xxxx = y;
>xxxx : number
>y : number
import { x as z, } from "es6ImportNamedImport_0";
>x : unknown
>z : number
var xxxx = z;
>xxxx : number
>z : number
import { m, } from "es6ImportNamedImport_0";
>m : number
var xxxx = m;
>xxxx : number
>m : number
import { a1, x1 } from "es6ImportNamedImport_0";
>a1 : number
>x1 : number
var xxxx = a1;
>xxxx : number
>a1 : number
var xxxx = x1;
>xxxx : number
>x1 : number
import { a1 as a11, x1 as x11 } from "es6ImportNamedImport_0";
>a1 : unknown
>a11 : number
>x1 : unknown
>x11 : number
var xxxx = a11;
>xxxx : number
>a11 : number
var xxxx = x11;
>xxxx : number
>x11 : number
import { z1 } from "es6ImportNamedImport_0";
>z1 : number
var z111 = z1;
>z111 : number
>z1 : number
import { z2 as z3 } from "es6ImportNamedImport_0";
>z2 : unknown
>z3 : number
var z2 = z3; // z2 shouldn't give redeclare error
>z2 : number
>z3 : number
// These are elided
import { aaaa } from "es6ImportNamedImport_0";
>aaaa : number
// These are elided
import { aaaa as bbbb } from "es6ImportNamedImport_0";
>aaaa : unknown
>bbbb : number

View File

@ -0,0 +1,105 @@
//// [tests/cases/compiler/es6ImportNamedImportAmd.ts] ////
//// [es6ImportNamedImportAmd_0.ts]
export var a = 10;
export var x = a;
export var m = a;
export var a1 = 10;
export var x1 = 10;
export var z1 = 10;
export var z2 = 10;
export var aaaa = 10;
//// [es6ImportNamedImportAmd_1.ts]
import { } from "es6ImportNamedImportAmd_0";
import { a } from "es6ImportNamedImportAmd_0";
var xxxx = a;
import { a as b } from "es6ImportNamedImportAmd_0";
var xxxx = b;
import { x, a as y } from "es6ImportNamedImportAmd_0";
var xxxx = x;
var xxxx = y;
import { x as z, } from "es6ImportNamedImportAmd_0";
var xxxx = z;
import { m, } from "es6ImportNamedImportAmd_0";
var xxxx = m;
import { a1, x1 } from "es6ImportNamedImportAmd_0";
var xxxx = a1;
var xxxx = x1;
import { a1 as a11, x1 as x11 } from "es6ImportNamedImportAmd_0";
var xxxx = a11;
var xxxx = x11;
import { z1 } from "es6ImportNamedImportAmd_0";
var z111 = z1;
import { z2 as z3 } from "es6ImportNamedImportAmd_0";
var z2 = z3; // z2 shouldn't give redeclare error
// These are elided
import { aaaa } from "es6ImportNamedImportAmd_0";
// These are elided
import { aaaa as bbbb } from "es6ImportNamedImportAmd_0";
//// [es6ImportNamedImportAmd_0.js]
define(["require", "exports"], function (require, exports) {
exports.a = 10;
exports.x = exports.a;
exports.m = exports.a;
exports.a1 = 10;
exports.x1 = 10;
exports.z1 = 10;
exports.z2 = 10;
exports.aaaa = 10;
});
//// [es6ImportNamedImportAmd_1.js]
define(["require", "exports", "es6ImportNamedImportAmd_0", "es6ImportNamedImportAmd_0", "es6ImportNamedImportAmd_0", "es6ImportNamedImportAmd_0", "es6ImportNamedImportAmd_0", "es6ImportNamedImportAmd_0", "es6ImportNamedImportAmd_0", "es6ImportNamedImportAmd_0", "es6ImportNamedImportAmd_0"], function (require, exports, _a, _b, _c, _d, _e, _f, _g, _h, _j) {
var a = _a.a;
var xxxx = a;
var b = _b.a;
var xxxx = b;
var x = _c.x;
var y = _c.a;
var xxxx = x;
var xxxx = y;
var z = _d.x;
var xxxx = z;
var m = _e.m;
var xxxx = m;
var a1 = _f.a1;
var x1 = _f.x1;
var xxxx = a1;
var xxxx = x1;
var a11 = _g.a1;
var x11 = _g.x1;
var xxxx = a11;
var xxxx = x11;
var z1 = _h.z1;
var z111 = z1;
var z3 = _j.z2;
var z2 = z3; // z2 shouldn't give redeclare error
});
//// [es6ImportNamedImportAmd_0.d.ts]
export declare var a: number;
export declare var x: number;
export declare var m: number;
export declare var a1: number;
export declare var x1: number;
export declare var z1: number;
export declare var z2: number;
export declare var aaaa: number;
//// [es6ImportNamedImportAmd_1.d.ts]
import { } from "es6ImportNamedImportAmd_0";
import { a } from "es6ImportNamedImportAmd_0";
import { a as b } from "es6ImportNamedImportAmd_0";
import { x, a as y } from "es6ImportNamedImportAmd_0";
import { x as z } from "es6ImportNamedImportAmd_0";
import { m } from "es6ImportNamedImportAmd_0";
import { a1, x1 } from "es6ImportNamedImportAmd_0";
import { a1 as a11, x1 as x11 } from "es6ImportNamedImportAmd_0";
import { z1 } from "es6ImportNamedImportAmd_0";
import { z2 as z3 } from "es6ImportNamedImportAmd_0";
import { aaaa } from "es6ImportNamedImportAmd_0";
import { aaaa as bbbb } from "es6ImportNamedImportAmd_0";

View File

@ -0,0 +1,123 @@
=== tests/cases/compiler/es6ImportNamedImportAmd_0.ts ===
export var a = 10;
>a : number
export var x = a;
>x : number
>a : number
export var m = a;
>m : number
>a : number
export var a1 = 10;
>a1 : number
export var x1 = 10;
>x1 : number
export var z1 = 10;
>z1 : number
export var z2 = 10;
>z2 : number
export var aaaa = 10;
>aaaa : number
=== tests/cases/compiler/es6ImportNamedImportAmd_1.ts ===
import { } from "es6ImportNamedImportAmd_0";
import { a } from "es6ImportNamedImportAmd_0";
>a : number
var xxxx = a;
>xxxx : number
>a : number
import { a as b } from "es6ImportNamedImportAmd_0";
>a : unknown
>b : number
var xxxx = b;
>xxxx : number
>b : number
import { x, a as y } from "es6ImportNamedImportAmd_0";
>x : number
>a : unknown
>y : number
var xxxx = x;
>xxxx : number
>x : number
var xxxx = y;
>xxxx : number
>y : number
import { x as z, } from "es6ImportNamedImportAmd_0";
>x : unknown
>z : number
var xxxx = z;
>xxxx : number
>z : number
import { m, } from "es6ImportNamedImportAmd_0";
>m : number
var xxxx = m;
>xxxx : number
>m : number
import { a1, x1 } from "es6ImportNamedImportAmd_0";
>a1 : number
>x1 : number
var xxxx = a1;
>xxxx : number
>a1 : number
var xxxx = x1;
>xxxx : number
>x1 : number
import { a1 as a11, x1 as x11 } from "es6ImportNamedImportAmd_0";
>a1 : unknown
>a11 : number
>x1 : unknown
>x11 : number
var xxxx = a11;
>xxxx : number
>a11 : number
var xxxx = x11;
>xxxx : number
>x11 : number
import { z1 } from "es6ImportNamedImportAmd_0";
>z1 : number
var z111 = z1;
>z111 : number
>z1 : number
import { z2 as z3 } from "es6ImportNamedImportAmd_0";
>z2 : unknown
>z3 : number
var z2 = z3; // z2 shouldn't give redeclare error
>z2 : number
>z3 : number
// These are elided
import { aaaa } from "es6ImportNamedImportAmd_0";
>aaaa : number
// These are elided
import { aaaa as bbbb } from "es6ImportNamedImportAmd_0";
>aaaa : unknown
>bbbb : number

View File

@ -7,16 +7,39 @@ export var x = a;
export var m = a;
export var a1 = 10;
export var x1 = 10;
export var z1 = 10;
export var z2 = 10;
export var aaaa = 10;
//// [es6ImportNamedImportInEs5_1.ts]
import { } from "es6ImportNamedImportInEs5_0";
import { a } from "es6ImportNamedImportInEs5_0";
var xxxx = a;
import { a as b } from "es6ImportNamedImportInEs5_0";
var xxxx = b;
import { x, a as y } from "es6ImportNamedImportInEs5_0";
var xxxx = x;
var xxxx = y;
import { x as z, } from "es6ImportNamedImportInEs5_0";
var xxxx = z;
import { m, } from "es6ImportNamedImportInEs5_0";
var xxxx = m;
import { a1, x1 } from "es6ImportNamedImportInEs5_0";
import { a1 as a11, x1 as x11 } from "es6ImportNamedImportInEs5_0";
var xxxx = a1;
var xxxx = x1;
import { a1 as a11, x1 as x11 } from "es6ImportNamedImportInEs5_0";
var xxxx = a11;
var xxxx = x11;
import { z1 } from "es6ImportNamedImportInEs5_0";
var z111 = z1;
import { z2 as z3 } from "es6ImportNamedImportInEs5_0";
var z2 = z3; // z2 shouldn't give redeclare error
// These are elided
import { aaaa } from "es6ImportNamedImportInEs5_0";
// These are elided
import { aaaa as bbbb } from "es6ImportNamedImportInEs5_0";
//// [es6ImportNamedImportInEs5_0.js]
exports.a = 10;
@ -24,4 +47,64 @@ exports.x = exports.a;
exports.m = exports.a;
exports.a1 = 10;
exports.x1 = 10;
exports.z1 = 10;
exports.z2 = 10;
exports.aaaa = 10;
//// [es6ImportNamedImportInEs5_1.js]
var _a = require("es6ImportNamedImportInEs5_0");
var a = _a.a;
var xxxx = a;
var _b = require("es6ImportNamedImportInEs5_0");
var b = _b.a;
var xxxx = b;
var _c = require("es6ImportNamedImportInEs5_0");
var x = _c.x;
var y = _c.a;
var xxxx = x;
var xxxx = y;
var _d = require("es6ImportNamedImportInEs5_0");
var z = _d.x;
var xxxx = z;
var _e = require("es6ImportNamedImportInEs5_0");
var m = _e.m;
var xxxx = m;
var _f = require("es6ImportNamedImportInEs5_0");
var a1 = _f.a1;
var x1 = _f.x1;
var xxxx = a1;
var xxxx = x1;
var _g = require("es6ImportNamedImportInEs5_0");
var a11 = _g.a1;
var x11 = _g.x1;
var xxxx = a11;
var xxxx = x11;
var _h = require("es6ImportNamedImportInEs5_0");
var z1 = _h.z1;
var z111 = z1;
var _j = require("es6ImportNamedImportInEs5_0");
var z3 = _j.z2;
var z2 = z3; // z2 shouldn't give redeclare error
//// [es6ImportNamedImportInEs5_0.d.ts]
export declare var a: number;
export declare var x: number;
export declare var m: number;
export declare var a1: number;
export declare var x1: number;
export declare var z1: number;
export declare var z2: number;
export declare var aaaa: number;
//// [es6ImportNamedImportInEs5_1.d.ts]
import { } from "es6ImportNamedImportInEs5_0";
import { a } from "es6ImportNamedImportInEs5_0";
import { a as b } from "es6ImportNamedImportInEs5_0";
import { x, a as y } from "es6ImportNamedImportInEs5_0";
import { x as z } from "es6ImportNamedImportInEs5_0";
import { m } from "es6ImportNamedImportInEs5_0";
import { a1, x1 } from "es6ImportNamedImportInEs5_0";
import { a1 as a11, x1 as x11 } from "es6ImportNamedImportInEs5_0";
import { z1 } from "es6ImportNamedImportInEs5_0";
import { z2 as z3 } from "es6ImportNamedImportInEs5_0";
import { aaaa } from "es6ImportNamedImportInEs5_0";
import { aaaa as bbbb } from "es6ImportNamedImportInEs5_0";

View File

@ -17,34 +17,107 @@ export var a1 = 10;
export var x1 = 10;
>x1 : number
export var z1 = 10;
>z1 : number
export var z2 = 10;
>z2 : number
export var aaaa = 10;
>aaaa : number
=== tests/cases/compiler/es6ImportNamedImportInEs5_1.ts ===
import { } from "es6ImportNamedImportInEs5_0";
import { a } from "es6ImportNamedImportInEs5_0";
>a : number
var xxxx = a;
>xxxx : number
>a : number
import { a as b } from "es6ImportNamedImportInEs5_0";
>a : unknown
>b : number
var xxxx = b;
>xxxx : number
>b : number
import { x, a as y } from "es6ImportNamedImportInEs5_0";
>x : number
>a : unknown
>y : number
var xxxx = x;
>xxxx : number
>x : number
var xxxx = y;
>xxxx : number
>y : number
import { x as z, } from "es6ImportNamedImportInEs5_0";
>x : unknown
>z : number
var xxxx = z;
>xxxx : number
>z : number
import { m, } from "es6ImportNamedImportInEs5_0";
>m : number
var xxxx = m;
>xxxx : number
>m : number
import { a1, x1 } from "es6ImportNamedImportInEs5_0";
>a1 : number
>x1 : number
var xxxx = a1;
>xxxx : number
>a1 : number
var xxxx = x1;
>xxxx : number
>x1 : number
import { a1 as a11, x1 as x11 } from "es6ImportNamedImportInEs5_0";
>a1 : unknown
>a11 : number
>x1 : unknown
>x11 : number
var xxxx = a11;
>xxxx : number
>a11 : number
var xxxx = x11;
>xxxx : number
>x11 : number
import { z1 } from "es6ImportNamedImportInEs5_0";
>z1 : number
var z111 = z1;
>z111 : number
>z1 : number
import { z2 as z3 } from "es6ImportNamedImportInEs5_0";
>z2 : unknown
>z3 : number
var z2 = z3; // z2 shouldn't give redeclare error
>z2 : number
>z3 : number
// These are elided
import { aaaa } from "es6ImportNamedImportInEs5_0";
>aaaa : number
// These are elided
import { aaaa as bbbb } from "es6ImportNamedImportInEs5_0";
>aaaa : unknown
>bbbb : number

View File

@ -0,0 +1,16 @@
//// [tests/cases/compiler/es6ImportNamedImportInExportAssignment.ts] ////
//// [es6ImportNamedImportInExportAssignment_0.ts]
export var a = 10;
//// [es6ImportNamedImportInExportAssignment_1.ts]
import { a } from "es6ImportNamedImportInExportAssignment_0";
export = a;
//// [es6ImportNamedImportInExportAssignment_0.js]
exports.a = 10;
//// [es6ImportNamedImportInExportAssignment_1.js]
var _a = require("es6ImportNamedImportInExportAssignment_0");
var a = _a.a;
module.exports = a;

View File

@ -0,0 +1,12 @@
=== tests/cases/compiler/es6ImportNamedImportInExportAssignment_0.ts ===
export var a = 10;
>a : number
=== tests/cases/compiler/es6ImportNamedImportInExportAssignment_1.ts ===
import { a } from "es6ImportNamedImportInExportAssignment_0";
>a : number
export = a;
>a : number

View File

@ -0,0 +1,29 @@
//// [tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment.ts] ////
//// [es6ImportNamedImportInIndirectExportAssignment_0.ts]
export module a {
export class c {
}
}
//// [es6ImportNamedImportInIndirectExportAssignment_1.ts]
import { a } from "es6ImportNamedImportInIndirectExportAssignment_0";
import x = a;
export = x;
//// [es6ImportNamedImportInIndirectExportAssignment_0.js]
var a;
(function (a) {
var c = (function () {
function c() {
}
return c;
})();
a.c = c;
})(a = exports.a || (exports.a = {}));
//// [es6ImportNamedImportInIndirectExportAssignment_1.js]
var _a = require("es6ImportNamedImportInIndirectExportAssignment_0");
var a = _a.a;
var x = a;
module.exports = x;

View File

@ -0,0 +1,21 @@
=== tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_0.ts ===
export module a {
>a : typeof a
export class c {
>c : c
}
}
=== tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_1.ts ===
import { a } from "es6ImportNamedImportInIndirectExportAssignment_0";
>a : typeof a
import x = a;
>x : typeof a
>a : typeof a
export = x;
>x : typeof a

View File

@ -0,0 +1,33 @@
tests/cases/compiler/es6ImportNamedImportMergeErrors_1.ts(5,10): error TS2440: Import declaration conflicts with local declaration of 'x'
tests/cases/compiler/es6ImportNamedImportMergeErrors_1.ts(7,10): error TS2440: Import declaration conflicts with local declaration of 'x44'
tests/cases/compiler/es6ImportNamedImportMergeErrors_1.ts(9,10): error TS2300: Duplicate identifier 'z'.
tests/cases/compiler/es6ImportNamedImportMergeErrors_1.ts(10,16): error TS2300: Duplicate identifier 'z'.
==== tests/cases/compiler/es6ImportNamedImportMergeErrors_0.ts (0 errors) ====
export var a = 10;
export var x = a;
export var z = a;
export var z1 = a;
==== tests/cases/compiler/es6ImportNamedImportMergeErrors_1.ts (4 errors) ====
import { a } from "es6ImportNamedImportMergeErrors_0";
interface a { } // shouldnt be error
import { x as x1 } from "es6ImportNamedImportMergeErrors_0";
interface x1 { } // shouldnt be error
import { x } from "es6ImportNamedImportMergeErrors_0"; // should be error
~
!!! error TS2440: Import declaration conflicts with local declaration of 'x'
var x = 10;
import { x as x44 } from "es6ImportNamedImportMergeErrors_0"; // should be error
~~~~~~~~
!!! error TS2440: Import declaration conflicts with local declaration of 'x44'
var x44 = 10;
import { z } from "es6ImportNamedImportMergeErrors_0"; // should be error
~
!!! error TS2300: Duplicate identifier 'z'.
import { z1 as z } from "es6ImportNamedImportMergeErrors_0"; // should be error
~
!!! error TS2300: Duplicate identifier 'z'.

View File

@ -0,0 +1,30 @@
//// [tests/cases/compiler/es6ImportNamedImportMergeErrors.ts] ////
//// [es6ImportNamedImportMergeErrors_0.ts]
export var a = 10;
export var x = a;
export var z = a;
export var z1 = a;
//// [es6ImportNamedImportMergeErrors_1.ts]
import { a } from "es6ImportNamedImportMergeErrors_0";
interface a { } // shouldnt be error
import { x as x1 } from "es6ImportNamedImportMergeErrors_0";
interface x1 { } // shouldnt be error
import { x } from "es6ImportNamedImportMergeErrors_0"; // should be error
var x = 10;
import { x as x44 } from "es6ImportNamedImportMergeErrors_0"; // should be error
var x44 = 10;
import { z } from "es6ImportNamedImportMergeErrors_0"; // should be error
import { z1 as z } from "es6ImportNamedImportMergeErrors_0"; // should be error
//// [es6ImportNamedImportMergeErrors_0.js]
exports.a = 10;
exports.x = exports.a;
exports.z = exports.a;
exports.z1 = exports.a;
//// [es6ImportNamedImportMergeErrors_1.js]
var x = 10;
var x44 = 10;

View File

@ -0,0 +1,16 @@
tests/cases/compiler/es6ImportNamedImport_1.ts(1,10): error TS2305: Module '"tests/cases/compiler/es6ImportNamedImportNoExportMember_0"' has no exported member 'a1'.
tests/cases/compiler/es6ImportNamedImport_1.ts(2,10): error TS2305: Module '"tests/cases/compiler/es6ImportNamedImportNoExportMember_0"' has no exported member 'x1'.
==== tests/cases/compiler/es6ImportNamedImportNoExportMember_0.ts (0 errors) ====
export var a = 10;
export var x = a;
==== tests/cases/compiler/es6ImportNamedImport_1.ts (2 errors) ====
import { a1 } from "es6ImportNamedImportNoExportMember_0";
~~
!!! error TS2305: Module '"tests/cases/compiler/es6ImportNamedImportNoExportMember_0"' has no exported member 'a1'.
import { x1 as x } from "es6ImportNamedImportNoExportMember_0";
~~
!!! error TS2305: Module '"tests/cases/compiler/es6ImportNamedImportNoExportMember_0"' has no exported member 'x1'.

View File

@ -0,0 +1,15 @@
//// [tests/cases/compiler/es6ImportNamedImportNoExportMember.ts] ////
//// [es6ImportNamedImportNoExportMember_0.ts]
export var a = 10;
export var x = a;
//// [es6ImportNamedImport_1.ts]
import { a1 } from "es6ImportNamedImportNoExportMember_0";
import { x1 as x } from "es6ImportNamedImportNoExportMember_0";
//// [es6ImportNamedImportNoExportMember_0.js]
exports.a = 10;
exports.x = exports.a;
//// [es6ImportNamedImport_1.js]

View File

@ -0,0 +1,16 @@
tests/cases/compiler/es6ImportNamedImportNoNamedExports_1.ts(1,10): error TS2305: Module '"tests/cases/compiler/es6ImportNamedImportNoNamedExports_0"' has no exported member 'a'.
tests/cases/compiler/es6ImportNamedImportNoNamedExports_1.ts(2,10): error TS2305: Module '"tests/cases/compiler/es6ImportNamedImportNoNamedExports_0"' has no exported member 'a'.
==== tests/cases/compiler/es6ImportNamedImportNoNamedExports_0.ts (0 errors) ====
var a = 10;
export = a;
==== tests/cases/compiler/es6ImportNamedImportNoNamedExports_1.ts (2 errors) ====
import { a } from "es6ImportNamedImportNoNamedExports_0";
~
!!! error TS2305: Module '"tests/cases/compiler/es6ImportNamedImportNoNamedExports_0"' has no exported member 'a'.
import { a as x } from "es6ImportNamedImportNoNamedExports_0";
~
!!! error TS2305: Module '"tests/cases/compiler/es6ImportNamedImportNoNamedExports_0"' has no exported member 'a'.

View File

@ -0,0 +1,15 @@
//// [tests/cases/compiler/es6ImportNamedImportNoNamedExports.ts] ////
//// [es6ImportNamedImportNoNamedExports_0.ts]
var a = 10;
export = a;
//// [es6ImportNamedImportNoNamedExports_1.ts]
import { a } from "es6ImportNamedImportNoNamedExports_0";
import { a as x } from "es6ImportNamedImportNoNamedExports_0";
//// [es6ImportNamedImportNoNamedExports_0.js]
var a = 10;
module.exports = a;
//// [es6ImportNamedImportNoNamedExports_1.js]

View File

@ -1,5 +1,6 @@
// @target: es6
// @module: commonjs
// @declaration: true
// @filename: es6ImportNamedImport_0.ts
export var a = 10;
@ -7,13 +8,35 @@ export var x = a;
export var m = a;
export var a1 = 10;
export var x1 = 10;
export var z1 = 10;
export var z2 = 10;
export var aaaa = 10;
// @filename: es6ImportNamedImport_1.ts
import { } from "es6ImportNamedImport_0";
import { a } from "es6ImportNamedImport_0";
var xxxx = a;
import { a as b } from "es6ImportNamedImport_0";
var xxxx = b;
import { x, a as y } from "es6ImportNamedImport_0";
var xxxx = x;
var xxxx = y;
import { x as z, } from "es6ImportNamedImport_0";
var xxxx = z;
import { m, } from "es6ImportNamedImport_0";
var xxxx = m;
import { a1, x1 } from "es6ImportNamedImport_0";
import { a1 as a11, x1 as x11 } from "es6ImportNamedImport_0";
var xxxx = a1;
var xxxx = x1;
import { a1 as a11, x1 as x11 } from "es6ImportNamedImport_0";
var xxxx = a11;
var xxxx = x11;
import { z1 } from "es6ImportNamedImport_0";
var z111 = z1;
import { z2 as z3 } from "es6ImportNamedImport_0";
var z2 = z3; // z2 shouldn't give redeclare error
// These are elided
import { aaaa } from "es6ImportNamedImport_0";
// These are elided
import { aaaa as bbbb } from "es6ImportNamedImport_0";

View File

@ -0,0 +1,41 @@
// @module: amd
// @declaration: true
// @filename: es6ImportNamedImportAmd_0.ts
export var a = 10;
export var x = a;
export var m = a;
export var a1 = 10;
export var x1 = 10;
export var z1 = 10;
export var z2 = 10;
export var aaaa = 10;
// @filename: es6ImportNamedImportAmd_1.ts
import { } from "es6ImportNamedImportAmd_0";
import { a } from "es6ImportNamedImportAmd_0";
var xxxx = a;
import { a as b } from "es6ImportNamedImportAmd_0";
var xxxx = b;
import { x, a as y } from "es6ImportNamedImportAmd_0";
var xxxx = x;
var xxxx = y;
import { x as z, } from "es6ImportNamedImportAmd_0";
var xxxx = z;
import { m, } from "es6ImportNamedImportAmd_0";
var xxxx = m;
import { a1, x1 } from "es6ImportNamedImportAmd_0";
var xxxx = a1;
var xxxx = x1;
import { a1 as a11, x1 as x11 } from "es6ImportNamedImportAmd_0";
var xxxx = a11;
var xxxx = x11;
import { z1 } from "es6ImportNamedImportAmd_0";
var z111 = z1;
import { z2 as z3 } from "es6ImportNamedImportAmd_0";
var z2 = z3; // z2 shouldn't give redeclare error
// These are elided
import { aaaa } from "es6ImportNamedImportAmd_0";
// These are elided
import { aaaa as bbbb } from "es6ImportNamedImportAmd_0";

View File

@ -1,5 +1,6 @@
// @target: es5
// @module: commonjs
// @declaration: true
// @filename: es6ImportNamedImportInEs5_0.ts
export var a = 10;
@ -7,13 +8,35 @@ export var x = a;
export var m = a;
export var a1 = 10;
export var x1 = 10;
export var z1 = 10;
export var z2 = 10;
export var aaaa = 10;
// @filename: es6ImportNamedImportInEs5_1.ts
import { } from "es6ImportNamedImportInEs5_0";
import { a } from "es6ImportNamedImportInEs5_0";
var xxxx = a;
import { a as b } from "es6ImportNamedImportInEs5_0";
var xxxx = b;
import { x, a as y } from "es6ImportNamedImportInEs5_0";
var xxxx = x;
var xxxx = y;
import { x as z, } from "es6ImportNamedImportInEs5_0";
var xxxx = z;
import { m, } from "es6ImportNamedImportInEs5_0";
var xxxx = m;
import { a1, x1 } from "es6ImportNamedImportInEs5_0";
import { a1 as a11, x1 as x11 } from "es6ImportNamedImportInEs5_0";
var xxxx = a1;
var xxxx = x1;
import { a1 as a11, x1 as x11 } from "es6ImportNamedImportInEs5_0";
var xxxx = a11;
var xxxx = x11;
import { z1 } from "es6ImportNamedImportInEs5_0";
var z111 = z1;
import { z2 as z3 } from "es6ImportNamedImportInEs5_0";
var z2 = z3; // z2 shouldn't give redeclare error
// These are elided
import { aaaa } from "es6ImportNamedImportInEs5_0";
// These are elided
import { aaaa as bbbb } from "es6ImportNamedImportInEs5_0";

View File

@ -0,0 +1,9 @@
// @target: es6
// @module: commonjs
// @filename: es6ImportNamedImportInExportAssignment_0.ts
export var a = 10;
// @filename: es6ImportNamedImportInExportAssignment_1.ts
import { a } from "es6ImportNamedImportInExportAssignment_0";
export = a;

View File

@ -0,0 +1,13 @@
// @target: es6
// @module: commonjs
// @filename: es6ImportNamedImportInIndirectExportAssignment_0.ts
export module a {
export class c {
}
}
// @filename: es6ImportNamedImportInIndirectExportAssignment_1.ts
import { a } from "es6ImportNamedImportInIndirectExportAssignment_0";
import x = a;
export = x;

View File

@ -0,0 +1,20 @@
// @target: es6
// @module: commonjs
// @filename: es6ImportNamedImportMergeErrors_0.ts
export var a = 10;
export var x = a;
export var z = a;
export var z1 = a;
// @filename: es6ImportNamedImportMergeErrors_1.ts
import { a } from "es6ImportNamedImportMergeErrors_0";
interface a { } // shouldnt be error
import { x as x1 } from "es6ImportNamedImportMergeErrors_0";
interface x1 { } // shouldnt be error
import { x } from "es6ImportNamedImportMergeErrors_0"; // should be error
var x = 10;
import { x as x44 } from "es6ImportNamedImportMergeErrors_0"; // should be error
var x44 = 10;
import { z } from "es6ImportNamedImportMergeErrors_0"; // should be error
import { z1 as z } from "es6ImportNamedImportMergeErrors_0"; // should be error

View File

@ -0,0 +1,10 @@
// @target: es6
// @module: commonjs
// @filename: es6ImportNamedImportNoExportMember_0.ts
export var a = 10;
export var x = a;
// @filename: es6ImportNamedImport_1.ts
import { a1 } from "es6ImportNamedImportNoExportMember_0";
import { x1 as x } from "es6ImportNamedImportNoExportMember_0";

View File

@ -0,0 +1,10 @@
// @target: es6
// @module: commonjs
// @filename: es6ImportNamedImportNoNamedExports_0.ts
var a = 10;
export = a;
// @filename: es6ImportNamedImportNoNamedExports_1.ts
import { a } from "es6ImportNamedImportNoNamedExports_0";
import { a as x } from "es6ImportNamedImportNoNamedExports_0";