@@ -1083,7 +1083,6 @@ import {
10831083 tryGetModuleSpecifierFromDeclaration,
10841084 tryGetPropertyAccessOrIdentifierToString,
10851085 TryStatement,
1086- TSGO_COMPAT,
10871086 TupleType,
10881087 TupleTypeNode,
10891088 TupleTypeReference,
@@ -1543,6 +1542,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
15431542 var useUnknownInCatchVariables = getStrictOptionValue(compilerOptions, "useUnknownInCatchVariables");
15441543 var exactOptionalPropertyTypes = compilerOptions.exactOptionalPropertyTypes;
15451544 var noUncheckedSideEffectImports = compilerOptions.noUncheckedSideEffectImports !== false;
1545+ var stableTypeOrdering = compilerOptions.stableTypeOrdering !== false;
15461546
15471547 var checkBinaryExpression = createCheckBinaryExpression();
15481548 var emitResolver = createResolver();
@@ -5559,7 +5559,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
55595559 }
55605560
55615561 function createTypeofType() {
5562- return getUnionType(map(TSGO_COMPAT ? [...typeofNEFacts.keys()].sort() : arrayFrom(typeofNEFacts.keys()), getStringLiteralType));
5562+ return getUnionType(map(stableTypeOrdering ? [...typeofNEFacts.keys()].sort() : arrayFrom(typeofNEFacts.keys()), getStringLiteralType));
55635563 }
55645564
55655565 function createTypeParameter(symbol?: Symbol) {
@@ -5579,7 +5579,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
55795579 }
55805580
55815581 function getNamedMembers(members: SymbolTable, container: Symbol | undefined): Symbol[] {
5582- if (!TSGO_COMPAT ) {
5582+ if (!stableTypeOrdering ) {
55835583 let result: Symbol[] | undefined;
55845584 members.forEach((symbol, id) => {
55855585 if (isNamedMember(symbol, id)) {
@@ -18072,11 +18072,11 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
1807218072 }
1807318073
1807418074 function containsType(types: readonly Type[], type: Type): boolean {
18075- return TSGO_COMPAT ? binarySearch(types, type, identity, compareTypes) >= 0 : binarySearch(types, type, getTypeId, compareValues) >= 0;
18075+ return stableTypeOrdering ? binarySearch(types, type, identity, compareTypes) >= 0 : binarySearch(types, type, getTypeId, compareValues) >= 0;
1807618076 }
1807718077
1807818078 function insertType(types: Type[], type: Type): boolean {
18079- const index = TSGO_COMPAT ? binarySearch(types, type, identity, compareTypes) : binarySearch(types, type, getTypeId, compareValues);
18079+ const index = stableTypeOrdering ? binarySearch(types, type, identity, compareTypes) : binarySearch(types, type, getTypeId, compareValues);
1808018080 if (index < 0) {
1808118081 types.splice(~index, 0, type);
1808218082 return true;
@@ -18098,7 +18098,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
1809818098 }
1809918099 else {
1810018100 const len = typeSet.length;
18101- const index = TSGO_COMPAT ? binarySearch(typeSet, type, identity, compareTypes) : (len && type.id > typeSet[len - 1].id ? ~len : binarySearch(typeSet, type, getTypeId, compareValues));
18101+ const index = stableTypeOrdering ? binarySearch(typeSet, type, identity, compareTypes) : (len && type.id > typeSet[len - 1].id ? ~len : binarySearch(typeSet, type, getTypeId, compareValues));
1810218102 if (index < 0) {
1810318103 typeSet.splice(~index, 0, type);
1810418104 }
@@ -53787,7 +53787,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
5378753787 function sortSymbolsIfTSGoCompat(array: Symbol[]): Symbol[];
5378853788 function sortSymbolsIfTSGoCompat(array: Symbol[] | undefined): Symbol[] | undefined;
5378953789 function sortSymbolsIfTSGoCompat(array: Symbol[] | undefined): Symbol[] | undefined {
53790- if (TSGO_COMPAT && array) {
53790+ if (stableTypeOrdering && array) {
5379153791 return array.sort(compareSymbols); // eslint-disable-line local/no-array-mutating-method-expressions
5379253792 }
5379353793 return array;
0 commit comments