Handle merging unknownSymbol (#28453)

* Handle merging unknownSymbol

* mergeSymbol of unknown target returns source, not unknown
This commit is contained in:
Andy
2018-11-19 10:51:58 -08:00
committed by Nathan Shively-Sanders
parent dc03115d14
commit b8a8ceae86
5 changed files with 43 additions and 1 deletions

View File

@@ -870,7 +870,11 @@ namespace ts {
(source.flags | target.flags) & SymbolFlags.Assignment) {
Debug.assert(source !== target);
if (!(target.flags & SymbolFlags.Transient)) {
target = cloneSymbol(resolveSymbol(target));
const resolvedTarget = resolveSymbol(target);
if (resolvedTarget === unknownSymbol) {
return source;
}
target = cloneSymbol(resolvedTarget);
}
// Javascript static-property-assignment declarations always merge, even though they are also values
if (source.flags & SymbolFlags.ValueModule && target.flags & SymbolFlags.ValueModule && target.constEnumOnlyModule && !source.constEnumOnlyModule) {