Enable declaration emit for import * as ns from "mod" syntax
This commit is contained in:
parent
6ac1bcca08
commit
96139ca4d8
|
@ -773,6 +773,16 @@ module ts {
|
||||||
write("export ");
|
write("export ");
|
||||||
}
|
}
|
||||||
write("import ");
|
write("import ");
|
||||||
|
if (node.importClause) {
|
||||||
|
if (node.importClause.namedBindings) {
|
||||||
|
if (node.importClause.namedBindings.kind === SyntaxKind.NamespaceImport) {
|
||||||
|
write("* as ");
|
||||||
|
writeTextOfNode(currentSourceFile,(<NamespaceImport>node.importClause.namedBindings).name);
|
||||||
|
write(" ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
write("from ");
|
||||||
|
}
|
||||||
writeTextOfNode(currentSourceFile, node.moduleSpecifier);
|
writeTextOfNode(currentSourceFile, node.moduleSpecifier);
|
||||||
write(";");
|
write(";");
|
||||||
writer.writeLine();
|
writer.writeLine();
|
||||||
|
|
|
@ -6,7 +6,19 @@ export var a = 10;
|
||||||
|
|
||||||
//// [es6ImportNameSpaceImport_1.ts]
|
//// [es6ImportNameSpaceImport_1.ts]
|
||||||
import * as nameSpaceBinding from "es6ImportNameSpaceImport_0";
|
import * as nameSpaceBinding from "es6ImportNameSpaceImport_0";
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImport_0"; // elide this
|
||||||
|
|
||||||
|
|
||||||
//// [es6ImportNameSpaceImport_0.js]
|
//// [es6ImportNameSpaceImport_0.js]
|
||||||
exports.a = 10;
|
exports.a = 10;
|
||||||
//// [es6ImportNameSpaceImport_1.js]
|
//// [es6ImportNameSpaceImport_1.js]
|
||||||
|
var nameSpaceBinding = require("es6ImportNameSpaceImport_0");
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImport_0.d.ts]
|
||||||
|
export declare var a: number;
|
||||||
|
//// [es6ImportNameSpaceImport_1.d.ts]
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImport_0";
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImport_0";
|
||||||
|
|
|
@ -7,3 +7,12 @@ export var a = 10;
|
||||||
import * as nameSpaceBinding from "es6ImportNameSpaceImport_0";
|
import * as nameSpaceBinding from "es6ImportNameSpaceImport_0";
|
||||||
>nameSpaceBinding : typeof nameSpaceBinding
|
>nameSpaceBinding : typeof nameSpaceBinding
|
||||||
|
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
>x : number
|
||||||
|
>nameSpaceBinding.a : number
|
||||||
|
>nameSpaceBinding : typeof nameSpaceBinding
|
||||||
|
>a : number
|
||||||
|
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImport_0"; // elide this
|
||||||
|
>nameSpaceBinding2 : typeof nameSpaceBinding
|
||||||
|
|
||||||
|
|
27
tests/baselines/reference/es6ImportNameSpaceImportAmd.js
Normal file
27
tests/baselines/reference/es6ImportNameSpaceImportAmd.js
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
//// [tests/cases/compiler/es6ImportNameSpaceImportAmd.ts] ////
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportAmd_0.ts]
|
||||||
|
|
||||||
|
export var a = 10;
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportAmd_1.ts]
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportAmd_0";
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImportAmd_0"; // elide this
|
||||||
|
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportAmd_0.js]
|
||||||
|
define(["require", "exports"], function (require, exports) {
|
||||||
|
exports.a = 10;
|
||||||
|
});
|
||||||
|
//// [es6ImportNameSpaceImportAmd_1.js]
|
||||||
|
define(["require", "exports", "es6ImportNameSpaceImportAmd_0"], function (require, exports, nameSpaceBinding) {
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportAmd_0.d.ts]
|
||||||
|
export declare var a: number;
|
||||||
|
//// [es6ImportNameSpaceImportAmd_1.d.ts]
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportAmd_0";
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImportAmd_0";
|
18
tests/baselines/reference/es6ImportNameSpaceImportAmd.types
Normal file
18
tests/baselines/reference/es6ImportNameSpaceImportAmd.types
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
=== tests/cases/compiler/es6ImportNameSpaceImportAmd_0.ts ===
|
||||||
|
|
||||||
|
export var a = 10;
|
||||||
|
>a : number
|
||||||
|
|
||||||
|
=== tests/cases/compiler/es6ImportNameSpaceImportAmd_1.ts ===
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportAmd_0";
|
||||||
|
>nameSpaceBinding : typeof nameSpaceBinding
|
||||||
|
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
>x : number
|
||||||
|
>nameSpaceBinding.a : number
|
||||||
|
>nameSpaceBinding : typeof nameSpaceBinding
|
||||||
|
>a : number
|
||||||
|
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImportAmd_0"; // elide this
|
||||||
|
>nameSpaceBinding2 : typeof nameSpaceBinding
|
||||||
|
|
|
@ -6,7 +6,19 @@ export var a = 10;
|
||||||
|
|
||||||
//// [es6ImportNameSpaceImportInEs5_1.ts]
|
//// [es6ImportNameSpaceImportInEs5_1.ts]
|
||||||
import * as nameSpaceBinding from "es6ImportNameSpaceImportInEs5_0";
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportInEs5_0";
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImportInEs5_0"; // elide this
|
||||||
|
|
||||||
|
|
||||||
//// [es6ImportNameSpaceImportInEs5_0.js]
|
//// [es6ImportNameSpaceImportInEs5_0.js]
|
||||||
exports.a = 10;
|
exports.a = 10;
|
||||||
//// [es6ImportNameSpaceImportInEs5_1.js]
|
//// [es6ImportNameSpaceImportInEs5_1.js]
|
||||||
|
var nameSpaceBinding = require("es6ImportNameSpaceImportInEs5_0");
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportInEs5_0.d.ts]
|
||||||
|
export declare var a: number;
|
||||||
|
//// [es6ImportNameSpaceImportInEs5_1.d.ts]
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportInEs5_0";
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImportInEs5_0";
|
||||||
|
|
|
@ -7,3 +7,12 @@ export var a = 10;
|
||||||
import * as nameSpaceBinding from "es6ImportNameSpaceImportInEs5_0";
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportInEs5_0";
|
||||||
>nameSpaceBinding : typeof nameSpaceBinding
|
>nameSpaceBinding : typeof nameSpaceBinding
|
||||||
|
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
>x : number
|
||||||
|
>nameSpaceBinding.a : number
|
||||||
|
>nameSpaceBinding : typeof nameSpaceBinding
|
||||||
|
>a : number
|
||||||
|
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImportInEs5_0"; // elide this
|
||||||
|
>nameSpaceBinding2 : typeof nameSpaceBinding
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
tests/cases/compiler/es6ImportNameSpaceImportMergeErrors_1.ts(4,13): error TS2300: Duplicate identifier 'nameSpaceBinding1'.
|
||||||
|
tests/cases/compiler/es6ImportNameSpaceImportMergeErrors_1.ts(5,13): error TS2300: Duplicate identifier 'nameSpaceBinding1'.
|
||||||
|
tests/cases/compiler/es6ImportNameSpaceImportMergeErrors_1.ts(7,8): error TS2440: Import declaration conflicts with local declaration of 'nameSpaceBinding3'
|
||||||
|
|
||||||
|
|
||||||
|
==== tests/cases/compiler/es6ImportNameSpaceImportMergeErrors_0.ts (0 errors) ====
|
||||||
|
|
||||||
|
export var a = 10;
|
||||||
|
|
||||||
|
==== tests/cases/compiler/es6ImportNameSpaceImportMergeErrors_1.ts (3 errors) ====
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportMergeErrors_0";
|
||||||
|
interface nameSpaceBinding { } // this should be ok
|
||||||
|
|
||||||
|
import * as nameSpaceBinding1 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
!!! error TS2300: Duplicate identifier 'nameSpaceBinding1'.
|
||||||
|
import * as nameSpaceBinding1 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
!!! error TS2300: Duplicate identifier 'nameSpaceBinding1'.
|
||||||
|
|
||||||
|
import * as nameSpaceBinding3 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
!!! error TS2440: Import declaration conflicts with local declaration of 'nameSpaceBinding3'
|
||||||
|
var nameSpaceBinding3 = 10;
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
//// [tests/cases/compiler/es6ImportNameSpaceImportMergeErrors.ts] ////
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportMergeErrors_0.ts]
|
||||||
|
|
||||||
|
export var a = 10;
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportMergeErrors_1.ts]
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportMergeErrors_0";
|
||||||
|
interface nameSpaceBinding { } // this should be ok
|
||||||
|
|
||||||
|
import * as nameSpaceBinding1 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
|
||||||
|
import * as nameSpaceBinding1 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
|
||||||
|
|
||||||
|
import * as nameSpaceBinding3 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
|
||||||
|
var nameSpaceBinding3 = 10;
|
||||||
|
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportMergeErrors_0.js]
|
||||||
|
exports.a = 10;
|
||||||
|
//// [es6ImportNameSpaceImportMergeErrors_1.js]
|
||||||
|
var nameSpaceBinding3 = 10;
|
|
@ -0,0 +1,14 @@
|
||||||
|
//// [tests/cases/compiler/es6ImportNameSpaceImportNoNamedExports.ts] ////
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportNoNamedExports_0.ts]
|
||||||
|
|
||||||
|
var a = 10;
|
||||||
|
export = a;
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportNoNamedExports_1.ts]
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportNoNamedExports_0"; // error
|
||||||
|
|
||||||
|
//// [es6ImportNameSpaceImportNoNamedExports_0.js]
|
||||||
|
var a = 10;
|
||||||
|
module.exports = a;
|
||||||
|
//// [es6ImportNameSpaceImportNoNamedExports_1.js]
|
|
@ -0,0 +1,12 @@
|
||||||
|
=== tests/cases/compiler/es6ImportNameSpaceImportNoNamedExports_0.ts ===
|
||||||
|
|
||||||
|
var a = 10;
|
||||||
|
>a : number
|
||||||
|
|
||||||
|
export = a;
|
||||||
|
>a : number
|
||||||
|
|
||||||
|
=== tests/cases/compiler/es6ImportNameSpaceImportNoNamedExports_1.ts ===
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportNoNamedExports_0"; // error
|
||||||
|
>nameSpaceBinding : typeof nameSpaceBinding
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
// @target: es6
|
// @target: es6
|
||||||
// @module: commonjs
|
// @module: commonjs
|
||||||
|
// @declaration: true
|
||||||
|
|
||||||
// @filename: es6ImportNameSpaceImport_0.ts
|
// @filename: es6ImportNameSpaceImport_0.ts
|
||||||
export var a = 10;
|
export var a = 10;
|
||||||
|
|
||||||
// @filename: es6ImportNameSpaceImport_1.ts
|
// @filename: es6ImportNameSpaceImport_1.ts
|
||||||
import * as nameSpaceBinding from "es6ImportNameSpaceImport_0";
|
import * as nameSpaceBinding from "es6ImportNameSpaceImport_0";
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImport_0"; // elide this
|
||||||
|
|
10
tests/cases/compiler/es6ImportNameSpaceImportAmd.ts
Normal file
10
tests/cases/compiler/es6ImportNameSpaceImportAmd.ts
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
// @module: amd
|
||||||
|
// @declaration: true
|
||||||
|
|
||||||
|
// @filename: es6ImportNameSpaceImportAmd_0.ts
|
||||||
|
export var a = 10;
|
||||||
|
|
||||||
|
// @filename: es6ImportNameSpaceImportAmd_1.ts
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportAmd_0";
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImportAmd_0"; // elide this
|
|
@ -1,8 +1,11 @@
|
||||||
// @target: es5
|
// @target: es5
|
||||||
// @module: commonjs
|
// @module: commonjs
|
||||||
|
// @declaration: true
|
||||||
|
|
||||||
// @filename: es6ImportNameSpaceImportInEs5_0.ts
|
// @filename: es6ImportNameSpaceImportInEs5_0.ts
|
||||||
export var a = 10;
|
export var a = 10;
|
||||||
|
|
||||||
// @filename: es6ImportNameSpaceImportInEs5_1.ts
|
// @filename: es6ImportNameSpaceImportInEs5_1.ts
|
||||||
import * as nameSpaceBinding from "es6ImportNameSpaceImportInEs5_0";
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportInEs5_0";
|
||||||
|
var x = nameSpaceBinding.a;
|
||||||
|
import * as nameSpaceBinding2 from "es6ImportNameSpaceImportInEs5_0"; // elide this
|
||||||
|
|
15
tests/cases/compiler/es6ImportNameSpaceImportMergeErrors.ts
Normal file
15
tests/cases/compiler/es6ImportNameSpaceImportMergeErrors.ts
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
// @target: es6
|
||||||
|
// @module: commonjs
|
||||||
|
|
||||||
|
// @filename: es6ImportNameSpaceImportMergeErrors_0.ts
|
||||||
|
export var a = 10;
|
||||||
|
|
||||||
|
// @filename: es6ImportNameSpaceImportMergeErrors_1.ts
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportMergeErrors_0";
|
||||||
|
interface nameSpaceBinding { } // this should be ok
|
||||||
|
|
||||||
|
import * as nameSpaceBinding1 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
|
||||||
|
import * as nameSpaceBinding1 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
|
||||||
|
|
||||||
|
import * as nameSpaceBinding3 from "es6ImportNameSpaceImportMergeErrors_0"; // should be error
|
||||||
|
var nameSpaceBinding3 = 10;
|
|
@ -0,0 +1,9 @@
|
||||||
|
// @target: es6
|
||||||
|
// @module: commonjs
|
||||||
|
|
||||||
|
// @filename: es6ImportNameSpaceImportNoNamedExports_0.ts
|
||||||
|
var a = 10;
|
||||||
|
export = a;
|
||||||
|
|
||||||
|
// @filename: es6ImportNameSpaceImportNoNamedExports_1.ts
|
||||||
|
import * as nameSpaceBinding from "es6ImportNameSpaceImportNoNamedExports_0"; // error
|
Loading…
Reference in a new issue