TypeScript/tests/baselines/reference/declFileExportImportChain2.js
Sheetal Nandi c643f39557 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
2014-08-08 12:57:59 -07:00

70 lines
1.8 KiB
JavaScript

//// [tests/cases/compiler/declFileExportImportChain2.ts] ////
//// [declFileExportImportChain2_a.ts]
module m1 {
export module m2 {
export class c1 {
}
}
}
export = m1;
//// [declFileExportImportChain2_b.ts]
import a = require("declFileExportImportChain2_a");
export = a;
//// [declFileExportImportChain2_c.ts]
export import b = require("declFileExportImportChain2_b");
//// [declFileExportImportChain2_d.ts]
import c = require("declFileExportImportChain2_c");
export var x: c.b.m2.c1;
//// [declFileExportImportChain2_a.js]
define(["require", "exports"], function (require, exports) {
var m1;
(function (m1) {
(function (m2) {
var c1 = (function () {
function c1() {
}
return c1;
})();
m2.c1 = c1;
})(m1.m2 || (m1.m2 = {}));
var m2 = m1.m2;
})(m1 || (m1 = {}));
return m1;
});
//// [declFileExportImportChain2_b.js]
define(["require", "exports", "declFileExportImportChain2_a"], function (require, exports, a) {
return a;
});
//// [declFileExportImportChain2_c.js]
define(["require", "exports", "declFileExportImportChain2_b"], function (require, exports, b) {
exports.b = b;
});
//// [declFileExportImportChain2_d.js]
define(["require", "exports"], function (require, exports) {
exports.x;
});
//// [declFileExportImportChain2_a.d.ts]
declare module m1 {
module m2 {
class c1 {
}
}
}
export = m1;
//// [declFileExportImportChain2_b.d.ts]
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;