Handel isDeclaration visible for imports

This commit is contained in:
Mohamed Hegazy 2015-03-11 22:17:16 -07:00
parent a6e4e04bd9
commit 04ea7fe6de
8 changed files with 142 additions and 0 deletions

View file

@ -1754,6 +1754,11 @@ module ts {
case SyntaxKind.ParenthesizedType:
return isDeclarationVisible(<Declaration>node.parent);
case SyntaxKind.ImportClause:
case SyntaxKind.NamespaceImport:
case SyntaxKind.ImportSpecifier:
return false;
// Type parameters are always visible
case SyntaxKind.TypeParameter:
// Source file is always visible

View file

@ -0,0 +1,37 @@
//// [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 _es6ImportNamedImportInExportAssignment_0 = require("es6ImportNamedImportInExportAssignment_0");
module.exports = _es6ImportNamedImportInExportAssignment_0.a;
//// [es6ImportNamedImportInExportAssignment_0.d.ts]
export declare var a: number;
//// [es6ImportNamedImportInExportAssignment_1.d.ts]
export = a;
//// [DtsFileErrors]
tests/cases/compiler/es6ImportNamedImportInExportAssignment_1.d.ts(1,10): error TS2304: Cannot find name 'a'.
==== tests/cases/compiler/es6ImportNamedImportInExportAssignment_0.d.ts (0 errors) ====
export declare var a: number;
==== tests/cases/compiler/es6ImportNamedImportInExportAssignment_1.d.ts (1 errors) ====
export = a;
~
!!! error TS2304: Cannot find name '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,16 @@
tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_1.ts(2,12): error TS4000: Import declaration 'x' is using private name 'a'.
==== tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_0.ts (0 errors) ====
export module a {
export class c {
}
}
==== tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_1.ts (1 errors) ====
import { a } from "es6ImportNamedImportInIndirectExportAssignment_0";
import x = a;
~
!!! error TS4000: Import declaration 'x' is using private name 'a'.
export = x;

View file

@ -0,0 +1,35 @@
//// [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 _es6ImportNamedImportInIndirectExportAssignment_0 = require("es6ImportNamedImportInIndirectExportAssignment_0");
var x = _es6ImportNamedImportInIndirectExportAssignment_0.a;
module.exports = x;
//// [es6ImportNamedImportInIndirectExportAssignment_0.d.ts]
export declare module a {
class c {
}
}

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

@ -0,0 +1,9 @@
// @module: commonjs
// @declaration: true
// @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 @@
// @module: commonjs
// @declaration: true
// @filename: es6ImportNamedImportInIndirectExportAssignment_0.ts
export module a {
export class c {
}
}
// @filename: es6ImportNamedImportInIndirectExportAssignment_1.ts
import { a } from "es6ImportNamedImportInIndirectExportAssignment_0";
import x = a;
export = x;