@@ -2195,7 +2195,7 @@ namespace ts {
2195
2195
writePunctuation(writer, SyntaxKind.DotToken);
2196
2196
appendSymbolNameOnly(type.symbol, writer);
2197
2197
}
2198
- else if (getObjectFlags(type) & ( ObjectFlags.Class | ObjectFlags.Interface) || type.flags & (TypeFlags.Enum | TypeFlags.TypeParameter)) {
2198
+ else if (getObjectFlags(type) & ObjectFlags.ClassOrInterface || type.flags & (TypeFlags.Enum | TypeFlags.TypeParameter)) {
2199
2199
// The specified symbol flags need to be reinterpreted as type flags
2200
2200
buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Type, SymbolFormatFlags.None, nextFlags);
2201
2201
}
@@ -3705,7 +3705,7 @@ namespace ts {
3705
3705
if (baseType === unknownType) {
3706
3706
return;
3707
3707
}
3708
- if (!(getObjectFlags(getTargetType(baseType)) & ( ObjectFlags.Class | ObjectFlags.Interface) )) {
3708
+ if (!(getObjectFlags(getTargetType(baseType)) & ObjectFlags.ClassOrInterface )) {
3709
3709
error(baseTypeNode.expression, Diagnostics.Base_constructor_return_type_0_is_not_a_class_or_interface_type, typeToString(baseType));
3710
3710
return;
3711
3711
}
@@ -3741,7 +3741,7 @@ namespace ts {
3741
3741
for (const node of getInterfaceBaseTypeNodes(<InterfaceDeclaration>declaration)) {
3742
3742
const baseType = getTypeFromTypeNode(node);
3743
3743
if (baseType !== unknownType) {
3744
- if (getObjectFlags(getTargetType(baseType)) & ( ObjectFlags.Class | ObjectFlags.Interface) ) {
3744
+ if (getObjectFlags(getTargetType(baseType)) & ObjectFlags.ClassOrInterface ) {
3745
3745
if (type !== baseType && !hasBaseType(<InterfaceType>baseType, type)) {
3746
3746
if (type.resolvedBaseTypes === emptyArray) {
3747
3747
type.resolvedBaseTypes = [<ObjectType>baseType];
@@ -4373,7 +4373,7 @@ namespace ts {
4373
4373
if ((<ObjectType>type).objectFlags & ObjectFlags.Reference) {
4374
4374
resolveTypeReferenceMembers(<TypeReference>type);
4375
4375
}
4376
- else if ((<ObjectType>type).objectFlags & ( ObjectFlags.Class | ObjectFlags.Interface) ) {
4376
+ else if ((<ObjectType>type).objectFlags & ObjectFlags.ClassOrInterface ) {
4377
4377
resolveClassOrInterfaceMembers(<InterfaceType>type);
4378
4378
}
4379
4379
else if ((<ObjectType>type).objectFlags & ObjectFlags.Anonymous) {
@@ -8575,10 +8575,6 @@ namespace ts {
8575
8575
return isTypeSubsetOf(elementType, evolvingArrayType.elementType) ? evolvingArrayType : getEvolvingArrayType(getUnionType([evolvingArrayType.elementType, elementType]));
8576
8576
}
8577
8577
8578
- function isEvolvingArrayType(type: Type) {
8579
- return !!(getObjectFlags(type) & ObjectFlags.EvolvingArray);
8580
- }
8581
-
8582
8578
function createFinalArrayType(elementType: Type) {
8583
8579
return elementType.flags & TypeFlags.Never ?
8584
8580
autoArrayType :
@@ -8593,18 +8589,18 @@ namespace ts {
8593
8589
}
8594
8590
8595
8591
function finalizeEvolvingArrayType(type: Type): Type {
8596
- return isEvolvingArrayType (type) ? getFinalArrayType(<EvolvingArrayType>type) : type;
8592
+ return getObjectFlags (type) & ObjectFlags.EvolvingArray ? getFinalArrayType(<EvolvingArrayType>type) : type;
8597
8593
}
8598
8594
8599
8595
function getElementTypeOfEvolvingArrayType(type: Type) {
8600
- return isEvolvingArrayType (type) ? (<EvolvingArrayType>type).elementType : neverType;
8596
+ return getObjectFlags (type) & ObjectFlags.EvolvingArray ? (<EvolvingArrayType>type).elementType : neverType;
8601
8597
}
8602
8598
8603
8599
function isEvolvingArrayTypeList(types: Type[]) {
8604
8600
let hasEvolvingArrayType = false;
8605
8601
for (const t of types) {
8606
8602
if (!(t.flags & TypeFlags.Never)) {
8607
- if (!isEvolvingArrayType(t )) {
8603
+ if (!(getObjectFlags(t) & ObjectFlags.EvolvingArray )) {
8608
8604
return false;
8609
8605
}
8610
8606
hasEvolvingArrayType = true;
@@ -8655,7 +8651,7 @@ namespace ts {
8655
8651
// we give type 'any[]' to 'x' instead of using the type determined by control flow analysis such that operations
8656
8652
// on empty arrays are possible without implicit any errors and new element types can be inferred without
8657
8653
// type mismatch errors.
8658
- const resultType = isEvolvingArrayType (evolvedType) && isEvolvingArrayOperationTarget(reference) ? anyArrayType : finalizeEvolvingArrayType(evolvedType);
8654
+ const resultType = getObjectFlags (evolvedType) & ObjectFlags.EvolvingArray && isEvolvingArrayOperationTarget(reference) ? anyArrayType : finalizeEvolvingArrayType(evolvedType);
8659
8655
if (reference.parent.kind === SyntaxKind.NonNullExpression && getTypeWithFacts(resultType, TypeFacts.NEUndefinedOrNull).flags & TypeFlags.Never) {
8660
8656
return declaredType;
8661
8657
}
@@ -8768,7 +8764,7 @@ namespace ts {
8768
8764
if (isMatchingReference(reference, getReferenceCandidate(expr))) {
8769
8765
const flowType = getTypeAtFlowNode(flow.antecedent);
8770
8766
const type = getTypeFromFlowType(flowType);
8771
- if (isEvolvingArrayType (type)) {
8767
+ if (getObjectFlags (type) & ObjectFlags.EvolvingArray ) {
8772
8768
let evolvedType = <EvolvingArrayType>type;
8773
8769
if (node.kind === SyntaxKind.CallExpression) {
8774
8770
for (const arg of (<CallExpression>node).arguments) {
@@ -11249,7 +11245,7 @@ namespace ts {
11249
11245
}
11250
11246
11251
11247
// TODO: why is the first part of this check here?
11252
- if (!(getObjectFlags(getTargetType(type)) & ( ObjectFlags.Class | ObjectFlags.Interface) && hasBaseType(<InterfaceType>type, enclosingClass))) {
11248
+ if (!(getObjectFlags(getTargetType(type)) & ObjectFlags.ClassOrInterface && hasBaseType(<InterfaceType>type, enclosingClass))) {
11253
11249
error(errorNode, Diagnostics.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1, symbolToString(prop), typeToString(enclosingClass));
11254
11250
return false;
11255
11251
}
@@ -17174,8 +17170,8 @@ namespace ts {
17174
17170
if (produceDiagnostics) {
17175
17171
const t = getTypeFromTypeNode(typeRefNode);
17176
17172
if (t !== unknownType) {
17177
- const declaredType = ( getObjectFlags(t) & ObjectFlags.Reference) ? (<TypeReference>t).target : t;
17178
- if (getObjectFlags(declaredType) & ( ObjectFlags.Class | ObjectFlags.Interface) ) {
17173
+ const declaredType = getObjectFlags(t) & ObjectFlags.Reference ? (<TypeReference>t).target : t;
17174
+ if (getObjectFlags(declaredType) & ObjectFlags.ClassOrInterface ) {
17179
17175
checkTypeAssignableTo(typeWithThis, getTypeWithThisArgument(t, type.thisType), node.name || node, Diagnostics.Class_0_incorrectly_implements_interface_1);
17180
17176
}
17181
17177
else {
0 commit comments