Merge pull request #335 from Microsoft/export_assignments_on_links

move exportAssignSymbol to symbolLinks
This commit is contained in:
Vladimir Matveev 2014-08-02 14:10:56 -07:00
commit 23117a9d97
2 changed files with 7 additions and 5 deletions

View file

@ -443,13 +443,15 @@ module ts {
return moduleSymbol;
}
function getExportAssignmentSymbol(symbol: Symbol): Symbol {
function getExportAssignmentSymbol(symbol: Symbol): Symbol {
checkTypeOfExportAssignmentSymbol(symbol);
return symbol.exportAssignSymbol === unknownSymbol ? undefined : symbol.exportAssignSymbol;
var symbolLinks = getSymbolLinks(symbol);
return symbolLinks.exportAssignSymbol === unknownSymbol ? undefined : symbolLinks.exportAssignSymbol;
}
function checkTypeOfExportAssignmentSymbol(containerSymbol: Symbol): void {
if (!containerSymbol.exportAssignSymbol) {
var symbolLinks = getSymbolLinks(containerSymbol);
if (!symbolLinks.exportAssignSymbol) {
var exportInformation = collectExportInformationForSourceFileOrModule(containerSymbol);
if (exportInformation.exportAssignments.length) {
if (exportInformation.exportAssignments.length > 1) {
@ -470,7 +472,7 @@ module ts {
var exportSymbol = resolveName(node, node.exportName.text, meaning, Diagnostics.Cannot_find_name_0, identifierToString(node.exportName));
}
}
containerSymbol.exportAssignSymbol = exportSymbol || unknownSymbol;
symbolLinks.exportAssignSymbol = exportSymbol || unknownSymbol;
}
}

View file

@ -717,7 +717,6 @@ module ts {
members?: SymbolTable; // Class, interface or literal instance members
exports?: SymbolTable; // Module exports
exportSymbol?: Symbol; // Exported symbol associated with this symbol
exportAssignSymbol?: Symbol; // Symbol exported from external module
valueDeclaration?: Declaration // First value declaration of the symbol
}
@ -727,6 +726,7 @@ module ts {
declaredType?: Type; // Type of class, interface, enum, or type parameter
mapper?: TypeMapper; // Type mapper for instantiation alias
referenced?: boolean; // True if alias symbol has been referenced as a value
exportAssignSymbol?: Symbol; // Symbol exported from external module
}
export interface TransientSymbol extends Symbol, SymbolLinks { }