Skip to content

Commit 04ea7fe

Browse files
committed
Handel isDeclaration visible for imports
1 parent a6e4e04 commit 04ea7fe

8 files changed

Lines changed: 142 additions & 0 deletions

src/compiler/checker.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1754,6 +1754,11 @@ module ts {
17541754
case SyntaxKind.ParenthesizedType:
17551755
return isDeclarationVisible(<Declaration>node.parent);
17561756

1757+
case SyntaxKind.ImportClause:
1758+
case SyntaxKind.NamespaceImport:
1759+
case SyntaxKind.ImportSpecifier:
1760+
return false;
1761+
17571762
// Type parameters are always visible
17581763
case SyntaxKind.TypeParameter:
17591764
// Source file is always visible
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
//// [tests/cases/compiler/es6ImportNamedImportInExportAssignment.ts] ////
2+
3+
//// [es6ImportNamedImportInExportAssignment_0.ts]
4+
5+
export var a = 10;
6+
7+
//// [es6ImportNamedImportInExportAssignment_1.ts]
8+
import { a } from "es6ImportNamedImportInExportAssignment_0";
9+
export = a;
10+
11+
//// [es6ImportNamedImportInExportAssignment_0.js]
12+
exports.a = 10;
13+
//// [es6ImportNamedImportInExportAssignment_1.js]
14+
var _es6ImportNamedImportInExportAssignment_0 = require("es6ImportNamedImportInExportAssignment_0");
15+
module.exports = _es6ImportNamedImportInExportAssignment_0.a;
16+
17+
18+
//// [es6ImportNamedImportInExportAssignment_0.d.ts]
19+
export declare var a: number;
20+
//// [es6ImportNamedImportInExportAssignment_1.d.ts]
21+
export = a;
22+
23+
24+
//// [DtsFileErrors]
25+
26+
27+
tests/cases/compiler/es6ImportNamedImportInExportAssignment_1.d.ts(1,10): error TS2304: Cannot find name 'a'.
28+
29+
30+
==== tests/cases/compiler/es6ImportNamedImportInExportAssignment_0.d.ts (0 errors) ====
31+
export declare var a: number;
32+
33+
==== tests/cases/compiler/es6ImportNamedImportInExportAssignment_1.d.ts (1 errors) ====
34+
export = a;
35+
~
36+
!!! error TS2304: Cannot find name 'a'.
37+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
=== tests/cases/compiler/es6ImportNamedImportInExportAssignment_0.ts ===
2+
3+
export var a = 10;
4+
>a : number
5+
6+
=== tests/cases/compiler/es6ImportNamedImportInExportAssignment_1.ts ===
7+
import { a } from "es6ImportNamedImportInExportAssignment_0";
8+
>a : number
9+
10+
export = a;
11+
>a : number
12+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_1.ts(2,12): error TS4000: Import declaration 'x' is using private name 'a'.
2+
3+
4+
==== tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_0.ts (0 errors) ====
5+
6+
export module a {
7+
export class c {
8+
}
9+
}
10+
11+
==== tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_1.ts (1 errors) ====
12+
import { a } from "es6ImportNamedImportInIndirectExportAssignment_0";
13+
import x = a;
14+
~
15+
!!! error TS4000: Import declaration 'x' is using private name 'a'.
16+
export = x;
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
//// [tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment.ts] ////
2+
3+
//// [es6ImportNamedImportInIndirectExportAssignment_0.ts]
4+
5+
export module a {
6+
export class c {
7+
}
8+
}
9+
10+
//// [es6ImportNamedImportInIndirectExportAssignment_1.ts]
11+
import { a } from "es6ImportNamedImportInIndirectExportAssignment_0";
12+
import x = a;
13+
export = x;
14+
15+
//// [es6ImportNamedImportInIndirectExportAssignment_0.js]
16+
var a;
17+
(function (a) {
18+
var c = (function () {
19+
function c() {
20+
}
21+
return c;
22+
})();
23+
a.c = c;
24+
})(a = exports.a || (exports.a = {}));
25+
//// [es6ImportNamedImportInIndirectExportAssignment_1.js]
26+
var _es6ImportNamedImportInIndirectExportAssignment_0 = require("es6ImportNamedImportInIndirectExportAssignment_0");
27+
var x = _es6ImportNamedImportInIndirectExportAssignment_0.a;
28+
module.exports = x;
29+
30+
31+
//// [es6ImportNamedImportInIndirectExportAssignment_0.d.ts]
32+
export declare module a {
33+
class c {
34+
}
35+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//// [tests/cases/compiler/es6ImportNamedImportNoNamedExports.ts] ////
2+
3+
//// [es6ImportNamedImportNoNamedExports_0.ts]
4+
5+
var a = 10;
6+
export = a;
7+
8+
//// [es6ImportNamedImportNoNamedExports_1.ts]
9+
import { a } from "es6ImportNamedImportNoNamedExports_0";
10+
import { a as x } from "es6ImportNamedImportNoNamedExports_0";
11+
12+
//// [es6ImportNamedImportNoNamedExports_0.js]
13+
var a = 10;
14+
module.exports = a;
15+
//// [es6ImportNamedImportNoNamedExports_1.js]
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// @module: commonjs
2+
// @declaration: true
3+
4+
// @filename: es6ImportNamedImportInExportAssignment_0.ts
5+
export var a = 10;
6+
7+
// @filename: es6ImportNamedImportInExportAssignment_1.ts
8+
import { a } from "es6ImportNamedImportInExportAssignment_0";
9+
export = a;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// @module: commonjs
2+
// @declaration: true
3+
4+
// @filename: es6ImportNamedImportInIndirectExportAssignment_0.ts
5+
export module a {
6+
export class c {
7+
}
8+
}
9+
10+
// @filename: es6ImportNamedImportInIndirectExportAssignment_1.ts
11+
import { a } from "es6ImportNamedImportInIndirectExportAssignment_0";
12+
import x = a;
13+
export = x;

0 commit comments

Comments
 (0)