mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-04 21:53:42 -06:00
Check for the accessible symbol from exported import
eg:
// @Filename: w1.ts
export = Widget1
class Widget1 { name = 'one'; }
// @Filename: exporter.ts
export import w = require('./w1');
// @Filename: consumer.ts
import e = require('./exporter');
export function w(): e.w { // Should be OK
return new e.w();
}
In this looking for the name of return type of function w,
not just look for the alias == SymbolOfReturnType but also
look for alias.exportedSymbols === symbolOfReturnType
and qualify it during the toString
This commit is contained in:
parent
54f5f15796
commit
c643f39557
@ -661,38 +661,52 @@ module ts {
|
||||
return callback(globals);
|
||||
}
|
||||
|
||||
function getAccessibleSymbol(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags) {
|
||||
function getAccessibleSymbolFromSymbolTable(symbols: SymbolTable) {
|
||||
function getAccessibleSymbolChain(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): Symbol[] {
|
||||
function getAccessibleSymbolChainFromSymbolTable(symbols: SymbolTable): Symbol[]{
|
||||
function canQualifySymbol(symbolFromSymbolTable: Symbol, meaning: SymbolFlags) {
|
||||
// If the symbol is equivalent and doesnt need futher qualification, this symbol is accessible
|
||||
if (!needsQualification(symbolFromSymbolTable, enclosingDeclaration, meaning)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// If symbol needs qualification, make sure that parent is accessible, if it is then this symbol is accessible too
|
||||
var accessibleParent = getAccessibleSymbolChain(symbolFromSymbolTable.parent, enclosingDeclaration, SymbolFlags.Namespace);
|
||||
return !!accessibleParent;
|
||||
}
|
||||
|
||||
function isAccessible(symbolFromSymbolTable: Symbol, resolvedAliasSymbol?: Symbol) {
|
||||
if (symbol === (resolvedAliasSymbol || symbolFromSymbolTable)) {
|
||||
// If the symbol is equivalent and doesnt need futher qualification, this symbol is accessible
|
||||
if (!needsQualification(symbolFromSymbolTable, enclosingDeclaration, meaning)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// If symbol needs qualification, make sure that parent is accessible, if it is then this symbol is accessible too
|
||||
var accessibleParent = getAccessibleSymbol(symbolFromSymbolTable.parent, enclosingDeclaration, SymbolFlags.Namespace);
|
||||
return !!accessibleParent;
|
||||
// if symbolfrom symbolTable or alias resolution matches the symbol,
|
||||
// check the symbol can be qualified, it is only then this symbol is accessible
|
||||
return canQualifySymbol(symbolFromSymbolTable, meaning);
|
||||
}
|
||||
}
|
||||
|
||||
// If symbol is directly available by its name in the symbol table
|
||||
if (isAccessible(lookUp(symbols, symbol.name))) {
|
||||
return symbol;
|
||||
return [symbol];
|
||||
}
|
||||
|
||||
// Check if symbol is any of the alias
|
||||
return forEachValue(symbols, symbolFromSymbolTable => {
|
||||
if (symbolFromSymbolTable.flags & SymbolFlags.Import) {
|
||||
var resolvedImportedSymbol = resolveImport(symbolFromSymbolTable);
|
||||
if (isAccessible(symbolFromSymbolTable, resolveImport(symbolFromSymbolTable))) {
|
||||
return symbolFromSymbolTable;
|
||||
return [symbolFromSymbolTable];
|
||||
}
|
||||
|
||||
// Look in the exported members, if we can find accessibleSymbolChain, symbol is accessible using this chain
|
||||
// but only if the symbolFromSymbolTable can be qualified
|
||||
var accessibleSymbolsFromExports = resolvedImportedSymbol.exports ? getAccessibleSymbolChainFromSymbolTable(resolvedImportedSymbol.exports): undefined;
|
||||
if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, SymbolFlags.Namespace)) {
|
||||
return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (symbol) {
|
||||
return forEachSymbolTableInScope(enclosingDeclaration, getAccessibleSymbolFromSymbolTable);
|
||||
return forEachSymbolTableInScope(enclosingDeclaration, getAccessibleSymbolChainFromSymbolTable);
|
||||
}
|
||||
}
|
||||
|
||||
@ -732,9 +746,9 @@ module ts {
|
||||
var meaningToLook = meaning;
|
||||
while (symbol) {
|
||||
// Symbol is accessible if it by itself is accessible
|
||||
var accessibleSymbol = getAccessibleSymbol(symbol, enclosingDeclaration, meaningToLook);
|
||||
if (accessibleSymbol) {
|
||||
if (forEach(accessibleSymbol.declarations, declaration => !getIsDeclarationVisible(declaration))) {
|
||||
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaningToLook);
|
||||
if (accessibleSymbolChain) {
|
||||
if (forEach(accessibleSymbolChain[0].declarations, declaration => !getIsDeclarationVisible(declaration))) {
|
||||
return {
|
||||
accessibility: SymbolAccessibility.NotAccessible,
|
||||
errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning),
|
||||
@ -819,12 +833,13 @@ module ts {
|
||||
while (symbol) {
|
||||
var isFirstName = !symbolName;
|
||||
var meaningToLook = isFirstName ? meaning : SymbolFlags.Namespace;
|
||||
var accessibleSymbol = getAccessibleSymbol(symbol, enclosingDeclaration, meaningToLook);
|
||||
symbolName = getSymbolName(accessibleSymbol || symbol) + (isFirstName ? "" : ("." + symbolName));
|
||||
if (accessibleSymbol && !needsQualification(accessibleSymbol, enclosingDeclaration, meaningToLook)) {
|
||||
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaningToLook);
|
||||
var currentSymbolName = accessibleSymbolChain ? ts.map(accessibleSymbolChain, accessibleSymbol => getSymbolName(accessibleSymbol)).join(".") : getSymbolName(symbol);
|
||||
symbolName = currentSymbolName + (isFirstName ? "" : ("." + symbolName));
|
||||
if (accessibleSymbolChain && !needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaningToLook : SymbolFlags.Namespace)) {
|
||||
break;
|
||||
}
|
||||
symbol = accessibleSymbol ? accessibleSymbol.parent : symbol.parent;
|
||||
symbol = accessibleSymbolChain ? accessibleSymbolChain[0].parent : symbol.parent;
|
||||
}
|
||||
|
||||
return symbolName;
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
==== tests/cases/compiler/declFileExportImportChain_d.ts (1 errors) ====
|
||||
import c = require("declFileExportImportChain_c");
|
||||
export var x: c.b1.a.m2.c1;
|
||||
~
|
||||
!!! Exported variable 'x' has or is using private name 'm1.m2.c1'.
|
||||
==== tests/cases/compiler/declFileExportImportChain_a.ts (0 errors) ====
|
||||
|
||||
module m1 {
|
||||
export module m2 {
|
||||
export class c1 {
|
||||
}
|
||||
}
|
||||
}
|
||||
export = m1;
|
||||
|
||||
==== tests/cases/compiler/declFileExportImportChain_b.ts (0 errors) ====
|
||||
export import a = require("declFileExportImportChain_a");
|
||||
|
||||
==== tests/cases/compiler/declFileExportImportChain_b1.ts (0 errors) ====
|
||||
import b = require("declFileExportImportChain_b");
|
||||
export = b;
|
||||
|
||||
==== tests/cases/compiler/declFileExportImportChain_c.ts (0 errors) ====
|
||||
export import b1 = require("declFileExportImportChain_b1");
|
||||
|
||||
@ -73,3 +73,6 @@ import b = require("declFileExportImportChain_b");
|
||||
export = b;
|
||||
//// [declFileExportImportChain_c.d.ts]
|
||||
export import b1 = require("declFileExportImportChain_b1");
|
||||
//// [declFileExportImportChain_d.d.ts]
|
||||
import c = require("declFileExportImportChain_c");
|
||||
export declare var x: c.b1.a.m2.c1;
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
==== tests/cases/compiler/declFileExportImportChain2_d.ts (1 errors) ====
|
||||
import c = require("declFileExportImportChain2_c");
|
||||
export var x: c.b.m2.c1;
|
||||
~
|
||||
!!! Exported variable 'x' has or is using private name 'm1.m2.c1'.
|
||||
==== tests/cases/compiler/declFileExportImportChain2_a.ts (0 errors) ====
|
||||
|
||||
module m1 {
|
||||
export module m2 {
|
||||
export class c1 {
|
||||
}
|
||||
}
|
||||
}
|
||||
export = m1;
|
||||
|
||||
==== tests/cases/compiler/declFileExportImportChain2_b.ts (0 errors) ====
|
||||
import a = require("declFileExportImportChain2_a");
|
||||
export = a;
|
||||
|
||||
==== tests/cases/compiler/declFileExportImportChain2_c.ts (0 errors) ====
|
||||
export import b = require("declFileExportImportChain2_b");
|
||||
|
||||
@ -64,3 +64,6 @@ import a = require("declFileExportImportChain2_a");
|
||||
export = a;
|
||||
//// [declFileExportImportChain2_c.d.ts]
|
||||
export import b = require("declFileExportImportChain2_b");
|
||||
//// [declFileExportImportChain2_d.d.ts]
|
||||
import c = require("declFileExportImportChain2_c");
|
||||
export declare var x: c.b.m2.c1;
|
||||
|
||||
@ -186,10 +186,10 @@ export declare module M.Q {
|
||||
}
|
||||
interface b extends M.C {
|
||||
}
|
||||
interface I extends M.N.I {
|
||||
interface I extends M.c.I {
|
||||
}
|
||||
module c {
|
||||
interface I extends M.N.I {
|
||||
interface I extends M.c.I {
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -242,10 +242,10 @@ export declare module M.Q {
|
||||
}
|
||||
interface b extends M.C {
|
||||
}
|
||||
interface I extends M.N.I {
|
||||
interface I extends M.c.I {
|
||||
}
|
||||
module c {
|
||||
interface I extends M.N.I {
|
||||
interface I extends M.c.I {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,16 +0,0 @@
|
||||
==== tests/cases/compiler/consumer.ts (1 errors) ====
|
||||
import e = require('./exporter');
|
||||
|
||||
export function w(): e.w { // Should be OK
|
||||
~
|
||||
!!! Return type of exported function has or is using private name 'Widget1'.
|
||||
return new e.w();
|
||||
}
|
||||
==== tests/cases/compiler/w1.ts (0 errors) ====
|
||||
|
||||
export = Widget1
|
||||
class Widget1 { name = 'one'; }
|
||||
|
||||
==== tests/cases/compiler/exporter.ts (0 errors) ====
|
||||
export import w = require('./w1');
|
||||
|
||||
@ -45,3 +45,6 @@ declare class Widget1 {
|
||||
}
|
||||
//// [exporter.d.ts]
|
||||
export import w = require('./w1');
|
||||
//// [consumer.d.ts]
|
||||
import e = require('./exporter');
|
||||
export declare function w(): e.w;
|
||||
|
||||
@ -1,16 +0,0 @@
|
||||
==== tests/cases/compiler/consumer.ts (1 errors) ====
|
||||
import e = require('./exporter');
|
||||
|
||||
export function w(): e.w { // Should be OK
|
||||
~
|
||||
!!! Return type of exported function has or is using private name 'Widget1'.
|
||||
return {name: 'value' };
|
||||
}
|
||||
==== tests/cases/compiler/w1.ts (0 errors) ====
|
||||
|
||||
export = Widget1
|
||||
interface Widget1 { name: string; }
|
||||
|
||||
==== tests/cases/compiler/exporter.ts (0 errors) ====
|
||||
export import w = require('./w1');
|
||||
|
||||
@ -37,3 +37,6 @@ interface Widget1 {
|
||||
}
|
||||
//// [exporter.d.ts]
|
||||
export import w = require('./w1');
|
||||
//// [consumer.d.ts]
|
||||
import e = require('./exporter');
|
||||
export declare function w(): e.w;
|
||||
|
||||
@ -1,161 +0,0 @@
|
||||
==== tests/cases/compiler/privacyGloImport.ts (4 errors) ====
|
||||
module m1 {
|
||||
export module m1_M1_public {
|
||||
export class c1 {
|
||||
}
|
||||
export function f1() {
|
||||
return new c1;
|
||||
}
|
||||
export var v1 = c1;
|
||||
export var v2: c1;
|
||||
}
|
||||
|
||||
module m1_M2_private {
|
||||
export class c1 {
|
||||
}
|
||||
export function f1() {
|
||||
return new c1;
|
||||
}
|
||||
export var v1 = c1;
|
||||
export var v2: c1;
|
||||
}
|
||||
|
||||
//export declare module "m1_M3_public" {
|
||||
// export function f1();
|
||||
// export class c1 {
|
||||
// }
|
||||
// export var v1: { new (): c1; };
|
||||
// export var v2: c1;
|
||||
//}
|
||||
|
||||
//declare module "m1_M4_private" {
|
||||
// export function f1();
|
||||
// export class c1 {
|
||||
// }
|
||||
// export var v1: { new (): c1; };
|
||||
// export var v2: c1;
|
||||
//}
|
||||
|
||||
import m1_im1_private = m1_M1_public;
|
||||
export var m1_im1_private_v1_public = m1_im1_private.c1;
|
||||
export var m1_im1_private_v2_public = new m1_im1_private.c1();
|
||||
export var m1_im1_private_v3_public = m1_im1_private.f1;
|
||||
export var m1_im1_private_v4_public = m1_im1_private.f1();
|
||||
var m1_im1_private_v1_private = m1_im1_private.c1;
|
||||
var m1_im1_private_v2_private = new m1_im1_private.c1();
|
||||
var m1_im1_private_v3_private = m1_im1_private.f1;
|
||||
var m1_im1_private_v4_private = m1_im1_private.f1();
|
||||
|
||||
|
||||
import m1_im2_private = m1_M2_private;
|
||||
export var m1_im2_private_v1_public = m1_im2_private.c1;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Exported variable 'm1_im2_private_v1_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
|
||||
export var m1_im2_private_v2_public = new m1_im2_private.c1();
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Exported variable 'm1_im2_private_v2_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
|
||||
export var m1_im2_private_v3_public = m1_im2_private.f1;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Exported variable 'm1_im2_private_v3_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
|
||||
export var m1_im2_private_v4_public = m1_im2_private.f1();
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Exported variable 'm1_im2_private_v4_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
|
||||
var m1_im2_private_v1_private = m1_im2_private.c1;
|
||||
var m1_im2_private_v2_private = new m1_im2_private.c1();
|
||||
var m1_im2_private_v3_private = m1_im2_private.f1;
|
||||
var m1_im2_private_v4_private = m1_im2_private.f1();
|
||||
|
||||
//import m1_im3_private = require("m1_M3_public");
|
||||
//export var m1_im3_private_v1_public = m1_im3_private.c1;
|
||||
//export var m1_im3_private_v2_public = new m1_im3_private.c1();
|
||||
//export var m1_im3_private_v3_public = m1_im3_private.f1;
|
||||
//export var m1_im3_private_v4_public = m1_im3_private.f1();
|
||||
//var m1_im3_private_v1_private = m1_im3_private.c1;
|
||||
//var m1_im3_private_v2_private = new m1_im3_private.c1();
|
||||
//var m1_im3_private_v3_private = m1_im3_private.f1;
|
||||
//var m1_im3_private_v4_private = m1_im3_private.f1();
|
||||
|
||||
//import m1_im4_private = require("m1_M4_private");
|
||||
//export var m1_im4_private_v1_public = m1_im4_private.c1;
|
||||
//export var m1_im4_private_v2_public = new m1_im4_private.c1();
|
||||
//export var m1_im4_private_v3_public = m1_im4_private.f1;
|
||||
//export var m1_im4_private_v4_public = m1_im4_private.f1();
|
||||
//var m1_im4_private_v1_private = m1_im4_private.c1;
|
||||
//var m1_im4_private_v2_private = new m1_im4_private.c1();
|
||||
//var m1_im4_private_v3_private = m1_im4_private.f1;
|
||||
//var m1_im4_private_v4_private = m1_im4_private.f1();
|
||||
|
||||
export import m1_im1_public = m1_M1_public;
|
||||
export import m1_im2_public = m1_M2_private;
|
||||
//export import m1_im3_public = require("m1_M3_public");
|
||||
//export import m1_im4_public = require("m1_M4_private");
|
||||
}
|
||||
|
||||
module glo_M1_public {
|
||||
export class c1 {
|
||||
}
|
||||
export function f1() {
|
||||
return new c1;
|
||||
}
|
||||
export var v1 = c1;
|
||||
export var v2: c1;
|
||||
}
|
||||
|
||||
declare module "glo_M2_public" {
|
||||
export function f1();
|
||||
export class c1 {
|
||||
}
|
||||
export var v1: { new (): c1; };
|
||||
export var v2: c1;
|
||||
}
|
||||
|
||||
declare module "use_glo_M1_public" {
|
||||
import use_glo_M1_public = glo_M1_public;
|
||||
export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
|
||||
export var use_glo_M1_public_v2_public: typeof use_glo_M1_public;
|
||||
export var use_glo_M1_public_v3_public: ()=> use_glo_M1_public.c1;
|
||||
var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
|
||||
var use_glo_M1_public_v2_private: typeof use_glo_M1_public;
|
||||
var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
|
||||
|
||||
import use_glo_M2_public = require("glo_M2_public");
|
||||
export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
|
||||
export var use_glo_M2_public_v2_public: typeof use_glo_M2_public;
|
||||
export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
|
||||
var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
|
||||
var use_glo_M2_public_v2_private: typeof use_glo_M2_public;
|
||||
var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
|
||||
|
||||
module m2 {
|
||||
//import errorImport = require("glo_M2_public");
|
||||
import nonerrorImport = glo_M1_public;
|
||||
|
||||
module m5 {
|
||||
//import m5_errorImport = require("glo_M2_public");
|
||||
import m5_nonerrorImport = glo_M1_public;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
declare module "anotherParseError" {
|
||||
module m2 {
|
||||
//declare module "abc" {
|
||||
//}
|
||||
}
|
||||
|
||||
module m2 {
|
||||
//module "abc2" {
|
||||
//}
|
||||
}
|
||||
//module "abc3" {
|
||||
//}
|
||||
}
|
||||
|
||||
module m2 {
|
||||
//import m3 = require("use_glo_M1_public");
|
||||
module m4 {
|
||||
var a = 10;
|
||||
//import m2 = require("use_glo_M1_public");
|
||||
}
|
||||
|
||||
}
|
||||
@ -228,3 +228,143 @@ var m2;
|
||||
var a = 10;
|
||||
})(m4 || (m4 = {}));
|
||||
})(m2 || (m2 = {}));
|
||||
|
||||
|
||||
//// [privacyGloImport.d.ts]
|
||||
declare module m1 {
|
||||
module m1_M1_public {
|
||||
class c1 {
|
||||
}
|
||||
function f1(): c1;
|
||||
var v1: typeof c1;
|
||||
var v2: c1;
|
||||
}
|
||||
import m1_im1_private = m1_M1_public;
|
||||
var m1_im1_private_v1_public: typeof m1_im1_private.c1;
|
||||
var m1_im1_private_v2_public: m1_im1_private.c1;
|
||||
var m1_im1_private_v3_public: () => m1_im1_private.c1;
|
||||
var m1_im1_private_v4_public: m1_im1_private.c1;
|
||||
import m1_im2_private = m1_M2_private;
|
||||
var m1_im2_private_v1_public: typeof m1_im2_private.c1;
|
||||
var m1_im2_private_v2_public: m1_im2_private.c1;
|
||||
var m1_im2_private_v3_public: () => m1_im2_private.c1;
|
||||
var m1_im2_private_v4_public: m1_im2_private.c1;
|
||||
export import m1_im1_public = m1_M1_public;
|
||||
export import m1_im2_public = m1_M2_private;
|
||||
}
|
||||
declare module glo_M1_public {
|
||||
class c1 {
|
||||
}
|
||||
function f1(): c1;
|
||||
var v1: typeof c1;
|
||||
var v2: c1;
|
||||
}
|
||||
declare module "glo_M2_public" {
|
||||
function f1(): any;
|
||||
class c1 {
|
||||
}
|
||||
var v1: new () => c1;
|
||||
var v2: c1;
|
||||
}
|
||||
declare module "use_glo_M1_public" {
|
||||
import use_glo_M1_public = glo_M1_public;
|
||||
var use_glo_M1_public_v1_public: new () => use_glo_M1_public.c1;
|
||||
var use_glo_M1_public_v2_public: typeof use_glo_M1_public;
|
||||
var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
|
||||
var use_glo_M1_public_v1_private: new () => use_glo_M1_public.c1;
|
||||
var use_glo_M1_public_v2_private: typeof use_glo_M1_public;
|
||||
var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
|
||||
import use_glo_M2_public = require("glo_M2_public");
|
||||
var use_glo_M2_public_v1_public: new () => use_glo_M2_public.c1;
|
||||
var use_glo_M2_public_v2_public: typeof use_glo_M2_public;
|
||||
var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
|
||||
var use_glo_M2_public_v1_private: new () => use_glo_M2_public.c1;
|
||||
var use_glo_M2_public_v2_private: typeof use_glo_M2_public;
|
||||
var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
|
||||
module m2 {
|
||||
module m5 {
|
||||
}
|
||||
}
|
||||
}
|
||||
declare module "anotherParseError" {
|
||||
module m2 {
|
||||
}
|
||||
module m2 {
|
||||
}
|
||||
}
|
||||
declare module m2 {
|
||||
}
|
||||
|
||||
|
||||
//// [DtsFileErrors]
|
||||
|
||||
|
||||
==== tests/cases/compiler/privacyGloImport.d.ts (2 errors) ====
|
||||
declare module m1 {
|
||||
module m1_M1_public {
|
||||
class c1 {
|
||||
}
|
||||
function f1(): c1;
|
||||
var v1: typeof c1;
|
||||
var v2: c1;
|
||||
}
|
||||
import m1_im1_private = m1_M1_public;
|
||||
var m1_im1_private_v1_public: typeof m1_im1_private.c1;
|
||||
var m1_im1_private_v2_public: m1_im1_private.c1;
|
||||
var m1_im1_private_v3_public: () => m1_im1_private.c1;
|
||||
var m1_im1_private_v4_public: m1_im1_private.c1;
|
||||
import m1_im2_private = m1_M2_private;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Cannot find name 'm1_M2_private'.
|
||||
var m1_im2_private_v1_public: typeof m1_im2_private.c1;
|
||||
var m1_im2_private_v2_public: m1_im2_private.c1;
|
||||
var m1_im2_private_v3_public: () => m1_im2_private.c1;
|
||||
var m1_im2_private_v4_public: m1_im2_private.c1;
|
||||
export import m1_im1_public = m1_M1_public;
|
||||
export import m1_im2_public = m1_M2_private;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Cannot find name 'm1_M2_private'.
|
||||
}
|
||||
declare module glo_M1_public {
|
||||
class c1 {
|
||||
}
|
||||
function f1(): c1;
|
||||
var v1: typeof c1;
|
||||
var v2: c1;
|
||||
}
|
||||
declare module "glo_M2_public" {
|
||||
function f1(): any;
|
||||
class c1 {
|
||||
}
|
||||
var v1: new () => c1;
|
||||
var v2: c1;
|
||||
}
|
||||
declare module "use_glo_M1_public" {
|
||||
import use_glo_M1_public = glo_M1_public;
|
||||
var use_glo_M1_public_v1_public: new () => use_glo_M1_public.c1;
|
||||
var use_glo_M1_public_v2_public: typeof use_glo_M1_public;
|
||||
var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
|
||||
var use_glo_M1_public_v1_private: new () => use_glo_M1_public.c1;
|
||||
var use_glo_M1_public_v2_private: typeof use_glo_M1_public;
|
||||
var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
|
||||
import use_glo_M2_public = require("glo_M2_public");
|
||||
var use_glo_M2_public_v1_public: new () => use_glo_M2_public.c1;
|
||||
var use_glo_M2_public_v2_public: typeof use_glo_M2_public;
|
||||
var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
|
||||
var use_glo_M2_public_v1_private: new () => use_glo_M2_public.c1;
|
||||
var use_glo_M2_public_v2_private: typeof use_glo_M2_public;
|
||||
var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
|
||||
module m2 {
|
||||
module m5 {
|
||||
}
|
||||
}
|
||||
}
|
||||
declare module "anotherParseError" {
|
||||
module m2 {
|
||||
}
|
||||
module m2 {
|
||||
}
|
||||
}
|
||||
declare module m2 {
|
||||
}
|
||||
|
||||
@ -1,365 +0,0 @@
|
||||
==== tests/cases/compiler/privacyImport.ts (4 errors) ====
|
||||
export module m1 {
|
||||
export module m1_M1_public {
|
||||
export class c1 {
|
||||
}
|
||||
export function f1() {
|
||||
return new c1;
|
||||
}
|
||||
export var v1 = c1;
|
||||
export var v2: c1;
|
||||
}
|
||||
|
||||
module m1_M2_private {
|
||||
export class c1 {
|
||||
}
|
||||
export function f1() {
|
||||
return new c1;
|
||||
}
|
||||
export var v1 = c1;
|
||||
export var v2: c1;
|
||||
}
|
||||
|
||||
//export declare module "m1_M3_public" {
|
||||
// export function f1();
|
||||
// export class c1 {
|
||||
// }
|
||||
// export var v1: { new (): c1; };
|
||||
// export var v2: c1;
|
||||
//}
|
||||
|
||||
//declare module "m1_M4_private" {
|
||||
// export function f1();
|
||||
// export class c1 {
|
||||
// }
|
||||
// export var v1: { new (): c1; };
|
||||
// export var v2: c1;
|
||||
//}
|
||||
|
||||
import m1_im1_private = m1_M1_public;
|
||||
export var m1_im1_private_v1_public = m1_im1_private.c1;
|
||||
export var m1_im1_private_v2_public = new m1_im1_private.c1();
|
||||
export var m1_im1_private_v3_public = m1_im1_private.f1;
|
||||
export var m1_im1_private_v4_public = m1_im1_private.f1();
|
||||
var m1_im1_private_v1_private = m1_im1_private.c1;
|
||||
var m1_im1_private_v2_private = new m1_im1_private.c1();
|
||||
var m1_im1_private_v3_private = m1_im1_private.f1;
|
||||
var m1_im1_private_v4_private = m1_im1_private.f1();
|
||||
|
||||
|
||||
import m1_im2_private = m1_M2_private;
|
||||
export var m1_im2_private_v1_public = m1_im2_private.c1;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Exported variable 'm1_im2_private_v1_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
|
||||
export var m1_im2_private_v2_public = new m1_im2_private.c1();
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Exported variable 'm1_im2_private_v2_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
|
||||
export var m1_im2_private_v3_public = m1_im2_private.f1;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Exported variable 'm1_im2_private_v3_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
|
||||
export var m1_im2_private_v4_public = m1_im2_private.f1();
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Exported variable 'm1_im2_private_v4_public' has or is using name 'm1_M2_private.c1' from private module 'm1_M2_private'.
|
||||
var m1_im2_private_v1_private = m1_im2_private.c1;
|
||||
var m1_im2_private_v2_private = new m1_im2_private.c1();
|
||||
var m1_im2_private_v3_private = m1_im2_private.f1;
|
||||
var m1_im2_private_v4_private = m1_im2_private.f1();
|
||||
|
||||
//import m1_im3_private = require("m1_M3_public");
|
||||
//export var m1_im3_private_v1_public = m1_im3_private.c1;
|
||||
//export var m1_im3_private_v2_public = new m1_im3_private.c1();
|
||||
//export var m1_im3_private_v3_public = m1_im3_private.f1;
|
||||
//export var m1_im3_private_v4_public = m1_im3_private.f1();
|
||||
//var m1_im3_private_v1_private = m1_im3_private.c1;
|
||||
//var m1_im3_private_v2_private = new m1_im3_private.c1();
|
||||
//var m1_im3_private_v3_private = m1_im3_private.f1;
|
||||
//var m1_im3_private_v4_private = m1_im3_private.f1();
|
||||
|
||||
//import m1_im4_private = require("m1_M4_private");
|
||||
//export var m1_im4_private_v1_public = m1_im4_private.c1;
|
||||
//export var m1_im4_private_v2_public = new m1_im4_private.c1();
|
||||
//export var m1_im4_private_v3_public = m1_im4_private.f1;
|
||||
//export var m1_im4_private_v4_public = m1_im4_private.f1();
|
||||
//var m1_im4_private_v1_private = m1_im4_private.c1;
|
||||
//var m1_im4_private_v2_private = new m1_im4_private.c1();
|
||||
//var m1_im4_private_v3_private = m1_im4_private.f1;
|
||||
//var m1_im4_private_v4_private = m1_im4_private.f1();
|
||||
|
||||
export import m1_im1_public = m1_M1_public;
|
||||
export import m1_im2_public = m1_M2_private;
|
||||
//export import m1_im3_public = require("m1_M3_public");
|
||||
//export import m1_im4_public = require("m1_M4_private");
|
||||
}
|
||||
|
||||
module m2 {
|
||||
export module m2_M1_public {
|
||||
export class c1 {
|
||||
}
|
||||
export function f1() {
|
||||
return new c1;
|
||||
}
|
||||
export var v1 = c1;
|
||||
export var v2: c1;
|
||||
}
|
||||
|
||||
module m2_M2_private {
|
||||
export class c1 {
|
||||
}
|
||||
export function f1() {
|
||||
return new c1;
|
||||
}
|
||||
export var v1 = c1;
|
||||
export var v2: c1;
|
||||
}
|
||||
|
||||
//export declare module "m2_M3_public" {
|
||||
// export function f1();
|
||||
// export class c1 {
|
||||
// }
|
||||
// export var v1: { new (): c1; };
|
||||
// export var v2: c1;
|
||||
//}
|
||||
|
||||
//declare module "m2_M4_private" {
|
||||
// export function f1();
|
||||
// export class c1 {
|
||||
// }
|
||||
// export var v1: { new (): c1; };
|
||||
// export var v2: c1;
|
||||
//}
|
||||
|
||||
import m1_im1_private = m2_M1_public;
|
||||
export var m1_im1_private_v1_public = m1_im1_private.c1;
|
||||
export var m1_im1_private_v2_public = new m1_im1_private.c1();
|
||||
export var m1_im1_private_v3_public = m1_im1_private.f1;
|
||||
export var m1_im1_private_v4_public = m1_im1_private.f1();
|
||||
var m1_im1_private_v1_private = m1_im1_private.c1;
|
||||
var m1_im1_private_v2_private = new m1_im1_private.c1();
|
||||
var m1_im1_private_v3_private = m1_im1_private.f1;
|
||||
var m1_im1_private_v4_private = m1_im1_private.f1();
|
||||
|
||||
|
||||
import m1_im2_private = m2_M2_private;
|
||||
export var m1_im2_private_v1_public = m1_im2_private.c1;
|
||||
export var m1_im2_private_v2_public = new m1_im2_private.c1();
|
||||
export var m1_im2_private_v3_public = m1_im2_private.f1;
|
||||
export var m1_im2_private_v4_public = m1_im2_private.f1();
|
||||
var m1_im2_private_v1_private = m1_im2_private.c1;
|
||||
var m1_im2_private_v2_private = new m1_im2_private.c1();
|
||||
var m1_im2_private_v3_private = m1_im2_private.f1;
|
||||
var m1_im2_private_v4_private = m1_im2_private.f1();
|
||||
|
||||
//import m1_im3_private = require("m2_M3_public");
|
||||
//export var m1_im3_private_v1_public = m1_im3_private.c1;
|
||||
//export var m1_im3_private_v2_public = new m1_im3_private.c1();
|
||||
//export var m1_im3_private_v3_public = m1_im3_private.f1;
|
||||
//export var m1_im3_private_v4_public = m1_im3_private.f1();
|
||||
//var m1_im3_private_v1_private = m1_im3_private.c1;
|
||||
//var m1_im3_private_v2_private = new m1_im3_private.c1();
|
||||
//var m1_im3_private_v3_private = m1_im3_private.f1;
|
||||
//var m1_im3_private_v4_private = m1_im3_private.f1();
|
||||
|
||||
//import m1_im4_private = require("m2_M4_private");
|
||||
//export var m1_im4_private_v1_public = m1_im4_private.c1;
|
||||
//export var m1_im4_private_v2_public = new m1_im4_private.c1();
|
||||
//export var m1_im4_private_v3_public = m1_im4_private.f1;
|
||||
//export var m1_im4_private_v4_public = m1_im4_private.f1();
|
||||
//var m1_im4_private_v1_private = m1_im4_private.c1;
|
||||
//var m1_im4_private_v2_private = new m1_im4_private.c1();
|
||||
//var m1_im4_private_v3_private = m1_im4_private.f1;
|
||||
//var m1_im4_private_v4_private = m1_im4_private.f1();
|
||||
|
||||
// Parse error to export module
|
||||
export import m1_im1_public = m2_M1_public;
|
||||
export import m1_im2_public = m2_M2_private;
|
||||
//export import m1_im3_public = require("m2_M3_public");
|
||||
//export import m1_im4_public = require("m2_M4_private");
|
||||
}
|
||||
|
||||
export module glo_M1_public {
|
||||
export class c1 {
|
||||
}
|
||||
export function f1() {
|
||||
return new c1;
|
||||
}
|
||||
export var v1 = c1;
|
||||
export var v2: c1;
|
||||
}
|
||||
|
||||
//export declare module "glo_M2_public" {
|
||||
// export function f1();
|
||||
// export class c1 {
|
||||
// }
|
||||
// export var v1: { new (): c1; };
|
||||
// export var v2: c1;
|
||||
//}
|
||||
|
||||
export module glo_M3_private {
|
||||
export class c1 {
|
||||
}
|
||||
export function f1() {
|
||||
return new c1;
|
||||
}
|
||||
export var v1 = c1;
|
||||
export var v2: c1;
|
||||
}
|
||||
|
||||
//export declare module "glo_M4_private" {
|
||||
// export function f1();
|
||||
// export class c1 {
|
||||
// }
|
||||
// export var v1: { new (): c1; };
|
||||
// export var v2: c1;
|
||||
//}
|
||||
|
||||
|
||||
import glo_im1_private = glo_M1_public;
|
||||
export var glo_im1_private_v1_public = glo_im1_private.c1;
|
||||
export var glo_im1_private_v2_public = new glo_im1_private.c1();
|
||||
export var glo_im1_private_v3_public = glo_im1_private.f1;
|
||||
export var glo_im1_private_v4_public = glo_im1_private.f1();
|
||||
var glo_im1_private_v1_private = glo_im1_private.c1;
|
||||
var glo_im1_private_v2_private = new glo_im1_private.c1();
|
||||
var glo_im1_private_v3_private = glo_im1_private.f1;
|
||||
var glo_im1_private_v4_private = glo_im1_private.f1();
|
||||
|
||||
|
||||
//import glo_im2_private = require("glo_M2_public");
|
||||
//export var glo_im2_private_v1_public = glo_im2_private.c1;
|
||||
//export var glo_im2_private_v2_public = new glo_im2_private.c1();
|
||||
//export var glo_im2_private_v3_public = glo_im2_private.f1;
|
||||
//export var glo_im2_private_v4_public = glo_im2_private.f1();
|
||||
//var glo_im2_private_v1_private = glo_im2_private.c1;
|
||||
//var glo_im2_private_v2_private = new glo_im2_private.c1();
|
||||
//var glo_im2_private_v3_private = glo_im2_private.f1;
|
||||
//var glo_im2_private_v4_private = glo_im2_private.f1();
|
||||
|
||||
import glo_im3_private = glo_M3_private;
|
||||
export var glo_im3_private_v1_public = glo_im3_private.c1;
|
||||
export var glo_im3_private_v2_public = new glo_im3_private.c1();
|
||||
export var glo_im3_private_v3_public = glo_im3_private.f1;
|
||||
export var glo_im3_private_v4_public = glo_im3_private.f1();
|
||||
var glo_im3_private_v1_private = glo_im3_private.c1;
|
||||
var glo_im3_private_v2_private = new glo_im3_private.c1();
|
||||
var glo_im3_private_v3_private = glo_im3_private.f1;
|
||||
var glo_im3_private_v4_private = glo_im3_private.f1();
|
||||
|
||||
//import glo_im4_private = require("glo_M4_private");
|
||||
//export var glo_im4_private_v1_public = glo_im4_private.c1;
|
||||
//export var glo_im4_private_v2_public = new glo_im4_private.c1();
|
||||
//export var glo_im4_private_v3_public = glo_im4_private.f1;
|
||||
//export var glo_im4_private_v4_public = glo_im4_private.f1();
|
||||
//var glo_im4_private_v1_private = glo_im4_private.c1;
|
||||
//var glo_im4_private_v2_private = new glo_im4_private.c1();
|
||||
//var glo_im4_private_v3_private = glo_im4_private.f1;
|
||||
//var glo_im4_private_v4_private = glo_im4_private.f1();
|
||||
|
||||
// Parse error to export module
|
||||
export import glo_im1_public = glo_M1_public;
|
||||
export import glo_im2_public = glo_M3_private;
|
||||
//export import glo_im3_public = require("glo_M2_public");
|
||||
//export import glo_im4_public = require("glo_M4_private");
|
||||
|
||||
|
||||
//export declare module "use_glo_M1_public" {
|
||||
// import use_glo_M1_public = glo_M1_public;
|
||||
// export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
|
||||
// export var use_glo_M1_public_v2_public: use_glo_M1_public;
|
||||
// export var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
|
||||
// var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
|
||||
// var use_glo_M1_public_v2_private: use_glo_M1_public;
|
||||
// var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
|
||||
|
||||
// import use_glo_M2_public = require("glo_M2_public");
|
||||
// export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
|
||||
// export var use_glo_M2_public_v2_public: use_glo_M2_public;
|
||||
// export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
|
||||
// var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
|
||||
// var use_glo_M2_public_v2_private: use_glo_M2_public;
|
||||
// var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
|
||||
|
||||
// module m2 {
|
||||
// import errorImport = require("glo_M2_public");
|
||||
// import nonerrorImport = glo_M1_public;
|
||||
|
||||
// module m5 {
|
||||
// import m5_errorImport = require("glo_M2_public");
|
||||
// import m5_nonerrorImport = glo_M1_public;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
//declare module "use_glo_M3_private" {
|
||||
// import use_glo_M3_private = glo_M3_private;
|
||||
// export var use_glo_M3_private_v1_public: { new (): use_glo_M3_private.c1; };
|
||||
// export var use_glo_M3_private_v2_public: use_glo_M3_private;
|
||||
// export var use_glo_M3_private_v3_public: () => use_glo_M3_private.c1;
|
||||
// var use_glo_M3_private_v1_private: { new (): use_glo_M3_private.c1; };
|
||||
// var use_glo_M3_private_v2_private: use_glo_M3_private;
|
||||
// var use_glo_M3_private_v3_private: () => use_glo_M3_private.c1;
|
||||
|
||||
// import use_glo_M4_private = require("glo_M4_private");
|
||||
// export var use_glo_M4_private_v1_public: { new (): use_glo_M4_private.c1; };
|
||||
// export var use_glo_M4_private_v2_public: use_glo_M4_private;
|
||||
// export var use_glo_M4_private_v3_public: () => use_glo_M4_private.c1;
|
||||
// var use_glo_M4_private_v1_private: { new (): use_glo_M4_private.c1; };
|
||||
// var use_glo_M4_private_v2_private: use_glo_M4_private;
|
||||
// var use_glo_M4_private_v3_private: () => use_glo_M4_private.c1;
|
||||
|
||||
// module m2 {
|
||||
// import errorImport = require("glo_M4_private");
|
||||
// import nonerrorImport = glo_M3_private;
|
||||
|
||||
// module m5 {
|
||||
// import m5_errorImport = require("glo_M4_private");
|
||||
// import m5_nonerrorImport = glo_M3_private;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
//declare module "anotherParseError" {
|
||||
// module m2 {
|
||||
// declare module "abc" {
|
||||
// }
|
||||
// }
|
||||
|
||||
// module m2 {
|
||||
// module "abc2" {
|
||||
// }
|
||||
// }
|
||||
// module "abc3" {
|
||||
// }
|
||||
//}
|
||||
|
||||
//declare export module "anotherParseError2" {
|
||||
// module m2 {
|
||||
// declare module "abc" {
|
||||
// }
|
||||
// }
|
||||
|
||||
// module m2 {
|
||||
// module "abc2" {
|
||||
// }
|
||||
// }
|
||||
// module "abc3" {
|
||||
// }
|
||||
//}
|
||||
|
||||
module m2 {
|
||||
//import m3 = require("use_glo_M1_public");
|
||||
module m4 {
|
||||
var a = 10;
|
||||
//import m2 = require("use_glo_M1_public");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export module m3 {
|
||||
//import m3 = require("use_glo_M1_public");
|
||||
module m4 {
|
||||
var a = 10;
|
||||
//import m2 = require("use_glo_M1_public");
|
||||
}
|
||||
|
||||
}
|
||||
@ -527,3 +527,115 @@ var m2;
|
||||
})(m4 || (m4 = {}));
|
||||
})(exports.m3 || (exports.m3 = {}));
|
||||
var m3 = exports.m3;
|
||||
|
||||
|
||||
//// [privacyImport.d.ts]
|
||||
export declare module m1 {
|
||||
module m1_M1_public {
|
||||
class c1 {
|
||||
}
|
||||
function f1(): c1;
|
||||
var v1: typeof c1;
|
||||
var v2: c1;
|
||||
}
|
||||
import m1_im1_private = m1_M1_public;
|
||||
var m1_im1_private_v1_public: typeof m1_im1_private.c1;
|
||||
var m1_im1_private_v2_public: m1_im1_private.c1;
|
||||
var m1_im1_private_v3_public: () => m1_im1_private.c1;
|
||||
var m1_im1_private_v4_public: m1_im1_private.c1;
|
||||
import m1_im2_private = m1_M2_private;
|
||||
var m1_im2_private_v1_public: typeof m1_im2_private.c1;
|
||||
var m1_im2_private_v2_public: m1_im2_private.c1;
|
||||
var m1_im2_private_v3_public: () => m1_im2_private.c1;
|
||||
var m1_im2_private_v4_public: m1_im2_private.c1;
|
||||
export import m1_im1_public = m1_M1_public;
|
||||
export import m1_im2_public = m1_M2_private;
|
||||
}
|
||||
export declare module glo_M1_public {
|
||||
class c1 {
|
||||
}
|
||||
function f1(): c1;
|
||||
var v1: typeof c1;
|
||||
var v2: c1;
|
||||
}
|
||||
export declare module glo_M3_private {
|
||||
class c1 {
|
||||
}
|
||||
function f1(): c1;
|
||||
var v1: typeof c1;
|
||||
var v2: c1;
|
||||
}
|
||||
import glo_im1_private = glo_M1_public;
|
||||
export declare var glo_im1_private_v1_public: typeof glo_im1_private.c1;
|
||||
export declare var glo_im1_private_v2_public: glo_im1_private.c1;
|
||||
export declare var glo_im1_private_v3_public: () => glo_im1_private.c1;
|
||||
export declare var glo_im1_private_v4_public: glo_im1_private.c1;
|
||||
import glo_im3_private = glo_M3_private;
|
||||
export declare var glo_im3_private_v1_public: typeof glo_im3_private.c1;
|
||||
export declare var glo_im3_private_v2_public: glo_im3_private.c1;
|
||||
export declare var glo_im3_private_v3_public: () => glo_im3_private.c1;
|
||||
export declare var glo_im3_private_v4_public: glo_im3_private.c1;
|
||||
export import glo_im1_public = glo_M1_public;
|
||||
export import glo_im2_public = glo_M3_private;
|
||||
export declare module m3 {
|
||||
}
|
||||
|
||||
|
||||
//// [DtsFileErrors]
|
||||
|
||||
|
||||
==== tests/cases/compiler/privacyImport.d.ts (2 errors) ====
|
||||
export declare module m1 {
|
||||
module m1_M1_public {
|
||||
class c1 {
|
||||
}
|
||||
function f1(): c1;
|
||||
var v1: typeof c1;
|
||||
var v2: c1;
|
||||
}
|
||||
import m1_im1_private = m1_M1_public;
|
||||
var m1_im1_private_v1_public: typeof m1_im1_private.c1;
|
||||
var m1_im1_private_v2_public: m1_im1_private.c1;
|
||||
var m1_im1_private_v3_public: () => m1_im1_private.c1;
|
||||
var m1_im1_private_v4_public: m1_im1_private.c1;
|
||||
import m1_im2_private = m1_M2_private;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Cannot find name 'm1_M2_private'.
|
||||
var m1_im2_private_v1_public: typeof m1_im2_private.c1;
|
||||
var m1_im2_private_v2_public: m1_im2_private.c1;
|
||||
var m1_im2_private_v3_public: () => m1_im2_private.c1;
|
||||
var m1_im2_private_v4_public: m1_im2_private.c1;
|
||||
export import m1_im1_public = m1_M1_public;
|
||||
export import m1_im2_public = m1_M2_private;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! Cannot find name 'm1_M2_private'.
|
||||
}
|
||||
export declare module glo_M1_public {
|
||||
class c1 {
|
||||
}
|
||||
function f1(): c1;
|
||||
var v1: typeof c1;
|
||||
var v2: c1;
|
||||
}
|
||||
export declare module glo_M3_private {
|
||||
class c1 {
|
||||
}
|
||||
function f1(): c1;
|
||||
var v1: typeof c1;
|
||||
var v2: c1;
|
||||
}
|
||||
import glo_im1_private = glo_M1_public;
|
||||
export declare var glo_im1_private_v1_public: typeof glo_im1_private.c1;
|
||||
export declare var glo_im1_private_v2_public: glo_im1_private.c1;
|
||||
export declare var glo_im1_private_v3_public: () => glo_im1_private.c1;
|
||||
export declare var glo_im1_private_v4_public: glo_im1_private.c1;
|
||||
import glo_im3_private = glo_M3_private;
|
||||
export declare var glo_im3_private_v1_public: typeof glo_im3_private.c1;
|
||||
export declare var glo_im3_private_v2_public: glo_im3_private.c1;
|
||||
export declare var glo_im3_private_v3_public: () => glo_im3_private.c1;
|
||||
export declare var glo_im3_private_v4_public: glo_im3_private.c1;
|
||||
export import glo_im1_public = glo_M1_public;
|
||||
export import glo_im2_public = glo_M3_private;
|
||||
export declare module m3 {
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user