From a5b9a4c5ea8a3f37f1d6818f85c22e521c082ccb Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 21 Jun 2018 13:51:12 -0700 Subject: [PATCH] Use `getObjectFlags` as suggested in previous PR. --- src/compiler/checker.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 92019736c3..bdb4994f41 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -10861,13 +10861,15 @@ namespace ts { } function findMatchingTypeReferenceOrTypeAliasReference(source: Type, unionTarget: UnionOrIntersectionType) { - if (source.flags & TypeFlags.Object && (source as ObjectType).objectFlags & (ObjectFlags.Reference | ObjectFlags.Anonymous) && unionTarget.flags & TypeFlags.Union) { + const sourceObjectFlags = getObjectFlags(source); + if (sourceObjectFlags & (ObjectFlags.Reference | ObjectFlags.Anonymous) && unionTarget.flags & TypeFlags.Union) { return find(unionTarget.types, target => { if (target.flags & TypeFlags.Object) { - if ((source as ObjectType).objectFlags & (target as ObjectType).objectFlags & ObjectFlags.Reference) { + const overlapObjFlags = sourceObjectFlags & getObjectFlags(target); + if (overlapObjFlags & ObjectFlags.Reference) { return (source as TypeReference).target === (target as TypeReference).target; } - if ((source as ObjectType).objectFlags & (target as ObjectType).objectFlags & ObjectFlags.Anonymous) { + if (overlapObjFlags & ObjectFlags.Anonymous) { return !!(source as AnonymousType).aliasSymbol && (source as AnonymousType).aliasSymbol === (target as AnonymousType).aliasSymbol; } }