Consider jscontainer aliases as referencible even if they have other local meanings (#23119)

This commit is contained in:
Wesley Wigham
2018-04-03 12:27:16 -07:00
committed by GitHub
parent a81a645128
commit cbce76ed13
5 changed files with 70 additions and 1 deletions

View File

@@ -1933,9 +1933,11 @@ namespace ts {
/**
* Indicates that a symbol is an alias that does not merge with a local declaration.
* OR Is a JSContainer which may merge an alias with a local declaration
*/
function isNonLocalAlias(symbol: Symbol, excludes = SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace) {
return symbol && (symbol.flags & (SymbolFlags.Alias | excludes)) === SymbolFlags.Alias;
if (!symbol) return false;
return (symbol.flags & (SymbolFlags.Alias | excludes)) === SymbolFlags.Alias || (symbol.flags & SymbolFlags.Alias && symbol.flags & SymbolFlags.JSContainer);
}
function resolveSymbol(symbol: Symbol, dontResolveAlias?: boolean): Symbol {