diff --git a/docs/public-api-0.8.json b/docs/public-api-0.8.json
index 6a4df2f7..b6ce1e94 100644
--- a/docs/public-api-0.8.json
+++ b/docs/public-api-0.8.json
@@ -2259,6 +2259,30 @@
"subjectQueue"
]
},
+ "@wrnexus/react": {
+ ".": [
+ "BoundStore",
+ "IslandErrorBoundary",
+ "IslandErrorBoundaryProps",
+ "IslandStore",
+ "MountOptions",
+ "SnapshotCache",
+ "SnapshotSource",
+ "StoreResolver",
+ "createSelectorCache",
+ "createSnapshotCache",
+ "islandRootCount",
+ "mountIslands",
+ "remountIslands",
+ "setStoreResolver",
+ "unmountIslands",
+ "useWrnActions",
+ "useWrnStore"
+ ],
+ "./runtime": [
+ "getIslandRuntime"
+ ]
+ },
"@wrnexus/reactive": {
".": [
"AnimationTimeline",
diff --git a/editors/vscode/src/compiler.cjs b/editors/vscode/src/compiler.cjs
index e3979dc1..c7e34baa 100644
--- a/editors/vscode/src/compiler.cjs
+++ b/editors/vscode/src/compiler.cjs
@@ -1,8 +1,8 @@
"use strict";
// Generated by scripts/build-editor-compiler.mjs. Do not edit directly.
-// WRN editor compiler source hash: c0e3e8c72c68cb3c182e2de84c13ef0b8921579d9b081550002b8cdbe4af3397
-// WRN editor compiler generator hash: c71e7fe4258c97b73b384ff14b321f0cf0b30cc2ed0322f5f84b04e757159b18
-// Generated with TypeScript: 5.9.3
+// WRN editor compiler source hash: 182fd799ca860d927879d4259c182ea61cbd89d913758cc9f690e1ae4a35d90f
+// WRN editor compiler generator hash: 2690208ba65bb00d9fea3e08cb3ab324cfda77792021cd46785814fadf41c1bc
+// Generated with TypeScript: 6.0.3
const __nodeRequire = require;
const __path = __nodeRequire("node:path");
const __modules = {
@@ -11,6 +11,7 @@ const __modules = {
Object.defineProperty(exports, "__esModule", { value: true });
exports.optimizeAst = optimizeAst;
exports.analyzeOptimizations = analyzeOptimizations;
+exports.routeNeedsIslands = routeNeedsIslands;
exports.analyzeRuntimeRequirements = analyzeRuntimeRequirements;
function identifiers(value) {
return new Set(value.match(/[A-Za-z_$][\w$]*/g) ?? []);
@@ -191,8 +192,18 @@ function hasEvent(nodes) {
}
return false;
}
-function analyzeRuntimeRequirements(ast) {
+/**
+ * A route containing a React island ships JavaScript and can no longer be
+ * classified as zero-JS static, so island presence must reach the classifier.
+ */
+function routeNeedsIslands(imports) {
+ return imports.some((entry) => entry.kind === "island");
+}
+function analyzeRuntimeRequirements(ast, options = {}) {
+ const hasIslands = options.hasIslands ?? false;
const reasons = [];
+ if (hasIslands)
+ reasons.push("react island");
const clientFunctions = ast.runtimeFunctions.some((fn) => fn.runtime !== "server");
const clientState = ast.states.some((state) => state.runtime !== "server");
const interactive = clientFunctions ||
@@ -246,11 +257,16 @@ function analyzeRuntimeRequirements(ast) {
kind = "streaming-ssr";
reasons.push("partial-static shell with streamed dynamic regions");
}
+ // An island ships JavaScript, so a would-be zero-JS static route must be
+ // reported as static-interactive. Explicit render modes still win above.
+ if (hasIslands && kind === "static")
+ kind = "static-interactive";
const clientDisabled = ast.renderMode === "static" || ast.renderMode === "server";
const serverDisabled = ast.renderMode === "client";
return {
kind,
canPrerender: kind === "static" || kind === "static-interactive",
+ needsIslandRuntime: hasIslands,
needsClientRuntime: !clientDisabled &&
(interactive || ast.renderMode === "client") &&
ast.hydrate !== "none" &&
@@ -3107,9 +3123,11 @@ function candidates(path) {
path,
`${path}.wrn`,
`${path}.ts`,
+ `${path}.tsx`,
`${path}.d.ts`,
(0, node_path_1.join)(path, "index.wrn"),
(0, node_path_1.join)(path, "index.ts"),
+ (0, node_path_1.join)(path, "index.tsx"),
];
}
function resolveWrnImport(declaration, importer, options) {
@@ -3136,8 +3154,12 @@ function resolveWrnImport(declaration, importer, options) {
return false;
}
});
- if (found)
- return { declaration, resolved: (0, node_fs_1.realpathSync)(found) };
+ if (found) {
+ const resolved = (0, node_fs_1.realpathSync)(found);
+ return resolved.endsWith(".tsx")
+ ? { declaration, resolved, kind: "island" }
+ : { declaration, resolved };
+ }
const severity = (options.mode ?? "compatible") === "explicit" ? "error" : "warning";
return {
declaration,
diff --git a/editors/vscode/src/extension.bundle.cjs b/editors/vscode/src/extension.bundle.cjs
index bb600b33..1b0d8369 100644
--- a/editors/vscode/src/extension.bundle.cjs
+++ b/editors/vscode/src/extension.bundle.cjs
@@ -1,4 +1,4 @@
-// WRN editor extension source hash: 28a3937b948e6affb33150753d537162c6702786551dd90ab0968ef9166f21ac
+// WRN editor extension source hash: 4d9518778cef65c0400da0e8be9ece65be85acbd581e3024d484b7cbd2fb8116
// WRN editor extension generator hash: 456d1d614e44e5fb1f19b784176c09cf2ade9b64ef73a17934c2698150b62728
"use strict";
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
diff --git a/editors/vscode/src/language-server.cjs b/editors/vscode/src/language-server.cjs
index 10623de1..8d6d21ad 100644
--- a/editors/vscode/src/language-server.cjs
+++ b/editors/vscode/src/language-server.cjs
@@ -1,5 +1,5 @@
#!/usr/bin/env node
-// WRN editor language server source hash: 41ff6d71dda68160ce6236e7a1a07ee8164c1c6173ba71e392aef4c3bf455390
+// WRN editor language server source hash: 1bd55ffaa78400919477610f5dafac99b2c2f51c2687e5bbae781ce2e0012391
// WRN editor language server generator hash: f593a44aaf05495b789ce7a3086bee1eebb951b884d41c0e017bbcfe5f547e72
// @bun @bun-cjs
(function(exports, require, module, __filename, __dirname) {var __create = Object.create;
@@ -34,9 +34,9 @@ var __toESM = (mod, isNodeMode, target) => {
};
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
-// node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/typescript.js
+// node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/typescript.js
var require_typescript = __commonJS((exports2, module2) => {
- var __dirname = "E:\\WireJS\\node_modules\\.bun\\typescript@5.9.3\\node_modules\\typescript\\lib", __filename = "E:\\WireJS\\node_modules\\.bun\\typescript@5.9.3\\node_modules\\typescript\\lib\\typescript.js";
+ var __dirname = "E:\\WireJS\\node_modules\\.bun\\typescript@6.0.3\\node_modules\\typescript\\lib", __filename = "E:\\WireJS\\node_modules\\.bun\\typescript@6.0.3\\node_modules\\typescript\\lib\\typescript.js";
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
@@ -46,7 +46,7 @@ var require_typescript = __commonJS((exports2, module2) => {
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
- MERCHANTABLITY OR NON-INFRINGEMENT.
+ MERCHANTABILITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
@@ -287,6 +287,7 @@ var require_typescript = __commonJS((exports2, module2) => {
canHaveLocals: () => canHaveLocals,
canHaveModifiers: () => canHaveModifiers,
canHaveModuleSpecifier: () => canHaveModuleSpecifier,
+ canHaveStatements: () => canHaveStatements,
canHaveSymbol: () => canHaveSymbol,
canIncludeBindAndCheckDiagnostics: () => canIncludeBindAndCheckDiagnostics,
canJsonReportNoInputFiles: () => canJsonReportNoInputFiles,
@@ -334,6 +335,7 @@ var require_typescript = __commonJS((exports2, module2) => {
commonOptionsWithBuild: () => commonOptionsWithBuild,
compact: () => compact,
compareBooleans: () => compareBooleans,
+ compareComparableValues: () => compareComparableValues,
compareDataObjects: () => compareDataObjects,
compareDiagnostics: () => compareDiagnostics,
compareEmitHelpers: () => compareEmitHelpers,
@@ -679,6 +681,7 @@ var require_typescript = __commonJS((exports2, module2) => {
getAllowImportingTsExtensions: () => getAllowImportingTsExtensions,
getAllowJSCompilerOption: () => getAllowJSCompilerOption,
getAllowSyntheticDefaultImports: () => getAllowSyntheticDefaultImports,
+ getAlwaysStrict: () => getAlwaysStrict,
getAncestor: () => getAncestor,
getAnyExtensionFromPath: () => getAnyExtensionFromPath,
getAreDeclarationMapsEnabled: () => getAreDeclarationMapsEnabled,
@@ -708,6 +711,7 @@ var require_typescript = __commonJS((exports2, module2) => {
getCommonSourceDirectory: () => getCommonSourceDirectory,
getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,
getCompilerOptionValue: () => getCompilerOptionValue,
+ getComputedCommonSourceDirectory: () => getComputedCommonSourceDirectory,
getConditions: () => getConditions,
getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,
getConstantValue: () => getConstantValue,
@@ -917,6 +921,7 @@ var require_typescript = __commonJS((exports2, module2) => {
getModuleInstanceState: () => getModuleInstanceState,
getModuleNameStringLiteralAt: () => getModuleNameStringLiteralAt,
getModuleSpecifierEndingPreference: () => getModuleSpecifierEndingPreference,
+ getModuleSpecifierOfBareOrAccessedRequire: () => getModuleSpecifierOfBareOrAccessedRequire,
getModuleSpecifierResolverHost: () => getModuleSpecifierResolverHost,
getNameForExportedSymbol: () => getNameForExportedSymbol,
getNameFromImportAttribute: () => getNameFromImportAttribute,
@@ -947,7 +952,6 @@ var require_typescript = __commonJS((exports2, module2) => {
getNonAugmentationDeclaration: () => getNonAugmentationDeclaration,
getNonDecoratorTokenPosOfNode: () => getNonDecoratorTokenPosOfNode,
getNonIncrementalBuildInfoRoots: () => getNonIncrementalBuildInfoRoots,
- getNonModifierTokenPosOfNode: () => getNonModifierTokenPosOfNode,
getNormalizedAbsolutePath: () => getNormalizedAbsolutePath,
getNormalizedAbsolutePathWithoutRoot: () => getNormalizedAbsolutePathWithoutRoot,
getNormalizedPathComponents: () => getNormalizedPathComponents,
@@ -1678,6 +1682,7 @@ var require_typescript = __commonJS((exports2, module2) => {
isPlusToken: () => isPlusToken,
isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition,
isPostfixUnaryExpression: () => isPostfixUnaryExpression,
+ isPotentiallyExecutableNode: () => isPotentiallyExecutableNode,
isPrefixUnaryExpression: () => isPrefixUnaryExpression,
isPrimitiveLiteralValue: () => isPrimitiveLiteralValue,
isPrivateIdentifier: () => isPrivateIdentifier,
@@ -2280,9 +2285,7 @@ var require_typescript = __commonJS((exports2, module2) => {
unmangleScopedPackageName: () => unmangleScopedPackageName,
unorderedRemoveItem: () => unorderedRemoveItem,
unprefixedNodeCoreModules: () => unprefixedNodeCoreModules,
- unreachableCodeIsError: () => unreachableCodeIsError,
unsetNodeChildren: () => unsetNodeChildren,
- unusedLabelIsError: () => unusedLabelIsError,
unwrapInnermostStatementOfLabel: () => unwrapInnermostStatementOfLabel,
unwrapParenthesizedExpression: () => unwrapParenthesizedExpression,
updateErrorForNoInputFiles: () => updateErrorForNoInputFiles,
@@ -2292,6 +2295,7 @@ var require_typescript = __commonJS((exports2, module2) => {
updateSharedExtendedConfigFileWatcher: () => updateSharedExtendedConfigFileWatcher,
updateSourceFile: () => updateSourceFile,
updateWatchingWildcardDirectories: () => updateWatchingWildcardDirectories,
+ usesWildcardTypes: () => usesWildcardTypes,
usingSingleLineStringWriter: () => usingSingleLineStringWriter,
utf16EncodeAsString: () => utf16EncodeAsString,
validateLocaleAndSetLanguage: () => validateLocaleAndSetLanguage,
@@ -2318,8 +2322,8 @@ var require_typescript = __commonJS((exports2, module2) => {
zipWith: () => zipWith
});
module3.exports = __toCommonJS(typescript_exports);
- var versionMajorMinor = "5.9";
- var version = "5.9.3";
+ var versionMajorMinor = "6.0";
+ var version = "6.0.3";
var Comparison = /* @__PURE__ */ ((Comparison3) => {
Comparison3[Comparison3["LessThan"] = -1] = "LessThan";
Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo";
@@ -3029,7 +3033,7 @@ var require_typescript = __commonJS((exports2, module2) => {
while (low <= high) {
const middle = low + (high - low >> 1);
const midKey = keySelector(array[middle], middle);
- switch (keyComparer(midKey, key)) {
+ switch (Math.sign(keyComparer(midKey, key))) {
case -1:
low = middle + 1;
break;
@@ -4227,8 +4231,8 @@ Verbose Debug Information: ` + (typeof verboseDebugInfo === "string" ? verboseDe
Object.defineProperties(objectAllocator.getTypeConstructor().prototype, {
__tsDebuggerDisplay: {
value() {
- const typeHeader = this.flags & 67359327 ? `IntrinsicType ${this.intrinsicName}${this.debugIntrinsicName ? ` (${this.debugIntrinsicName})` : ""}` : this.flags & 98304 ? "NullableType" : this.flags & 384 ? `LiteralType ${JSON.stringify(this.value)}` : this.flags & 2048 ? `LiteralType ${this.value.negative ? "-" : ""}${this.value.base10Value}n` : this.flags & 8192 ? "UniqueESSymbolType" : this.flags & 32 ? "EnumType" : this.flags & 1048576 ? "UnionType" : this.flags & 2097152 ? "IntersectionType" : this.flags & 4194304 ? "IndexType" : this.flags & 8388608 ? "IndexedAccessType" : this.flags & 16777216 ? "ConditionalType" : this.flags & 33554432 ? "SubstitutionType" : this.flags & 262144 ? "TypeParameter" : this.flags & 524288 ? this.objectFlags & 3 ? "InterfaceType" : this.objectFlags & 4 ? "TypeReference" : this.objectFlags & 8 ? "TupleType" : this.objectFlags & 16 ? "AnonymousType" : this.objectFlags & 32 ? "MappedType" : this.objectFlags & 1024 ? "ReverseMappedType" : this.objectFlags & 256 ? "EvolvingArrayType" : "ObjectType" : "Type";
- const remainingObjectFlags = this.flags & 524288 ? this.objectFlags & ~1343 : 0;
+ const typeHeader = this.flags & 402431 ? `IntrinsicType ${this.intrinsicName}${this.debugIntrinsicName ? ` (${this.debugIntrinsicName})` : ""}` : this.flags & 12 ? "NullableType" : this.flags & 3072 ? `LiteralType ${JSON.stringify(this.value)}` : this.flags & 4096 ? `LiteralType ${this.value.negative ? "-" : ""}${this.value.base10Value}n` : this.flags & 16384 ? "UniqueESSymbolType" : this.flags & 65536 ? "EnumType" : this.flags & 134217728 ? "UnionType" : this.flags & 268435456 ? "IntersectionType" : this.flags & 2097152 ? "IndexType" : this.flags & 33554432 ? "IndexedAccessType" : this.flags & 67108864 ? "ConditionalType" : this.flags & 16777216 ? "SubstitutionType" : this.flags & 524288 ? "TypeParameter" : this.flags & 1048576 ? this.objectFlags & 3 ? "InterfaceType" : this.objectFlags & 4 ? "TypeReference" : this.objectFlags & 8 ? "TupleType" : this.objectFlags & 16 ? "AnonymousType" : this.objectFlags & 32 ? "MappedType" : this.objectFlags & 1024 ? "ReverseMappedType" : this.objectFlags & 256 ? "EvolvingArrayType" : "ObjectType" : "Type";
+ const remainingObjectFlags = this.flags & 1048576 ? this.objectFlags & ~142607679 : 0;
return `${typeHeader}${this.symbol ? ` '${symbolName(this.symbol)}'` : ""}${remainingObjectFlags ? ` (${formatObjectFlags(remainingObjectFlags)})` : ""}`;
}
},
@@ -4239,7 +4243,7 @@ Verbose Debug Information: ` + (typeof verboseDebugInfo === "string" ? verboseDe
},
__debugObjectFlags: {
get() {
- return this.flags & 524288 ? formatObjectFlags(this.objectFlags) : "";
+ return this.flags & 1048576 ? formatObjectFlags(this.objectFlags) : "";
}
},
__debugTypeToString: {
@@ -5325,7 +5329,7 @@ ${lanes.join(`
const objectFlags = type.objectFlags;
const symbol = type.aliasSymbol ?? type.symbol;
let display;
- if (objectFlags & 16 | type.flags & 2944) {
+ if (objectFlags & 16 | type.flags & 15360) {
try {
display = (_a = type.checker) == null ? undefined : _a.typeToString(type);
} catch {
@@ -5333,7 +5337,7 @@ ${lanes.join(`
}
}
let indexedAccessProperties = {};
- if (type.flags & 8388608) {
+ if (type.flags & 33554432) {
const indexedAccessType = type;
indexedAccessProperties = {
indexedAccessObjectType: (_b = indexedAccessType.objectType) == null ? undefined : _b.id,
@@ -5350,7 +5354,7 @@ ${lanes.join(`
};
}
let conditionalProperties = {};
- if (type.flags & 16777216) {
+ if (type.flags & 67108864) {
const conditionalType = type;
conditionalProperties = {
conditionalCheckType: (_f = conditionalType.checkType) == null ? undefined : _f.id,
@@ -5360,7 +5364,7 @@ ${lanes.join(`
};
}
let substitutionProperties = {};
- if (type.flags & 33554432) {
+ if (type.flags & 16777216) {
const substitutionType = type;
substitutionProperties = {
substitutionBaseType: (_j = substitutionType.baseType) == null ? undefined : _j.id,
@@ -5399,10 +5403,10 @@ ${lanes.join(`
symbolName: (symbol == null ? undefined : symbol.escapedName) && unescapeLeadingUnderscores(symbol.escapedName),
recursionId: recursionToken,
isTuple: objectFlags & 8 ? true : undefined,
- unionTypes: type.flags & 1048576 ? (_p = type.types) == null ? undefined : _p.map((t) => t.id) : undefined,
- intersectionTypes: type.flags & 2097152 ? type.types.map((t) => t.id) : undefined,
+ unionTypes: type.flags & 134217728 ? (_p = type.types) == null ? undefined : _p.map((t) => t.id) : undefined,
+ intersectionTypes: type.flags & 268435456 ? type.types.map((t) => t.id) : undefined,
aliasTypeArguments: (_q = type.aliasTypeArguments) == null ? undefined : _q.map((t) => t.id),
- keyofType: type.flags & 4194304 ? (_r = type.type) == null ? undefined : _r.id : undefined,
+ keyofType: type.flags & 2097152 ? (_r = type.type) == null ? undefined : _r.id : undefined,
...indexedAccessProperties,
...referenceProperties,
...conditionalProperties,
@@ -5868,6 +5872,7 @@ ${lanes.join(`
NodeFlags3[NodeFlags3["JsonFile"] = 134217728] = "JsonFile";
NodeFlags3[NodeFlags3["TypeCached"] = 268435456] = "TypeCached";
NodeFlags3[NodeFlags3["Deprecated"] = 536870912] = "Deprecated";
+ NodeFlags3[NodeFlags3["Unreachable"] = 1073741824] = "Unreachable";
NodeFlags3[NodeFlags3["BlockScoped"] = 7] = "BlockScoped";
NodeFlags3[NodeFlags3["Constant"] = 6] = "Constant";
NodeFlags3[NodeFlags3["ReachabilityCheckFlags"] = 1536] = "ReachabilityCheckFlags";
@@ -6084,7 +6089,7 @@ ${lanes.join(`
ContextFlags3[ContextFlags3["None"] = 0] = "None";
ContextFlags3[ContextFlags3["Signature"] = 1] = "Signature";
ContextFlags3[ContextFlags3["NoConstraints"] = 2] = "NoConstraints";
- ContextFlags3[ContextFlags3["Completions"] = 4] = "Completions";
+ ContextFlags3[ContextFlags3["IgnoreNodeInferences"] = 4] = "IgnoreNodeInferences";
ContextFlags3[ContextFlags3["SkipBindingPatterns"] = 8] = "SkipBindingPatterns";
return ContextFlags3;
})(ContextFlags || {});
@@ -6346,75 +6351,76 @@ ${lanes.join(`
var TypeFlags = /* @__PURE__ */ ((TypeFlags2) => {
TypeFlags2[TypeFlags2["Any"] = 1] = "Any";
TypeFlags2[TypeFlags2["Unknown"] = 2] = "Unknown";
- TypeFlags2[TypeFlags2["String"] = 4] = "String";
- TypeFlags2[TypeFlags2["Number"] = 8] = "Number";
- TypeFlags2[TypeFlags2["Boolean"] = 16] = "Boolean";
- TypeFlags2[TypeFlags2["Enum"] = 32] = "Enum";
- TypeFlags2[TypeFlags2["BigInt"] = 64] = "BigInt";
- TypeFlags2[TypeFlags2["StringLiteral"] = 128] = "StringLiteral";
- TypeFlags2[TypeFlags2["NumberLiteral"] = 256] = "NumberLiteral";
- TypeFlags2[TypeFlags2["BooleanLiteral"] = 512] = "BooleanLiteral";
- TypeFlags2[TypeFlags2["EnumLiteral"] = 1024] = "EnumLiteral";
- TypeFlags2[TypeFlags2["BigIntLiteral"] = 2048] = "BigIntLiteral";
- TypeFlags2[TypeFlags2["ESSymbol"] = 4096] = "ESSymbol";
- TypeFlags2[TypeFlags2["UniqueESSymbol"] = 8192] = "UniqueESSymbol";
- TypeFlags2[TypeFlags2["Void"] = 16384] = "Void";
- TypeFlags2[TypeFlags2["Undefined"] = 32768] = "Undefined";
- TypeFlags2[TypeFlags2["Null"] = 65536] = "Null";
- TypeFlags2[TypeFlags2["Never"] = 131072] = "Never";
- TypeFlags2[TypeFlags2["TypeParameter"] = 262144] = "TypeParameter";
- TypeFlags2[TypeFlags2["Object"] = 524288] = "Object";
- TypeFlags2[TypeFlags2["Union"] = 1048576] = "Union";
- TypeFlags2[TypeFlags2["Intersection"] = 2097152] = "Intersection";
- TypeFlags2[TypeFlags2["Index"] = 4194304] = "Index";
- TypeFlags2[TypeFlags2["IndexedAccess"] = 8388608] = "IndexedAccess";
- TypeFlags2[TypeFlags2["Conditional"] = 16777216] = "Conditional";
- TypeFlags2[TypeFlags2["Substitution"] = 33554432] = "Substitution";
- TypeFlags2[TypeFlags2["NonPrimitive"] = 67108864] = "NonPrimitive";
- TypeFlags2[TypeFlags2["TemplateLiteral"] = 134217728] = "TemplateLiteral";
- TypeFlags2[TypeFlags2["StringMapping"] = 268435456] = "StringMapping";
+ TypeFlags2[TypeFlags2["Undefined"] = 4] = "Undefined";
+ TypeFlags2[TypeFlags2["Null"] = 8] = "Null";
+ TypeFlags2[TypeFlags2["Void"] = 16] = "Void";
+ TypeFlags2[TypeFlags2["String"] = 32] = "String";
+ TypeFlags2[TypeFlags2["Number"] = 64] = "Number";
+ TypeFlags2[TypeFlags2["BigInt"] = 128] = "BigInt";
+ TypeFlags2[TypeFlags2["Boolean"] = 256] = "Boolean";
+ TypeFlags2[TypeFlags2["ESSymbol"] = 512] = "ESSymbol";
+ TypeFlags2[TypeFlags2["StringLiteral"] = 1024] = "StringLiteral";
+ TypeFlags2[TypeFlags2["NumberLiteral"] = 2048] = "NumberLiteral";
+ TypeFlags2[TypeFlags2["BigIntLiteral"] = 4096] = "BigIntLiteral";
+ TypeFlags2[TypeFlags2["BooleanLiteral"] = 8192] = "BooleanLiteral";
+ TypeFlags2[TypeFlags2["UniqueESSymbol"] = 16384] = "UniqueESSymbol";
+ TypeFlags2[TypeFlags2["EnumLiteral"] = 32768] = "EnumLiteral";
+ TypeFlags2[TypeFlags2["Enum"] = 65536] = "Enum";
+ TypeFlags2[TypeFlags2["NonPrimitive"] = 131072] = "NonPrimitive";
+ TypeFlags2[TypeFlags2["Never"] = 262144] = "Never";
+ TypeFlags2[TypeFlags2["TypeParameter"] = 524288] = "TypeParameter";
+ TypeFlags2[TypeFlags2["Object"] = 1048576] = "Object";
+ TypeFlags2[TypeFlags2["Index"] = 2097152] = "Index";
+ TypeFlags2[TypeFlags2["TemplateLiteral"] = 4194304] = "TemplateLiteral";
+ TypeFlags2[TypeFlags2["StringMapping"] = 8388608] = "StringMapping";
+ TypeFlags2[TypeFlags2["Substitution"] = 16777216] = "Substitution";
+ TypeFlags2[TypeFlags2["IndexedAccess"] = 33554432] = "IndexedAccess";
+ TypeFlags2[TypeFlags2["Conditional"] = 67108864] = "Conditional";
+ TypeFlags2[TypeFlags2["Union"] = 134217728] = "Union";
+ TypeFlags2[TypeFlags2["Intersection"] = 268435456] = "Intersection";
TypeFlags2[TypeFlags2["Reserved1"] = 536870912] = "Reserved1";
TypeFlags2[TypeFlags2["Reserved2"] = 1073741824] = "Reserved2";
+ TypeFlags2[TypeFlags2["Reserved3"] = -2147483648] = "Reserved3";
TypeFlags2[TypeFlags2["AnyOrUnknown"] = 3] = "AnyOrUnknown";
- TypeFlags2[TypeFlags2["Nullable"] = 98304] = "Nullable";
- TypeFlags2[TypeFlags2["Literal"] = 2944] = "Literal";
- TypeFlags2[TypeFlags2["Unit"] = 109472] = "Unit";
- TypeFlags2[TypeFlags2["Freshable"] = 2976] = "Freshable";
- TypeFlags2[TypeFlags2["StringOrNumberLiteral"] = 384] = "StringOrNumberLiteral";
- TypeFlags2[TypeFlags2["StringOrNumberLiteralOrUnique"] = 8576] = "StringOrNumberLiteralOrUnique";
- TypeFlags2[TypeFlags2["DefinitelyFalsy"] = 117632] = "DefinitelyFalsy";
- TypeFlags2[TypeFlags2["PossiblyFalsy"] = 117724] = "PossiblyFalsy";
- TypeFlags2[TypeFlags2["Intrinsic"] = 67359327] = "Intrinsic";
- TypeFlags2[TypeFlags2["StringLike"] = 402653316] = "StringLike";
- TypeFlags2[TypeFlags2["NumberLike"] = 296] = "NumberLike";
- TypeFlags2[TypeFlags2["BigIntLike"] = 2112] = "BigIntLike";
- TypeFlags2[TypeFlags2["BooleanLike"] = 528] = "BooleanLike";
- TypeFlags2[TypeFlags2["EnumLike"] = 1056] = "EnumLike";
- TypeFlags2[TypeFlags2["ESSymbolLike"] = 12288] = "ESSymbolLike";
- TypeFlags2[TypeFlags2["VoidLike"] = 49152] = "VoidLike";
- TypeFlags2[TypeFlags2["Primitive"] = 402784252] = "Primitive";
- TypeFlags2[TypeFlags2["DefinitelyNonNullable"] = 470302716] = "DefinitelyNonNullable";
- TypeFlags2[TypeFlags2["DisjointDomains"] = 469892092] = "DisjointDomains";
- TypeFlags2[TypeFlags2["UnionOrIntersection"] = 3145728] = "UnionOrIntersection";
- TypeFlags2[TypeFlags2["StructuredType"] = 3670016] = "StructuredType";
- TypeFlags2[TypeFlags2["TypeVariable"] = 8650752] = "TypeVariable";
- TypeFlags2[TypeFlags2["InstantiableNonPrimitive"] = 58982400] = "InstantiableNonPrimitive";
- TypeFlags2[TypeFlags2["InstantiablePrimitive"] = 406847488] = "InstantiablePrimitive";
- TypeFlags2[TypeFlags2["Instantiable"] = 465829888] = "Instantiable";
- TypeFlags2[TypeFlags2["StructuredOrInstantiable"] = 469499904] = "StructuredOrInstantiable";
- TypeFlags2[TypeFlags2["ObjectFlagsType"] = 3899393] = "ObjectFlagsType";
- TypeFlags2[TypeFlags2["Simplifiable"] = 25165824] = "Simplifiable";
- TypeFlags2[TypeFlags2["Singleton"] = 67358815] = "Singleton";
- TypeFlags2[TypeFlags2["Narrowable"] = 536624127] = "Narrowable";
- TypeFlags2[TypeFlags2["IncludesMask"] = 473694207] = "IncludesMask";
- TypeFlags2[TypeFlags2["IncludesMissingType"] = 262144] = "IncludesMissingType";
- TypeFlags2[TypeFlags2["IncludesNonWideningType"] = 4194304] = "IncludesNonWideningType";
- TypeFlags2[TypeFlags2["IncludesWildcard"] = 8388608] = "IncludesWildcard";
- TypeFlags2[TypeFlags2["IncludesEmptyObject"] = 16777216] = "IncludesEmptyObject";
- TypeFlags2[TypeFlags2["IncludesInstantiable"] = 33554432] = "IncludesInstantiable";
+ TypeFlags2[TypeFlags2["Nullable"] = 12] = "Nullable";
+ TypeFlags2[TypeFlags2["Literal"] = 15360] = "Literal";
+ TypeFlags2[TypeFlags2["Unit"] = 97292] = "Unit";
+ TypeFlags2[TypeFlags2["Freshable"] = 80896] = "Freshable";
+ TypeFlags2[TypeFlags2["StringOrNumberLiteral"] = 3072] = "StringOrNumberLiteral";
+ TypeFlags2[TypeFlags2["StringOrNumberLiteralOrUnique"] = 19456] = "StringOrNumberLiteralOrUnique";
+ TypeFlags2[TypeFlags2["DefinitelyFalsy"] = 15388] = "DefinitelyFalsy";
+ TypeFlags2[TypeFlags2["PossiblyFalsy"] = 15868] = "PossiblyFalsy";
+ TypeFlags2[TypeFlags2["Intrinsic"] = 402431] = "Intrinsic";
+ TypeFlags2[TypeFlags2["StringLike"] = 12583968] = "StringLike";
+ TypeFlags2[TypeFlags2["NumberLike"] = 67648] = "NumberLike";
+ TypeFlags2[TypeFlags2["BigIntLike"] = 4224] = "BigIntLike";
+ TypeFlags2[TypeFlags2["BooleanLike"] = 8448] = "BooleanLike";
+ TypeFlags2[TypeFlags2["EnumLike"] = 98304] = "EnumLike";
+ TypeFlags2[TypeFlags2["ESSymbolLike"] = 16896] = "ESSymbolLike";
+ TypeFlags2[TypeFlags2["VoidLike"] = 20] = "VoidLike";
+ TypeFlags2[TypeFlags2["Primitive"] = 12713980] = "Primitive";
+ TypeFlags2[TypeFlags2["DefinitelyNonNullable"] = 13893600] = "DefinitelyNonNullable";
+ TypeFlags2[TypeFlags2["DisjointDomains"] = 12812284] = "DisjointDomains";
+ TypeFlags2[TypeFlags2["UnionOrIntersection"] = 402653184] = "UnionOrIntersection";
+ TypeFlags2[TypeFlags2["StructuredType"] = 403701760] = "StructuredType";
+ TypeFlags2[TypeFlags2["TypeVariable"] = 34078720] = "TypeVariable";
+ TypeFlags2[TypeFlags2["InstantiableNonPrimitive"] = 117964800] = "InstantiableNonPrimitive";
+ TypeFlags2[TypeFlags2["InstantiablePrimitive"] = 14680064] = "InstantiablePrimitive";
+ TypeFlags2[TypeFlags2["Instantiable"] = 132644864] = "Instantiable";
+ TypeFlags2[TypeFlags2["StructuredOrInstantiable"] = 536346624] = "StructuredOrInstantiable";
+ TypeFlags2[TypeFlags2["ObjectFlagsType"] = 403963917] = "ObjectFlagsType";
+ TypeFlags2[TypeFlags2["Simplifiable"] = 102760448] = "Simplifiable";
+ TypeFlags2[TypeFlags2["Singleton"] = 394239] = "Singleton";
+ TypeFlags2[TypeFlags2["Narrowable"] = 536575971] = "Narrowable";
+ TypeFlags2[TypeFlags2["IncludesMask"] = 416808959] = "IncludesMask";
+ TypeFlags2[TypeFlags2["IncludesMissingType"] = 524288] = "IncludesMissingType";
+ TypeFlags2[TypeFlags2["IncludesNonWideningType"] = 2097152] = "IncludesNonWideningType";
+ TypeFlags2[TypeFlags2["IncludesWildcard"] = 33554432] = "IncludesWildcard";
+ TypeFlags2[TypeFlags2["IncludesEmptyObject"] = 67108864] = "IncludesEmptyObject";
+ TypeFlags2[TypeFlags2["IncludesInstantiable"] = 16777216] = "IncludesInstantiable";
TypeFlags2[TypeFlags2["IncludesConstrainedTypeVariable"] = 536870912] = "IncludesConstrainedTypeVariable";
TypeFlags2[TypeFlags2["IncludesError"] = 1073741824] = "IncludesError";
- TypeFlags2[TypeFlags2["NotPrimitiveUnion"] = 36323331] = "NotPrimitiveUnion";
+ TypeFlags2[TypeFlags2["NotPrimitiveUnion"] = 286523411] = "NotPrimitiveUnion";
return TypeFlags2;
})(TypeFlags || {});
var ObjectFlags = /* @__PURE__ */ ((ObjectFlags3) => {
@@ -6445,10 +6451,10 @@ ${lanes.join(`
ObjectFlags3[ObjectFlags3["RequiresWidening"] = 196608] = "RequiresWidening";
ObjectFlags3[ObjectFlags3["PropagatingFlags"] = 458752] = "PropagatingFlags";
ObjectFlags3[ObjectFlags3["InstantiatedMapped"] = 96] = "InstantiatedMapped";
- ObjectFlags3[ObjectFlags3["ObjectTypeKindMask"] = 1343] = "ObjectTypeKindMask";
ObjectFlags3[ObjectFlags3["ContainsSpread"] = 2097152] = "ContainsSpread";
ObjectFlags3[ObjectFlags3["ObjectRestType"] = 4194304] = "ObjectRestType";
ObjectFlags3[ObjectFlags3["InstantiationExpressionType"] = 8388608] = "InstantiationExpressionType";
+ ObjectFlags3[ObjectFlags3["ObjectTypeKindMask"] = 142607679] = "ObjectTypeKindMask";
ObjectFlags3[ObjectFlags3["IsClassInstanceClone"] = 16777216] = "IsClassInstanceClone";
ObjectFlags3[ObjectFlags3["IdenticalBaseTypeCalculated"] = 33554432] = "IdenticalBaseTypeCalculated";
ObjectFlags3[ObjectFlags3["IdenticalBaseTypeExists"] = 67108864] = "IdenticalBaseTypeExists";
@@ -6702,9 +6708,11 @@ ${lanes.join(`
ScriptTarget12[ScriptTarget12["ES2022"] = 9] = "ES2022";
ScriptTarget12[ScriptTarget12["ES2023"] = 10] = "ES2023";
ScriptTarget12[ScriptTarget12["ES2024"] = 11] = "ES2024";
+ ScriptTarget12[ScriptTarget12["ES2025"] = 12] = "ES2025";
ScriptTarget12[ScriptTarget12["ESNext"] = 99] = "ESNext";
ScriptTarget12[ScriptTarget12["JSON"] = 100] = "JSON";
ScriptTarget12[ScriptTarget12["Latest"] = 99] = "Latest";
+ ScriptTarget12[ScriptTarget12["LatestStandard"] = 12] = "LatestStandard";
return ScriptTarget12;
})(ScriptTarget || {});
var LanguageVariant = /* @__PURE__ */ ((LanguageVariant4) => {
@@ -9232,7 +9240,7 @@ ${lanes.join(`
A_bigint_literal_cannot_use_exponential_notation: diag(1352, 1, "A_bigint_literal_cannot_use_exponential_notation_1352", "A bigint literal cannot use exponential notation."),
A_bigint_literal_must_be_an_integer: diag(1353, 1, "A_bigint_literal_must_be_an_integer_1353", "A bigint literal must be an integer."),
readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types: diag(1354, 1, "readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354", "'readonly' type modifier is only permitted on array and tuple literal types."),
- A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals: diag(1355, 1, "A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355", "A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."),
+ A_const_assertion_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals: diag(1355, 1, "A_const_assertion_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_o_1355", "A 'const' assertion can only be applied to references to enum members, or string, number, boolean, array, or object literals."),
Did_you_mean_to_mark_this_function_as_async: diag(1356, 1, "Did_you_mean_to_mark_this_function_as_async_1356", "Did you mean to mark this function as 'async'?"),
An_enum_member_name_must_be_followed_by_a_or: diag(1357, 1, "An_enum_member_name_must_be_followed_by_a_or_1357", "An enum member name must be followed by a ',', '=', or '}'."),
Tagged_template_expressions_are_not_permitted_in_an_optional_chain: diag(1358, 1, "Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358", "Tagged template expressions are not permitted in an optional chain."),
@@ -9398,13 +9406,16 @@ ${lanes.join(`
Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class: diag(1537, 1, "Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_1537", "Decimal escape sequences and backreferences are not allowed in a character class."),
Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set: diag(1538, 1, "Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_se_1538", "Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),
A_bigint_literal_cannot_be_used_as_a_property_name: diag(1539, 1, "A_bigint_literal_cannot_be_used_as_a_property_name_1539", "A 'bigint' literal cannot be used as a property name."),
- A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead: diag(1540, 2, "A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_key_1540", "A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.", undefined, undefined, true),
+ A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead: diag(1540, 1, "A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_key_1540", "A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead."),
Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute: diag(1541, 1, "Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribut_1541", "Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),
Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute: diag(1542, 1, "Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute_1542", "Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),
Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0: diag(1543, 1, "Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_mod_1543", `Importing a JSON file into an ECMAScript module requires a 'type: "json"' import attribute when 'module' is set to '{0}'.`),
Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0: diag(1544, 1, "Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0_1544", "Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'."),
using_declarations_are_not_allowed_in_ambient_contexts: diag(1545, 1, "using_declarations_are_not_allowed_in_ambient_contexts_1545", "'using' declarations are not allowed in ambient contexts."),
await_using_declarations_are_not_allowed_in_ambient_contexts: diag(1546, 1, "await_using_declarations_are_not_allowed_in_ambient_contexts_1546", "'await using' declarations are not allowed in ambient contexts."),
+ using_declarations_are_not_allowed_in_case_or_default_clauses_unless_contained_within_a_block: diag(1547, 1, "using_declarations_are_not_allowed_in_case_or_default_clauses_unless_contained_within_a_block_1547", "'using' declarations are not allowed in 'case' or 'default' clauses unless contained within a block."),
+ await_using_declarations_are_not_allowed_in_case_or_default_clauses_unless_contained_within_a_block: diag(1548, 1, "await_using_declarations_are_not_allowed_in_case_or_default_clauses_unless_contained_within_a_block_1548", "'await using' declarations are not allowed in 'case' or 'default' clauses unless contained within a block."),
+ Ignore_the_tsconfig_found_and_build_with_commandline_options_and_files: diag(1549, 3, "Ignore_the_tsconfig_found_and_build_with_commandline_options_and_files_1549", "Ignore the tsconfig found and build with commandline options and files."),
The_types_of_0_are_incompatible_between_these_types: diag(2200, 1, "The_types_of_0_are_incompatible_between_these_types_2200", "The types of '{0}' are incompatible between these types."),
The_types_returned_by_0_are_incompatible_between_these_types: diag(2201, 1, "The_types_returned_by_0_are_incompatible_between_these_types_2201", "The types returned by '{0}' are incompatible between these types."),
Call_signature_return_types_0_and_1_are_incompatible: diag(2202, 1, "Call_signature_return_types_0_and_1_are_incompatible_2202", "Call signature return types '{0}' and '{1}' are incompatible.", undefined, true),
@@ -9942,6 +9953,8 @@ ${lanes.join(`
Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found: diag(2879, 1, "Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found_2879", "Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found."),
Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert: diag(2880, 1, "Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert_2880", "Import assertions have been replaced by import attributes. Use 'with' instead of 'assert'."),
This_expression_is_never_nullish: diag(2881, 1, "This_expression_is_never_nullish_2881", "This expression is never nullish."),
+ Cannot_find_module_or_type_declarations_for_side_effect_import_of_0: diag(2882, 1, "Cannot_find_module_or_type_declarations_for_side_effect_import_of_0_2882", "Cannot find module or type declarations for side-effect import of '{0}'."),
+ The_inferred_type_of_0_cannot_be_named_without_a_reference_to_2_from_1_This_is_likely_not_portable_A_type_annotation_is_necessary: diag(2883, 1, "The_inferred_type_of_0_cannot_be_named_without_a_reference_to_2_from_1_This_is_likely_not_portable_A_2883", "The inferred type of '{0}' cannot be named without a reference to '{2}' from '{1}'. This is likely not portable. A type annotation is necessary."),
Import_declaration_0_is_using_private_name_1: diag(4000, 1, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."),
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, 1, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."),
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, 1, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."),
@@ -10056,6 +10069,7 @@ ${lanes.join(`
The_current_host_does_not_support_the_0_option: diag(5001, 1, "The_current_host_does_not_support_the_0_option_5001", "The current host does not support the '{0}' option."),
Cannot_find_the_common_subdirectory_path_for_the_input_files: diag(5009, 1, "Cannot_find_the_common_subdirectory_path_for_the_input_files_5009", "Cannot find the common subdirectory path for the input files."),
File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: diag(5010, 1, "File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010", "File specification cannot end in a recursive directory wildcard ('**'): '{0}'."),
+ The_common_source_directory_of_0_is_1_The_rootDir_setting_must_be_explicitly_set_to_this_or_another_path_to_adjust_your_output_s_file_layout: diag(5011, 1, "The_common_source_directory_of_0_is_1_The_rootDir_setting_must_be_explicitly_set_to_this_or_another__5011", "The common source directory of '{0}' is '{1}'. The 'rootDir' setting must be explicitly set to this or another path to adjust your output's file layout."),
Cannot_read_file_0_Colon_1: diag(5012, 1, "Cannot_read_file_0_Colon_1_5012", "Cannot read file '{0}': {1}."),
Unknown_compiler_option_0: diag(5023, 1, "Unknown_compiler_option_0_5023", "Unknown compiler option '{0}'."),
Compiler_option_0_requires_a_value_of_type_1: diag(5024, 1, "Compiler_option_0_requires_a_value_of_type_1_5024", "Compiler option '{0}' requires a value of type {1}."),
@@ -10105,8 +10119,8 @@ ${lanes.join(`
The_root_value_of_a_0_file_must_be_an_object: diag(5092, 1, "The_root_value_of_a_0_file_must_be_an_object_5092", "The root value of a '{0}' file must be an object."),
Compiler_option_0_may_only_be_used_with_build: diag(5093, 1, "Compiler_option_0_may_only_be_used_with_build_5093", "Compiler option '--{0}' may only be used with '--build'."),
Compiler_option_0_may_not_be_used_with_build: diag(5094, 1, "Compiler_option_0_may_not_be_used_with_build_5094", "Compiler option '--{0}' may not be used with '--build'."),
- Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later: diag(5095, 1, "Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later_5095", "Option '{0}' can only be used when 'module' is set to 'preserve' or to 'es2015' or later."),
- Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set: diag(5096, 1, "Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096", "Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."),
+ Option_0_can_only_be_used_when_module_is_set_to_preserve_commonjs_or_es2015_or_later: diag(5095, 1, "Option_0_can_only_be_used_when_module_is_set_to_preserve_commonjs_or_es2015_or_later_5095", "Option '{0}' can only be used when 'module' is set to 'preserve', 'commonjs', or 'es2015' or later."),
+ Option_allowImportingTsExtensions_can_only_be_used_when_one_of_noEmit_emitDeclarationOnly_or_rewriteRelativeImportExtensions_is_set: diag(5096, 1, "Option_allowImportingTsExtensions_can_only_be_used_when_one_of_noEmit_emitDeclarationOnly_or_rewrite_5096", "Option 'allowImportingTsExtensions' can only be used when one of 'noEmit', 'emitDeclarationOnly', or 'rewriteRelativeImportExtensions' is set."),
An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled: diag(5097, 1, "An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097", "An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."),
Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler: diag(5098, 1, "Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098", "Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."),
Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error: diag(5101, 1, "Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101", `Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '"ignoreDeprecations": "{2}"' to silence this error.`),
@@ -10119,6 +10133,8 @@ ${lanes.join(`
Option_0_1_has_been_removed_Please_remove_it_from_your_configuration: diag(5108, 1, "Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108", "Option '{0}={1}' has been removed. Please remove it from your configuration."),
Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1: diag(5109, 1, "Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109", "Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'."),
Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1: diag(5110, 1, "Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110", "Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'."),
+ Visit_https_Colon_Slash_Slashaka_ms_Slashts6_for_migration_information: diag(5111, 3, "Visit_https_Colon_Slash_Slashaka_ms_Slashts6_for_migration_information_5111", "Visit https://aka.ms/ts6 for migration information."),
+ tsconfig_json_is_present_but_will_not_be_loaded_if_files_are_specified_on_commandline_Use_ignoreConfig_to_skip_this_error: diag(5112, 1, "tsconfig_json_is_present_but_will_not_be_loaded_if_files_are_specified_on_commandline_Use_ignoreConf_5112", "tsconfig.json is present but will not be loaded if files are specified on commandline. Use '--ignoreConfig' to skip this error."),
Generates_a_sourcemap_for_each_corresponding_d_ts_file: diag(6000, 3, "Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000", "Generates a sourcemap for each corresponding '.d.ts' file."),
Concatenate_and_emit_output_to_single_file: diag(6001, 3, "Concatenate_and_emit_output_to_single_file_6001", "Concatenate and emit output to single file."),
Generates_corresponding_d_ts_file: diag(6002, 3, "Generates_corresponding_d_ts_file_6002", "Generates corresponding '.d.ts' file."),
@@ -10577,17 +10593,17 @@ ${lanes.join(`
Check_side_effect_imports: diag(6806, 3, "Check_side_effect_imports_6806", "Check side effect imports."),
This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2: diag(6807, 1, "This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2_6807", "This operation can be simplified. This shift is identical to `{0} {1} {2}`."),
Enable_lib_replacement: diag(6808, 3, "Enable_lib_replacement_6808", "Enable lib replacement."),
+ Ensure_types_are_ordered_stably_and_deterministically_across_compilations: diag(6809, 3, "Ensure_types_are_ordered_stably_and_deterministically_across_compilations_6809", "Ensure types are ordered stably and deterministically across compilations."),
one_of_Colon: diag(6900, 3, "one_of_Colon_6900", "one of:"),
one_or_more_Colon: diag(6901, 3, "one_or_more_Colon_6901", "one or more:"),
type_Colon: diag(6902, 3, "type_Colon_6902", "type:"),
default_Colon: diag(6903, 3, "default_Colon_6903", "default:"),
- module_system_or_esModuleInterop: diag(6904, 3, "module_system_or_esModuleInterop_6904", 'module === "system" or esModuleInterop'),
- false_unless_strict_is_set: diag(6905, 3, "false_unless_strict_is_set_6905", "`false`, unless `strict` is set"),
+ true_unless_strict_is_false: diag(6905, 3, "true_unless_strict_is_false_6905", "`true`, unless `strict` is `false`"),
false_unless_composite_is_set: diag(6906, 3, "false_unless_composite_is_set_6906", "`false`, unless `composite` is set"),
node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified: diag(6907, 3, "node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907", '`["node_modules", "bower_components", "jspm_packages"]`, plus the value of `outDir` if one is specified.'),
if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk: diag(6908, 3, "if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908", '`[]` if `files` is specified, otherwise `["**/*"]`'),
true_if_composite_false_otherwise: diag(6909, 3, "true_if_composite_false_otherwise_6909", "`true` if `composite`, `false` otherwise"),
- module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node: diag(69010, 3, "module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010", "module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`"),
+ nodenext_if_module_is_nodenext_node16_if_module_is_node16_or_node18_otherwise_bundler: diag(69010, 3, "nodenext_if_module_is_nodenext_node16_if_module_is_node16_or_node18_otherwise_bundler_69010", "`nodenext` if `module` is `nodenext`; `node16` if `module` is `node16` or `node18`; otherwise, `bundler`."),
Computed_from_the_list_of_input_files: diag(6911, 3, "Computed_from_the_list_of_input_files_6911", "Computed from the list of input files"),
Platform_specific: diag(6912, 3, "Platform_specific_6912", "Platform specific"),
You_can_learn_about_all_of_the_compiler_options_at_0: diag(6913, 3, "You_can_learn_about_all_of_the_compiler_options_at_0_6913", "You can learn about all of the compiler options at {0}"),
@@ -10609,6 +10625,7 @@ ${lanes.join(`
Compiles_the_current_project_with_additional_settings: diag(6929, 3, "Compiles_the_current_project_with_additional_settings_6929", "Compiles the current project, with additional settings."),
true_for_ES2022_and_above_including_ESNext: diag(6930, 3, "true_for_ES2022_and_above_including_ESNext_6930", "`true` for ES2022 and above, including ESNext."),
List_of_file_name_suffixes_to_search_when_resolving_a_module: diag(6931, 1, "List_of_file_name_suffixes_to_search_when_resolving_a_module_6931", "List of file name suffixes to search when resolving a module."),
+ false_unless_checkJs_is_set: diag(6932, 3, "false_unless_checkJs_is_set_6932", "`false`, unless `checkJs` is set"),
Variable_0_implicitly_has_an_1_type: diag(7005, 1, "Variable_0_implicitly_has_an_1_type_7005", "Variable '{0}' implicitly has an '{1}' type."),
Parameter_0_implicitly_has_an_1_type: diag(7006, 1, "Parameter_0_implicitly_has_an_1_type_7006", "Parameter '{0}' implicitly has an '{1}' type."),
Member_0_implicitly_has_an_1_type: diag(7008, 1, "Member_0_implicitly_has_an_1_type_7008", "Member '{0}' implicitly has an '{1}' type."),
@@ -14140,6 +14157,7 @@ ${lanes.join(`
}
var targetToLibMap = /* @__PURE__ */ new Map([
[99, "lib.esnext.full.d.ts"],
+ [12, "lib.es2025.full.d.ts"],
[11, "lib.es2024.full.d.ts"],
[10, "lib.es2023.full.d.ts"],
[9, "lib.es2022.full.d.ts"],
@@ -14155,6 +14173,7 @@ ${lanes.join(`
const target = getEmitScriptTarget(options);
switch (target) {
case 99:
+ case 12:
case 11:
case 10:
case 9:
@@ -15994,13 +16013,6 @@ ${lanes.join(`
}
return skipTrivia2((sourceFile || getSourceFileOfNode(node)).text, lastDecorator.end);
}
- function getNonModifierTokenPosOfNode(node, sourceFile) {
- const lastModifier = !nodeIsMissing(node) && canHaveModifiers(node) && node.modifiers ? last(node.modifiers) : undefined;
- if (!lastModifier) {
- return getTokenPosOfNode(node, sourceFile);
- }
- return skipTrivia2((sourceFile || getSourceFileOfNode(node)).text, lastModifier.end);
- }
function getSourceTextOfNodeFromSourceFile(sourceFile, node, includeTrivia = false) {
return getTextOfNodeFromSourceText(sourceFile.text, node, includeTrivia);
}
@@ -16151,6 +16163,11 @@ ${lanes.join(`
"unicodeSets"
]
})),
+ RegExpConstructor: new Map(Object.entries({
+ es2025: [
+ "escape"
+ ]
+ })),
Reflect: new Map(Object.entries({
es2015: [
"apply",
@@ -16230,7 +16247,7 @@ ${lanes.join(`
"fround",
"cbrt"
],
- esnext: [
+ es2025: [
"f16round"
]
})),
@@ -16239,6 +16256,10 @@ ${lanes.join(`
"entries",
"keys",
"values"
+ ],
+ esnext: [
+ "getOrInsert",
+ "getOrInsertComputed"
]
})),
MapConstructor: new Map(Object.entries({
@@ -16252,7 +16273,7 @@ ${lanes.join(`
"keys",
"values"
],
- esnext: [
+ es2025: [
"union",
"intersection",
"difference",
@@ -16277,6 +16298,9 @@ ${lanes.join(`
],
es2024: [
"withResolvers"
+ ],
+ es2025: [
+ "try"
]
})),
Symbol: new Map(Object.entries({
@@ -16293,6 +16317,10 @@ ${lanes.join(`
"entries",
"keys",
"values"
+ ],
+ esnext: [
+ "getOrInsert",
+ "getOrInsertComputed"
]
})),
WeakSet: new Map(Object.entries({
@@ -16378,6 +16406,21 @@ ${lanes.join(`
Intl: new Map(Object.entries({
es2018: [
"PluralRules"
+ ],
+ es2020: [
+ "RelativeTimeFormat",
+ "Locale",
+ "DisplayNames"
+ ],
+ es2021: [
+ "ListFormat",
+ "DateTimeFormat"
+ ],
+ es2022: [
+ "Segmenter"
+ ],
+ es2025: [
+ "DurationFormat"
]
})),
NumberFormat: new Map(Object.entries({
@@ -16402,7 +16445,7 @@ ${lanes.join(`
"getBigInt64",
"getBigUint64"
],
- esnext: [
+ es2025: [
"setFloat16",
"getFloat16"
]
@@ -16441,6 +16484,12 @@ ${lanes.join(`
"toSorted",
"toSpliced",
"with"
+ ],
+ esnext: [
+ "toBase64",
+ "setFromBase64",
+ "toHex",
+ "setFromHex"
]
})),
Uint8ClampedArray: new Map(Object.entries({
@@ -16509,7 +16558,7 @@ ${lanes.join(`
]
})),
Float16Array: new Map(Object.entries({
- esnext: emptyArray
+ es2025: emptyArray
})),
Float32Array: new Map(Object.entries({
es2022: [
@@ -16569,6 +16618,28 @@ ${lanes.join(`
es2022: [
"cause"
]
+ })),
+ ErrorConstructor: new Map(Object.entries({
+ esnext: [
+ "isError"
+ ]
+ })),
+ Uint8ArrayConstructor: new Map(Object.entries({
+ esnext: [
+ "fromBase64",
+ "fromHex"
+ ]
+ })),
+ Date: new Map(Object.entries({
+ esnext: [
+ "toTemporalInstant"
+ ]
+ })),
+ DisposableStack: new Map(Object.entries({
+ esnext: emptyArray
+ })),
+ AsyncDisposableStack: new Map(Object.entries({
+ esnext: emptyArray
}))
})));
var GetLiteralTextFlags = /* @__PURE__ */ ((GetLiteralTextFlags2) => {
@@ -16707,7 +16778,7 @@ ${lanes.join(`
if (node.isDeclarationFile) {
return false;
}
- if (getStrictOptionValue(compilerOptions, "alwaysStrict")) {
+ if (getAlwaysStrict(compilerOptions)) {
return true;
}
if (startsWithUseStrict(node.statements)) {
@@ -17250,12 +17321,15 @@ ${lanes.join(`
function traverse(node) {
switch (node.kind) {
case 230:
- visitor(node);
- const operand = node.expression;
- if (operand) {
- traverse(operand);
+ const value = visitor(node);
+ if (value) {
+ return value;
}
- return;
+ const operand = node.expression;
+ if (!operand) {
+ return;
+ }
+ return traverse(operand);
case 267:
case 265:
case 268:
@@ -17264,11 +17338,10 @@ ${lanes.join(`
default:
if (isFunctionLike(node)) {
if (node.name && node.name.kind === 168) {
- traverse(node.name.expression);
- return;
+ return traverse(node.name.expression);
}
} else if (!isPartOfTypeNode(node)) {
- forEachChild(node, traverse);
+ return forEachChild(node, traverse);
}
}
}
@@ -17859,6 +17932,18 @@ ${lanes.join(`
function isBindingElementOfBareOrAccessedRequire(node) {
return isBindingElement(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(node.parent.parent);
}
+ function getModuleSpecifierOfBareOrAccessedRequire(node) {
+ if (isVariableDeclarationInitializedToRequire(node)) {
+ return node.initializer.arguments[0];
+ }
+ if (isVariableDeclarationInitializedToBareOrAccessedRequire(node)) {
+ const leftmost = getLeftmostAccessExpression(node.initializer);
+ if (isRequireCall(leftmost, true)) {
+ return leftmost.arguments[0];
+ }
+ }
+ return;
+ }
function isVariableDeclarationInitializedWithRequireHelper(node, allowAccessedRequire) {
return isVariableDeclaration(node) && !!node.initializer && isRequireCall(allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer, true);
}
@@ -19605,7 +19690,7 @@ ${lanes.join(`
return true;
if (!options.outDir)
return false;
- if (options.rootDir || options.composite && options.configFilePath) {
+ if (options.rootDir || options.configFilePath) {
const commonDir = getNormalizedAbsolutePath(getCommonSourceDirectory(options, () => [], host.getCurrentDirectory(), host.getCanonicalFileName), host.getCurrentDirectory());
const outputPath = getSourceFilePathInNewDirWorker(sourceFile.fileName, options.outDir, host.getCurrentDirectory(), commonDir, host.getCanonicalFileName);
if (comparePaths(sourceFile.fileName, outputPath, host.getCurrentDirectory(), !host.useCaseSensitiveFileNames()) === 0)
@@ -20548,7 +20633,7 @@ ${lanes.join(`
return (_a = symbol.declarations) == null ? undefined : _a.find(isClassLike);
}
function getObjectFlags(type) {
- return type.flags & 3899393 ? type.objectFlags : 0;
+ return type.flags & 403963917 ? type.objectFlags : 0;
}
function isUMDExportSymbol(symbol) {
return !!symbol && !!symbol.declarations && !!symbol.declarations[0] && isNamespaceExportDeclaration(symbol.declarations[0]);
@@ -21053,6 +21138,9 @@ ${lanes.join(`
const moduleResolution = getEmitModuleResolutionKind(options);
return 3 <= moduleResolution && moduleResolution <= 99 || getResolvePackageJsonExports(options) || getResolvePackageJsonImports(options);
}
+ function usesWildcardTypes(options) {
+ return some(options.types, (t) => t === "*");
+ }
function createComputedCompilerOptions(options) {
return options;
}
@@ -21064,44 +21152,54 @@ ${lanes.join(`
}
},
target: {
- dependencies: ["module"],
+ dependencies: [],
computeValue: (compilerOptions) => {
const target = compilerOptions.target === 0 ? undefined : compilerOptions.target;
- return target ?? (compilerOptions.module === 100 && 9 || compilerOptions.module === 101 && 9 || compilerOptions.module === 102 && 10 || compilerOptions.module === 199 && 99 || 1);
+ return target ?? 12;
}
},
module: {
dependencies: ["target"],
computeValue: (compilerOptions) => {
- return typeof compilerOptions.module === "number" ? compilerOptions.module : _computedOptions.target.computeValue(compilerOptions) >= 2 ? 5 : 1;
+ if (typeof compilerOptions.module === "number") {
+ return compilerOptions.module;
+ }
+ const target = _computedOptions.target.computeValue(compilerOptions);
+ if (target === 99) {
+ return 99;
+ }
+ if (target >= 9) {
+ return 7;
+ }
+ if (target >= 7) {
+ return 6;
+ }
+ if (target >= 2) {
+ return 5;
+ }
+ return 1;
}
},
moduleResolution: {
dependencies: ["module", "target"],
computeValue: (compilerOptions) => {
- let moduleResolution = compilerOptions.moduleResolution;
- if (moduleResolution === undefined) {
- switch (_computedOptions.module.computeValue(compilerOptions)) {
- case 1:
- moduleResolution = 2;
- break;
- case 100:
- case 101:
- case 102:
- moduleResolution = 3;
- break;
- case 199:
- moduleResolution = 99;
- break;
- case 200:
- moduleResolution = 100;
- break;
- default:
- moduleResolution = 1;
- break;
- }
+ if (compilerOptions.moduleResolution !== undefined) {
+ return compilerOptions.moduleResolution;
}
- return moduleResolution;
+ const moduleKind = _computedOptions.module.computeValue(compilerOptions);
+ switch (moduleKind) {
+ case 0:
+ case 2:
+ case 3:
+ case 4:
+ return 1;
+ case 199:
+ return 99;
+ }
+ if (100 <= moduleKind && moduleKind < 199) {
+ return 3;
+ }
+ return 100;
}
},
moduleDetection: {
@@ -21121,33 +21219,25 @@ ${lanes.join(`
}
},
esModuleInterop: {
- dependencies: ["module", "target"],
+ dependencies: [],
computeValue: (compilerOptions) => {
if (compilerOptions.esModuleInterop !== undefined) {
return compilerOptions.esModuleInterop;
}
- switch (_computedOptions.module.computeValue(compilerOptions)) {
- case 100:
- case 101:
- case 102:
- case 199:
- case 200:
- return true;
- }
- return false;
+ return true;
}
},
allowSyntheticDefaultImports: {
- dependencies: ["module", "target", "moduleResolution"],
+ dependencies: [],
computeValue: (compilerOptions) => {
if (compilerOptions.allowSyntheticDefaultImports !== undefined) {
return compilerOptions.allowSyntheticDefaultImports;
}
- return _computedOptions.esModuleInterop.computeValue(compilerOptions) || _computedOptions.module.computeValue(compilerOptions) === 4 || _computedOptions.moduleResolution.computeValue(compilerOptions) === 100;
+ return true;
}
},
resolvePackageJsonExports: {
- dependencies: ["moduleResolution"],
+ dependencies: ["moduleResolution", "module", "target"],
computeValue: (compilerOptions) => {
const moduleResolution = _computedOptions.moduleResolution.computeValue(compilerOptions);
if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
@@ -21166,7 +21256,7 @@ ${lanes.join(`
}
},
resolvePackageJsonImports: {
- dependencies: ["moduleResolution", "resolvePackageJsonExports"],
+ dependencies: ["moduleResolution", "resolvePackageJsonExports", "module", "target"],
computeValue: (compilerOptions) => {
const moduleResolution = _computedOptions.moduleResolution.computeValue(compilerOptions);
if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
@@ -21277,9 +21367,9 @@ ${lanes.join(`
}
},
alwaysStrict: {
- dependencies: ["strict"],
+ dependencies: [],
computeValue: (compilerOptions) => {
- return getStrictOptionValue(compilerOptions, "alwaysStrict");
+ return compilerOptions.alwaysStrict !== false;
}
},
useUnknownInCatchVariables: {
@@ -21307,6 +21397,7 @@ ${lanes.join(`
var getAreDeclarationMapsEnabled = _computedOptions.declarationMap.computeValue;
var getAllowJSCompilerOption = _computedOptions.allowJs.computeValue;
var getUseDefineForClassFields = _computedOptions.useDefineForClassFields.computeValue;
+ var getAlwaysStrict = _computedOptions.alwaysStrict.computeValue;
function emitModuleKindIsNonNodeESM(moduleKind) {
return moduleKind >= 5 && moduleKind <= 99;
}
@@ -21319,12 +21410,6 @@ ${lanes.join(`
}
return true;
}
- function unreachableCodeIsError(options) {
- return options.allowUnreachableCode === false;
- }
- function unusedLabelIsError(options) {
- return options.allowUnusedLabels === false;
- }
function moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution) {
return moduleResolution >= 3 && moduleResolution <= 99 || moduleResolution === 100;
}
@@ -21332,7 +21417,7 @@ ${lanes.join(`
return 101 <= moduleKind && moduleKind <= 199 || moduleKind === 200 || moduleKind === 99;
}
function getStrictOptionValue(compilerOptions, flag) {
- return compilerOptions[flag] === undefined ? !!compilerOptions.strict : !!compilerOptions[flag];
+ return compilerOptions[flag] === undefined ? compilerOptions.strict !== false : !!compilerOptions[flag];
}
function getNameOfScriptTarget(scriptTarget) {
return forEachEntry(targetOptionDeclaration.type, (value, key) => value === scriptTarget ? key : undefined);
@@ -21938,7 +22023,7 @@ ${lanes.join(`
return skipTypeCheckingWorker(sourceFile, options, host, true);
}
function skipTypeCheckingWorker(sourceFile, options, host, ignoreNoCheck) {
- return options.skipLibCheck && sourceFile.isDeclarationFile || options.skipDefaultLibCheck && sourceFile.hasNoDefaultLib || !ignoreNoCheck && options.noCheck || host.isSourceOfProjectReferenceRedirect(sourceFile.fileName) || !canIncludeBindAndCheckDiagnostics(sourceFile, options);
+ return options.skipLibCheck && sourceFile.isDeclarationFile || options.skipDefaultLibCheck && host.isSourceFileDefaultLibrary(sourceFile) || !ignoreNoCheck && options.noCheck || host.isSourceOfProjectReferenceRedirect(sourceFile.fileName) || !canIncludeBindAndCheckDiagnostics(sourceFile, options);
}
function canIncludeBindAndCheckDiagnostics(sourceFile, options) {
if (!!sourceFile.checkJsDirective && sourceFile.checkJsDirective.enabled === false)
@@ -22244,7 +22329,7 @@ ${lanes.join(`
if (node.kind !== 220) {
const parameter = firstOrUndefined(node.parameters);
if (!(parameter && parameterIsThisKeyword(parameter))) {
- return true;
+ return !!(node.flags & 256);
}
}
}
@@ -22270,7 +22355,7 @@ ${lanes.join(`
return !isMethodNamedNew && isIdentifierText(name, target) ? factory.createIdentifier(name) : !stringNamed && !isMethodNamedNew && isNumericLiteralName(name) && +name >= 0 ? factory.createNumericLiteral(+name) : factory.createStringLiteral(name, !!singleQuote);
}
function isThisTypeParameter(type) {
- return !!(type.flags & 262144 && type.isThisType);
+ return !!(type.flags & 524288 && type.isThisType);
}
function getNodeModulePathParts(fullPath) {
let topLevelNodeModulesIndex = 0;
@@ -22412,13 +22497,13 @@ ${lanes.join(`
return isIdentifier(node) ? idText(node) : getTextOfJsxNamespacedName(node);
}
function isTypeUsableAsPropertyName(type) {
- return !!(type.flags & 8576);
+ return !!(type.flags & 19456);
}
function getPropertyNameFromType(type) {
- if (type.flags & 8192) {
+ if (type.flags & 16384) {
return type.escapedName;
}
- if (type.flags & (128 | 256)) {
+ if (type.flags & (1024 | 2048)) {
return escapeLeadingUnderscores("" + type.value);
}
return Debug.fail();
@@ -23102,7 +23187,6 @@ ${lanes.join(`
"stream/web",
"string_decoder",
"sys",
- "test/mock_loader",
"timers",
"timers/promises",
"tls",
@@ -23119,6 +23203,7 @@ ${lanes.join(`
];
var unprefixedNodeCoreModules = new Set(unprefixedNodeCoreModulesList);
var exclusivelyPrefixedNodeCoreModules = /* @__PURE__ */ new Set([
+ "node:quic",
"node:sea",
"node:sqlite",
"node:test",
@@ -23269,6 +23354,21 @@ ${lanes.join(`
function getFirstChild(node) {
return forEachChild(node, (child) => child);
}
+ function canHaveStatements(node) {
+ return isBlock(node) || isModuleBlock(node) || isSourceFile(node) || isCaseClause(node) || isDefaultClause(node);
+ }
+ function isPotentiallyExecutableNode(node) {
+ if (244 <= node.kind && node.kind <= 260) {
+ if (isVariableStatement(node)) {
+ if (getCombinedNodeFlags(node.declarationList) & 7) {
+ return true;
+ }
+ return some(node.declarationList.declarations, (d) => d.initializer !== undefined);
+ }
+ return true;
+ }
+ return isClassDeclaration(node) || isEnumDeclaration(node) || isModuleDeclaration(node);
+ }
function createBaseNodeFactory() {
let NodeConstructor2;
let TokenConstructor2;
@@ -27066,7 +27166,7 @@ ${lanes.join(`
node.path = "";
node.resolvedPath = "";
node.originalFileName = "";
- node.languageVersion = 1;
+ node.languageVersion = 12;
node.languageVariant = 0;
node.scriptKind = 0;
node.isDeclarationFile = false;
@@ -27167,8 +27267,8 @@ ${lanes.join(`
node.transformFlags = propagateChildrenFlags(node.statements) | propagateChildFlags(node.endOfFileToken);
return node;
}
- function updateSourceFile2(node, statements, isDeclarationFile = node.isDeclarationFile, referencedFiles = node.referencedFiles, typeReferenceDirectives = node.typeReferenceDirectives, hasNoDefaultLib = node.hasNoDefaultLib, libReferenceDirectives = node.libReferenceDirectives) {
- return node.statements !== statements || node.isDeclarationFile !== isDeclarationFile || node.referencedFiles !== referencedFiles || node.typeReferenceDirectives !== typeReferenceDirectives || node.hasNoDefaultLib !== hasNoDefaultLib || node.libReferenceDirectives !== libReferenceDirectives ? update(cloneSourceFileWithChanges(node, statements, isDeclarationFile, referencedFiles, typeReferenceDirectives, hasNoDefaultLib, libReferenceDirectives), node) : node;
+ function updateSourceFile2(node, statements, isDeclarationFile = node.isDeclarationFile, referencedFiles = node.referencedFiles, typeReferenceDirectives = node.typeReferenceDirectives, _hasNoDefaultLib = false, libReferenceDirectives = node.libReferenceDirectives) {
+ return node.statements !== statements || node.isDeclarationFile !== isDeclarationFile || node.referencedFiles !== referencedFiles || node.typeReferenceDirectives !== typeReferenceDirectives || node.libReferenceDirectives !== libReferenceDirectives ? update(cloneSourceFileWithChanges(node, statements, isDeclarationFile, referencedFiles, typeReferenceDirectives, false, libReferenceDirectives), node) : node;
}
function createBundle(sourceFiles) {
const node = createBaseNode(309);
@@ -27176,7 +27276,6 @@ ${lanes.join(`
node.syntheticFileReferences = undefined;
node.syntheticTypeReferences = undefined;
node.syntheticLibReferences = undefined;
- node.hasNoDefaultLib = undefined;
return node;
}
function updateBundle(node, sourceFiles) {
@@ -35204,7 +35303,11 @@ ${lanes.join(`
case 121:
case 87:
case 160:
+ return parseVariableStatement(pos, hasJSDoc, modifiersIn);
case 135:
+ if (!isAwaitUsingDeclaration()) {
+ break;
+ }
return parseVariableStatement(pos, hasJSDoc, modifiersIn);
case 100:
return parseFunctionDeclaration(pos, hasJSDoc, modifiersIn);
@@ -35233,15 +35336,14 @@ ${lanes.join(`
default:
return parseExportDeclaration(pos, hasJSDoc, modifiersIn);
}
- default:
- if (modifiersIn) {
- const missing = createMissingNode(283, true, Diagnostics.Declaration_expected);
- setTextRangePos(missing, pos);
- missing.modifiers = modifiersIn;
- return missing;
- }
- return;
}
+ if (modifiersIn) {
+ const missing = createMissingNode(283, true, Diagnostics.Declaration_expected);
+ setTextRangePos(missing, pos);
+ missing.modifiers = modifiersIn;
+ return missing;
+ }
+ return;
}
function nextTokenIsStringLiteral() {
return nextToken() === 11;
@@ -35351,7 +35453,9 @@ ${lanes.join(`
flags |= 4;
break;
case 135:
- Debug.assert(isAwaitUsingDeclaration());
+ if (!isAwaitUsingDeclaration()) {
+ break;
+ }
flags |= 6;
nextToken();
break;
@@ -35862,7 +35966,7 @@ ${lanes.join(`
}
function tryParseImportAttributes() {
const currentToken2 = token();
- if ((currentToken2 === 118 || currentToken2 === 132) && !scanner2.hasPrecedingLineBreak()) {
+ if (currentToken2 === 118 || currentToken2 === 132 && !scanner2.hasPrecedingLineBreak()) {
return parseImportAttributes(currentToken2);
}
}
@@ -37457,7 +37561,6 @@ ${lanes.join(`
context.typeReferenceDirectives = [];
context.libReferenceDirectives = [];
context.amdDependencies = [];
- context.hasNoDefaultLib = false;
context.pragmas.forEach((entryOrList, key) => {
switch (key) {
case "reference": {
@@ -37467,9 +37570,7 @@ ${lanes.join(`
forEach(toArray(entryOrList), (arg) => {
const { types, lib, path, ["resolution-mode"]: res, preserve: _preserve } = arg.arguments;
const preserve = _preserve === "true" ? true : undefined;
- if (arg.arguments["no-default-lib"] === "true") {
- context.hasNoDefaultLib = true;
- } else if (types) {
+ if (arg.arguments["no-default-lib"] === "true") {} else if (types) {
const parsed = parseResolutionMode(res, types.pos, types.end, reportDiagnostic);
typeReferenceDirectives.push({ pos: types.pos, end: types.end, fileName: types.value, ...parsed ? { resolutionMode: parsed } : {}, ...preserve ? { preserve } : {} });
} else if (lib) {
@@ -37656,6 +37757,7 @@ ${lanes.join(`
["es2022", "lib.es2022.d.ts"],
["es2023", "lib.es2023.d.ts"],
["es2024", "lib.es2024.d.ts"],
+ ["es2025", "lib.es2025.d.ts"],
["esnext", "lib.esnext.d.ts"],
["dom", "lib.dom.d.ts"],
["dom.iterable", "lib.dom.iterable.d.ts"],
@@ -37721,26 +37823,32 @@ ${lanes.join(`
["es2024.regexp", "lib.es2024.regexp.d.ts"],
["es2024.sharedmemory", "lib.es2024.sharedmemory.d.ts"],
["es2024.string", "lib.es2024.string.d.ts"],
- ["esnext.array", "lib.es2023.array.d.ts"],
- ["esnext.collection", "lib.esnext.collection.d.ts"],
- ["esnext.symbol", "lib.es2019.symbol.d.ts"],
+ ["es2025.collection", "lib.es2025.collection.d.ts"],
+ ["es2025.float16", "lib.es2025.float16.d.ts"],
+ ["es2025.intl", "lib.es2025.intl.d.ts"],
+ ["es2025.iterator", "lib.es2025.iterator.d.ts"],
+ ["es2025.promise", "lib.es2025.promise.d.ts"],
+ ["es2025.regexp", "lib.es2025.regexp.d.ts"],
["esnext.asynciterable", "lib.es2018.asynciterable.d.ts"],
- ["esnext.intl", "lib.esnext.intl.d.ts"],
- ["esnext.disposable", "lib.esnext.disposable.d.ts"],
+ ["esnext.symbol", "lib.es2019.symbol.d.ts"],
["esnext.bigint", "lib.es2020.bigint.d.ts"],
- ["esnext.string", "lib.es2022.string.d.ts"],
- ["esnext.promise", "lib.es2024.promise.d.ts"],
["esnext.weakref", "lib.es2021.weakref.d.ts"],
- ["esnext.decorators", "lib.esnext.decorators.d.ts"],
["esnext.object", "lib.es2024.object.d.ts"],
- ["esnext.array", "lib.esnext.array.d.ts"],
["esnext.regexp", "lib.es2024.regexp.d.ts"],
["esnext.string", "lib.es2024.string.d.ts"],
- ["esnext.iterator", "lib.esnext.iterator.d.ts"],
- ["esnext.promise", "lib.esnext.promise.d.ts"],
- ["esnext.float16", "lib.esnext.float16.d.ts"],
+ ["esnext.float16", "lib.es2025.float16.d.ts"],
+ ["esnext.iterator", "lib.es2025.iterator.d.ts"],
+ ["esnext.promise", "lib.es2025.promise.d.ts"],
+ ["esnext.array", "lib.esnext.array.d.ts"],
+ ["esnext.collection", "lib.esnext.collection.d.ts"],
+ ["esnext.date", "lib.esnext.date.d.ts"],
+ ["esnext.decorators", "lib.esnext.decorators.d.ts"],
+ ["esnext.disposable", "lib.esnext.disposable.d.ts"],
["esnext.error", "lib.esnext.error.d.ts"],
+ ["esnext.intl", "lib.esnext.intl.d.ts"],
["esnext.sharedmemory", "lib.esnext.sharedmemory.d.ts"],
+ ["esnext.temporal", "lib.esnext.temporal.d.ts"],
+ ["esnext.typedarrays", "lib.esnext.typedarrays.d.ts"],
["decorators", "lib.decorators.d.ts"],
["decorators.legacy", "lib.decorators.legacy.d.ts"]
];
@@ -38033,18 +38141,19 @@ ${lanes.join(`
es2022: 9,
es2023: 10,
es2024: 11,
+ es2025: 12,
esnext: 99
})),
affectsSourceFile: true,
affectsModuleResolution: true,
affectsEmit: true,
affectsBuildInfo: true,
- deprecatedKeys: /* @__PURE__ */ new Set(["es3"]),
+ deprecatedKeys: /* @__PURE__ */ new Set(["es3", "es5"]),
paramType: Diagnostics.VERSION,
showInSimplifiedHelpView: true,
category: Diagnostics.Language_and_Environment,
description: Diagnostics.Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations,
- defaultValueDescription: 1
+ defaultValueDescription: 12
};
var moduleOptionDeclaration = {
name: "module",
@@ -38066,6 +38175,7 @@ ${lanes.join(`
nodenext: 199,
preserve: 200
})),
+ deprecatedKeys: /* @__PURE__ */ new Set(["none", "amd", "system", "umd"]),
affectsSourceFile: true,
affectsModuleResolution: true,
affectsEmit: true,
@@ -38129,6 +38239,15 @@ ${lanes.join(`
description: Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing,
defaultValueDescription: false
},
+ {
+ name: "ignoreConfig",
+ type: "boolean",
+ showInSimplifiedHelpView: true,
+ category: Diagnostics.Command_line_Options,
+ isCommandLineOnly: true,
+ description: Diagnostics.Ignore_the_tsconfig_found_and_build_with_commandline_options_and_files,
+ defaultValueDescription: false
+ },
targetOptionDeclaration,
moduleOptionDeclaration,
{
@@ -38153,7 +38272,7 @@ ${lanes.join(`
showInSimplifiedHelpView: true,
category: Diagnostics.JavaScript_Support,
description: Diagnostics.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these_files,
- defaultValueDescription: false
+ defaultValueDescription: Diagnostics.false_unless_checkJs_is_set
},
{
name: "checkJs",
@@ -38324,7 +38443,7 @@ ${lanes.join(`
affectsProgramStructure: true,
category: Diagnostics.Language_and_Environment,
description: Diagnostics.Enable_lib_replacement,
- defaultValueDescription: true
+ defaultValueDescription: false
},
{
name: "strict",
@@ -38333,7 +38452,7 @@ ${lanes.join(`
showInSimplifiedHelpView: true,
category: Diagnostics.Type_Checking,
description: Diagnostics.Enable_all_strict_type_checking_options,
- defaultValueDescription: false
+ defaultValueDescription: true
},
{
name: "noImplicitAny",
@@ -38343,7 +38462,7 @@ ${lanes.join(`
strictFlag: true,
category: Diagnostics.Type_Checking,
description: Diagnostics.Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type,
- defaultValueDescription: Diagnostics.false_unless_strict_is_set
+ defaultValueDescription: Diagnostics.true_unless_strict_is_false
},
{
name: "strictNullChecks",
@@ -38353,7 +38472,7 @@ ${lanes.join(`
strictFlag: true,
category: Diagnostics.Type_Checking,
description: Diagnostics.When_type_checking_take_into_account_null_and_undefined,
- defaultValueDescription: Diagnostics.false_unless_strict_is_set
+ defaultValueDescription: Diagnostics.true_unless_strict_is_false
},
{
name: "strictFunctionTypes",
@@ -38363,7 +38482,7 @@ ${lanes.join(`
strictFlag: true,
category: Diagnostics.Type_Checking,
description: Diagnostics.When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible,
- defaultValueDescription: Diagnostics.false_unless_strict_is_set
+ defaultValueDescription: Diagnostics.true_unless_strict_is_false
},
{
name: "strictBindCallApply",
@@ -38373,7 +38492,7 @@ ${lanes.join(`
strictFlag: true,
category: Diagnostics.Type_Checking,
description: Diagnostics.Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function,
- defaultValueDescription: Diagnostics.false_unless_strict_is_set
+ defaultValueDescription: Diagnostics.true_unless_strict_is_false
},
{
name: "strictPropertyInitialization",
@@ -38383,7 +38502,7 @@ ${lanes.join(`
strictFlag: true,
category: Diagnostics.Type_Checking,
description: Diagnostics.Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor,
- defaultValueDescription: Diagnostics.false_unless_strict_is_set
+ defaultValueDescription: Diagnostics.true_unless_strict_is_false
},
{
name: "strictBuiltinIteratorReturn",
@@ -38393,7 +38512,17 @@ ${lanes.join(`
strictFlag: true,
category: Diagnostics.Type_Checking,
description: Diagnostics.Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any,
- defaultValueDescription: Diagnostics.false_unless_strict_is_set
+ defaultValueDescription: Diagnostics.true_unless_strict_is_false
+ },
+ {
+ name: "stableTypeOrdering",
+ type: "boolean",
+ affectsSemanticDiagnostics: true,
+ affectsBuildInfo: true,
+ showInHelp: false,
+ category: Diagnostics.Type_Checking,
+ description: Diagnostics.Ensure_types_are_ordered_stably_and_deterministically_across_compilations,
+ defaultValueDescription: false
},
{
name: "noImplicitThis",
@@ -38403,7 +38532,7 @@ ${lanes.join(`
strictFlag: true,
category: Diagnostics.Type_Checking,
description: Diagnostics.Enable_error_reporting_when_this_is_given_the_type_any,
- defaultValueDescription: Diagnostics.false_unless_strict_is_set
+ defaultValueDescription: Diagnostics.true_unless_strict_is_false
},
{
name: "useUnknownInCatchVariables",
@@ -38413,7 +38542,7 @@ ${lanes.join(`
strictFlag: true,
category: Diagnostics.Type_Checking,
description: Diagnostics.Default_catch_clause_variables_as_unknown_instead_of_any,
- defaultValueDescription: Diagnostics.false_unless_strict_is_set
+ defaultValueDescription: Diagnostics.true_unless_strict_is_false
},
{
name: "alwaysStrict",
@@ -38421,10 +38550,9 @@ ${lanes.join(`
affectsSourceFile: true,
affectsEmit: true,
affectsBuildInfo: true,
- strictFlag: true,
category: Diagnostics.Type_Checking,
description: Diagnostics.Ensure_use_strict_is_always_emitted,
- defaultValueDescription: Diagnostics.false_unless_strict_is_set
+ defaultValueDescription: true
},
{
name: "noUnusedLocals",
@@ -38510,13 +38638,13 @@ ${lanes.join(`
nodenext: 99,
bundler: 100
})),
- deprecatedKeys: /* @__PURE__ */ new Set(["node"]),
+ deprecatedKeys: /* @__PURE__ */ new Set(["node", "node10", "classic"]),
affectsSourceFile: true,
affectsModuleResolution: true,
paramType: Diagnostics.STRATEGY,
category: Diagnostics.Modules,
description: Diagnostics.Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier,
- defaultValueDescription: Diagnostics.module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node
+ defaultValueDescription: Diagnostics.nodenext_if_module_is_nodenext_node16_if_module_is_node16_or_node18_otherwise_bundler
},
{
name: "baseUrl",
@@ -38585,7 +38713,7 @@ ${lanes.join(`
affectsBuildInfo: true,
category: Diagnostics.Interop_Constraints,
description: Diagnostics.Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export,
- defaultValueDescription: Diagnostics.module_system_or_esModuleInterop
+ defaultValueDescription: true
},
{
name: "esModuleInterop",
@@ -38596,7 +38724,7 @@ ${lanes.join(`
showInSimplifiedHelpView: true,
category: Diagnostics.Interop_Constraints,
description: Diagnostics.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility,
- defaultValueDescription: false
+ defaultValueDescription: true
},
{
name: "preserveSymlinks",
@@ -38679,7 +38807,7 @@ ${lanes.join(`
affectsBuildInfo: true,
category: Diagnostics.Modules,
description: Diagnostics.Check_side_effect_imports,
- defaultValueDescription: false
+ defaultValueDescription: true
},
{
name: "sourceRoot",
@@ -41082,7 +41210,7 @@ ${lanes.join(`
const affectingLocations = [];
let features = getNodeResolutionFeatures(options);
if (resolutionMode !== undefined) {
- features |= 30;
+ features |= 94;
}
const moduleResolution = getEmitModuleResolutionKind(options);
if (resolutionMode === 99 && (3 <= moduleResolution && moduleResolution <= 99)) {
@@ -41210,10 +41338,10 @@ ${lanes.join(`
features = 30;
break;
case 99:
- features = 30;
+ features = 94;
break;
case 100:
- features = 30;
+ features = 94;
break;
}
if (options.resolvePackageJsonExports) {
@@ -41257,10 +41385,10 @@ ${lanes.join(`
});
}
function getAutomaticTypeDirectiveNames(options, host) {
- if (options.types) {
- return options.types;
+ if (!usesWildcardTypes(options)) {
+ return options.types ?? [];
}
- const result = [];
+ const wildcardMatches = [];
if (host.directoryExists && host.getDirectories) {
const typeRoots = getEffectiveTypeRoots(options, host);
if (typeRoots) {
@@ -41273,7 +41401,7 @@ ${lanes.join(`
if (!isNotNeededPackage) {
const baseFileName = getBaseFileName(normalized);
if (baseFileName.charCodeAt(0) !== 46) {
- result.push(baseFileName);
+ wildcardMatches.push(baseFileName);
}
}
}
@@ -41281,7 +41409,7 @@ ${lanes.join(`
}
}
}
- return result;
+ return deduplicate(flatten(options.types.map((t) => t === "*" ? wildcardMatches : t)), equateValues);
}
function isPackageJsonInfo(entry) {
return !!(entry == null ? undefined : entry.contents);
@@ -41766,10 +41894,11 @@ ${lanes.join(`
NodeResolutionFeatures2[NodeResolutionFeatures2["SelfName"] = 4] = "SelfName";
NodeResolutionFeatures2[NodeResolutionFeatures2["Exports"] = 8] = "Exports";
NodeResolutionFeatures2[NodeResolutionFeatures2["ExportsPatternTrailers"] = 16] = "ExportsPatternTrailers";
- NodeResolutionFeatures2[NodeResolutionFeatures2["AllFeatures"] = 30] = "AllFeatures";
+ NodeResolutionFeatures2[NodeResolutionFeatures2["ImportsPatternRoot"] = 64] = "ImportsPatternRoot";
+ NodeResolutionFeatures2[NodeResolutionFeatures2["AllFeatures"] = 94] = "AllFeatures";
NodeResolutionFeatures2[NodeResolutionFeatures2["Node16Default"] = 30] = "Node16Default";
- NodeResolutionFeatures2[NodeResolutionFeatures2["NodeNextDefault"] = 30] = "NodeNextDefault";
- NodeResolutionFeatures2[NodeResolutionFeatures2["BundlerDefault"] = 30] = "BundlerDefault";
+ NodeResolutionFeatures2[NodeResolutionFeatures2["NodeNextDefault"] = 94] = "NodeNextDefault";
+ NodeResolutionFeatures2[NodeResolutionFeatures2["BundlerDefault"] = 94] = "BundlerDefault";
NodeResolutionFeatures2[NodeResolutionFeatures2["EsmMode"] = 32] = "EsmMode";
return NodeResolutionFeatures2;
})(NodeResolutionFeatures || {});
@@ -41777,7 +41906,7 @@ ${lanes.join(`
return nodeNextModuleNameResolverWorker(30, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);
}
function nodeNextModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {
- return nodeNextModuleNameResolverWorker(30, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);
+ return nodeNextModuleNameResolverWorker(94, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);
}
function nodeNextModuleNameResolverWorker(features, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode, conditions) {
const containingDirectory = getDirectoryPath(containingFile);
@@ -41810,10 +41939,10 @@ ${lanes.join(`
} else {
extensions = getResolveJsonModule(compilerOptions) ? 1 | 2 | 4 | 8 : 1 | 2 | 4;
}
- return nodeModuleNameResolverWorker(conditions ? 30 : 0, moduleName, getDirectoryPath(containingFile), compilerOptions, host, cache, extensions, !!isConfigLookup, redirectedReference, conditions);
+ return nodeModuleNameResolverWorker(conditions ? 94 : 0, moduleName, getDirectoryPath(containingFile), compilerOptions, host, cache, extensions, !!isConfigLookup, redirectedReference, conditions);
}
function nodeNextJsonConfigResolver(moduleName, containingFile, host) {
- return nodeModuleNameResolverWorker(30, moduleName, getDirectoryPath(containingFile), { moduleResolution: 99 }, host, undefined, 8, true, undefined, undefined);
+ return nodeModuleNameResolverWorker(94, moduleName, getDirectoryPath(containingFile), { moduleResolution: 99 }, host, undefined, 8, true, undefined, undefined);
}
function nodeModuleNameResolverWorker(features, moduleName, containingDirectory, compilerOptions, host, cache, extensions, isConfigLookup, redirectedReference, conditions) {
var _a, _b, _c, _d, _e;
@@ -41869,7 +41998,7 @@ ${lanes.join(`
const diagnosticState = {
...state,
compilerOptions: diagnosticsCompilerOptions,
- features: 30,
+ features: 94,
conditions: getConditions(diagnosticsCompilerOptions),
reportDiagnostic: noop
};
@@ -42406,7 +42535,7 @@ ${lanes.join(`
}
function loadModuleFromImports(extensions, moduleName, directory, state, cache, redirectedReference) {
var _a, _b;
- if (moduleName === "#" || startsWith(moduleName, "#/")) {
+ if (moduleName === "#" || startsWith(moduleName, "#/") && !(state.features & 64)) {
if (state.traceEnabled) {
trace(state.host, Diagnostics.Invalid_import_specifier_0_has_no_possible_resolutions, moduleName);
}
@@ -42555,7 +42684,9 @@ ${lanes.join(`
const subTarget = target[condition];
const result = loadModuleFromTargetExportOrImport(subTarget, subpath, pattern, key);
if (result) {
- traceIfEnabled(state, Diagnostics.Resolved_under_condition_0, condition);
+ if (result.value) {
+ traceIfEnabled(state, Diagnostics.Resolved_under_condition_0, condition);
+ }
traceIfEnabled(state, Diagnostics.Exiting_conditional_exports);
return result;
} else {
@@ -42585,7 +42716,7 @@ ${lanes.join(`
if (state.traceEnabled) {
trace(state.host, Diagnostics.package_json_scope_0_explicitly_maps_specifier_1_to_null, scope.packageDirectory, moduleName);
}
- return toSearchResult(undefined);
+ return { value: undefined };
}
if (state.traceEnabled) {
trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);
@@ -42605,7 +42736,7 @@ ${lanes.join(`
if (!state.isConfigLookup && (state.compilerOptions.declarationDir || state.compilerOptions.outDir) && !finalPath.includes("/node_modules/") && (state.compilerOptions.configFile ? containsPath(scope.packageDirectory, toAbsolutePath(state.compilerOptions.configFile.fileName), !useCaseSensitiveFileNames(state)) : true)) {
const getCanonicalFileName = hostGetCanonicalFileName({ useCaseSensitiveFileNames: () => useCaseSensitiveFileNames(state) });
const commonSourceDirGuesses = [];
- if (state.compilerOptions.rootDir || state.compilerOptions.composite && state.compilerOptions.configFilePath) {
+ if (state.compilerOptions.rootDir || state.compilerOptions.configFilePath) {
const commonDir = toAbsolutePath(getCommonSourceDirectory(state.compilerOptions, () => [], ((_b2 = (_a2 = state.host).getCurrentDirectory) == null ? undefined : _b2.call(_a2)) || "", getCanonicalFileName));
commonSourceDirGuesses.push(commonDir);
} else if (state.requestContainingDirectory) {
@@ -43100,6 +43231,7 @@ ${lanes.join(`
ContainerFlags2[ContainerFlags2["HasLocals"] = 32] = "HasLocals";
ContainerFlags2[ContainerFlags2["IsInterface"] = 64] = "IsInterface";
ContainerFlags2[ContainerFlags2["IsObjectLiteralOrClassExpressionMethodOrAccessor"] = 128] = "IsObjectLiteralOrClassExpressionMethodOrAccessor";
+ ContainerFlags2[ContainerFlags2["PropagatesThisKeyword"] = 256] = "PropagatesThisKeyword";
return ContainerFlags2;
})(ContainerFlags || {});
function createFlowNode(flags, node, antecedent) {
@@ -43143,7 +43275,6 @@ ${lanes.join(`
var Symbol48;
var classifiableNames;
var unreachableFlow = createFlowNode(1, undefined, undefined);
- var reportedUnreachableFlow = createFlowNode(1, undefined, undefined);
var bindBinaryExpressionFlow = createBindBinaryExpressionFlow();
return bindSourceFile2;
function createDiagnosticForNode2(node, message, ...args) {
@@ -43159,7 +43290,6 @@ ${lanes.join(`
symbolCount = 0;
Symbol48 = objectAllocator.getSymbolConstructor();
Debug.attachFlowNodeDebugInfo(unreachableFlow);
- Debug.attachFlowNodeDebugInfo(reportedUnreachableFlow);
if (!file.locals) {
(_a = tracing) == null || _a.push(tracing.Phase.Bind, "bindSourceFile", { path: file.path }, true);
bind(file);
@@ -43195,7 +43325,7 @@ ${lanes.join(`
emitFlags = 0;
}
function bindInStrictMode(file2, opts) {
- if (getStrictOptionValue(opts, "alwaysStrict") && !file2.isDeclarationFile) {
+ if (getAlwaysStrict(opts) && !file2.isDeclarationFile) {
return true;
} else {
return !!file2.externalModuleIndicator;
@@ -43436,6 +43566,7 @@ ${lanes.join(`
const saveExceptionTarget = currentExceptionTarget;
const saveActiveLabelList = activeLabelList;
const saveHasExplicitReturn = hasExplicitReturn;
+ const saveSeenThisKeyword = seenThisKeyword;
const isImmediatelyInvoked = containerFlags & 16 && !hasSyntacticModifier(node, 1024) && !node.asteriskToken && !!getImmediatelyInvokedFunctionExpression(node) || node.kind === 176;
if (!isImmediatelyInvoked) {
currentFlow = createFlowNode(2, undefined, undefined);
@@ -43449,14 +43580,18 @@ ${lanes.join(`
currentContinueTarget = undefined;
activeLabelList = undefined;
hasExplicitReturn = false;
+ seenThisKeyword = false;
bindChildren(node);
- node.flags &= ~5632;
+ node.flags &= ~(5632 | 256);
if (!(currentFlow.flags & 1) && containerFlags & 8 && nodeIsPresent(node.body)) {
node.flags |= 512;
if (hasExplicitReturn)
node.flags |= 1024;
node.endFlowNode = currentFlow;
}
+ if (seenThisKeyword) {
+ node.flags |= 256;
+ }
if (node.kind === 308) {
node.flags |= emitFlags;
node.endFlowNode = currentFlow;
@@ -43477,11 +43612,14 @@ ${lanes.join(`
currentExceptionTarget = saveExceptionTarget;
activeLabelList = saveActiveLabelList;
hasExplicitReturn = saveHasExplicitReturn;
+ seenThisKeyword = containerFlags & 256 ? saveSeenThisKeyword || seenThisKeyword : saveSeenThisKeyword;
} else if (containerFlags & 64) {
+ const saveSeenThisKeyword = seenThisKeyword;
seenThisKeyword = false;
bindChildren(node);
Debug.assertNotNode(node, isIdentifier);
node.flags = seenThisKeyword ? node.flags | 256 : node.flags & ~256;
+ seenThisKeyword = saveSeenThisKeyword;
} else {
bindChildren(node);
}
@@ -43506,16 +43644,22 @@ ${lanes.join(`
function bindChildren(node) {
const saveInAssignmentPattern = inAssignmentPattern;
inAssignmentPattern = false;
- if (checkUnreachable(node)) {
- if (canHaveFlowNode(node) && node.flowNode) {
+ if (isPotentiallyExecutableNode(node)) {
+ node.flags &= ~1073741824;
+ }
+ if (currentFlow === unreachableFlow) {
+ if (canHaveFlowNode(node)) {
node.flowNode = undefined;
}
+ if (isPotentiallyExecutableNode(node)) {
+ node.flags |= 1073741824;
+ }
bindEachChild(node);
bindJSDoc(node);
inAssignmentPattern = saveInAssignmentPattern;
return;
}
- if (node.kind >= 244 && node.kind <= 260 && (!options.allowUnreachableCode || node.kind === 254)) {
+ if (244 <= node.kind && node.kind <= 260 && canHaveFlowNode(node)) {
node.flowNode = currentFlow;
}
switch (node.kind) {
@@ -44087,8 +44231,8 @@ ${lanes.join(`
};
bind(node.label);
bind(node.statement);
- if (!activeLabelList.referenced && !options.allowUnusedLabels) {
- errorOrSuggestionOnNode(unusedLabelIsError(options), node.label, Diagnostics.Unused_label);
+ if (!activeLabelList.referenced) {
+ node.label.flags |= 1073741824;
}
activeLabelList = activeLabelList.next;
addAntecedent(postStatementLabel, currentFlow);
@@ -44805,20 +44949,6 @@ ${lanes.join(`
const span = getSpanOfTokenAtPosition(file, node.pos);
file.bindDiagnostics.push(createFileDiagnostic(file, span.start, span.length, message, ...args));
}
- function errorOrSuggestionOnNode(isError, node, message) {
- errorOrSuggestionOnRange(isError, node, node, message);
- }
- function errorOrSuggestionOnRange(isError, startNode2, endNode2, message) {
- addErrorOrSuggestionDiagnostic(isError, { pos: getTokenPosOfNode(startNode2, file), end: endNode2.end }, message);
- }
- function addErrorOrSuggestionDiagnostic(isError, range, message) {
- const diag2 = createFileDiagnostic(file, range.pos, range.end - range.pos, message);
- if (isError) {
- file.bindDiagnostics.push(diag2);
- } else {
- file.bindSuggestionDiagnostics = append(file.bindSuggestionDiagnostics, { ...diag2, category: 2 });
- }
- }
function bind(node) {
if (!node) {
return;
@@ -44890,6 +45020,9 @@ ${lanes.join(`
break;
}
case 110:
+ if (node.kind === 110) {
+ seenThisKeyword = true;
+ }
if (currentFlow && (isExpression(node) || parent2.kind === 305)) {
node.flowNode = currentFlow;
}
@@ -45582,54 +45715,6 @@ ${lanes.join(`
declareSymbolAndAddToSymbolTable(node, 262144, 526824);
}
}
- function shouldReportErrorOnModuleDeclaration(node) {
- const instanceState = getModuleInstanceState(node);
- return instanceState === 1 || instanceState === 2 && shouldPreserveConstEnums(options);
- }
- function checkUnreachable(node) {
- if (!(currentFlow.flags & 1)) {
- return false;
- }
- if (currentFlow === unreachableFlow) {
- const reportError = isStatementButNotDeclaration(node) && node.kind !== 243 || node.kind === 264 || isEnumDeclarationWithPreservedEmit(node, options) || node.kind === 268 && shouldReportErrorOnModuleDeclaration(node);
- if (reportError) {
- currentFlow = reportedUnreachableFlow;
- if (!options.allowUnreachableCode) {
- const isError = unreachableCodeIsError(options) && !(node.flags & 33554432) && (!isVariableStatement(node) || !!(getCombinedNodeFlags(node.declarationList) & 7) || node.declarationList.declarations.some((d) => !!d.initializer));
- eachUnreachableRange(node, options, (start, end) => errorOrSuggestionOnRange(isError, start, end, Diagnostics.Unreachable_code_detected));
- }
- }
- }
- return true;
- }
- }
- function isEnumDeclarationWithPreservedEmit(node, options) {
- return node.kind === 267 && (!isEnumConst(node) || shouldPreserveConstEnums(options));
- }
- function eachUnreachableRange(node, options, cb) {
- if (isStatement(node) && isExecutableStatement(node) && isBlock(node.parent)) {
- const { statements } = node.parent;
- const slice = sliceAfter(statements, node);
- getRangesWhere(slice, isExecutableStatement, (start, afterEnd) => cb(slice[start], slice[afterEnd - 1]));
- } else {
- cb(node, node);
- }
- function isExecutableStatement(s) {
- return !isFunctionDeclaration(s) && !isPurelyTypeDeclaration(s) && !(isVariableStatement(s) && !(getCombinedNodeFlags(s) & 7) && s.declarationList.declarations.some((d) => !d.initializer));
- }
- function isPurelyTypeDeclaration(s) {
- switch (s.kind) {
- case 265:
- case 266:
- return true;
- case 268:
- return getModuleInstanceState(s) !== 1;
- case 267:
- return !isEnumDeclarationWithPreservedEmit(s, options);
- default:
- return false;
- }
- }
}
function isExportsOrModuleExportsOrAlias(sourceFile, node) {
let i = 0;
@@ -45681,6 +45766,8 @@ ${lanes.join(`
}
case 177:
case 263:
+ case 176:
+ return 1 | 4 | 32 | 8;
case 174:
case 180:
case 324:
@@ -45688,13 +45775,13 @@ ${lanes.join(`
case 185:
case 181:
case 186:
- case 176:
- return 1 | 4 | 32 | 8;
+ return 1 | 4 | 32 | 8 | 256;
case 352:
- return 1 | 4 | 32;
+ return 1 | 4 | 32 | 256;
case 219:
- case 220:
return 1 | 4 | 32 | 8 | 16;
+ case 220:
+ return 1 | 4 | 32 | 8 | 16 | 256;
case 269:
return 4;
case 173:
@@ -45759,7 +45846,7 @@ ${lanes.join(`
const shouldBail = visitSymbol(type.symbol);
if (shouldBail)
return;
- if (type.flags & 524288) {
+ if (type.flags & 1048576) {
const objectType = type;
const objectFlags = objectType.objectFlags;
if (objectFlags & 4) {
@@ -45775,16 +45862,16 @@ ${lanes.join(`
visitObjectType(objectType);
}
}
- if (type.flags & 262144) {
+ if (type.flags & 524288) {
visitTypeParameter(type);
}
- if (type.flags & 3145728) {
+ if (type.flags & 402653184) {
visitUnionOrIntersectionType(type);
}
- if (type.flags & 4194304) {
+ if (type.flags & 2097152) {
visitIndexType(type);
}
- if (type.flags & 8388608) {
+ if (type.flags & 33554432) {
visitIndexedAccessType(type);
}
}
@@ -46856,6 +46943,8 @@ ${lanes.join(`
var currentNode;
var varianceTypeParameter;
var isInferencePartiallyBlocked = false;
+ var withinUnreachableCode = false;
+ var reportedUnreachableNodes;
var emptySymbols = createSymbolTable();
var arrayVariances = [1];
var compilerOptions = host.getCompilerOptions();
@@ -46874,7 +46963,9 @@ ${lanes.join(`
var noImplicitThis = getStrictOptionValue(compilerOptions, "noImplicitThis");
var useUnknownInCatchVariables = getStrictOptionValue(compilerOptions, "useUnknownInCatchVariables");
var exactOptionalPropertyTypes = compilerOptions.exactOptionalPropertyTypes;
- var noUncheckedSideEffectImports = !!compilerOptions.noUncheckedSideEffectImports;
+ var noUncheckedSideEffectImports = compilerOptions.noUncheckedSideEffectImports !== false;
+ var stableTypeOrdering = !!compilerOptions.stableTypeOrdering;
+ var fileIndexMap = stableTypeOrdering ? new Map(host.getSourceFiles().map((file, i) => [file, i])) : undefined;
var checkBinaryExpression = createCheckBinaryExpression();
var emitResolver = createResolver();
var nodeBuilder = createNodeBuilder();
@@ -47185,7 +47276,7 @@ ${lanes.join(`
getSuggestedSymbolForNonexistentModule,
getSuggestedSymbolForNonexistentClassMember,
getBaseConstraintOfType,
- getDefaultFromTypeParameter: (type) => type && type.flags & 262144 ? getDefaultFromTypeParameter(type) : undefined,
+ getDefaultFromTypeParameter: (type) => type && type.flags & 524288 ? getDefaultFromTypeParameter(type) : undefined,
resolveName(name, location, meaning, excludeGlobals) {
return resolveName(location, escapeLeadingUnderscores(name), meaning, undefined, false, excludeGlobals);
},
@@ -47356,20 +47447,20 @@ ${lanes.join(`
var nonInferrableAnyType = createIntrinsicType(1, "any", 65536, "non-inferrable");
var intrinsicMarkerType = createIntrinsicType(1, "intrinsic");
var unknownType = createIntrinsicType(2, "unknown");
- var undefinedType = createIntrinsicType(32768, "undefined");
- var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(32768, "undefined", 65536, "widening");
- var missingType = createIntrinsicType(32768, "undefined", undefined, "missing");
+ var undefinedType = createIntrinsicType(4, "undefined");
+ var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(4, "undefined", 65536, "widening");
+ var missingType = createIntrinsicType(4, "undefined", undefined, "missing");
var undefinedOrMissingType = exactOptionalPropertyTypes ? missingType : undefinedType;
- var optionalType = createIntrinsicType(32768, "undefined", undefined, "optional");
- var nullType = createIntrinsicType(65536, "null");
- var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(65536, "null", 65536, "widening");
- var stringType = createIntrinsicType(4, "string");
- var numberType = createIntrinsicType(8, "number");
- var bigintType = createIntrinsicType(64, "bigint");
- var falseType = createIntrinsicType(512, "false", undefined, "fresh");
- var regularFalseType = createIntrinsicType(512, "false");
- var trueType = createIntrinsicType(512, "true", undefined, "fresh");
- var regularTrueType = createIntrinsicType(512, "true");
+ var optionalType = createIntrinsicType(4, "undefined", undefined, "optional");
+ var nullType = createIntrinsicType(8, "null");
+ var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(8, "null", 65536, "widening");
+ var stringType = createIntrinsicType(32, "string");
+ var numberType = createIntrinsicType(64, "number");
+ var bigintType = createIntrinsicType(128, "bigint");
+ var falseType = createIntrinsicType(8192, "false", undefined, "fresh");
+ var regularFalseType = createIntrinsicType(8192, "false");
+ var trueType = createIntrinsicType(8192, "true", undefined, "fresh");
+ var regularTrueType = createIntrinsicType(8192, "true");
trueType.regularType = regularTrueType;
trueType.freshType = trueType;
regularTrueType.regularType = regularTrueType;
@@ -47379,22 +47470,22 @@ ${lanes.join(`
regularFalseType.regularType = regularFalseType;
regularFalseType.freshType = falseType;
var booleanType = getUnionType([regularFalseType, regularTrueType]);
- var esSymbolType = createIntrinsicType(4096, "symbol");
- var voidType = createIntrinsicType(16384, "void");
- var neverType = createIntrinsicType(131072, "never");
- var silentNeverType = createIntrinsicType(131072, "never", 262144, "silent");
- var implicitNeverType = createIntrinsicType(131072, "never", undefined, "implicit");
- var unreachableNeverType = createIntrinsicType(131072, "never", undefined, "unreachable");
- var nonPrimitiveType = createIntrinsicType(67108864, "object");
+ var esSymbolType = createIntrinsicType(512, "symbol");
+ var voidType = createIntrinsicType(16, "void");
+ var neverType = createIntrinsicType(262144, "never");
+ var silentNeverType = createIntrinsicType(262144, "never", 262144, "silent");
+ var implicitNeverType = createIntrinsicType(262144, "never", undefined, "implicit");
+ var unreachableNeverType = createIntrinsicType(262144, "never", undefined, "unreachable");
+ var nonPrimitiveType = createIntrinsicType(131072, "object");
var stringOrNumberType = getUnionType([stringType, numberType]);
var stringNumberSymbolType = getUnionType([stringType, numberType, esSymbolType]);
var numberOrBigIntType = getUnionType([numberType, bigintType]);
var templateConstraintType = getUnionType([stringType, numberType, booleanType, bigintType, nullType, undefinedType]);
var numericStringType = getTemplateLiteralType(["", ""], [numberType]);
- var restrictiveMapper = makeFunctionTypeMapper((t) => t.flags & 262144 ? getRestrictiveTypeParameter(t) : t, () => "(restrictive mapper)");
- var permissiveMapper = makeFunctionTypeMapper((t) => t.flags & 262144 ? wildcardType : t, () => "(permissive mapper)");
- var uniqueLiteralType = createIntrinsicType(131072, "never", undefined, "unique literal");
- var uniqueLiteralMapper = makeFunctionTypeMapper((t) => t.flags & 262144 ? uniqueLiteralType : t, () => "(unique literal mapper)");
+ var restrictiveMapper = makeFunctionTypeMapper((t) => t.flags & 524288 ? getRestrictiveTypeParameter(t) : t, () => "(restrictive mapper)");
+ var permissiveMapper = makeFunctionTypeMapper((t) => t.flags & 524288 ? wildcardType : t, () => "(permissive mapper)");
+ var uniqueLiteralType = createIntrinsicType(262144, "never", undefined, "unique literal");
+ var uniqueLiteralMapper = makeFunctionTypeMapper((t) => t.flags & 524288 ? uniqueLiteralType : t, () => "(unique literal mapper)");
var outofbandVarianceMarkerHandler;
var reportUnreliableMapper = makeFunctionTypeMapper((t) => {
if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) {
@@ -47452,7 +47543,6 @@ ${lanes.join(`
}
};
var anyIterationTypes = createIterationTypes(anyType, anyType, anyType);
- var silentNeverIterationTypes = createIterationTypes(silentNeverType, silentNeverType, silentNeverType);
var asyncIterationTypesResolver = {
iterableCacheKey: "iterationTypesOfAsyncIterable",
iteratorCacheKey: "iterationTypesOfAsyncIterator",
@@ -47986,7 +48076,9 @@ ${lanes.join(`
const targetSymbol = target.get(id);
const merged = targetSymbol ? mergeSymbol(targetSymbol, sourceSymbol, unidirectional) : getMergedSymbol(sourceSymbol);
if (mergedParent && targetSymbol) {
- merged.parent = mergedParent;
+ if (merged.flags & 33554432) {
+ merged.parent = mergedParent;
+ }
}
target.set(id, merged);
});
@@ -48466,7 +48558,7 @@ ${lanes.join(`
const container = findAncestor(node.parent, (n) => isComputedPropertyName(n) || isPropertySignature(n) ? false : isTypeLiteralNode(n) || "quit");
if (container && container.members.length === 1) {
const type = getDeclaredTypeOfSymbol(symbol);
- return !!(type.flags & 1048576) && allTypesAssignableToKind(type, 384, true);
+ return !!(type.flags & 134217728) && allTypesAssignableToKind(type, 3072, true);
}
return false;
}
@@ -48622,6 +48714,15 @@ ${lanes.join(`
if (usageMode === 99 && targetMode === 99) {
return false;
}
+ if (!targetMode && file.isDeclarationFile) {
+ const redirect = host.getRedirectFromSourceFile(file.path) || host.getRedirectFromOutput(file.path);
+ if (redirect) {
+ const targetModuleKind = host.getEmitModuleFormatOfFile(file);
+ if (usageMode === 99 && 5 <= targetModuleKind && targetModuleKind <= 99) {
+ return false;
+ }
+ }
+ }
}
if (!allowSyntheticDefaultImports) {
return false;
@@ -49248,9 +49349,9 @@ ${lanes.join(`
}
}
}
- function resolveExternalModuleName(location, moduleReferenceExpression, ignoreErrors) {
+ function resolveExternalModuleName(location, moduleReferenceExpression, ignoreErrors, errorMessage) {
const isClassic = getEmitModuleResolutionKind(compilerOptions) === 1;
- const errorMessage = isClassic ? Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option : Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations;
+ errorMessage ?? (errorMessage = getCannotResolveModuleNameErrorForSpecificModule(moduleReferenceExpression) ?? (isClassic ? Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option : Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations));
return resolveExternalModuleNameWorker(location, moduleReferenceExpression, ignoreErrors ? undefined : errorMessage, ignoreErrors);
}
function resolveExternalModuleNameWorker(location, moduleReferenceExpression, moduleNotFoundError, ignoreErrors = false, isForAugmentation = false) {
@@ -49268,7 +49369,7 @@ ${lanes.join(`
return ambientModule;
}
const currentSourceFile = getSourceFileOfNode(location);
- const contextSpecifier = isStringLiteralLike(location) ? location : ((_a = isModuleDeclaration(location) ? location : location.parent && isModuleDeclaration(location.parent) && location.parent.name === location ? location.parent : undefined) == null ? undefined : _a.name) || ((_b = isLiteralImportTypeNode(location) ? location : undefined) == null ? undefined : _b.argument.literal) || (isVariableDeclaration(location) && location.initializer && isRequireCall(location.initializer, true) ? location.initializer.arguments[0] : undefined) || ((_c = findAncestor(location, isImportCall)) == null ? undefined : _c.arguments[0]) || ((_d = findAncestor(location, or(isImportDeclaration, isJSDocImportTag, isExportDeclaration))) == null ? undefined : _d.moduleSpecifier) || ((_e = findAncestor(location, isExternalModuleImportEqualsDeclaration)) == null ? undefined : _e.moduleReference.expression);
+ const contextSpecifier = isStringLiteralLike(location) ? location : ((_a = isModuleDeclaration(location) ? location : location.parent && isModuleDeclaration(location.parent) && location.parent.name === location ? location.parent : undefined) == null ? undefined : _a.name) || ((_b = isLiteralImportTypeNode(location) ? location : undefined) == null ? undefined : _b.argument.literal) || isVariableDeclarationInitializedToBareOrAccessedRequire(location) && getModuleSpecifierOfBareOrAccessedRequire(location) || ((_c = findAncestor(location, isImportCall)) == null ? undefined : _c.arguments[0]) || ((_d = findAncestor(location, or(isImportDeclaration, isJSDocImportTag, isExportDeclaration))) == null ? undefined : _d.moduleSpecifier) || ((_e = findAncestor(location, isExternalModuleImportEqualsDeclaration)) == null ? undefined : _e.moduleReference.expression);
const mode = contextSpecifier && isStringLiteralLike(contextSpecifier) ? host.getModeForUsageLocation(currentSourceFile, contextSpecifier) : host.getDefaultResolutionModeForFile(currentSourceFile);
const moduleResolutionKind = getEmitModuleResolutionKind(compilerOptions);
const resolvedModule = (_f = host.getResolvedModule(currentSourceFile, moduleReference, mode)) == null ? undefined : _f.resolvedModule;
@@ -49479,7 +49580,7 @@ ${lanes.join(`
const isEsmCjsRef = targetFile && isESMFormatImportImportingCommonjsFormatFile(usageMode, host.getImpliedNodeFormatForEmit(targetFile));
if (getESModuleInterop(compilerOptions) || isEsmCjsRef) {
if (hasSignatures(type) || getPropertyOfType(type, "default", true) || isEsmCjsRef) {
- const moduleType = type.flags & 3670016 ? getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference) : createDefaultPropertyWrapperForModule(symbol, symbol.parent);
+ const moduleType = type.flags & 403701760 ? getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference) : createDefaultPropertyWrapperForModule(symbol, symbol.parent);
return cloneTypeAsModuleType(symbol, moduleType, referenceParent);
}
}
@@ -49561,7 +49662,7 @@ ${lanes.join(`
return shouldTreatPropertiesOfExternalModuleAsExports(type) ? getPropertyOfType(type, memberName) : undefined;
}
function shouldTreatPropertiesOfExternalModuleAsExports(resolvedExternalModuleType) {
- return !(resolvedExternalModuleType.flags & 402784252 || getObjectFlags(resolvedExternalModuleType) & 1 || isArrayType(resolvedExternalModuleType) || isTupleType(resolvedExternalModuleType));
+ return !(resolvedExternalModuleType.flags & 12713980 || getObjectFlags(resolvedExternalModuleType) & 1 || isArrayType(resolvedExternalModuleType) || isTupleType(resolvedExternalModuleType));
}
function getExportsOfSymbol(symbol) {
return symbol.flags & 6256 ? getResolvedMembersOrExportsOfSymbol(symbol, "resolvedExports") : symbol.flags & 1536 ? getExportsOfModule(symbol) : symbol.exports || emptySymbols;
@@ -49746,7 +49847,7 @@ ${lanes.join(`
if (enclosingDeclaration && container2.flags & getQualifiedLeftMeaning(meaning) && getAccessibleSymbolChain(container2, enclosingDeclaration, 1920, false)) {
return append(concatenate(concatenate([container2], additionalContainers), reexportContainers), objectLiteralContainer);
}
- const firstVariableMatch = !(container2.flags & getQualifiedLeftMeaning(meaning)) && container2.flags & 788968 && getDeclaredTypeOfSymbol(container2).flags & 524288 && meaning === 111551 ? forEachSymbolTableInScope(enclosingDeclaration, (t) => {
+ const firstVariableMatch = !(container2.flags & getQualifiedLeftMeaning(meaning)) && container2.flags & 788968 && getDeclaredTypeOfSymbol(container2).flags & 1048576 && meaning === 111551 ? forEachSymbolTableInScope(enclosingDeclaration, (t) => {
return forEachEntry(t, (s) => {
if (s.flags & getQualifiedLeftMeaning(meaning) && getTypeOfSymbol(s) === getDeclaredTypeOfSymbol(container2)) {
return s;
@@ -49837,7 +49938,7 @@ ${lanes.join(`
seenIntrinsicNames.add(key);
}
function createObjectType(objectFlags, symbol) {
- const type = createTypeWithSymbol(524288, symbol);
+ const type = createTypeWithSymbol(1048576, symbol);
type.objectFlags = objectFlags;
type.members = undefined;
type.properties = undefined;
@@ -49847,28 +49948,64 @@ ${lanes.join(`
return type;
}
function createTypeofType() {
- return getUnionType(arrayFrom(typeofNEFacts.keys(), getStringLiteralType));
+ return getUnionType(map(stableTypeOrdering ? [...typeofNEFacts.keys()].sort() : arrayFrom(typeofNEFacts.keys()), getStringLiteralType));
}
function createTypeParameter(symbol) {
- return createTypeWithSymbol(262144, symbol);
+ return createTypeWithSymbol(524288, symbol);
}
function isReservedMemberName(name) {
return name.charCodeAt(0) === 95 && name.charCodeAt(1) === 95 && name.charCodeAt(2) !== 95 && name.charCodeAt(2) !== 64 && name.charCodeAt(2) !== 35;
}
- function getNamedMembers(members) {
- let result;
+ function getNamedMembers(members, container) {
+ if (!stableTypeOrdering) {
+ let result;
+ members.forEach((symbol, id) => {
+ if (isNamedMember(symbol, id)) {
+ (result ?? (result = [])).push(symbol);
+ }
+ });
+ return result ?? emptyArray;
+ }
+ if (members.size === 0) {
+ return emptyArray;
+ }
+ let contained;
+ if (container && container.flags & (32 | 64)) {
+ members.forEach((symbol, id) => {
+ if (isNamedMember(symbol, id) && isDeclarationContainedBy(symbol, container)) {
+ contained = append(contained, symbol);
+ }
+ });
+ }
+ let nonContained;
members.forEach((symbol, id) => {
- if (isNamedMember(symbol, id)) {
- (result || (result = [])).push(symbol);
+ if (isNamedMember(symbol, id) && (!container || !(container.flags & (32 | 64)) || !isDeclarationContainedBy(symbol, container))) {
+ nonContained = append(nonContained, symbol);
}
});
- return result || emptyArray;
+ contained == null || contained.sort(compareSymbols);
+ nonContained == null || nonContained.sort(compareSymbols);
+ return concatenate(contained, nonContained) ?? emptyArray;
+ function isDeclarationContainedBy(symbol, container2) {
+ const declaration = symbol.valueDeclaration;
+ if (declaration && container2.declarations) {
+ for (const d of container2.declarations) {
+ if (containedBy(declaration, d)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ function containedBy(a, b) {
+ return b.pos <= a.pos && b.end >= a.end;
+ }
+ }
}
function isNamedMember(member, escapedName) {
return !isReservedMemberName(escapedName) && symbolIsValue(member);
}
- function getNamedOrIndexSignatureMembers(members) {
- const result = getNamedMembers(members);
+ function getNamedOrIndexSignatureMembers(members, symbol) {
+ const result = getNamedMembers(members, symbol);
const index = getIndexSymbolFromSymbolTable(members);
return index ? concatenate(result, [index]) : result;
}
@@ -49880,7 +50017,7 @@ ${lanes.join(`
resolved.constructSignatures = constructSignatures;
resolved.indexInfos = indexInfos;
if (members !== emptySymbols)
- resolved.properties = getNamedMembers(members);
+ resolved.properties = getNamedMembers(members, type.symbol);
return resolved;
}
function createAnonymousType(symbol, members, callSignatures, constructSignatures, indexInfos) {
@@ -50295,7 +50432,7 @@ ${lanes.join(`
return flags & 848330095;
}
function isClassInstanceSide(type) {
- return !!type.symbol && !!(type.symbol.flags & 32) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || !!(type.flags & 524288) && !!(getObjectFlags(type) & 16777216));
+ return !!type.symbol && !!(type.symbol.flags & 32) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || !!(type.flags & 1048576) && !!(getObjectFlags(type) & 16777216));
}
function getTypeFromTypeNodeWithoutContext(node) {
return getTypeFromTypeNode(node);
@@ -50424,7 +50561,7 @@ ${lanes.join(`
if (name.includes("/node_modules/")) {
context.encounteredError = true;
if (context.tracker.reportLikelyUnsafeImportRequiredError) {
- context.tracker.reportLikelyUnsafeImportRequiredError(name);
+ context.tracker.reportLikelyUnsafeImportRequiredError(name, nodeSymbol ? unescapeLeadingUnderscores(nodeSymbol.escapedName) : undefined);
}
}
if (name !== originalName) {
@@ -50515,7 +50652,7 @@ ${lanes.join(`
return name;
}
const nameType = getSymbolLinks(symbol).nameType;
- if (nameType && nameType.flags & (1024 | 8192)) {
+ if (nameType && nameType.flags & (32768 | 16384)) {
context.enclosingDeclaration = nameType.symbol.valueDeclaration;
return factory.createComputedPropertyName(symbolToExpression(nameType.symbol, context, meaning));
}
@@ -50572,7 +50709,7 @@ ${lanes.join(`
return statements;
}
function withContext2(enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, cb, out) {
- const moduleResolverHost = (tracker == null ? undefined : tracker.trackSymbol) ? tracker.moduleResolverHost : (internalFlags || 0) & 4 ? createBasicNodeBuilderModuleSpecifierResolutionHost(host) : undefined;
+ const moduleResolverHost = (tracker == null ? undefined : tracker.moduleResolverHost) ?? createBasicNodeBuilderModuleSpecifierResolutionHost(host);
flags = flags || 0;
const maxTruncationLength = maximumLength || (flags & 1 ? noTruncationMaximumTruncationLength : defaultMaximumTruncationLength);
const context = {
@@ -50720,23 +50857,23 @@ ${lanes.join(`
if (type.flags & 2) {
return factory.createKeywordTypeNode(159);
}
- if (type.flags & 4) {
+ if (type.flags & 32) {
context.approximateLength += 6;
return factory.createKeywordTypeNode(154);
}
- if (type.flags & 8) {
+ if (type.flags & 64) {
context.approximateLength += 6;
return factory.createKeywordTypeNode(150);
}
- if (type.flags & 64) {
+ if (type.flags & 128) {
context.approximateLength += 6;
return factory.createKeywordTypeNode(163);
}
- if (type.flags & 16 && !type.aliasSymbol) {
+ if (type.flags & 256 && !type.aliasSymbol) {
context.approximateLength += 7;
return factory.createKeywordTypeNode(136);
}
- if (type.flags & 1056) {
+ if (type.flags & 98304) {
if (type.symbol.flags & 8) {
const parentSymbol = getParentOfSymbol(type.symbol);
const parentName = symbolToTypeNode(parentSymbol, context, 788968);
@@ -50744,7 +50881,7 @@ ${lanes.join(`
return parentName;
}
const memberName = symbolName(type.symbol);
- if (isIdentifierText(memberName, 1)) {
+ if (isIdentifierText(memberName, 99)) {
return appendReferenceToType(parentName, factory.createTypeReferenceNode(memberName, undefined));
}
if (isImportTypeNode(parentName)) {
@@ -50762,24 +50899,24 @@ ${lanes.join(`
expandingEnum = true;
}
}
- if (type.flags & 128) {
+ if (type.flags & 1024) {
context.approximateLength += type.value.length + 2;
return factory.createLiteralTypeNode(setEmitFlags(factory.createStringLiteral(type.value, !!(context.flags & 268435456)), 16777216));
}
- if (type.flags & 256) {
+ if (type.flags & 2048) {
const value = type.value;
context.approximateLength += ("" + value).length;
return factory.createLiteralTypeNode(value < 0 ? factory.createPrefixUnaryExpression(41, factory.createNumericLiteral(-value)) : factory.createNumericLiteral(value));
}
- if (type.flags & 2048) {
+ if (type.flags & 4096) {
context.approximateLength += pseudoBigIntToString(type.value).length + 1;
return factory.createLiteralTypeNode(factory.createBigIntLiteral(type.value));
}
- if (type.flags & 512) {
+ if (type.flags & 8192) {
context.approximateLength += type.intrinsicName.length;
return factory.createLiteralTypeNode(type.intrinsicName === "true" ? factory.createTrue() : factory.createFalse());
}
- if (type.flags & 8192) {
+ if (type.flags & 16384) {
if (!(context.flags & 1048576)) {
if (isValueSymbolAccessible(type.symbol, context.enclosingDeclaration)) {
context.approximateLength += 6;
@@ -50792,27 +50929,27 @@ ${lanes.join(`
context.approximateLength += 13;
return factory.createTypeOperatorNode(158, factory.createKeywordTypeNode(155));
}
- if (type.flags & 16384) {
+ if (type.flags & 16) {
context.approximateLength += 4;
return factory.createKeywordTypeNode(116);
}
- if (type.flags & 32768) {
+ if (type.flags & 4) {
context.approximateLength += 9;
return factory.createKeywordTypeNode(157);
}
- if (type.flags & 65536) {
+ if (type.flags & 8) {
context.approximateLength += 4;
return factory.createLiteralTypeNode(factory.createNull());
}
- if (type.flags & 131072) {
+ if (type.flags & 262144) {
context.approximateLength += 5;
return factory.createKeywordTypeNode(146);
}
- if (type.flags & 4096) {
+ if (type.flags & 512) {
context.approximateLength += 6;
return factory.createKeywordTypeNode(155);
}
- if (type.flags & 67108864) {
+ if (type.flags & 131072) {
context.approximateLength += 6;
return factory.createKeywordTypeNode(151);
}
@@ -50840,15 +50977,15 @@ ${lanes.join(`
}
const objectFlags = getObjectFlags(type);
if (objectFlags & 4) {
- Debug.assert(!!(type.flags & 524288));
+ Debug.assert(!!(type.flags & 1048576));
if (shouldExpandType(type, context)) {
context.depth += 1;
return createAnonymousTypeNode(type, true, true);
}
return type.node ? visitAndTransformType(type, typeReferenceToTypeNode) : typeReferenceToTypeNode(type);
}
- if (type.flags & 262144 || objectFlags & 3) {
- if (type.flags & 262144 && contains(context.inferTypeParameters, type)) {
+ if (type.flags & 524288 || objectFlags & 3) {
+ if (type.flags & 524288 && contains(context.inferTypeParameters, type)) {
context.approximateLength += symbolName(type.symbol).length + 6;
let constraintNode;
const constraint = getConstraintOfTypeParameter(type);
@@ -50861,7 +50998,7 @@ ${lanes.join(`
}
return factory.createInferTypeNode(typeParameterToDeclarationWithConstraint(type, context, constraintNode));
}
- if (context.flags & 4 && type.flags & 262144) {
+ if (context.flags & 4 && type.flags & 524288) {
const name2 = typeParameterToName(type, context);
context.approximateLength += idText(name2).length;
return factory.createTypeReferenceNode(factory.createIdentifier(idText(name2)), undefined);
@@ -50876,17 +51013,17 @@ ${lanes.join(`
const name = (type === markerSuperTypeForCheck || type === markerSubTypeForCheck) && varianceTypeParameter && varianceTypeParameter.symbol ? (type === markerSubTypeForCheck ? "sub-" : "super-") + symbolName(varianceTypeParameter.symbol) : "?";
return factory.createTypeReferenceNode(factory.createIdentifier(name), undefined);
}
- if (type.flags & 1048576 && type.origin) {
+ if (type.flags & 134217728 && type.origin) {
type = type.origin;
}
- if (type.flags & (1048576 | 2097152)) {
- const types = type.flags & 1048576 ? formatUnionTypes(type.types, expandingEnum) : type.types;
+ if (type.flags & (134217728 | 268435456)) {
+ const types = type.flags & 134217728 ? formatUnionTypes(type.types, expandingEnum) : type.types;
if (length(types) === 1) {
return typeToTypeNodeHelper(types[0], context);
}
const typeNodes = mapToTypeNodes(types, context, true);
if (typeNodes && typeNodes.length > 0) {
- return type.flags & 1048576 ? factory.createUnionTypeNode(typeNodes) : factory.createIntersectionTypeNode(typeNodes);
+ return type.flags & 134217728 ? factory.createUnionTypeNode(typeNodes) : factory.createIntersectionTypeNode(typeNodes);
} else {
if (!context.encounteredError && !(context.flags & 262144)) {
context.encounteredError = true;
@@ -50895,16 +51032,16 @@ ${lanes.join(`
}
}
if (objectFlags & (16 | 32)) {
- Debug.assert(!!(type.flags & 524288));
+ Debug.assert(!!(type.flags & 1048576));
return createAnonymousTypeNode(type);
}
- if (type.flags & 4194304) {
+ if (type.flags & 2097152) {
const indexedType = type.type;
context.approximateLength += 6;
const indexTypeNode = typeToTypeNodeHelper(indexedType, context);
return factory.createTypeOperatorNode(143, indexTypeNode);
}
- if (type.flags & 134217728) {
+ if (type.flags & 4194304) {
const texts = type.texts;
const types = type.types;
const templateHead = factory.createTemplateHead(texts[0]);
@@ -50912,20 +51049,20 @@ ${lanes.join(`
context.approximateLength += 2;
return factory.createTemplateLiteralType(templateHead, templateSpans);
}
- if (type.flags & 268435456) {
+ if (type.flags & 8388608) {
const typeNode = typeToTypeNodeHelper(type.type, context);
return symbolToTypeNode(type.symbol, context, 788968, [typeNode]);
}
- if (type.flags & 8388608) {
+ if (type.flags & 33554432) {
const objectTypeNode = typeToTypeNodeHelper(type.objectType, context);
const indexTypeNode = typeToTypeNodeHelper(type.indexType, context);
context.approximateLength += 2;
return factory.createIndexedAccessTypeNode(objectTypeNode, indexTypeNode);
}
- if (type.flags & 16777216) {
+ if (type.flags & 67108864) {
return visitAndTransformType(type, (type2) => conditionalTypeToTypeNode(type2));
}
- if (type.flags & 33554432) {
+ if (type.flags & 16777216) {
const typeNode = typeToTypeNodeHelper(type.baseType, context);
const noInferSymbol = isNoInferType(type) && getGlobalTypeSymbol("NoInfer", false);
return noInferSymbol ? symbolToTypeNode(noInferSymbol, context, 788968, [typeNode]) : typeNode;
@@ -50934,7 +51071,7 @@ ${lanes.join(`
function conditionalTypeToTypeNode(type2) {
const checkTypeNode = typeToTypeNodeHelper(type2.checkType, context);
context.approximateLength += 15;
- if (context.flags & 4 && type2.root.isDistributive && !(type2.checkType.flags & 262144)) {
+ if (context.flags & 4 && type2.root.isDistributive && !(type2.checkType.flags & 524288)) {
const newParam = createTypeParameter(createSymbol(262144, "T"));
const name = typeParameterToName(newParam, context);
const newTypeVariable = factory.createTypeReferenceNode(name);
@@ -50958,7 +51095,7 @@ ${lanes.join(`
}
function typeToTypeNodeOrCircularityElision(type2) {
var _a2, _b2, _c;
- if (type2.flags & 1048576) {
+ if (type2.flags & 134217728) {
if ((_a2 = context.visitedTypes) == null ? undefined : _a2.has(getTypeId(type2))) {
if (!(context.flags & 131072)) {
context.encounteredError = true;
@@ -50978,14 +51115,14 @@ ${lanes.join(`
}
function createMappedTypeNodeFromType(type2) {
var _a2;
- Debug.assert(!!(type2.flags & 524288));
+ Debug.assert(!!(type2.flags & 1048576));
const readonlyToken = type2.declaration.readonlyToken ? factory.createToken(type2.declaration.readonlyToken.kind) : undefined;
const questionToken = type2.declaration.questionToken ? factory.createToken(type2.declaration.questionToken.kind) : undefined;
let appropriateConstraintTypeNode;
let newTypeVariable;
let templateType = getTemplateTypeFromMappedType(type2);
const typeParameter = getTypeParameterFromMappedType(type2);
- const needsModifierPreservingWrapper = !isMappedTypeWithKeyofConstraintDeclaration(type2) && !(getModifiersTypeFromMappedType(type2).flags & 2) && context.flags & 4 && !(getConstraintTypeFromMappedType(type2).flags & 262144 && ((_a2 = getConstraintOfTypeParameter(getConstraintTypeFromMappedType(type2))) == null ? undefined : _a2.flags) & 4194304);
+ const needsModifierPreservingWrapper = !isMappedTypeWithKeyofConstraintDeclaration(type2) && !(getModifiersTypeFromMappedType(type2).flags & 2) && context.flags & 4 && !(getConstraintTypeFromMappedType(type2).flags & 524288 && ((_a2 = getConstraintOfTypeParameter(getConstraintTypeFromMappedType(type2))) == null ? undefined : _a2.flags) & 2097152);
if (isMappedTypeWithKeyofConstraintDeclaration(type2)) {
if (isHomomorphicMappedTypeWithNonHomomorphicInstantiation(type2) && context.flags & 4) {
const newConstraintParam = createTypeParameter(createSymbol(262144, "T"));
@@ -51075,7 +51212,7 @@ ${lanes.join(`
var _a2, _b2, _c;
const typeId = type2.id;
const isConstructorObject = getObjectFlags(type2) & 16 && type2.symbol && type2.symbol.flags & 32;
- const id = getObjectFlags(type2) & 4 && type2.node ? "N" + getNodeId(type2.node) : type2.flags & 16777216 ? "N" + getNodeId(type2.root.node) : type2.symbol ? (isConstructorObject ? "+" : "") + getSymbolId(type2.symbol) : undefined;
+ const id = getObjectFlags(type2) & 4 && type2.node ? "N" + getNodeId(type2.node) : type2.flags & 67108864 ? "N" + getNodeId(type2.root.node) : type2.symbol ? (isConstructorObject ? "+" : "") + getSymbolId(type2.symbol) : undefined;
if (!context.visitedTypes) {
context.visitedTypes = /* @__PURE__ */ new Set;
}
@@ -51372,6 +51509,9 @@ ${lanes.join(`
if (getDeclarationModifierFlagsFromSymbol(propertySymbol) & (2 | 4) && context.tracker.reportPrivateInBaseOfClassExpression) {
context.tracker.reportPrivateInBaseOfClassExpression(unescapeLeadingUnderscores(propertySymbol.escapedName));
}
+ if (isPrivateIdentifierSymbol(propertySymbol) && context.tracker.reportPrivateInBaseOfClassExpression) {
+ context.tracker.reportPrivateInBaseOfClassExpression(idText(propertySymbol.valueDeclaration.name));
+ }
}
if (checkTruncationLength(context) && i + 2 < properties.length - 1) {
context.out.truncated = true;
@@ -51473,7 +51613,7 @@ ${lanes.join(`
}
const optionalToken = propertySymbol.flags & 16777216 ? factory.createToken(58) : undefined;
if (propertySymbol.flags & (16 | 8192) && !getPropertiesOfObjectType(propertyType).length && !isReadonlySymbol(propertySymbol)) {
- const signatures = getSignaturesOfType(filterType(propertyType, (t) => !(t.flags & 32768)), 0);
+ const signatures = getSignaturesOfType(filterType(propertyType, (t) => !(t.flags & 4)), 0);
for (const signature of signatures) {
const methodDeclaration = signatureToSignatureDeclarationHelper(signature, 174, context, { name: propertyName, questionToken: optionalToken });
typeElements.push(preserveCommentsOn(methodDeclaration, signature.declaration || propertySymbol.valueDeclaration));
@@ -51655,8 +51795,8 @@ ${lanes.join(`
reportInaccessibleUniqueSymbolError() {
markError(() => oldTracker.reportInaccessibleUniqueSymbolError());
},
- reportLikelyUnsafeImportRequiredError(specifier) {
- markError(() => oldTracker.reportLikelyUnsafeImportRequiredError(specifier));
+ reportLikelyUnsafeImportRequiredError(specifier, symbolName2) {
+ markError(() => oldTracker.reportLikelyUnsafeImportRequiredError(specifier, symbolName2));
},
reportNonSerializableProperty(name) {
markError(() => oldTracker.reportNonSerializableProperty(name));
@@ -52088,7 +52228,7 @@ ${lanes.join(`
if (!attributes) {
context.encounteredError = true;
if (context.tracker.reportLikelyUnsafeImportRequiredError) {
- context.tracker.reportLikelyUnsafeImportRequiredError(oldSpecifier);
+ context.tracker.reportLikelyUnsafeImportRequiredError(oldSpecifier, unescapeLeadingUnderscores(symbol.escapedName));
}
}
}
@@ -52304,11 +52444,11 @@ ${lanes.join(`
}
if (isComputedPropertyName(name)) {
const type = checkExpression(name.expression);
- return !!(type.flags & 402653316);
+ return !!(type.flags & 12583968);
}
if (isElementAccessExpression(name)) {
const type = checkExpression(name.argumentExpression);
- return !!(type.flags & 402653316);
+ return !!(type.flags & 12583968);
}
return isStringLiteral(name);
}
@@ -52319,14 +52459,7 @@ ${lanes.join(`
function getPropertyNameNodeForSymbol(symbol, context) {
const hashPrivateName = getClonedHashPrivateName(symbol);
if (hashPrivateName) {
- const shouldEmitErroneousFieldName = !!context.tracker.reportPrivateInBaseOfClassExpression && context.flags & 2048;
- if (!shouldEmitErroneousFieldName) {
- return hashPrivateName;
- } else {
- let rawName2 = unescapeLeadingUnderscores(symbol.escapedName);
- rawName2 = rawName2.replace(/__#\d+@#/g, "__#private@#");
- return createPropertyNameNodeForIdentifierOrLiteral(rawName2, getEmitScriptTarget(compilerOptions), false, true, !!(symbol.flags & 8192));
- }
+ return hashPrivateName;
}
const stringNamed = !!length(symbol.declarations) && every(symbol.declarations, isStringNamed);
const singleQuote = !!length(symbol.declarations) && every(symbol.declarations, isSingleQuotedStringNamed);
@@ -52341,7 +52474,7 @@ ${lanes.join(`
function getPropertyNameNodeForSymbolFromNameType(symbol, context, singleQuote, stringNamed, isMethod) {
const nameType = getSymbolLinks(symbol).nameType;
if (nameType) {
- if (nameType.flags & 384) {
+ if (nameType.flags & 3072) {
const name = "" + nameType.value;
if (!isIdentifierText(name, getEmitScriptTarget(compilerOptions)) && (stringNamed || !isNumericLiteralName(name))) {
return factory.createStringLiteral(name, !!singleQuote);
@@ -52351,7 +52484,7 @@ ${lanes.join(`
}
return createPropertyNameNodeForIdentifierOrLiteral(name, getEmitScriptTarget(compilerOptions), singleQuote, stringNamed, isMethod);
}
- if (nameType.flags & 8192) {
+ if (nameType.flags & 16384) {
return factory.createComputedPropertyName(symbolToExpression(nameType.symbol, context, 111551));
}
}
@@ -52396,7 +52529,7 @@ ${lanes.join(`
return enclosingDeclaration;
}
function serializeInferredTypeForDeclaration(symbol, context, type) {
- if (type.flags & 8192 && type.symbol === symbol && (!context.enclosingDeclaration || some(symbol.declarations, (d) => getSourceFileOfNode(d) === context.enclosingFile))) {
+ if (type.flags & 16384 && type.symbol === symbol && (!context.enclosingDeclaration || some(symbol.declarations, (d) => getSourceFileOfNode(d) === context.enclosingFile))) {
context.flags |= 1048576;
}
const result = typeToTypeNodeHelper(type, context);
@@ -52572,7 +52705,7 @@ ${lanes.join(`
}
function serializeExistingTypeNode(context, typeNode, addUndefined) {
const type = getTypeFromTypeNode2(context, typeNode);
- if (addUndefined && !someType(type, (t) => !!(t.flags & 32768)) && canReuseTypeNode(context, typeNode)) {
+ if (addUndefined && !someType(type, (t) => !!(t.flags & 4)) && canReuseTypeNode(context, typeNode)) {
const clone2 = syntacticNodeBuilder.tryReuseExistingTypeNode(context, typeNode);
if (clone2) {
return factory.createUnionTypeNode([clone2, factory.createKeywordTypeNode(157)]);
@@ -53705,10 +53838,10 @@ ${lanes.join(`
for (let i = 0;i < types.length; i++) {
const t = types[i];
flags |= t.flags;
- if (!(t.flags & 98304)) {
- if (t.flags & 512 || !expandingEnum && t.flags | 1056) {
- const baseType = t.flags & 512 ? booleanType : getBaseTypeOfEnumLikeType(t);
- if (baseType.flags & 1048576) {
+ if (!(t.flags & 12)) {
+ if (t.flags & 8192 || !expandingEnum && t.flags | 98304) {
+ const baseType = t.flags & 8192 ? booleanType : getBaseTypeOfEnumLikeType(t);
+ if (baseType.flags & 134217728) {
const count = baseType.types.length;
if (i + count <= types.length && getRegularTypeOfLiteralType(types[i + count - 1]) === getRegularTypeOfLiteralType(baseType.types[count - 1])) {
result.push(baseType);
@@ -53720,9 +53853,9 @@ ${lanes.join(`
result.push(t);
}
}
- if (flags & 65536)
+ if (flags & 8)
result.push(nullType);
- if (flags & 32768)
+ if (flags & 4)
result.push(undefinedType);
return result || types;
}
@@ -53753,7 +53886,7 @@ ${lanes.join(`
function getNameOfSymbolFromNameType(symbol, context) {
const nameType = getSymbolLinks(symbol).nameType;
if (nameType) {
- if (nameType.flags & 384) {
+ if (nameType.flags & 3072) {
const name = "" + nameType.value;
if (!isIdentifierText(name, getEmitScriptTarget(compilerOptions)) && !isNumericLiteralName(name)) {
return `"${escapeString(name, 34)}"`;
@@ -53763,7 +53896,7 @@ ${lanes.join(`
}
return name;
}
- if (nameType.flags & 8192) {
+ if (nameType.flags & 16384) {
return `[${getNameOfSymbolAsWritten(nameType.symbol, context)}]`;
}
}
@@ -53785,7 +53918,7 @@ ${lanes.join(`
}
if (isComputedPropertyName(name2) && !(getCheckFlags(symbol) & 4096)) {
const nameType = getSymbolLinks(symbol).nameType;
- if (nameType && nameType.flags & 384) {
+ if (nameType && nameType.flags & 3072) {
const result = getNameOfSymbolFromNameType(symbol, context);
if (result !== undefined) {
return result;
@@ -54022,18 +54155,18 @@ ${lanes.join(`
return symbol && getSymbolLinks(symbol).type || getTypeForVariableLikeDeclaration(node, false, checkMode);
}
function getRestType(source, properties, symbol) {
- source = filterType(source, (t) => !(t.flags & 98304));
- if (source.flags & 131072) {
+ source = filterType(source, (t) => !(t.flags & 12));
+ if (source.flags & 262144) {
return emptyObjectType;
}
- if (source.flags & 1048576) {
+ if (source.flags & 134217728) {
return mapType(source, (t) => getRestType(t, properties, symbol));
}
let omitKeyType = getUnionType(map(properties, getLiteralTypeFromPropertyName));
const spreadableProperties = [];
const unspreadableToRestKeys = [];
for (const prop of getPropertiesOfType(source)) {
- const literalTypeFromProperty = getLiteralTypeFromProperty(prop, 8576);
+ const literalTypeFromProperty = getLiteralTypeFromProperty(prop, 19456);
if (!isTypeAssignableTo(literalTypeFromProperty, omitKeyType) && !(getDeclarationModifierFlagsFromSymbol(prop) & (2 | 4)) && isSpreadableProperty(prop)) {
spreadableProperties.push(prop);
} else {
@@ -54044,7 +54177,7 @@ ${lanes.join(`
if (unspreadableToRestKeys.length) {
omitKeyType = getUnionType([omitKeyType, ...unspreadableToRestKeys]);
}
- if (omitKeyType.flags & 131072) {
+ if (omitKeyType.flags & 262144) {
return source;
}
const omitTypeAlias = getGlobalOmitSymbol();
@@ -54062,10 +54195,10 @@ ${lanes.join(`
return result;
}
function isGenericTypeWithUndefinedConstraint(type) {
- return !!(type.flags & 465829888) && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 32768);
+ return !!(type.flags & 132644864) && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 4);
}
function getNonUndefinedType(type) {
- const typeOrConstraint = someType(type, isGenericTypeWithUndefinedConstraint) ? mapType(type, (t) => t.flags & 465829888 ? getBaseConstraintOrType(t) : t) : type;
+ const typeOrConstraint = someType(type, isGenericTypeWithUndefinedConstraint) ? mapType(type, (t) => t.flags & 132644864 ? getBaseConstraintOrType(t) : t) : type;
return getTypeWithFacts(typeOrConstraint, 524288);
}
function getFlowTypeOfDestructuring(node, declaredType) {
@@ -54116,7 +54249,7 @@ ${lanes.join(`
}
function getLiteralPropertyNameText(name) {
const type = getLiteralTypeFromPropertyName(name);
- return type.flags & (128 | 256) ? "" + type.value : undefined;
+ return type.flags & (1024 | 2048) ? "" + type.value : undefined;
}
function getTypeForBindingElement(declaration) {
const checkMode = declaration.dotDotDotToken ? 32 : 0;
@@ -54159,7 +54292,7 @@ ${lanes.join(`
const elementType = checkIteratedTypeOrElementType(65 | (declaration.dotDotDotToken ? 0 : 128), parentType, undefinedType, pattern);
const index = pattern.elements.indexOf(declaration);
if (declaration.dotDotDotToken) {
- const baseConstraint = mapType(parentType, (t) => t.flags & 58982400 ? getBaseConstraintOrType(t) : t);
+ const baseConstraint = mapType(parentType, (t) => t.flags & 117964800 ? getBaseConstraintOrType(t) : t);
type = everyType(baseConstraint, isTupleType) ? mapType(baseConstraint, (t) => sliceTupleType(t, index)) : createArrayType(elementType);
} else if (isArrayLikeType(parentType)) {
const indexType = getNumberLiteralType(index);
@@ -54198,7 +54331,7 @@ ${lanes.join(`
function getTypeForVariableLikeDeclaration(declaration, includeOptionality, checkMode) {
if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 250) {
const indexType = getIndexType(getNonNullableTypeIfNeeded(checkExpression(declaration.parent.parent.expression, checkMode)));
- return indexType.flags & (262144 | 4194304) ? getExtractStringType(indexType) : stringType;
+ return indexType.flags & (524288 | 2097152) ? getExtractStringType(indexType) : stringType;
}
if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 251) {
const forOfStatement = declaration.parent.parent;
@@ -54407,12 +54540,12 @@ ${lanes.join(`
definedInConstructor = true;
}
}
- const sourceTypes = some(constructorTypes, (t) => !!(t.flags & ~98304)) ? constructorTypes : types;
+ const sourceTypes = some(constructorTypes, (t) => !!(t.flags & ~12)) ? constructorTypes : types;
type = getUnionType(sourceTypes);
}
}
const widened = getWidenedType(addOptionality(type, false, definedInMethod && !definedInConstructor));
- if (symbol.valueDeclaration && isInJSFile(symbol.valueDeclaration) && filterType(widened, (t) => !!(t.flags & ~98304)) === neverType) {
+ if (symbol.valueDeclaration && isInJSFile(symbol.valueDeclaration) && filterType(widened, (t) => !!(t.flags & ~12)) === neverType) {
reportImplicitAny(symbol.valueDeclaration, anyType);
return anyType;
}
@@ -54495,7 +54628,7 @@ ${lanes.join(`
}
const isDirectExport = kind === 1 && (isPropertyAccessExpression(expression.left) || isElementAccessExpression(expression.left)) && (isModuleExportsAccessExpression(expression.left.expression) || isIdentifier(expression.left.expression) && isExportsIdentifier(expression.left.expression));
const type = resolvedSymbol ? getTypeOfSymbol(resolvedSymbol) : isDirectExport ? getRegularTypeOfLiteralType(checkExpressionCached(expression.right)) : getWidenedLiteralType(checkExpressionCached(expression.right));
- if (type.flags & 524288 && kind === 2 && symbol.escapedName === "export=") {
+ if (type.flags & 1048576 && kind === 2 && symbol.escapedName === "export=") {
const exportedType = resolveStructuredTypeMembers(type);
const members = createSymbolTable();
copyEntries(exportedType.members, members);
@@ -54661,13 +54794,13 @@ ${lanes.join(`
}
function widenTypeForVariableLikeDeclaration(type, declaration, reportErrors2) {
if (type) {
- if (type.flags & 4096 && isGlobalSymbolConstructor(declaration.parent)) {
+ if (type.flags & 512 && isGlobalSymbolConstructor(declaration.parent)) {
type = getESSymbolLikeTypeForNode(declaration);
}
if (reportErrors2) {
reportErrorsFromWidening(declaration, type);
}
- if (type.flags & 8192 && (isBindingElement(declaration) || !tryGetTypeFromEffectiveTypeNode(declaration)) && type.symbol !== getSymbolOfDeclaration(declaration)) {
+ if (type.flags & 16384 && (isBindingElement(declaration) || !tryGetTypeFromEffectiveTypeNode(declaration)) && type.symbol !== getSymbolOfDeclaration(declaration)) {
type = esSymbolType;
}
return getWidenedType(type);
@@ -54874,7 +55007,7 @@ ${lanes.join(`
}
function getBaseTypeVariableOfClass(symbol) {
const baseConstructorType = getBaseConstructorTypeOfClass(getDeclaredTypeOfClassOrInterface(symbol));
- return baseConstructorType.flags & 8650752 ? baseConstructorType : baseConstructorType.flags & 2097152 ? find(baseConstructorType.types, (t) => !!(t.flags & 8650752)) : undefined;
+ return baseConstructorType.flags & 34078720 ? baseConstructorType : baseConstructorType.flags & 268435456 ? find(baseConstructorType.types, (t) => !!(t.flags & 34078720)) : undefined;
}
function getTypeOfFuncClassEnumModule(symbol) {
let links = getSymbolLinks(symbol);
@@ -54972,7 +55105,7 @@ ${lanes.join(`
if (!links.type) {
Debug.assertIsDefined(links.deferralParent);
Debug.assertIsDefined(links.deferralConstituents);
- links.type = links.deferralParent.flags & 1048576 ? getUnionType(links.deferralConstituents) : getIntersectionType(links.deferralConstituents);
+ links.type = links.deferralParent.flags & 134217728 ? getUnionType(links.deferralConstituents) : getIntersectionType(links.deferralConstituents);
}
return links.type;
}
@@ -54981,7 +55114,7 @@ ${lanes.join(`
if (!links.writeType && links.deferralWriteConstituents) {
Debug.assertIsDefined(links.deferralParent);
Debug.assertIsDefined(links.deferralConstituents);
- links.writeType = links.deferralParent.flags & 1048576 ? getUnionType(links.deferralWriteConstituents) : getIntersectionType(links.deferralWriteConstituents);
+ links.writeType = links.deferralParent.flags & 134217728 ? getUnionType(links.deferralWriteConstituents) : getIntersectionType(links.deferralWriteConstituents);
}
return links.writeType;
}
@@ -55055,7 +55188,7 @@ ${lanes.join(`
if (getObjectFlags(type2) & (3 | 4)) {
const target = getTargetType(type2);
return target === checkBase || some(getBaseTypes(target), check);
- } else if (type2.flags & 2097152) {
+ } else if (type2.flags & 268435456) {
return some(type2.types, check);
}
return false;
@@ -55179,7 +55312,7 @@ ${lanes.join(`
if (getSignaturesOfType(type, 1).length > 0) {
return true;
}
- if (type.flags & 8650752) {
+ if (type.flags & 34078720) {
const constraint = getBaseConstraintOfType(type);
return !!constraint && isMixinConstructorType(constraint);
}
@@ -55215,7 +55348,7 @@ ${lanes.join(`
Debug.assert(!extended.typeArguments);
checkExpression(extended.expression);
}
- if (baseConstructorType.flags & (524288 | 2097152)) {
+ if (baseConstructorType.flags & (1048576 | 268435456)) {
resolveStructuredTypeMembers(baseConstructorType);
}
if (!popTypeResolution()) {
@@ -55224,7 +55357,7 @@ ${lanes.join(`
}
if (!(baseConstructorType.flags & 1) && baseConstructorType !== nullWideningType && !isConstructorType(baseConstructorType)) {
const err = error2(baseTypeNode.expression, Diagnostics.Type_0_is_not_a_constructor_function_type, typeToString(baseConstructorType));
- if (baseConstructorType.flags & 262144) {
+ if (baseConstructorType.flags & 524288) {
const constraint = getConstraintFromTypeParameter(baseConstructorType);
let ctorReturn = unknownType;
if (constraint) {
@@ -55268,6 +55401,9 @@ ${lanes.join(`
error2(node, Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 2));
}
function getBaseTypes(type) {
+ if (!(getObjectFlags(type) & (3 | 4))) {
+ return emptyArray;
+ }
if (!type.baseTypesResolved) {
if (pushTypeResolution(type, 6)) {
if (type.objectFlags & 8) {
@@ -55301,7 +55437,7 @@ ${lanes.join(`
function resolveBaseTypesOfClass(type) {
type.resolvedBaseTypes = resolvingEmptyArray;
const baseConstructorType = getApparentType(getBaseConstructorTypeOfClass(type));
- if (!(baseConstructorType.flags & (524288 | 2097152 | 1))) {
+ if (!(baseConstructorType.flags & (1048576 | 268435456 | 1))) {
return type.resolvedBaseTypes = emptyArray;
}
const baseTypeNode = getBaseTypeNodeOfClass(type);
@@ -55348,13 +55484,13 @@ ${lanes.join(`
return true;
}
function isValidBaseType(type) {
- if (type.flags & 262144) {
+ if (type.flags & 524288) {
const constraint = getBaseConstraintOfType(type);
if (constraint) {
return isValidBaseType(constraint);
}
}
- return !!(type.flags & (524288 | 67108864 | 1) && !isGenericMappedType(type) || type.flags & 2097152 && every(type.types, isValidBaseType));
+ return !!(type.flags & (1048576 | 131072 | 1) && !isGenericMappedType(type) || type.flags & 268435456 && every(type.types, isValidBaseType));
}
function resolveBaseTypesOfInterface(type) {
type.resolvedBaseTypes = type.resolvedBaseTypes || emptyArray;
@@ -55469,7 +55605,7 @@ ${lanes.join(`
return links.declaredType;
}
function getBaseTypeOfEnumLikeType(type) {
- return type.flags & 1056 && type.symbol.flags & 8 ? getDeclaredTypeOfSymbol(getParentOfSymbol(type.symbol)) : type;
+ return type.flags & 98304 && type.symbol.flags & 8 ? getDeclaredTypeOfSymbol(getParentOfSymbol(type.symbol)) : type;
}
function getDeclaredTypeOfEnum(symbol) {
const links = getSymbolLinks(symbol);
@@ -55491,8 +55627,8 @@ ${lanes.join(`
}
}
const enumType = memberTypeList.length ? getUnionType(memberTypeList, 1, symbol, undefined) : createComputedEnumType(symbol);
- if (enumType.flags & 1048576) {
- enumType.flags |= 1024;
+ if (enumType.flags & 134217728) {
+ enumType.flags |= 32768;
enumType.symbol = symbol;
}
links.declaredType = enumType;
@@ -55500,8 +55636,8 @@ ${lanes.join(`
return links.declaredType;
}
function createComputedEnumType(symbol) {
- const regularType = createTypeWithSymbol(32, symbol);
- const freshType = createTypeWithSymbol(32, symbol);
+ const regularType = createTypeWithSymbol(65536, symbol);
+ const freshType = createTypeWithSymbol(65536, symbol);
regularType.regularType = regularType;
regularType.freshType = freshType;
freshType.regularType = regularType;
@@ -55630,7 +55766,7 @@ ${lanes.join(`
if (!type.declaredProperties) {
const symbol = type.symbol;
const members = getMembersOfSymbol(symbol);
- type.declaredProperties = getNamedMembers(members);
+ type.declaredProperties = getNamedMembers(members, symbol);
type.declaredCallSignatures = emptyArray;
type.declaredConstructSignatures = emptyArray;
type.declaredIndexInfos = emptyArray;
@@ -55702,7 +55838,7 @@ ${lanes.join(`
const earlySymbol = earlySymbols && earlySymbols.get(memberName);
if (!(parent2.flags & 32) && lateSymbol.flags & getExcludedSymbolFlags(symbolFlags)) {
const declarations = earlySymbol ? concatenate(earlySymbol.declarations, lateSymbol.declarations) : lateSymbol.declarations;
- const name = !(type.flags & 8192) && unescapeLeadingUnderscores(memberName) || declarationNameToString(declName);
+ const name = !(type.flags & 16384) && unescapeLeadingUnderscores(memberName) || declarationNameToString(declName);
forEach(declarations, (declaration) => error2(getNameOfDeclaration(declaration) || declaration, Diagnostics.Property_0_was_also_declared_here, name));
error2(declName || decl, Diagnostics.Duplicate_property_0, name);
lateSymbol = createSymbol(0, memberName, 4096);
@@ -55819,7 +55955,7 @@ ${lanes.join(`
const target = type.target;
const typeArguments = getTypeArguments(type);
return length(target.typeParameters) === length(typeArguments) ? createTypeReference(target, concatenate(typeArguments, [thisArgument || target.thisType])) : type;
- } else if (type.flags & 2097152) {
+ } else if (type.flags & 268435456) {
const types = sameMap(type.types, (t) => getTypeWithThisArgument(t, thisArgument, needApparentType));
return types !== type.types ? getIntersectionType(types) : type;
}
@@ -55903,7 +56039,7 @@ ${lanes.join(`
function createUnionSignature(signature, unionSignatures) {
const result = cloneSignature(signature);
result.compositeSignatures = unionSignatures;
- result.compositeKind = 1048576;
+ result.compositeKind = 134217728;
result.target = undefined;
result.mapper = undefined;
return result;
@@ -55931,7 +56067,7 @@ ${lanes.join(`
const restType = getTypeOfSymbol(restSymbol);
if (isTupleType(restType)) {
return [expandSignatureParametersWithTupleMembers(restType, restIndex, restSymbol)];
- } else if (!skipUnionExpanding && restType.flags & 1048576 && every(restType.types, isTupleType)) {
+ } else if (!skipUnionExpanding && restType.flags & 134217728 && every(restType.types, isTupleType)) {
return map(restType.types, (t) => expandSignatureParametersWithTupleMembers(t, restIndex, restSymbol));
}
}
@@ -56154,11 +56290,11 @@ ${lanes.join(`
const thisParam = combineUnionThisParam(left.thisParameter, right.thisParameter, paramMapper);
const minArgCount = Math.max(left.minArgumentCount, right.minArgumentCount);
const result = createSignature(declaration, typeParams, thisParam, params, undefined, undefined, minArgCount, flags);
- result.compositeKind = 1048576;
- result.compositeSignatures = concatenate(left.compositeKind !== 2097152 && left.compositeSignatures || [left], [right]);
+ result.compositeKind = 134217728;
+ result.compositeSignatures = concatenate(left.compositeKind !== 268435456 && left.compositeSignatures || [left], [right]);
if (paramMapper) {
- result.mapper = left.compositeKind !== 2097152 && left.mapper && left.compositeSignatures ? combineTypeMappers(left.mapper, paramMapper) : paramMapper;
- } else if (left.compositeKind !== 2097152 && left.mapper && left.compositeSignatures) {
+ result.mapper = left.compositeKind !== 268435456 && left.mapper && left.compositeSignatures ? combineTypeMappers(left.mapper, paramMapper) : paramMapper;
+ } else if (left.compositeKind !== 268435456 && left.mapper && left.compositeSignatures) {
result.mapper = left.mapper;
}
return result;
@@ -56288,8 +56424,8 @@ ${lanes.join(`
if (symbol.flags & 32) {
const classType = getDeclaredTypeOfClassOrInterface(symbol);
const baseConstructorType = getBaseConstructorTypeOfClass(classType);
- if (baseConstructorType.flags & (524288 | 2097152 | 8650752)) {
- members = createSymbolTable(getNamedOrIndexSignatureMembers(members));
+ if (baseConstructorType.flags & (1048576 | 268435456 | 34078720)) {
+ members = createSymbolTable(getNamedOrIndexSignatureMembers(members, symbol));
addInheritedMembers(members, getPropertiesOfType(baseConstructorType));
} else if (baseConstructorType === anyType) {
baseConstructorIndexInfo = anyBaseTypeIndexInfo;
@@ -56302,7 +56438,7 @@ ${lanes.join(`
if (baseConstructorIndexInfo) {
indexInfos = append(indexInfos, baseConstructorIndexInfo);
}
- if (symbol.flags & 384 && (getDeclaredTypeOfSymbol(symbol).flags & 32 || some(type.properties, (prop) => !!(getTypeOfSymbol(prop).flags & 296)))) {
+ if (symbol.flags & 384 && (getDeclaredTypeOfSymbol(symbol).flags & 65536 || some(type.properties, (prop) => !!(getTypeOfSymbol(prop).flags & 67648)))) {
indexInfos = append(indexInfos, enumNumberIndexInfo);
}
}
@@ -56327,11 +56463,11 @@ ${lanes.join(`
}
function getLimitedConstraint(type) {
const constraint = getConstraintTypeFromMappedType(type.mappedType);
- if (!(constraint.flags & 1048576 || constraint.flags & 2097152)) {
+ if (!(constraint.flags & 134217728 || constraint.flags & 268435456)) {
return;
}
- const origin = constraint.flags & 1048576 ? constraint.origin : constraint;
- if (!origin || !(origin.flags & 2097152)) {
+ const origin = constraint.flags & 134217728 ? constraint.origin : constraint;
+ if (!origin || !(origin.flags & 268435456)) {
return;
}
const limitedConstraint = getIntersectionType(origin.types.filter((t) => t !== type.constraintType));
@@ -56347,7 +56483,7 @@ ${lanes.join(`
const limitedConstraint = getLimitedConstraint(type);
for (const prop of getPropertiesOfType(type.source)) {
if (limitedConstraint) {
- const propertyNameType = getLiteralTypeFromProperty(prop, 8576);
+ const propertyNameType = getLiteralTypeFromProperty(prop, 19456);
if (!isTypeAssignableTo(propertyNameType, limitedConstraint)) {
continue;
}
@@ -56357,7 +56493,7 @@ ${lanes.join(`
inferredProp.declarations = prop.declarations;
inferredProp.links.nameType = getSymbolLinks(prop).nameType;
inferredProp.links.propertyType = getTypeOfSymbol(prop);
- if (type.constraintType.type.flags & 8388608 && type.constraintType.type.objectType.flags & 262144 && type.constraintType.type.indexType.flags & 262144) {
+ if (type.constraintType.type.flags & 33554432 && type.constraintType.type.objectType.flags & 524288 && type.constraintType.type.indexType.flags & 524288) {
const newTypeParam = type.constraintType.type.objectType;
const newMappedType = replaceIndexedAccess(type.mappedType, type.constraintType.type, newTypeParam);
inferredProp.links.mappedType = newMappedType;
@@ -56371,11 +56507,11 @@ ${lanes.join(`
setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos);
}
function getLowerBoundOfKeyType(type) {
- if (type.flags & 4194304) {
+ if (type.flags & 2097152) {
const t = getApparentType(type.type);
return isGenericTupleType(t) ? getKnownKeysOfTupleType(t) : getIndexType(t);
}
- if (type.flags & 16777216) {
+ if (type.flags & 67108864) {
if (type.root.isDistributive) {
const checkType = type.checkType;
const constraint = getLowerBoundOfKeyType(checkType);
@@ -56385,12 +56521,12 @@ ${lanes.join(`
}
return type;
}
- if (type.flags & 1048576) {
+ if (type.flags & 134217728) {
return mapType(type, getLowerBoundOfKeyType, true);
}
- if (type.flags & 2097152) {
+ if (type.flags & 268435456) {
const types = type.types;
- if (types.length === 2 && !!(types[0].flags & (4 | 8 | 64)) && types[1] === emptyTypeLiteralType) {
+ if (types.length === 2 && !!(types[0].flags & (32 | 64 | 128)) && types[1] === emptyTypeLiteralType) {
return type;
}
return getIntersectionType(sameMap(type.types, getLowerBoundOfKeyType));
@@ -56408,7 +56544,7 @@ ${lanes.join(`
cb(stringType);
} else {
for (const info of getIndexInfosOfType(type)) {
- if (!stringsOnly || info.keyType.flags & (4 | 134217728)) {
+ if (!stringsOnly || info.keyType.flags & (32 | 4194304)) {
cb(info.keyType);
}
}
@@ -56426,7 +56562,7 @@ ${lanes.join(`
const templateType = getTemplateTypeFromMappedType(mappedType);
const modifiersType = getApparentType(getModifiersTypeFromMappedType(type));
const templateModifiers = getMappedTypeModifiers(type);
- const include = 8576;
+ const include = 19456;
if (isMappedTypeWithKeyofConstraintDeclaration(type)) {
forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(modifiersType, include, false, addMemberForKeyType);
} else {
@@ -56460,8 +56596,8 @@ ${lanes.join(`
}
members.set(propName, prop);
}
- } else if (isValidIndexKeyType(propNameType) || propNameType.flags & (1 | 32)) {
- const indexKeyType = propNameType.flags & (1 | 4) ? stringType : propNameType.flags & (8 | 32) ? numberType : propNameType;
+ } else if (isValidIndexKeyType(propNameType) || propNameType.flags & (1 | 65536)) {
+ const indexKeyType = propNameType.flags & (1 | 32) ? stringType : propNameType.flags & (64 | 65536) ? numberType : propNameType;
const propType = instantiateType(templateType, appendTypeMapping(type.mapper, typeParameter, keyType));
const modifiersIndexInfo = getApplicableIndexInfo(modifiersType, propNameType);
const isReadonly = !!(templateModifiers & 1 || !(templateModifiers & 2) && (modifiersIndexInfo == null ? undefined : modifiersIndexInfo.isReadonly));
@@ -56481,7 +56617,7 @@ ${lanes.join(`
const templateType = getTemplateTypeFromMappedType(mappedType.target || mappedType);
const mapper = appendTypeMapping(mappedType.mapper, getTypeParameterFromMappedType(mappedType), symbol.links.keyType);
const propType = instantiateType(templateType, mapper);
- let type = strictNullChecks && symbol.flags & 16777216 && !maybeTypeOfKind(propType, 32768 | 16384) ? getOptionalType(propType, true) : symbol.links.checkFlags & 524288 ? removeMissingOrUndefinedType(propType) : propType;
+ let type = strictNullChecks && symbol.flags & 16777216 && !maybeTypeOfKind(propType, 4 | 16) ? getOptionalType(propType, true) : symbol.links.checkFlags & 524288 ? removeMissingOrUndefinedType(propType) : propType;
if (!popTypeResolution()) {
error2(currentNode, Diagnostics.Type_of_property_0_circularly_references_itself_in_mapped_type_1, symbolToString(symbol), typeToString(mappedType));
type = errorType;
@@ -56516,8 +56652,8 @@ ${lanes.join(`
} else {
const declaredType = getTypeFromMappedTypeNode(type.declaration);
const constraint = getConstraintTypeFromMappedType(declaredType);
- const extendedConstraint = constraint && constraint.flags & 262144 ? getConstraintOfTypeParameter(constraint) : constraint;
- type.modifiersType = extendedConstraint && extendedConstraint.flags & 4194304 ? instantiateType(extendedConstraint.type, type.mapper) : unknownType;
+ const extendedConstraint = constraint && constraint.flags & 524288 ? getConstraintOfTypeParameter(constraint) : constraint;
+ type.modifiersType = extendedConstraint && extendedConstraint.flags & 2097152 ? instantiateType(extendedConstraint.type, type.mapper) : unknownType;
}
}
return type.modifiersType;
@@ -56534,7 +56670,7 @@ ${lanes.join(`
if (getObjectFlags(type) & 32) {
return getMappedTypeOptionality(type) || getCombinedMappedTypeOptionality(getModifiersTypeFromMappedType(type));
}
- if (type.flags & 2097152) {
+ if (type.flags & 268435456) {
const optionality = getCombinedMappedTypeOptionality(type.types[0]);
return every(type.types, (t, i) => i === 0 || getCombinedMappedTypeOptionality(t) === optionality) ? optionality : 0;
}
@@ -56565,7 +56701,7 @@ ${lanes.join(`
}
function resolveStructuredTypeMembers(type) {
if (!type.members) {
- if (type.flags & 524288) {
+ if (type.flags & 1048576) {
if (type.objectFlags & 4) {
resolveTypeReferenceMembers(type);
} else if (type.objectFlags & 3) {
@@ -56579,9 +56715,9 @@ ${lanes.join(`
} else {
Debug.fail("Unhandled object type " + Debug.formatObjectFlags(type.objectFlags));
}
- } else if (type.flags & 1048576) {
+ } else if (type.flags & 134217728) {
resolveUnionTypeMembers(type);
- } else if (type.flags & 2097152) {
+ } else if (type.flags & 268435456) {
resolveIntersectionTypeMembers(type);
} else {
Debug.fail("Unhandled type " + Debug.formatTypeFlags(type.flags));
@@ -56590,13 +56726,13 @@ ${lanes.join(`
return type;
}
function getPropertiesOfObjectType(type) {
- if (type.flags & 524288) {
+ if (type.flags & 1048576) {
return resolveStructuredTypeMembers(type).properties;
}
return emptyArray;
}
function getPropertyOfObjectType(type, name) {
- if (type.flags & 524288) {
+ if (type.flags & 1048576) {
const resolved = resolveStructuredTypeMembers(type);
const symbol = resolved.members.get(name);
if (symbol && symbolIsValue(symbol)) {
@@ -56610,27 +56746,27 @@ ${lanes.join(`
for (const current of type.types) {
for (const prop of getPropertiesOfType(current)) {
if (!members.has(prop.escapedName)) {
- const combinedProp = getPropertyOfUnionOrIntersectionType(type, prop.escapedName, !!(type.flags & 2097152));
+ const combinedProp = getPropertyOfUnionOrIntersectionType(type, prop.escapedName, !!(type.flags & 268435456));
if (combinedProp) {
members.set(prop.escapedName, combinedProp);
}
}
}
- if (type.flags & 1048576 && getIndexInfosOfType(current).length === 0) {
+ if (type.flags & 134217728 && getIndexInfosOfType(current).length === 0) {
break;
}
}
- type.resolvedProperties = getNamedMembers(members);
+ type.resolvedProperties = getNamedMembers(members, type.symbol);
}
return type.resolvedProperties;
}
function getPropertiesOfType(type) {
type = getReducedApparentType(type);
- return type.flags & 3145728 ? getPropertiesOfUnionOrIntersectionType(type) : getPropertiesOfObjectType(type);
+ return type.flags & 402653184 ? getPropertiesOfUnionOrIntersectionType(type) : getPropertiesOfObjectType(type);
}
function forEachPropertyOfType(type, action) {
type = getReducedApparentType(type);
- if (type.flags & 3670016) {
+ if (type.flags & 403701760) {
resolveStructuredTypeMembers(type).members.forEach((symbol, escapedName) => {
if (isNamedMember(symbol, escapedName)) {
action(symbol, escapedName);
@@ -56649,7 +56785,7 @@ ${lanes.join(`
}
function getAllPossiblePropertiesOfTypes(types) {
const unionType = getUnionType(types);
- if (!(unionType.flags & 1048576)) {
+ if (!(unionType.flags & 134217728)) {
return getAugmentedPropertiesOfType(unionType);
}
const props = createSymbolTable();
@@ -56665,7 +56801,7 @@ ${lanes.join(`
return arrayFrom(props.values());
}
function getConstraintOfType(type) {
- return type.flags & 262144 ? getConstraintOfTypeParameter(type) : type.flags & 8388608 ? getConstraintOfIndexedAccess(type) : type.flags & 16777216 ? getConstraintOfConditionalType(type) : getBaseConstraintOfType(type);
+ return type.flags & 524288 ? getConstraintOfTypeParameter(type) : type.flags & 33554432 ? getConstraintOfIndexedAccess(type) : type.flags & 67108864 ? getConstraintOfConditionalType(type) : getBaseConstraintOfType(type);
}
function getConstraintOfTypeParameter(typeParameter) {
return hasNonCircularBaseConstraint(typeParameter) ? getConstraintFromTypeParameter(typeParameter) : undefined;
@@ -56676,7 +56812,7 @@ ${lanes.join(`
}
function isConstTypeVariable(type, depth = 0) {
var _a;
- return depth < 5 && !!(type && (type.flags & 262144 && some((_a = type.symbol) == null ? undefined : _a.declarations, (d) => hasSyntacticModifier(d, 4096)) || type.flags & 3145728 && some(type.types, (t) => isConstTypeVariable(t, depth)) || type.flags & 8388608 && isConstTypeVariable(type.objectType, depth + 1) || type.flags & 16777216 && isConstTypeVariable(getConstraintOfConditionalType(type), depth + 1) || type.flags & 33554432 && isConstTypeVariable(type.baseType, depth) || getObjectFlags(type) & 32 && isConstMappedType(type, depth) || isGenericTupleType(type) && findIndex(getElementTypes(type), (t, i) => !!(type.target.elementFlags[i] & 8) && isConstTypeVariable(t, depth)) >= 0));
+ return depth < 5 && !!(type && (type.flags & 524288 && some((_a = type.symbol) == null ? undefined : _a.declarations, (d) => hasSyntacticModifier(d, 4096)) || type.flags & 402653184 && some(type.types, (t) => isConstTypeVariable(t, depth)) || type.flags & 33554432 && isConstTypeVariable(type.objectType, depth + 1) || type.flags & 67108864 && isConstTypeVariable(getConstraintOfConditionalType(type), depth + 1) || type.flags & 16777216 && isConstTypeVariable(type.baseType, depth) || getObjectFlags(type) & 32 && isConstMappedType(type, depth) || isGenericTupleType(type) && findIndex(getElementTypes(type), (t, i) => !!(type.target.elementFlags[i] & 8) && isConstTypeVariable(t, depth)) >= 0));
}
function getConstraintOfIndexedAccess(type) {
return hasNonCircularBaseConstraint(type) ? getConstraintFromIndexedAccess(type) : undefined;
@@ -56719,7 +56855,7 @@ ${lanes.join(`
const constraint = simplified === type.checkType ? getConstraintOfType(simplified) : simplified;
if (constraint && constraint !== type.checkType) {
const instantiated = getConditionalTypeInstantiation(type, prependTypeMapping(type.root.checkType, constraint, type.mapper), true);
- if (!(instantiated.flags & 131072)) {
+ if (!(instantiated.flags & 262144)) {
type.resolvedConstraintOfDistributive = instantiated;
return instantiated;
}
@@ -56738,9 +56874,9 @@ ${lanes.join(`
let constraints;
let hasDisjointDomainType = false;
for (const t of types) {
- if (t.flags & 465829888) {
+ if (t.flags & 132644864) {
let constraint = getConstraintOfType(t);
- while (constraint && constraint.flags & (262144 | 4194304 | 16777216)) {
+ while (constraint && constraint.flags & (524288 | 2097152 | 67108864)) {
constraint = getConstraintOfType(constraint);
}
if (constraint) {
@@ -56749,14 +56885,14 @@ ${lanes.join(`
constraints = append(constraints, t);
}
}
- } else if (t.flags & 469892092 || isEmptyAnonymousObjectType(t)) {
+ } else if (t.flags & 12812284 || isEmptyAnonymousObjectType(t)) {
hasDisjointDomainType = true;
}
}
if (constraints && (targetIsUnion || hasDisjointDomainType)) {
if (hasDisjointDomainType) {
for (const t of types) {
- if (t.flags & 469892092 || isEmptyAnonymousObjectType(t)) {
+ if (t.flags & 12812284 || isEmptyAnonymousObjectType(t)) {
constraints = append(constraints, t);
}
}
@@ -56766,11 +56902,11 @@ ${lanes.join(`
return;
}
function getBaseConstraintOfType(type) {
- if (type.flags & (58982400 | 3145728 | 134217728 | 268435456) || isGenericTupleType(type)) {
+ if (type.flags & (117964800 | 402653184 | 4194304 | 8388608) || isGenericTupleType(type)) {
const constraint = getResolvedBaseConstraint(type);
return constraint !== noConstraintType && constraint !== circularConstraintType ? constraint : undefined;
}
- return type.flags & 4194304 ? stringNumberSymbolType : undefined;
+ return type.flags & 2097152 ? stringNumberSymbolType : undefined;
}
function getBaseConstraintOrType(type) {
return getBaseConstraintOfType(type) || type;
@@ -56797,7 +56933,7 @@ ${lanes.join(`
stack.pop();
}
if (!popTypeResolution()) {
- if (t.flags & 262144) {
+ if (t.flags & 524288) {
const errorNode = getConstraintDeclaration(t);
if (errorNode) {
const diagnostic = error2(errorNode, Diagnostics.Type_parameter_0_has_a_circular_constraint, typeToString(t));
@@ -56817,11 +56953,11 @@ ${lanes.join(`
return c !== noConstraintType && c !== circularConstraintType ? c : undefined;
}
function computeBaseConstraint(t) {
- if (t.flags & 262144) {
+ if (t.flags & 524288) {
const constraint = getConstraintFromTypeParameter(t);
return t.isThisType || !constraint ? constraint : getBaseConstraint(constraint);
}
- if (t.flags & 3145728) {
+ if (t.flags & 402653184) {
const types = t.types;
const baseTypes = [];
let different = false;
@@ -56839,21 +56975,27 @@ ${lanes.join(`
if (!different) {
return t;
}
- return t.flags & 1048576 && baseTypes.length === types.length ? getUnionType(baseTypes) : t.flags & 2097152 && baseTypes.length ? getIntersectionType(baseTypes) : undefined;
+ return t.flags & 134217728 && baseTypes.length === types.length ? getUnionType(baseTypes) : t.flags & 268435456 && baseTypes.length ? getIntersectionType(baseTypes) : undefined;
}
- if (t.flags & 4194304) {
+ if (t.flags & 2097152) {
+ if (isGenericMappedType(t.type)) {
+ const mappedType = t.type;
+ if (getNameTypeFromMappedType(mappedType) && !isMappedTypeWithKeyofConstraintDeclaration(mappedType)) {
+ return getBaseConstraint(getIndexTypeForMappedType(mappedType, 0));
+ }
+ }
return stringNumberSymbolType;
}
- if (t.flags & 134217728) {
+ if (t.flags & 4194304) {
const types = t.types;
const constraints = mapDefined(types, getBaseConstraint);
return constraints.length === types.length ? getTemplateLiteralType(t.texts, constraints) : stringType;
}
- if (t.flags & 268435456) {
+ if (t.flags & 8388608) {
const constraint = getBaseConstraint(t.type);
return constraint && constraint !== t.type ? getStringMappingType(t.symbol, constraint) : stringType;
}
- if (t.flags & 8388608) {
+ if (t.flags & 33554432) {
if (isMappedTypeGenericIndexedAccess(t)) {
return getBaseConstraint(substituteIndexedMappedType(t.objectType, t.indexType));
}
@@ -56862,16 +57004,16 @@ ${lanes.join(`
const baseIndexedAccess = baseObjectType && baseIndexType && getIndexedAccessTypeOrUndefined(baseObjectType, baseIndexType, t.accessFlags);
return baseIndexedAccess && getBaseConstraint(baseIndexedAccess);
}
- if (t.flags & 16777216) {
+ if (t.flags & 67108864) {
const constraint = getConstraintFromConditionalType(t);
return constraint && getBaseConstraint(constraint);
}
- if (t.flags & 33554432) {
+ if (t.flags & 16777216) {
return getBaseConstraint(getSubstitutionIntersection(t));
}
if (isGenericTupleType(t)) {
const newElements = map(getElementTypes(t), (v, i) => {
- const constraint = v.flags & 262144 && t.target.elementFlags[i] & 8 && getBaseConstraint(v) || v;
+ const constraint = v.flags & 524288 && t.target.elementFlags[i] & 8 && getBaseConstraint(v) || v;
return constraint !== v && everyType(constraint, (c) => isArrayOrTupleType(c) && !isGenericTupleType(c)) ? constraint : v;
});
return createTupleType(newElements, t.target.elementFlags, t.target.readonly, t.target.labeledElementDeclarations);
@@ -56930,16 +57072,16 @@ ${lanes.join(`
return type;
}
function isArrayOrTupleOrIntersection(type) {
- return !!(type.flags & 2097152) && every(type.types, isArrayOrTupleType);
+ return !!(type.flags & 268435456) && every(type.types, isArrayOrTupleType);
}
function isMappedTypeGenericIndexedAccess(type) {
let objectType;
- return !!(type.flags & 8388608 && getObjectFlags(objectType = type.objectType) & 32 && !isGenericMappedType(objectType) && isGenericIndexType(type.indexType) && !(getMappedTypeModifiers(objectType) & 8) && !objectType.declaration.nameType);
+ return !!(type.flags & 33554432 && getObjectFlags(objectType = type.objectType) & 32 && !isGenericMappedType(objectType) && isGenericIndexType(type.indexType) && !(getMappedTypeModifiers(objectType) & 8) && !objectType.declaration.nameType);
}
function getApparentType(type) {
- const t = type.flags & 465829888 ? getBaseConstraintOfType(type) || unknownType : type;
+ const t = type.flags & 132644864 ? getBaseConstraintOfType(type) || unknownType : type;
const objectFlags = getObjectFlags(t);
- return objectFlags & 32 ? getApparentTypeOfMappedType(t) : objectFlags & 4 && t !== type ? getTypeWithThisArgument(t, type) : t.flags & 2097152 ? getApparentTypeOfIntersectionType(t, type) : t.flags & 402653316 ? globalStringType : t.flags & 296 ? globalNumberType : t.flags & 2112 ? getGlobalBigIntType() : t.flags & 528 ? globalBooleanType : t.flags & 12288 ? getGlobalESSymbolType() : t.flags & 67108864 ? emptyObjectType : t.flags & 4194304 ? stringNumberSymbolType : t.flags & 2 && !strictNullChecks ? emptyObjectType : t;
+ return objectFlags & 32 ? getApparentTypeOfMappedType(t) : objectFlags & 4 && t !== type ? getTypeWithThisArgument(t, type) : t.flags & 268435456 ? getApparentTypeOfIntersectionType(t, type) : t.flags & 12583968 ? globalStringType : t.flags & 67648 ? globalNumberType : t.flags & 4224 ? getGlobalBigIntType() : t.flags & 8448 ? globalBooleanType : t.flags & 16896 ? getGlobalESSymbolType() : t.flags & 131072 ? emptyObjectType : t.flags & 2097152 ? stringNumberSymbolType : t.flags & 2 && !strictNullChecks ? emptyObjectType : t;
}
function getReducedApparentType(type) {
return getReducedType(getApparentType(getReducedType(type)));
@@ -56950,14 +57092,14 @@ ${lanes.join(`
let singleProp;
let propSet;
let indexTypes;
- const isUnion = containingType.flags & 1048576;
+ const isUnion = containingType.flags & 134217728;
let optionalFlag;
let syntheticFlag = 4;
let checkFlags = isUnion ? 0 : 8;
let mergedInstantiations = false;
for (const current of containingType.types) {
const type = getApparentType(current);
- if (!(isErrorType(type) || type.flags & 131072)) {
+ if (!(isErrorType(type) || type.flags & 262144)) {
const prop = getPropertyOfType(type, name, skipObjectFunctionPropertyAugment);
const modifiers = prop ? getDeclarationModifierFlagsFromSymbol(prop) : 0;
if (prop) {
@@ -57060,7 +57202,7 @@ ${lanes.join(`
if (isLiteralType(type) || isPatternLiteralType(type)) {
checkFlags |= 128;
}
- if (type.flags & 131072 && type !== uniqueLiteralType) {
+ if (type.flags & 262144 && type !== uniqueLiteralType) {
checkFlags |= 131072;
}
propTypes.push(type);
@@ -57131,9 +57273,9 @@ ${lanes.join(`
return property && !(getCheckFlags(property) & 16) ? property : undefined;
}
function getReducedType(type) {
- if (type.flags & 1048576 && type.objectFlags & 16777216) {
+ if (type.flags & 134217728 && type.objectFlags & 16777216) {
return type.resolvedReducedType || (type.resolvedReducedType = getReducedUnionType(type));
- } else if (type.flags & 2097152) {
+ } else if (type.flags & 268435456) {
if (!(type.objectFlags & 16777216)) {
type.objectFlags |= 16777216 | (some(getPropertiesOfUnionOrIntersectionType(type), isNeverReducedProperty) ? 33554432 : 0);
}
@@ -57147,7 +57289,7 @@ ${lanes.join(`
return unionType;
}
const reduced = getUnionType(reducedTypes);
- if (reduced.flags & 1048576) {
+ if (reduced.flags & 134217728) {
reduced.resolvedReducedType = reduced;
}
return reduced;
@@ -57156,20 +57298,20 @@ ${lanes.join(`
return isDiscriminantWithNeverType(prop) || isConflictingPrivateProperty(prop);
}
function isDiscriminantWithNeverType(prop) {
- return !(prop.flags & 16777216) && (getCheckFlags(prop) & (192 | 131072)) === 192 && !!(getTypeOfSymbol(prop).flags & 131072);
+ return !(prop.flags & 16777216) && (getCheckFlags(prop) & (192 | 131072)) === 192 && !!(getTypeOfSymbol(prop).flags & 262144);
}
function isConflictingPrivateProperty(prop) {
return !prop.valueDeclaration && !!(getCheckFlags(prop) & 1024);
}
function isGenericReducibleType(type) {
- return !!(type.flags & 1048576 && type.objectFlags & 16777216 && some(type.types, isGenericReducibleType) || type.flags & 2097152 && isReducibleIntersection(type));
+ return !!(type.flags & 134217728 && type.objectFlags & 16777216 && some(type.types, isGenericReducibleType) || type.flags & 268435456 && isReducibleIntersection(type));
}
function isReducibleIntersection(type) {
const uniqueFilled = type.uniqueLiteralFilledInstantiation || (type.uniqueLiteralFilledInstantiation = instantiateType(type, uniqueLiteralMapper));
return getReducedType(uniqueFilled) !== uniqueFilled;
}
function elaborateNeverIntersection(errorInfo, type) {
- if (type.flags & 2097152 && getObjectFlags(type) & 33554432) {
+ if (type.flags & 268435456 && getObjectFlags(type) & 33554432) {
const neverProp = find(getPropertiesOfUnionOrIntersectionType(type), isDiscriminantWithNeverType);
if (neverProp) {
return chainDiagnosticMessages(errorInfo, Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents, typeToString(type, undefined, 536870912), symbolToString(neverProp));
@@ -57184,7 +57326,7 @@ ${lanes.join(`
function getPropertyOfType(type, name, skipObjectFunctionPropertyAugment, includeTypeOnlyMembers) {
var _a, _b;
type = getReducedApparentType(type);
- if (type.flags & 524288) {
+ if (type.flags & 1048576) {
const resolved = resolveStructuredTypeMembers(type);
const symbol = resolved.members.get(name);
if (symbol && !includeTypeOnlyMembers && ((_a = type.symbol) == null ? undefined : _a.flags) & 512 && ((_b = getSymbolLinks(type.symbol).typeOnlyExportStarMap) == null ? undefined : _b.has(name))) {
@@ -57204,7 +57346,7 @@ ${lanes.join(`
}
return getPropertyOfObjectType(globalObjectType, name);
}
- if (type.flags & 2097152) {
+ if (type.flags & 268435456) {
const prop = getPropertyOfUnionOrIntersectionType(type, name, true);
if (prop) {
return prop;
@@ -57214,13 +57356,13 @@ ${lanes.join(`
}
return;
}
- if (type.flags & 1048576) {
+ if (type.flags & 134217728) {
return getPropertyOfUnionOrIntersectionType(type, name, skipObjectFunctionPropertyAugment);
}
return;
}
function getSignaturesOfStructuredType(type, kind) {
- if (type.flags & 3670016) {
+ if (type.flags & 403701760) {
const resolved = resolveStructuredTypeMembers(type);
return kind === 0 ? resolved.callSignatures : resolved.constructSignatures;
}
@@ -57228,7 +57370,7 @@ ${lanes.join(`
}
function getSignaturesOfType(type, kind) {
const result = getSignaturesOfStructuredType(getReducedApparentType(type), kind);
- if (kind === 0 && !length(result) && type.flags & 1048576) {
+ if (kind === 0 && !length(result) && type.flags & 134217728) {
if (type.arrayFallbackSignatures) {
return type.arrayFallbackSignatures;
}
@@ -57278,10 +57420,10 @@ ${lanes.join(`
return applicableInfos ? createIndexInfo(unknownType, getIntersectionType(map(applicableInfos, (info) => info.type)), reduceLeft(applicableInfos, (isReadonly, info) => isReadonly && info.isReadonly, true)) : applicableInfo ? applicableInfo : stringIndexInfo && isApplicableIndexType(keyType, stringType) ? stringIndexInfo : undefined;
}
function isApplicableIndexType(source, target) {
- return isTypeAssignableTo(source, target) || target === stringType && isTypeAssignableTo(source, numberType) || target === numberType && (source === numericStringType || !!(source.flags & 128) && isNumericLiteralName(source.value));
+ return isTypeAssignableTo(source, target) || target === stringType && isTypeAssignableTo(source, numberType) || target === numberType && (source === numericStringType || !!(source.flags & 1024) && isNumericLiteralName(source.value));
}
function getIndexInfosOfStructuredType(type) {
- if (type.flags & 3670016) {
+ if (type.flags & 403701760) {
const resolved = resolveStructuredTypeMembers(type);
return resolved.indexInfos;
}
@@ -57591,7 +57733,7 @@ ${lanes.join(`
}
if (type || jsdocPredicate) {
signature.resolvedTypePredicate = type && isTypePredicateNode(type) ? createTypePredicateFromTypePredicateNode(type, signature) : jsdocPredicate || noTypePredicate;
- } else if (signature.declaration && isFunctionLikeDeclaration(signature.declaration) && (!signature.resolvedReturnType || signature.resolvedReturnType.flags & 16) && getParameterCount(signature) > 0) {
+ } else if (signature.declaration && isFunctionLikeDeclaration(signature.declaration) && (!signature.resolvedReturnType || signature.resolvedReturnType.flags & 256) && getParameterCount(signature) > 0) {
const { declaration } = signature;
signature.resolvedTypePredicate = noTypePredicate;
signature.resolvedTypePredicate = getTypePredicateFromBody(declaration) || noTypePredicate;
@@ -57609,7 +57751,7 @@ ${lanes.join(`
return parameterName.kind === 198 ? createTypePredicate(node.assertsModifier ? 2 : 0, undefined, undefined, type) : createTypePredicate(node.assertsModifier ? 3 : 1, parameterName.escapedText, findIndex(signature.parameters, (p) => p.escapedName === parameterName.escapedText), type);
}
function getUnionOrIntersectionType(types, kind, unionReduction) {
- return kind !== 2097152 ? getUnionType(types, unionReduction) : getIntersectionType(types);
+ return kind !== 268435456 ? getUnionType(types, unionReduction) : getIntersectionType(types);
}
function getReturnTypeOfSignature(signature) {
if (!signature.resolvedReturnType) {
@@ -57839,7 +57981,7 @@ ${lanes.join(`
return emptyArray;
}
function isValidIndexKeyType(type) {
- return !!(type.flags & (4 | 8 | 4096)) || isPatternLiteralType(type) || !!(type.flags & 2097152) && !isGenericType(type) && some(type.types, isValidIndexKeyType);
+ return !!(type.flags & (32 | 64 | 512)) || isPatternLiteralType(type) || !!(type.flags & 268435456) && !isGenericType(type) && some(type.types, isValidIndexKeyType);
}
function getConstraintDeclaration(type) {
return mapDefined(filter(type.symbol && type.symbol.declarations, isTypeParameterDeclaration), getEffectiveConstraintOfTypeParameter)[0];
@@ -58176,10 +58318,10 @@ ${lanes.join(`
return isNoInferTargetType(type) ? getOrCreateSubstitutionType(type, unknownType) : type;
}
function isNoInferTargetType(type) {
- return !!(type.flags & 3145728 && some(type.types, isNoInferTargetType) || type.flags & 33554432 && !isNoInferType(type) && isNoInferTargetType(type.baseType) || type.flags & 524288 && !isEmptyAnonymousObjectType(type) || type.flags & (465829888 & ~33554432) && !isPatternLiteralType(type));
+ return !!(type.flags & 402653184 && some(type.types, isNoInferTargetType) || type.flags & 16777216 && !isNoInferType(type) && isNoInferTargetType(type.baseType) || type.flags & 1048576 && !isEmptyAnonymousObjectType(type) || type.flags & (132644864 & ~16777216) && !isPatternLiteralType(type));
}
function isNoInferType(type) {
- return !!(type.flags & 33554432 && type.constraint.flags & 2);
+ return !!(type.flags & 16777216 && type.constraint.flags & 2);
}
function getSubstitutionType(baseType, constraint) {
return constraint.flags & 3 || constraint === baseType || baseType.flags & 1 ? baseType : getOrCreateSubstitutionType(baseType, constraint);
@@ -58190,7 +58332,7 @@ ${lanes.join(`
if (cached) {
return cached;
}
- const result = createType(33554432);
+ const result = createType(16777216);
result.baseType = baseType;
result.constraint = constraint;
substitutionTypes.set(id, result);
@@ -58213,12 +58355,12 @@ ${lanes.join(`
if (parent2.kind === 170) {
covariant = !covariant;
}
- if ((covariant || type.flags & 8650752) && parent2.kind === 195 && node === parent2.trueType) {
+ if ((covariant || type.flags & 34078720) && parent2.kind === 195 && node === parent2.trueType) {
const constraint = getImpliedConstraint(type, parent2.checkType, parent2.extendsType);
if (constraint) {
constraints = append(constraints, constraint);
}
- } else if (type.flags & 262144 && parent2.kind === 201 && !parent2.nameType && node === parent2.type) {
+ } else if (type.flags & 524288 && parent2.kind === 201 && !parent2.nameType && node === parent2.type) {
const mappedType = getTypeFromTypeNode(parent2);
if (getTypeParameterFromMappedType(mappedType) === getActualTypeVariable(type)) {
const typeParameter = getHomomorphicTypeVariable(mappedType);
@@ -58294,7 +58436,7 @@ ${lanes.join(`
}
function getTypeFromJSDocNullableTypeNode(node) {
const type = getTypeFromTypeNode(node.type);
- return strictNullChecks ? getNullableType(type, 65536) : type;
+ return strictNullChecks ? getNullableType(type, 8) : type;
}
function getTypeFromTypeReference(node) {
const links = getNodeLinks(node);
@@ -58356,7 +58498,7 @@ ${lanes.join(`
return arity ? emptyGenericType : emptyObjectType;
}
const type = getDeclaredTypeOfSymbol(symbol);
- if (!(type.flags & 524288)) {
+ if (!(type.flags & 1048576)) {
error2(getTypeDeclaration(symbol), Diagnostics.Global_type_0_must_be_a_class_or_interface_type, symbolName(symbol));
return arity ? emptyGenericType : emptyObjectType;
}
@@ -58734,7 +58876,7 @@ ${lanes.join(`
return createTypeReference(target, elementTypes);
}
if (target.combinedFlags & 8) {
- const unionIndex = findIndex(elementTypes, (t, i) => !!(target.elementFlags[i] & 8 && t.flags & (131072 | 1048576)));
+ const unionIndex = findIndex(elementTypes, (t, i) => !!(target.elementFlags[i] & 8 && t.flags & (262144 | 134217728)));
if (unionIndex >= 0) {
return checkCrossProductUnion(map(elementTypes, (t, i) => target.elementFlags[i] & 8 ? t : unknownType)) ? mapType(elementTypes[unionIndex], (t) => createNormalizedTupleType(target, replaceElement(elementTypes, unionIndex, t))) : errorType;
}
@@ -58751,7 +58893,7 @@ ${lanes.join(`
if (flags & 8) {
if (type.flags & 1) {
addElement(type, 4, (_a = target.labeledElementDeclarations) == null ? undefined : _a[i]);
- } else if (type.flags & 58982400 || isGenericMappedType(type)) {
+ } else if (type.flags & 117964800 || isGenericMappedType(type)) {
addElement(type, 8, (_b = target.labeledElementDeclarations) == null ? undefined : _b[i]);
} else if (isTupleType(type)) {
const elements = getElementTypes(type);
@@ -58827,10 +58969,10 @@ ${lanes.join(`
return type.id;
}
function containsType(types, type) {
- return binarySearch(types, type, getTypeId, compareValues) >= 0;
+ return stableTypeOrdering ? binarySearch(types, type, identity, compareTypes) >= 0 : binarySearch(types, type, getTypeId, compareValues) >= 0;
}
function insertType(types, type) {
- const index = binarySearch(types, type, getTypeId, compareValues);
+ const index = stableTypeOrdering ? binarySearch(types, type, identity, compareTypes) : binarySearch(types, type, getTypeId, compareValues);
if (index < 0) {
types.splice(~index, 0, type);
return true;
@@ -58839,22 +58981,22 @@ ${lanes.join(`
}
function addTypeToUnion(typeSet, includes, type) {
const flags = type.flags;
- if (!(flags & 131072)) {
- includes |= flags & 473694207;
- if (flags & 465829888)
- includes |= 33554432;
- if (flags & 2097152 && getObjectFlags(type) & 67108864)
+ if (!(flags & 262144)) {
+ includes |= flags & 416808959;
+ if (flags & 132644864)
+ includes |= 16777216;
+ if (flags & 268435456 && getObjectFlags(type) & 67108864)
includes |= 536870912;
if (type === wildcardType)
- includes |= 8388608;
+ includes |= 33554432;
if (isErrorType(type))
includes |= 1073741824;
- if (!strictNullChecks && flags & 98304) {
+ if (!strictNullChecks && flags & 12) {
if (!(getObjectFlags(type) & 65536))
- includes |= 4194304;
+ includes |= 2097152;
} else {
const len = typeSet.length;
- const index = len && type.id > typeSet[len - 1].id ? ~len : binarySearch(typeSet, type, getTypeId, compareValues);
+ const index = stableTypeOrdering ? binarySearch(typeSet, type, identity, compareTypes) : len && type.id > typeSet[len - 1].id ? ~len : binarySearch(typeSet, type, getTypeId, compareValues);
if (index < 0) {
typeSet.splice(~index, 0, type);
}
@@ -58866,7 +59008,7 @@ ${lanes.join(`
let lastType;
for (const type of types) {
if (type !== lastType) {
- includes = type.flags & 1048576 ? addTypesToUnion(typeSet, includes | (isNamedUnionType(type) ? 1048576 : 0), type.types) : addTypeToUnion(typeSet, includes, type);
+ includes = type.flags & 134217728 ? addTypesToUnion(typeSet, includes | (isNamedUnionType(type) ? 134217728 : 0), type.types) : addTypeToUnion(typeSet, includes, type);
lastType = type;
}
}
@@ -58882,21 +59024,21 @@ ${lanes.join(`
if (match) {
return match;
}
- const hasEmptyObject = hasObjectTypes && some(types, (t) => !!(t.flags & 524288) && !isGenericMappedType(t) && isEmptyResolvedType(resolveStructuredTypeMembers(t)));
+ const hasEmptyObject = hasObjectTypes && some(types, (t) => !!(t.flags & 1048576) && !isGenericMappedType(t) && isEmptyResolvedType(resolveStructuredTypeMembers(t)));
const len = types.length;
let i = len;
let count = 0;
while (i > 0) {
i--;
const source = types[i];
- if (hasEmptyObject || source.flags & 469499904) {
- if (source.flags & 262144 && getBaseConstraintOrType(source).flags & 1048576) {
+ if (hasEmptyObject || source.flags & 536346624) {
+ if (source.flags & 524288 && getBaseConstraintOrType(source).flags & 134217728) {
if (isTypeRelatedTo(source, getUnionType(map(types, (t) => t === source ? neverType : t)), strictSubtypeRelation)) {
orderedRemoveItemAt(types, i);
}
continue;
}
- const keyProperty = source.flags & (524288 | 2097152 | 58982400) ? find(getPropertiesOfType(source), (p) => isUnitType(getTypeOfSymbol(p))) : undefined;
+ const keyProperty = source.flags & (1048576 | 268435456 | 117964800) ? find(getPropertiesOfType(source), (p) => isUnitType(getTypeOfSymbol(p))) : undefined;
const keyPropertyType = keyProperty && getRegularTypeOfLiteralType(getTypeOfSymbol(keyProperty));
for (const target of types) {
if (source !== target) {
@@ -58909,7 +59051,7 @@ ${lanes.join(`
}
}
count++;
- if (keyProperty && target.flags & (524288 | 2097152 | 58982400)) {
+ if (keyProperty && target.flags & (1048576 | 268435456 | 117964800)) {
const t = getTypeOfPropertyOfType(target, keyProperty.escapedName);
if (t && isUnitType(t) && getRegularTypeOfLiteralType(t) !== keyPropertyType) {
continue;
@@ -58932,7 +59074,7 @@ ${lanes.join(`
i--;
const t = types[i];
const flags = t.flags;
- const remove = flags & (128 | 134217728 | 268435456) && includes & 4 || flags & 256 && includes & 8 || flags & 2048 && includes & 64 || flags & 8192 && includes & 4096 || reduceVoidUndefined && flags & 32768 && includes & 16384 || isFreshLiteralType(t) && containsType(types, t.regularType);
+ const remove = flags & (1024 | 4194304 | 8388608) && includes & 32 || flags & 2048 && includes & 64 || flags & 4096 && includes & 128 || flags & 16384 && includes & 512 || reduceVoidUndefined && flags & 4 && includes & 16 || isFreshLiteralType(t) && containsType(types, t.regularType);
if (remove) {
orderedRemoveItemAt(types, i);
}
@@ -58945,28 +59087,28 @@ ${lanes.join(`
while (i > 0) {
i--;
const t = types[i];
- if (t.flags & 128 && some(templates, (template) => isTypeMatchedByTemplateLiteralOrStringMapping(t, template))) {
+ if (t.flags & 1024 && some(templates, (template) => isTypeMatchedByTemplateLiteralOrStringMapping(t, template))) {
orderedRemoveItemAt(types, i);
}
}
}
}
function isTypeMatchedByTemplateLiteralOrStringMapping(type, template) {
- return template.flags & 134217728 ? isTypeMatchedByTemplateLiteralType(type, template) : isMemberOfStringMapping(type, template);
+ return template.flags & 4194304 ? isTypeMatchedByTemplateLiteralType(type, template) : isMemberOfStringMapping(type, template);
}
function removeConstrainedTypeVariables(types) {
const typeVariables = [];
for (const type of types) {
- if (type.flags & 2097152 && getObjectFlags(type) & 67108864) {
- const index = type.types[0].flags & 8650752 ? 0 : 1;
+ if (type.flags & 268435456 && getObjectFlags(type) & 67108864) {
+ const index = type.types[0].flags & 34078720 ? 0 : 1;
pushIfUnique(typeVariables, type.types[index]);
}
}
for (const typeVariable of typeVariables) {
const primitives = [];
for (const type of types) {
- if (type.flags & 2097152 && getObjectFlags(type) & 67108864) {
- const index = type.types[0].flags & 8650752 ? 0 : 1;
+ if (type.flags & 268435456 && getObjectFlags(type) & 67108864) {
+ const index = type.types[0].flags & 34078720 ? 0 : 1;
if (type.types[index] === typeVariable) {
insertType(primitives, type.types[1 - index]);
}
@@ -58978,8 +59120,8 @@ ${lanes.join(`
while (i > 0) {
i--;
const type = types[i];
- if (type.flags & 2097152 && getObjectFlags(type) & 67108864) {
- const index = type.types[0].flags & 8650752 ? 0 : 1;
+ if (type.flags & 268435456 && getObjectFlags(type) & 67108864) {
+ const index = type.types[0].flags & 34078720 ? 0 : 1;
if (type.types[index] === typeVariable && containsType(primitives, type.types[1 - index])) {
orderedRemoveItemAt(types, i);
}
@@ -58990,15 +59132,15 @@ ${lanes.join(`
}
}
function isNamedUnionType(type) {
- return !!(type.flags & 1048576 && (type.aliasSymbol || type.origin));
+ return !!(type.flags & 134217728 && (type.aliasSymbol || type.origin));
}
function addNamedUnions(namedUnions, types) {
for (const t of types) {
- if (t.flags & 1048576) {
+ if (t.flags & 134217728) {
const origin = t.origin;
- if (t.aliasSymbol || origin && !(origin.flags & 1048576)) {
+ if (t.aliasSymbol || origin && !(origin.flags & 134217728)) {
pushIfUnique(namedUnions, t);
- } else if (origin && origin.flags & 1048576) {
+ } else if (origin && origin.flags & 134217728) {
addNamedUnions(namedUnions, origin.types);
}
}
@@ -59016,7 +59158,7 @@ ${lanes.join(`
if (types.length === 1) {
return types[0];
}
- if (types.length === 2 && !origin && (types[0].flags & 1048576 || types[1].flags & 1048576)) {
+ if (types.length === 2 && !origin && (types[0].flags & 134217728 || types[1].flags & 134217728)) {
const infix = unionReduction === 0 ? "N" : unionReduction === 2 ? "S" : "L";
const index = types[0].id < types[1].id ? 0 : 1;
const id = types[index].id + infix + types[1 - index].id + getAliasId(aliasSymbol, aliasTypeArguments);
@@ -59034,33 +59176,33 @@ ${lanes.join(`
const includes = addTypesToUnion(typeSet, 0, types);
if (unionReduction !== 0) {
if (includes & 3) {
- return includes & 1 ? includes & 8388608 ? wildcardType : includes & 1073741824 ? errorType : anyType : unknownType;
+ return includes & 1 ? includes & 33554432 ? wildcardType : includes & 1073741824 ? errorType : anyType : unknownType;
}
- if (includes & 32768) {
+ if (includes & 4) {
if (typeSet.length >= 2 && typeSet[0] === undefinedType && typeSet[1] === missingType) {
orderedRemoveItemAt(typeSet, 1);
}
}
- if (includes & (32 | 2944 | 8192 | 134217728 | 268435456) || includes & 16384 && includes & 32768) {
+ if (includes & (65536 | 15360 | 16384 | 4194304 | 8388608) || includes & 16 && includes & 4) {
removeRedundantLiteralTypes(typeSet, includes, !!(unionReduction & 2));
}
- if (includes & 128 && includes & (134217728 | 268435456)) {
+ if (includes & 1024 && includes & (4194304 | 8388608)) {
removeStringLiteralsMatchedByTemplateLiterals(typeSet);
}
if (includes & 536870912) {
removeConstrainedTypeVariables(typeSet);
}
if (unionReduction === 2) {
- typeSet = removeSubtypes(typeSet, !!(includes & 524288));
+ typeSet = removeSubtypes(typeSet, !!(includes & 1048576));
if (!typeSet) {
return errorType;
}
}
if (typeSet.length === 0) {
- return includes & 65536 ? includes & 4194304 ? nullType : nullWideningType : includes & 32768 ? includes & 4194304 ? undefinedType : undefinedWideningType : neverType;
+ return includes & 8 ? includes & 2097152 ? nullType : nullWideningType : includes & 4 ? includes & 2097152 ? undefinedType : undefinedWideningType : neverType;
}
}
- if (!origin && includes & 1048576) {
+ if (!origin && includes & 134217728) {
const namedUnions = [];
addNamedUnions(namedUnions, types);
const reducedTypes = [];
@@ -59077,10 +59219,10 @@ ${lanes.join(`
for (const t of namedUnions) {
insertType(reducedTypes, t);
}
- origin = createOriginUnionOrIntersectionType(1048576, reducedTypes);
+ origin = createOriginUnionOrIntersectionType(134217728, reducedTypes);
}
}
- const objectFlags = (includes & 36323331 ? 0 : 32768) | (includes & 2097152 ? 16777216 : 0);
+ const objectFlags = (includes & 286523411 ? 0 : 32768) | (includes & 268435456 ? 16777216 : 0);
return getUnionTypeFromSortedList(typeSet, objectFlags, aliasSymbol, aliasTypeArguments, origin);
}
function getUnionOrIntersectionTypePredicate(signatures, kind) {
@@ -59095,7 +59237,7 @@ ${lanes.join(`
last2 = pred;
types.push(pred.type);
} else {
- const returnType = kind !== 2097152 ? getReturnTypeOfSignature(sig) : undefined;
+ const returnType = kind !== 268435456 ? getReturnTypeOfSignature(sig) : undefined;
if (returnType !== falseType && returnType !== regularFalseType) {
return;
}
@@ -59117,18 +59259,18 @@ ${lanes.join(`
if (types.length === 1) {
return types[0];
}
- const typeKey = !origin ? getTypeListId(types) : origin.flags & 1048576 ? `|${getTypeListId(origin.types)}` : origin.flags & 2097152 ? `&${getTypeListId(origin.types)}` : `#${origin.type.id}|${getTypeListId(types)}`;
+ const typeKey = !origin ? getTypeListId(types) : origin.flags & 134217728 ? `|${getTypeListId(origin.types)}` : origin.flags & 268435456 ? `&${getTypeListId(origin.types)}` : `#${origin.type.id}|${getTypeListId(types)}`;
const id = typeKey + getAliasId(aliasSymbol, aliasTypeArguments);
let type = unionTypes.get(id);
if (!type) {
- type = createType(1048576);
- type.objectFlags = precomputedObjectFlags | getPropagatingFlagsOfTypes(types, 98304);
+ type = createType(134217728);
+ type.objectFlags = precomputedObjectFlags | getPropagatingFlagsOfTypes(types, 12);
type.types = types;
type.origin = origin;
type.aliasSymbol = aliasSymbol;
type.aliasTypeArguments = aliasTypeArguments;
- if (types.length === 2 && types[0].flags & 512 && types[1].flags & 512) {
- type.flags |= 16;
+ if (types.length === 2 && types[0].flags & 8192 && types[1].flags & 8192) {
+ type.flags |= 256;
type.intrinsicName = "boolean";
}
unionTypes.set(id, type);
@@ -59145,33 +59287,33 @@ ${lanes.join(`
}
function addTypeToIntersection(typeSet, includes, type) {
const flags = type.flags;
- if (flags & 2097152) {
+ if (flags & 268435456) {
return addTypesToIntersection(typeSet, includes, type.types);
}
if (isEmptyAnonymousObjectType(type)) {
- if (!(includes & 16777216)) {
- includes |= 16777216;
+ if (!(includes & 67108864)) {
+ includes |= 67108864;
typeSet.set(type.id.toString(), type);
}
} else {
if (flags & 3) {
if (type === wildcardType)
- includes |= 8388608;
+ includes |= 33554432;
if (isErrorType(type))
includes |= 1073741824;
- } else if (strictNullChecks || !(flags & 98304)) {
+ } else if (strictNullChecks || !(flags & 12)) {
if (type === missingType) {
- includes |= 262144;
+ includes |= 524288;
type = undefinedType;
}
if (!typeSet.has(type.id.toString())) {
- if (type.flags & 109472 && includes & 109472) {
- includes |= 67108864;
+ if (type.flags & 97292 && includes & 97292) {
+ includes |= 131072;
}
typeSet.set(type.id.toString(), type);
}
}
- includes |= flags & 473694207;
+ includes |= flags & 416808959;
}
return includes;
}
@@ -59186,7 +59328,7 @@ ${lanes.join(`
while (i > 0) {
i--;
const t = types[i];
- const remove = t.flags & 4 && includes & (128 | 134217728 | 268435456) || t.flags & 8 && includes & 256 || t.flags & 64 && includes & 2048 || t.flags & 4096 && includes & 8192 || t.flags & 16384 && includes & 32768 || isEmptyAnonymousObjectType(t) && includes & 470302716;
+ const remove = t.flags & 32 && includes & (1024 | 4194304 | 8388608) || t.flags & 64 && includes & 2048 || t.flags & 128 && includes & 4096 || t.flags & 512 && includes & 16384 || t.flags & 16 && includes & 4 || isEmptyAnonymousObjectType(t) && includes & 13893600;
if (remove) {
orderedRemoveItemAt(types, i);
}
@@ -59201,7 +59343,7 @@ ${lanes.join(`
if (type === undefinedType) {
return containsType(u.types, missingType);
}
- const primitive = type.flags & 128 ? stringType : type.flags & (32 | 256) ? numberType : type.flags & 2048 ? bigintType : type.flags & 8192 ? esSymbolType : undefined;
+ const primitive = type.flags & 1024 ? stringType : type.flags & (65536 | 2048) ? numberType : type.flags & 4096 ? bigintType : type.flags & 16384 ? esSymbolType : undefined;
if (!primitive || !containsType(u.types, primitive)) {
return false;
}
@@ -59211,11 +59353,11 @@ ${lanes.join(`
}
function extractRedundantTemplateLiterals(types) {
let i = types.length;
- const literals = filter(types, (t) => !!(t.flags & 128));
+ const literals = filter(types, (t) => !!(t.flags & 1024));
while (i > 0) {
i--;
const t = types[i];
- if (!(t.flags & (134217728 | 268435456)))
+ if (!(t.flags & (4194304 | 8388608)))
continue;
for (const t2 of literals) {
if (isTypeSubtypeOf(t2, t)) {
@@ -59274,8 +59416,8 @@ ${lanes.join(`
return true;
}
function createIntersectionType(types, objectFlags, aliasSymbol, aliasTypeArguments) {
- const result = createType(2097152);
- result.objectFlags = objectFlags | getPropagatingFlagsOfTypes(types, 98304);
+ const result = createType(268435456);
+ result.objectFlags = objectFlags | getPropagatingFlagsOfTypes(types, 12);
result.types = types;
result.aliasSymbol = aliasSymbol;
result.aliasTypeArguments = aliasTypeArguments;
@@ -59286,26 +59428,26 @@ ${lanes.join(`
const includes = addTypesToIntersection(typeMembershipMap, 0, types);
const typeSet = arrayFrom(typeMembershipMap.values());
let objectFlags = 0;
- if (includes & 131072) {
+ if (includes & 262144) {
return contains(typeSet, silentNeverType) ? silentNeverType : neverType;
}
- if (strictNullChecks && includes & 98304 && includes & (524288 | 67108864 | 16777216) || includes & 67108864 && includes & (469892092 & ~67108864) || includes & 402653316 && includes & (469892092 & ~402653316) || includes & 296 && includes & (469892092 & ~296) || includes & 2112 && includes & (469892092 & ~2112) || includes & 12288 && includes & (469892092 & ~12288) || includes & 49152 && includes & (469892092 & ~49152)) {
+ if (strictNullChecks && includes & 12 && includes & (1048576 | 131072 | 67108864) || includes & 131072 && includes & (12812284 & ~131072) || includes & 12583968 && includes & (12812284 & ~12583968) || includes & 67648 && includes & (12812284 & ~67648) || includes & 4224 && includes & (12812284 & ~4224) || includes & 16896 && includes & (12812284 & ~16896) || includes & 20 && includes & (12812284 & ~20)) {
return neverType;
}
- if (includes & (134217728 | 268435456) && includes & 128 && extractRedundantTemplateLiterals(typeSet)) {
+ if (includes & (4194304 | 8388608) && includes & 1024 && extractRedundantTemplateLiterals(typeSet)) {
return neverType;
}
if (includes & 1) {
- return includes & 8388608 ? wildcardType : includes & 1073741824 ? errorType : anyType;
+ return includes & 33554432 ? wildcardType : includes & 1073741824 ? errorType : anyType;
}
- if (!strictNullChecks && includes & 98304) {
- return includes & 16777216 ? neverType : includes & 32768 ? undefinedType : nullType;
+ if (!strictNullChecks && includes & 12) {
+ return includes & 67108864 ? neverType : includes & 4 ? undefinedType : nullType;
}
- if (includes & 4 && includes & (128 | 134217728 | 268435456) || includes & 8 && includes & 256 || includes & 64 && includes & 2048 || includes & 4096 && includes & 8192 || includes & 16384 && includes & 32768 || includes & 16777216 && includes & 470302716) {
+ if (includes & 32 && includes & (1024 | 4194304 | 8388608) || includes & 64 && includes & 2048 || includes & 128 && includes & 4096 || includes & 512 && includes & 16384 || includes & 16 && includes & 4 || includes & 67108864 && includes & 13893600) {
if (!(flags & 1))
removeRedundantSupertypes(typeSet, includes);
}
- if (includes & 262144) {
+ if (includes & 524288) {
typeSet[typeSet.indexOf(undefinedType)] = missingType;
}
if (typeSet.length === 0) {
@@ -59315,16 +59457,16 @@ ${lanes.join(`
return typeSet[0];
}
if (typeSet.length === 2 && !(flags & 2)) {
- const typeVarIndex = typeSet[0].flags & 8650752 ? 0 : 1;
+ const typeVarIndex = typeSet[0].flags & 34078720 ? 0 : 1;
const typeVariable = typeSet[typeVarIndex];
const primitiveType = typeSet[1 - typeVarIndex];
- if (typeVariable.flags & 8650752 && (primitiveType.flags & (402784252 | 67108864) && !isGenericStringLikeType(primitiveType) || includes & 16777216)) {
+ if (typeVariable.flags & 34078720 && (primitiveType.flags & (12713980 | 131072) && !isGenericStringLikeType(primitiveType) || includes & 67108864)) {
const constraint = getBaseConstraintOfType(typeVariable);
- if (constraint && everyType(constraint, (t) => !!(t.flags & (402784252 | 67108864)) || isEmptyAnonymousObjectType(t))) {
+ if (constraint && everyType(constraint, (t) => !!(t.flags & (12713980 | 131072)) || isEmptyAnonymousObjectType(t))) {
if (isTypeStrictSubtypeOf(constraint, primitiveType)) {
return typeVariable;
}
- if (!(constraint.flags & 1048576 && someType(constraint, (c) => isTypeStrictSubtypeOf(c, primitiveType)))) {
+ if (!(constraint.flags & 134217728 && someType(constraint, (c) => isTypeStrictSubtypeOf(c, primitiveType)))) {
if (!isTypeStrictSubtypeOf(primitiveType, constraint)) {
return neverType;
}
@@ -59336,15 +59478,15 @@ ${lanes.join(`
const id = getTypeListId(typeSet) + (flags & 2 ? "*" : getAliasId(aliasSymbol, aliasTypeArguments));
let result = intersectionTypes.get(id);
if (!result) {
- if (includes & 1048576) {
+ if (includes & 134217728) {
if (intersectUnionsOfPrimitiveTypes(typeSet)) {
result = getIntersectionType(typeSet, flags, aliasSymbol, aliasTypeArguments);
- } else if (every(typeSet, (t) => !!(t.flags & 1048576 && t.types[0].flags & 32768))) {
+ } else if (every(typeSet, (t) => !!(t.flags & 134217728 && t.types[0].flags & 4))) {
const containedUndefinedType = some(typeSet, containsMissingType) ? missingType : undefinedType;
- removeFromEach(typeSet, 32768);
+ removeFromEach(typeSet, 4);
result = getUnionType([getIntersectionType(typeSet, flags), containedUndefinedType], 1, aliasSymbol, aliasTypeArguments);
- } else if (every(typeSet, (t) => !!(t.flags & 1048576 && (t.types[0].flags & 65536 || t.types[1].flags & 65536)))) {
- removeFromEach(typeSet, 65536);
+ } else if (every(typeSet, (t) => !!(t.flags & 134217728 && (t.types[0].flags & 8 || t.types[1].flags & 8)))) {
+ removeFromEach(typeSet, 8);
result = getUnionType([getIntersectionType(typeSet, flags), nullType], 1, aliasSymbol, aliasTypeArguments);
} else if (typeSet.length >= 3 && types.length > 2) {
const middle = Math.floor(typeSet.length / 2);
@@ -59354,7 +59496,7 @@ ${lanes.join(`
return errorType;
}
const constituents = getCrossProductIntersections(typeSet, flags);
- const origin = some(constituents, (t) => !!(t.flags & 2097152)) && getConstituentCountOfTypes(constituents) > getConstituentCountOfTypes(typeSet) ? createOriginUnionOrIntersectionType(2097152, typeSet) : undefined;
+ const origin = some(constituents, (t) => !!(t.flags & 268435456)) && getConstituentCountOfTypes(constituents) > getConstituentCountOfTypes(typeSet) ? createOriginUnionOrIntersectionType(268435456, typeSet) : undefined;
result = getUnionType(constituents, 1, aliasSymbol, aliasTypeArguments, origin);
}
} else {
@@ -59365,7 +59507,7 @@ ${lanes.join(`
return result;
}
function getCrossProductUnionSize(types) {
- return reduceLeft(types, (n, t) => t.flags & 1048576 ? n * t.types.length : t.flags & 131072 ? 0 : n, 1);
+ return reduceLeft(types, (n, t) => t.flags & 134217728 ? n * t.types.length : t.flags & 262144 ? 0 : n, 1);
}
function checkCrossProductUnion(types) {
var _a;
@@ -59384,7 +59526,7 @@ ${lanes.join(`
const constituents = types.slice();
let n = i;
for (let j = types.length - 1;j >= 0; j--) {
- if (types[j].flags & 1048576) {
+ if (types[j].flags & 134217728) {
const sourceTypes = types[j].types;
const length2 = sourceTypes.length;
constituents[j] = sourceTypes[n % length2];
@@ -59392,13 +59534,13 @@ ${lanes.join(`
}
}
const t = getIntersectionType(constituents, flags);
- if (!(t.flags & 131072))
+ if (!(t.flags & 262144))
intersections.push(t);
}
return intersections;
}
function getConstituentCount(type) {
- return !(type.flags & 3145728) || type.aliasSymbol ? 1 : type.flags & 1048576 && type.origin ? getConstituentCount(type.origin) : getConstituentCountOfTypes(type.types);
+ return !(type.flags & 402653184) || type.aliasSymbol ? 1 : type.flags & 134217728 && type.origin ? getConstituentCount(type.origin) : getConstituentCountOfTypes(type.types);
}
function getConstituentCountOfTypes(types) {
return reduceLeft(types, (n, t) => n + getConstituentCount(t), 0);
@@ -59410,19 +59552,19 @@ ${lanes.join(`
const types = map(node.types, getTypeFromTypeNode);
const emptyIndex = types.length === 2 ? types.indexOf(emptyTypeLiteralType) : -1;
const t = emptyIndex >= 0 ? types[1 - emptyIndex] : unknownType;
- const noSupertypeReduction = !!(t.flags & (4 | 8 | 64) || t.flags & 134217728 && isPatternLiteralType(t));
+ const noSupertypeReduction = !!(t.flags & (32 | 64 | 128) || t.flags & 4194304 && isPatternLiteralType(t));
links.resolvedType = getIntersectionType(types, noSupertypeReduction ? 1 : 0, aliasSymbol, getTypeArgumentsForAliasSymbol(aliasSymbol));
}
return links.resolvedType;
}
function createIndexType(type, indexFlags) {
- const result = createType(4194304);
+ const result = createType(2097152);
result.type = type;
result.indexFlags = indexFlags;
return result;
}
function createOriginIndexType(type) {
- const result = createOriginType(4194304);
+ const result = createOriginType(2097152);
result.type = type;
return result;
}
@@ -59444,12 +59586,12 @@ ${lanes.join(`
forEachType(constraintType, addMemberForKeyType);
} else if (isMappedTypeWithKeyofConstraintDeclaration(type)) {
const modifiersType = getApparentType(getModifiersTypeFromMappedType(type));
- forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(modifiersType, 8576, !!(indexFlags & 1), addMemberForKeyType);
+ forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(modifiersType, 19456, !!(indexFlags & 1), addMemberForKeyType);
} else {
forEachType(getLowerBoundOfKeyType(constraintType), addMemberForKeyType);
}
- const result = indexFlags & 2 ? filterType(getUnionType(keyTypes), (t) => !(t.flags & (1 | 4))) : getUnionType(keyTypes);
- if (result.flags & 1048576 && constraintType.flags & 1048576 && getTypeListId(result.types) === getTypeListId(constraintType.types)) {
+ const result = indexFlags & 2 ? filterType(getUnionType(keyTypes), (t) => !(t.flags & (1 | 32))) : getUnionType(keyTypes);
+ if (result.flags & 134217728 && constraintType.flags & 134217728 && getTypeListId(result.types) === getTypeListId(constraintType.types)) {
return constraintType;
}
return result;
@@ -59458,13 +59600,6 @@ ${lanes.join(`
keyTypes.push(propNameType === stringType ? stringOrNumberType : propNameType);
}
}
- function hasDistributiveNameType(mappedType) {
- const typeVariable = getTypeParameterFromMappedType(mappedType);
- return isDistributive(getNameTypeFromMappedType(mappedType) || typeVariable);
- function isDistributive(type) {
- return type.flags & (3 | 402784252 | 131072 | 262144 | 524288 | 67108864) ? true : type.flags & 16777216 ? type.root.isDistributive && type.checkType === typeVariable : type.flags & (3145728 | 134217728) ? every(type.types, isDistributive) : type.flags & 8388608 ? isDistributive(type.objectType) && isDistributive(type.indexType) : type.flags & 33554432 ? isDistributive(type.baseType) && isDistributive(type.constraint) : type.flags & 268435456 ? isDistributive(type.type) : false;
- }
- }
function getLiteralTypeFromPropertyName(name) {
if (isPrivateIdentifier(name)) {
return neverType;
@@ -59498,20 +59633,20 @@ ${lanes.join(`
return neverType;
}
function isKeyTypeIncluded(keyType, include) {
- return !!(keyType.flags & include || keyType.flags & 2097152 && some(keyType.types, (t) => isKeyTypeIncluded(t, include)));
+ return !!(keyType.flags & include || keyType.flags & 268435456 && some(keyType.types, (t) => isKeyTypeIncluded(t, include)));
}
function getLiteralTypeFromProperties(type, include, includeOrigin) {
const origin = includeOrigin && (getObjectFlags(type) & (3 | 4) || type.aliasSymbol) ? createOriginIndexType(type) : undefined;
const propertyTypes = map(getPropertiesOfType(type), (prop) => getLiteralTypeFromProperty(prop, include));
- const indexKeyTypes = map(getIndexInfosOfType(type), (info) => info !== enumNumberIndexInfo && isKeyTypeIncluded(info.keyType, include) ? info.keyType === stringType && include & 8 ? stringOrNumberType : info.keyType : neverType);
+ const indexKeyTypes = map(getIndexInfosOfType(type), (info) => info !== enumNumberIndexInfo && isKeyTypeIncluded(info.keyType, include) ? info.keyType === stringType && include & 64 ? stringOrNumberType : info.keyType : neverType);
return getUnionType(concatenate(propertyTypes, indexKeyTypes), 1, undefined, undefined, origin);
}
function shouldDeferIndexType(type, indexFlags = 0) {
- return !!(type.flags & 58982400 || isGenericTupleType(type) || isGenericMappedType(type) && (!hasDistributiveNameType(type) || getMappedTypeNameTypeKind(type) === 2) || type.flags & 1048576 && !(indexFlags & 4) && isGenericReducibleType(type) || type.flags & 2097152 && maybeTypeOfKind(type, 465829888) && some(type.types, isEmptyAnonymousObjectType));
+ return !!(type.flags & 117964800 || isGenericTupleType(type) || isGenericMappedType(type) && getNameTypeFromMappedType(type) || type.flags & 134217728 && !(indexFlags & 4) && isGenericReducibleType(type) || type.flags & 268435456 && maybeTypeOfKind(type, 132644864) && some(type.types, isEmptyAnonymousObjectType));
}
function getIndexType(type, indexFlags = 0) {
type = getReducedType(type);
- return isNoInferType(type) ? getNoInferType(getIndexType(type.baseType, indexFlags)) : shouldDeferIndexType(type, indexFlags) ? getIndexTypeForGenericType(type, indexFlags) : type.flags & 1048576 ? getIntersectionType(map(type.types, (t) => getIndexType(t, indexFlags))) : type.flags & 2097152 ? getUnionType(map(type.types, (t) => getIndexType(t, indexFlags))) : getObjectFlags(type) & 32 ? getIndexTypeForMappedType(type, indexFlags) : type === wildcardType ? wildcardType : type.flags & 2 ? neverType : type.flags & (1 | 131072) ? stringNumberSymbolType : getLiteralTypeFromProperties(type, (indexFlags & 2 ? 128 : 402653316) | (indexFlags & 1 ? 0 : 296 | 12288), indexFlags === 0);
+ return isNoInferType(type) ? getNoInferType(getIndexType(type.baseType, indexFlags)) : shouldDeferIndexType(type, indexFlags) ? getIndexTypeForGenericType(type, indexFlags) : type.flags & 134217728 ? getIntersectionType(map(type.types, (t) => getIndexType(t, indexFlags))) : type.flags & 268435456 ? getUnionType(map(type.types, (t) => getIndexType(t, indexFlags))) : getObjectFlags(type) & 32 ? getIndexTypeForMappedType(type, indexFlags) : type === wildcardType ? wildcardType : type.flags & 2 ? neverType : type.flags & (1 | 262144) ? stringNumberSymbolType : getLiteralTypeFromProperties(type, (indexFlags & 2 ? 1024 : 12583968) | (indexFlags & 1 ? 0 : 67648 | 16896), indexFlags === 0);
}
function getExtractStringType(type) {
const extractTypeAlias = getGlobalExtractSymbol();
@@ -59519,7 +59654,7 @@ ${lanes.join(`
}
function getIndexTypeOrString(type) {
const indexType = getExtractStringType(getIndexType(type));
- return indexType.flags & 131072 ? stringType : indexType;
+ return indexType.flags & 262144 ? stringType : indexType;
}
function getTypeFromTypeOperatorNode(node) {
const links = getNodeLinks(node);
@@ -59548,7 +59683,7 @@ ${lanes.join(`
return links.resolvedType;
}
function getTemplateLiteralType(texts, types) {
- const unionIndex = findIndex(types, (t) => !!(t.flags & (131072 | 1048576)));
+ const unionIndex = findIndex(types, (t) => !!(t.flags & (262144 | 134217728)));
if (unionIndex >= 0) {
return checkCrossProductUnion(types) ? mapType(types[unionIndex], (t) => getTemplateLiteralType(texts, replaceElement(types, unionIndex, t))) : errorType;
}
@@ -59566,7 +59701,7 @@ ${lanes.join(`
}
newTexts.push(text);
if (every(newTexts, (t) => t === "")) {
- if (every(newTypes, (t) => !!(t.flags & 4))) {
+ if (every(newTypes, (t) => !!(t.flags & 32))) {
return stringType;
}
if (newTypes.length === 1 && isPatternLiteralType(newTypes[0])) {
@@ -59582,10 +59717,10 @@ ${lanes.join(`
function addSpans(texts2, types2) {
for (let i = 0;i < types2.length; i++) {
const t = types2[i];
- if (t.flags & (2944 | 65536 | 32768)) {
+ if (t.flags & (15360 | 8 | 4)) {
text += getTemplateStringForType(t) || "";
text += texts2[i + 1];
- } else if (t.flags & 134217728) {
+ } else if (t.flags & 4194304) {
text += t.texts[0];
if (!addSpans(t.texts, t.types))
return false;
@@ -59602,16 +59737,16 @@ ${lanes.join(`
}
}
function getTemplateStringForType(type) {
- return type.flags & 128 ? type.value : type.flags & 256 ? "" + type.value : type.flags & 2048 ? pseudoBigIntToString(type.value) : type.flags & (512 | 98304) ? type.intrinsicName : undefined;
+ return type.flags & 1024 ? type.value : type.flags & 2048 ? "" + type.value : type.flags & 4096 ? pseudoBigIntToString(type.value) : type.flags & (8192 | 12) ? type.intrinsicName : undefined;
}
function createTemplateLiteralType(texts, types) {
- const type = createType(134217728);
+ const type = createType(4194304);
type.texts = texts;
type.types = types;
return type;
}
function getStringMappingType(symbol, type) {
- return type.flags & (1048576 | 131072) ? mapType(type, (t) => getStringMappingType(symbol, t)) : type.flags & 128 ? getStringLiteralType(applyStringMapping(symbol, type.value)) : type.flags & 134217728 ? getTemplateLiteralType(...applyTemplateStringMapping(symbol, type.texts, type.types)) : type.flags & 268435456 && symbol === type.symbol ? type : type.flags & (1 | 4 | 268435456) || isGenericIndexType(type) ? getStringMappingTypeForGenericType(symbol, type) : isPatternLiteralPlaceholderType(type) ? getStringMappingTypeForGenericType(symbol, getTemplateLiteralType(["", ""], [type])) : type;
+ return type.flags & (134217728 | 262144) ? mapType(type, (t) => getStringMappingType(symbol, t)) : type.flags & 1024 ? getStringLiteralType(applyStringMapping(symbol, type.value)) : type.flags & 4194304 ? getTemplateLiteralType(...applyTemplateStringMapping(symbol, type.texts, type.types)) : type.flags & 8388608 && symbol === type.symbol ? type : type.flags & (1 | 32 | 8388608) || isGenericIndexType(type) ? getStringMappingTypeForGenericType(symbol, type) : isPatternLiteralPlaceholderType(type) ? getStringMappingTypeForGenericType(symbol, getTemplateLiteralType(["", ""], [type])) : type;
}
function applyStringMapping(symbol, str) {
switch (intrinsicTypeKinds.get(symbol.escapedName)) {
@@ -59648,12 +59783,12 @@ ${lanes.join(`
return result;
}
function createStringMappingType(symbol, type) {
- const result = createTypeWithSymbol(268435456, symbol);
+ const result = createTypeWithSymbol(8388608, symbol);
result.type = type;
return result;
}
function createIndexedAccessType(objectType, indexType, accessFlags, aliasSymbol, aliasTypeArguments) {
- const type = createType(8388608);
+ const type = createType(33554432);
type.objectType = objectType;
type.indexType = indexType;
type.accessFlags = accessFlags;
@@ -59668,13 +59803,13 @@ ${lanes.join(`
if (getObjectFlags(type) & 4096) {
return true;
}
- if (type.flags & 1048576) {
+ if (type.flags & 134217728) {
return every(type.types, isJSLiteralType);
}
- if (type.flags & 2097152) {
+ if (type.flags & 268435456) {
return some(type.types, isJSLiteralType);
}
- if (type.flags & 465829888) {
+ if (type.flags & 132644864) {
const constraint = getResolvedBaseConstraint(type);
return constraint !== type && isJSLiteralType(constraint);
}
@@ -59742,8 +59877,8 @@ ${lanes.join(`
}
}
}
- if (!(indexType.flags & 98304) && isTypeAssignableToKind(indexType, 402653316 | 296 | 12288)) {
- if (objectType.flags & (1 | 131072)) {
+ if (!(indexType.flags & 12) && isTypeAssignableToKind(indexType, 12583968 | 67648 | 16896)) {
+ if (objectType.flags & (1 | 262144)) {
return objectType;
}
const indexInfo = getApplicableIndexInfo(objectType, indexType) || getIndexInfoOfType(objectType, stringType);
@@ -59758,18 +59893,18 @@ ${lanes.join(`
}
return;
}
- if (accessNode && indexInfo.keyType === stringType && !isTypeAssignableToKind(indexType, 4 | 8)) {
+ if (accessNode && indexInfo.keyType === stringType && !isTypeAssignableToKind(indexType, 32 | 64)) {
const indexNode = getIndexNodeForAccessExpression(accessNode);
error2(indexNode, Diagnostics.Type_0_cannot_be_used_as_an_index_type, typeToString(indexType));
return accessFlags & 1 ? getUnionType([indexInfo.type, missingType]) : indexInfo.type;
}
errorIfWritingToReadonlyIndex(indexInfo);
- if (accessFlags & 1 && !(objectType.symbol && objectType.symbol.flags & (256 | 128) && (indexType.symbol && indexType.flags & 1024 && getParentOfSymbol(indexType.symbol) === objectType.symbol))) {
+ if (accessFlags & 1 && !(objectType.symbol && objectType.symbol.flags & (256 | 128) && (indexType.symbol && indexType.flags & 32768 && getParentOfSymbol(indexType.symbol) === objectType.symbol))) {
return getUnionType([indexInfo.type, missingType]);
}
return indexInfo.type;
}
- if (indexType.flags & 131072) {
+ if (indexType.flags & 262144) {
return neverType;
}
if (isJSLiteralType(objectType)) {
@@ -59777,10 +59912,10 @@ ${lanes.join(`
}
if (accessExpression && !isConstEnumObjectType(objectType)) {
if (isObjectLiteralType2(objectType)) {
- if (noImplicitAny && indexType.flags & (128 | 256)) {
+ if (noImplicitAny && indexType.flags & (1024 | 2048)) {
diagnostics.add(createDiagnosticForNode(accessExpression, Diagnostics.Property_0_does_not_exist_on_type_1, indexType.value, typeToString(objectType)));
return undefinedType;
- } else if (indexType.flags & (8 | 4)) {
+ } else if (indexType.flags & (64 | 32)) {
const types = map(objectType.properties, (property) => {
return getTypeOfSymbol(property);
});
@@ -59807,16 +59942,16 @@ ${lanes.join(`
error2(accessExpression, Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1, typeToString(objectType), suggestion2);
} else {
let errorInfo;
- if (indexType.flags & 1024) {
+ if (indexType.flags & 32768) {
errorInfo = chainDiagnosticMessages(undefined, Diagnostics.Property_0_does_not_exist_on_type_1, "[" + typeToString(indexType) + "]", typeToString(objectType));
- } else if (indexType.flags & 8192) {
+ } else if (indexType.flags & 16384) {
const symbolName2 = getFullyQualifiedName(indexType.symbol, accessExpression);
errorInfo = chainDiagnosticMessages(undefined, Diagnostics.Property_0_does_not_exist_on_type_1, "[" + symbolName2 + "]", typeToString(objectType));
- } else if (indexType.flags & 128) {
+ } else if (indexType.flags & 1024) {
errorInfo = chainDiagnosticMessages(undefined, Diagnostics.Property_0_does_not_exist_on_type_1, indexType.value, typeToString(objectType));
- } else if (indexType.flags & 256) {
+ } else if (indexType.flags & 2048) {
errorInfo = chainDiagnosticMessages(undefined, Diagnostics.Property_0_does_not_exist_on_type_1, indexType.value, typeToString(objectType));
- } else if (indexType.flags & (8 | 4)) {
+ } else if (indexType.flags & (64 | 32)) {
errorInfo = chainDiagnosticMessages(undefined, Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1, typeToString(indexType), typeToString(objectType));
}
errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1, typeToString(fullIndexType), typeToString(objectType));
@@ -59836,9 +59971,9 @@ ${lanes.join(`
}
if (accessNode) {
const indexNode = getIndexNodeForAccessExpression(accessNode);
- if (indexNode.kind !== 10 && indexType.flags & (128 | 256)) {
+ if (indexNode.kind !== 10 && indexType.flags & (1024 | 2048)) {
error2(indexNode, Diagnostics.Property_0_does_not_exist_on_type_1, "" + indexType.value, typeToString(objectType));
- } else if (indexType.flags & (4 | 8)) {
+ } else if (indexType.flags & (32 | 64)) {
error2(indexNode, Diagnostics.Type_0_has_no_matching_index_signature_for_type_1, typeToString(objectType), typeToString(indexType));
} else {
const typeString = indexNode.kind === 10 ? "bigint" : typeToString(indexType);
@@ -59859,24 +59994,24 @@ ${lanes.join(`
return accessNode.kind === 213 ? accessNode.argumentExpression : accessNode.kind === 200 ? accessNode.indexType : accessNode.kind === 168 ? accessNode.expression : accessNode;
}
function isPatternLiteralPlaceholderType(type) {
- if (type.flags & 2097152) {
+ if (type.flags & 268435456) {
let seenPlaceholder = false;
for (const t of type.types) {
- if (t.flags & (2944 | 98304) || isPatternLiteralPlaceholderType(t)) {
+ if (t.flags & (15360 | 12) || isPatternLiteralPlaceholderType(t)) {
seenPlaceholder = true;
- } else if (!(t.flags & 524288)) {
+ } else if (!(t.flags & 1048576)) {
return false;
}
}
return seenPlaceholder;
}
- return !!(type.flags & (1 | 4 | 8 | 64)) || isPatternLiteralType(type);
+ return !!(type.flags & (1 | 32 | 64 | 128)) || isPatternLiteralType(type);
}
function isPatternLiteralType(type) {
- return !!(type.flags & 134217728) && every(type.types, isPatternLiteralPlaceholderType) || !!(type.flags & 268435456) && isPatternLiteralPlaceholderType(type.type);
+ return !!(type.flags & 4194304) && every(type.types, isPatternLiteralPlaceholderType) || !!(type.flags & 8388608) && isPatternLiteralPlaceholderType(type.type);
}
function isGenericStringLikeType(type) {
- return !!(type.flags & (134217728 | 268435456)) && !isPatternLiteralType(type);
+ return !!(type.flags & (4194304 | 8388608)) && !isPatternLiteralType(type);
}
function isGenericType(type) {
return !!getGenericObjectFlags(type);
@@ -59888,31 +60023,31 @@ ${lanes.join(`
return !!(getGenericObjectFlags(type) & 8388608);
}
function getGenericObjectFlags(type) {
- if (type.flags & 3145728) {
+ if (type.flags & 402653184) {
if (!(type.objectFlags & 2097152)) {
type.objectFlags |= 2097152 | reduceLeft(type.types, (flags, t) => flags | getGenericObjectFlags(t), 0);
}
return type.objectFlags & 12582912;
}
- if (type.flags & 33554432) {
+ if (type.flags & 16777216) {
if (!(type.objectFlags & 2097152)) {
type.objectFlags |= 2097152 | getGenericObjectFlags(type.baseType) | getGenericObjectFlags(type.constraint);
}
return type.objectFlags & 12582912;
}
- return (type.flags & 58982400 || isGenericMappedType(type) || isGenericTupleType(type) ? 4194304 : 0) | (type.flags & (58982400 | 4194304) || isGenericStringLikeType(type) ? 8388608 : 0);
+ return (type.flags & 117964800 || isGenericMappedType(type) || isGenericTupleType(type) ? 4194304 : 0) | (type.flags & (117964800 | 2097152) || isGenericStringLikeType(type) ? 8388608 : 0);
}
function getSimplifiedType(type, writing) {
- return type.flags & 8388608 ? getSimplifiedIndexedAccessType(type, writing) : type.flags & 16777216 ? getSimplifiedConditionalType(type, writing) : type;
+ return type.flags & 33554432 ? getSimplifiedIndexedAccessType(type, writing) : type.flags & 67108864 ? getSimplifiedConditionalType(type, writing) : type.flags & 2097152 ? getSimplifiedIndexType(type) : type;
}
function distributeIndexOverObjectType(objectType, indexType, writing) {
- if (objectType.flags & 1048576 || objectType.flags & 2097152 && !shouldDeferIndexType(objectType)) {
+ if (objectType.flags & 134217728 || objectType.flags & 268435456 && !shouldDeferIndexType(objectType)) {
const types = map(objectType.types, (t) => getSimplifiedType(getIndexedAccessType(t, indexType), writing));
- return objectType.flags & 2097152 || writing ? getIntersectionType(types) : getUnionType(types);
+ return objectType.flags & 268435456 || writing ? getIntersectionType(types) : getUnionType(types);
}
}
function distributeObjectOverIndexType(objectType, indexType, writing) {
- if (indexType.flags & 1048576) {
+ if (indexType.flags & 134217728) {
const types = map(indexType.types, (t) => getSimplifiedType(getIndexedAccessType(objectType, t), writing));
return writing ? getIntersectionType(types) : getUnionType(types);
}
@@ -59929,14 +60064,14 @@ ${lanes.join(`
if (distributedOverIndex) {
return type[cache] = distributedOverIndex;
}
- if (!(indexType.flags & 465829888)) {
+ if (!(indexType.flags & 132644864)) {
const distributedOverObject = distributeIndexOverObjectType(objectType, indexType, writing);
if (distributedOverObject) {
return type[cache] = distributedOverObject;
}
}
- if (isGenericTupleType(objectType) && indexType.flags & 296) {
- const elementType = getElementTypeOfSliceOfTupleType(objectType, indexType.flags & 8 ? 0 : objectType.target.fixedLength, 0, writing);
+ if (isGenericTupleType(objectType) && indexType.flags & 67648) {
+ const elementType = getElementTypeOfSliceOfTupleType(objectType, indexType.flags & 64 ? 0 : objectType.target.fixedLength, 0, writing);
if (elementType) {
return type[cache] = elementType;
}
@@ -59953,13 +60088,13 @@ ${lanes.join(`
const extendsType = type.extendsType;
const trueType2 = getTrueTypeFromConditionalType(type);
const falseType2 = getFalseTypeFromConditionalType(type);
- if (falseType2.flags & 131072 && getActualTypeVariable(trueType2) === getActualTypeVariable(checkType)) {
+ if (falseType2.flags & 262144 && getActualTypeVariable(trueType2) === getActualTypeVariable(checkType)) {
if (checkType.flags & 1 || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) {
return getSimplifiedType(trueType2, writing);
} else if (isIntersectionEmpty(checkType, extendsType)) {
return neverType;
}
- } else if (trueType2.flags & 131072 && getActualTypeVariable(falseType2) === getActualTypeVariable(checkType)) {
+ } else if (trueType2.flags & 262144 && getActualTypeVariable(falseType2) === getActualTypeVariable(checkType)) {
if (!(checkType.flags & 1) && isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) {
return neverType;
} else if (checkType.flags & 1 || isIntersectionEmpty(checkType, extendsType)) {
@@ -59968,8 +60103,14 @@ ${lanes.join(`
}
return type;
}
+ function getSimplifiedIndexType(type) {
+ if (isGenericMappedType(type.type) && getNameTypeFromMappedType(type.type) && !isMappedTypeWithKeyofConstraintDeclaration(type.type)) {
+ return getIndexTypeForMappedType(type.type, 0);
+ }
+ return type;
+ }
function isIntersectionEmpty(type1, type2) {
- return !!(getUnionType([intersectTypes(type1, type2), neverType]).flags & 131072);
+ return !!(getUnionType([intersectTypes(type1, type2), neverType]).flags & 262144);
}
function substituteIndexedMappedType(objectType, index) {
const mapper = createTypeMapper([getTypeParameterFromMappedType(objectType)], [index]);
@@ -59980,14 +60121,14 @@ ${lanes.join(`
}
function couldAccessOptionalProperty(objectType, indexType) {
const indexConstraint = getBaseConstraintOfType(indexType);
- return !!indexConstraint && some(getPropertiesOfType(objectType), (p) => !!(p.flags & 16777216) && isTypeAssignableTo(getLiteralTypeFromProperty(p, 8576), indexConstraint));
+ return !!indexConstraint && some(getPropertiesOfType(objectType), (p) => !!(p.flags & 16777216) && isTypeAssignableTo(getLiteralTypeFromProperty(p, 19456), indexConstraint));
}
function getIndexedAccessType(objectType, indexType, accessFlags = 0, accessNode, aliasSymbol, aliasTypeArguments) {
return getIndexedAccessTypeOrUndefined(objectType, indexType, accessFlags, accessNode, aliasSymbol, aliasTypeArguments) || (accessNode ? errorType : unknownType);
}
function indexTypeLessThan(indexType, limit) {
return everyType(indexType, (t) => {
- if (t.flags & 384) {
+ if (t.flags & 3072) {
const propName = getPropertyNameFromType(t);
if (isNumericLiteralName(propName)) {
const index = +propName;
@@ -60002,7 +60143,7 @@ ${lanes.join(`
return wildcardType;
}
objectType = getReducedType(objectType);
- if (isStringIndexSignatureOnlyType(objectType) && !(indexType.flags & 98304) && isTypeAssignableToKind(indexType, 4 | 8)) {
+ if (isStringIndexSignatureOnlyType(objectType) && !(indexType.flags & 12) && isTypeAssignableToKind(indexType, 32 | 64)) {
indexType = stringType;
}
if (compilerOptions.noUncheckedIndexedAccess && accessFlags & 32)
@@ -60020,7 +60161,7 @@ ${lanes.join(`
return type;
}
const apparentObjectType = getReducedApparentType(objectType);
- if (indexType.flags & 1048576 && !(indexType.flags & 16)) {
+ if (indexType.flags & 134217728 && !(indexType.flags & 256)) {
const propTypes = [];
let wasMissingProp = false;
for (const t of indexType.types) {
@@ -60063,10 +60204,10 @@ ${lanes.join(`
return links.resolvedType;
}
function getActualTypeVariable(type) {
- if (type.flags & 33554432) {
+ if (type.flags & 16777216) {
return getActualTypeVariable(type.baseType);
}
- if (type.flags & 8388608 && (type.objectType.flags & 33554432 || type.indexType.flags & 33554432)) {
+ if (type.flags & 33554432 && (type.objectType.flags & 16777216 || type.indexType.flags & 16777216)) {
return getIndexedAccessType(getActualTypeVariable(type.objectType), getActualTypeVariable(type.indexType));
}
return type;
@@ -60112,11 +60253,11 @@ ${lanes.join(`
const inferredExtendsType = combinedMapper ? instantiateType(root.extendsType, combinedMapper) : extendsType;
if (!checkTypeDeferred && !isDeferredType(inferredExtendsType, checkTuples)) {
if (!(inferredExtendsType.flags & 3) && (checkType.flags & 1 || !isTypeAssignableTo(getPermissiveInstantiation(checkType), getPermissiveInstantiation(inferredExtendsType)))) {
- if (checkType.flags & 1 || forConstraint && !(inferredExtendsType.flags & 131072) && someType(getPermissiveInstantiation(inferredExtendsType), (t) => isTypeAssignableTo(t, getPermissiveInstantiation(checkType)))) {
+ if (checkType.flags & 1 || forConstraint && !(inferredExtendsType.flags & 262144) && someType(getPermissiveInstantiation(inferredExtendsType), (t) => isTypeAssignableTo(t, getPermissiveInstantiation(checkType)))) {
(extraTypes || (extraTypes = [])).push(instantiateType(getTypeFromTypeNode(root.node.trueType), combinedMapper || mapper));
}
const falseType2 = getTypeFromTypeNode(root.node.falseType);
- if (falseType2.flags & 16777216) {
+ if (falseType2.flags & 67108864) {
const newRoot = falseType2.root;
if (newRoot.node.parent === root.node && (!newRoot.isDistributive || newRoot.checkType === root.checkType)) {
root = newRoot;
@@ -60139,7 +60280,7 @@ ${lanes.join(`
break;
}
}
- result = createType(16777216);
+ result = createType(67108864);
result.root = root;
result.checkType = instantiateType(root.checkType, mapper);
result.extendsType = instantiateType(root.extendsType, mapper);
@@ -60151,14 +60292,14 @@ ${lanes.join(`
}
return extraTypes ? getUnionType(append(extraTypes, result)) : result;
function canTailRecurse(newType, newMapper) {
- if (newType.flags & 16777216 && newMapper) {
+ if (newType.flags & 67108864 && newMapper) {
const newRoot = newType.root;
if (newRoot.outerTypeParameters) {
const typeParamMapper = combineTypeMappers(newType.mapper, newMapper);
const typeArguments = map(newRoot.outerTypeParameters, (t) => getMappedType(t, typeParamMapper));
const newRootMapper = createTypeMapper(newRoot.outerTypeParameters, typeArguments);
const newCheckType = newRoot.isDistributive ? getMappedType(newRoot.checkType, newRootMapper) : undefined;
- if (!newCheckType || newCheckType === newRoot.checkType || !(newCheckType.flags & (1048576 | 131072))) {
+ if (!newCheckType || newCheckType === newRoot.checkType || !(newCheckType.flags & (134217728 | 262144))) {
root = newRoot;
mapper = newRootMapper;
aliasSymbol = undefined;
@@ -60208,7 +60349,7 @@ ${lanes.join(`
node,
checkType,
extendsType: getTypeFromTypeNode(node.extendsType),
- isDistributive: !!(checkType.flags & 262144),
+ isDistributive: !!(checkType.flags & 524288),
inferTypeParameters: getInferTypeParameters(node),
outerTypeParameters,
instantiations: undefined,
@@ -60324,13 +60465,13 @@ ${lanes.join(`
return symbol ? getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol) : undefined;
}
function isNonGenericObjectType(type) {
- return !!(type.flags & 524288) && !isGenericMappedType(type);
+ return !!(type.flags & 1048576) && !isGenericMappedType(type);
}
function isEmptyObjectTypeOrSpreadsIntoEmptyObject(type) {
- return isEmptyObjectType(type) || !!(type.flags & (65536 | 32768 | 528 | 296 | 2112 | 402653316 | 1056 | 67108864 | 4194304));
+ return isEmptyObjectType(type) || !!(type.flags & (8 | 4 | 8448 | 67648 | 4224 | 12583968 | 98304 | 131072 | 2097152));
}
function tryMergeUnionOfObjectTypeAndEmptyObject(type, readonly) {
- if (!(type.flags & 1048576)) {
+ if (!(type.flags & 134217728)) {
return type;
}
if (every(type.types, isEmptyObjectTypeOrSpreadsIntoEmptyObject)) {
@@ -60371,28 +60512,28 @@ ${lanes.join(`
if (left.flags & 2 || right.flags & 2) {
return unknownType;
}
- if (left.flags & 131072) {
+ if (left.flags & 262144) {
return right;
}
- if (right.flags & 131072) {
+ if (right.flags & 262144) {
return left;
}
left = tryMergeUnionOfObjectTypeAndEmptyObject(left, readonly);
- if (left.flags & 1048576) {
+ if (left.flags & 134217728) {
return checkCrossProductUnion([left, right]) ? mapType(left, (t) => getSpreadType(t, right, symbol, objectFlags, readonly)) : errorType;
}
right = tryMergeUnionOfObjectTypeAndEmptyObject(right, readonly);
- if (right.flags & 1048576) {
+ if (right.flags & 134217728) {
return checkCrossProductUnion([left, right]) ? mapType(right, (t) => getSpreadType(left, t, symbol, objectFlags, readonly)) : errorType;
}
- if (right.flags & (528 | 296 | 2112 | 402653316 | 1056 | 67108864 | 4194304)) {
+ if (right.flags & (8448 | 67648 | 4224 | 12583968 | 98304 | 131072 | 2097152)) {
return left;
}
if (isGenericObjectType(left) || isGenericObjectType(right)) {
if (isEmptyObjectType(left)) {
return right;
}
- if (left.flags & 2097152) {
+ if (left.flags & 268435456) {
const types = left.types;
const lastLeft = types[types.length - 1];
if (isNonGenericObjectType(lastLeft) && isNonGenericObjectType(right)) {
@@ -60467,7 +60608,7 @@ ${lanes.join(`
return type;
}
function getFreshTypeOfLiteralType(type) {
- if (type.flags & 2976) {
+ if (type.flags & 80896) {
if (!type.freshType) {
const freshType = createLiteralType(type.flags, type.value, type.symbol, type);
freshType.freshType = freshType;
@@ -60478,28 +60619,28 @@ ${lanes.join(`
return type;
}
function getRegularTypeOfLiteralType(type) {
- return type.flags & 2976 ? type.regularType : type.flags & 1048576 ? type.regularType || (type.regularType = mapType(type, getRegularTypeOfLiteralType)) : type;
+ return type.flags & 80896 ? type.regularType : type.flags & 134217728 ? type.regularType || (type.regularType = mapType(type, getRegularTypeOfLiteralType)) : type;
}
function isFreshLiteralType(type) {
- return !!(type.flags & 2976) && type.freshType === type;
+ return !!(type.flags & 80896) && type.freshType === type;
}
function getStringLiteralType(value) {
let type;
- return stringLiteralTypes.get(value) || (stringLiteralTypes.set(value, type = createLiteralType(128, value)), type);
+ return stringLiteralTypes.get(value) || (stringLiteralTypes.set(value, type = createLiteralType(1024, value)), type);
}
function getNumberLiteralType(value) {
let type;
- return numberLiteralTypes.get(value) || (numberLiteralTypes.set(value, type = createLiteralType(256, value)), type);
+ return numberLiteralTypes.get(value) || (numberLiteralTypes.set(value, type = createLiteralType(2048, value)), type);
}
function getBigIntLiteralType(value) {
let type;
const key = pseudoBigIntToString(value);
- return bigIntLiteralTypes.get(key) || (bigIntLiteralTypes.set(key, type = createLiteralType(2048, value)), type);
+ return bigIntLiteralTypes.get(key) || (bigIntLiteralTypes.set(key, type = createLiteralType(4096, value)), type);
}
function getEnumLiteralType(value, enumId, symbol) {
let type;
const key = `${enumId}${typeof value === "string" ? "@" : "#"}${value}`;
- const flags = 1024 | (typeof value === "string" ? 128 : 256);
+ const flags = 32768 | (typeof value === "string" ? 1024 : 2048);
return enumLiteralTypes.get(key) || (enumLiteralTypes.set(key, type = createLiteralType(flags, value, symbol)), type);
}
function getTypeFromLiteralTypeNode(node) {
@@ -60513,7 +60654,7 @@ ${lanes.join(`
return links.resolvedType;
}
function createUniqueESSymbolType(symbol) {
- const type = createTypeWithSymbol(8192, symbol);
+ const type = createTypeWithSymbol(16384, symbol);
type.escapedName = `__@${type.symbol.escapedName}@${getSymbolId(type.symbol)}`;
return type;
}
@@ -60869,7 +61010,7 @@ ${lanes.join(`
result = target.objectFlags & 4 ? createDeferredTypeReference(type.target, type.node, newMapper, newAliasSymbol, newAliasTypeArguments) : target.objectFlags & 32 ? instantiateMappedType(target, newMapper, newAliasSymbol, newAliasTypeArguments) : instantiateAnonymousType(target, newMapper, newAliasSymbol, newAliasTypeArguments);
target.instantiations.set(id, result);
const resultObjectFlags = getObjectFlags(result);
- if (result.flags & 3899393 && !(resultObjectFlags & 524288)) {
+ if (result.flags & 403963917 && !(resultObjectFlags & 524288)) {
const resultCouldContainTypeVariables = some(typeArguments, couldContainTypeVariables);
if (!(getObjectFlags(result) & 524288)) {
if (resultObjectFlags & (32 | 16 | 4)) {
@@ -60925,9 +61066,9 @@ ${lanes.join(`
}
function getHomomorphicTypeVariable(type) {
const constraintType = getConstraintTypeFromMappedType(type);
- if (constraintType.flags & 4194304) {
+ if (constraintType.flags & 2097152) {
const typeVariable = getActualTypeVariable(constraintType.type);
- if (typeVariable.flags & 262144) {
+ if (typeVariable.flags & 524288) {
return typeVariable;
}
}
@@ -60943,7 +61084,7 @@ ${lanes.join(`
}
return instantiateType(getConstraintTypeFromMappedType(type), mapper) === wildcardType ? wildcardType : instantiateAnonymousType(type, mapper, aliasSymbol, aliasTypeArguments);
function instantiateConstituent(t) {
- if (t.flags & (3 | 58982400 | 524288 | 2097152) && t !== wildcardType && !isErrorType(t)) {
+ if (t.flags & (3 | 117964800 | 1048576 | 268435456) && t !== wildcardType && !isErrorType(t)) {
if (!type.declaration.nameType) {
let constraint;
if (isArrayType(t) || t.flags & 1 && findResolutionCycleStartIndex(typeVariable, 4) < 0 && (constraint = getConstraintOfTypeParameter(typeVariable)) && everyType(constraint, isArrayOrTupleType)) {
@@ -60985,7 +61126,7 @@ ${lanes.join(`
const templateMapper = appendTypeMapping(mapper, getTypeParameterFromMappedType(type), key);
const propType = instantiateType(getTemplateTypeFromMappedType(type.target || type), templateMapper);
const modifiers = getMappedTypeModifiers(type);
- return strictNullChecks && modifiers & 4 && !maybeTypeOfKind(propType, 32768 | 16384) ? getOptionalType(propType, true) : strictNullChecks && modifiers & 8 && isOptional ? getTypeWithFacts(propType, 524288) : propType;
+ return strictNullChecks && modifiers & 4 && !maybeTypeOfKind(propType, 4 | 16) ? getOptionalType(propType, true) : strictNullChecks && modifiers & 8 && isOptional ? getTypeWithFacts(propType, 524288) : propType;
}
function instantiateAnonymousType(type, mapper, aliasSymbol, aliasTypeArguments) {
Debug.assert(type.symbol, "anonymous type must have symbol to be instantiated");
@@ -61018,7 +61159,7 @@ ${lanes.join(`
const newMapper = createTypeMapper(root.outerTypeParameters, typeArguments);
const checkType = root.checkType;
const distributionType = root.isDistributive ? getReducedType(getMappedType(checkType, newMapper)) : undefined;
- result = distributionType && checkType !== distributionType && distributionType.flags & (1048576 | 131072) ? mapTypeWithAlias(distributionType, (t) => getConditionalType(root, prependTypeMapping(checkType, t, newMapper), forConstraint), aliasSymbol, aliasTypeArguments) : getConditionalType(root, newMapper, forConstraint, aliasSymbol, aliasTypeArguments);
+ result = distributionType && checkType !== distributionType && distributionType.flags & (134217728 | 262144) ? mapTypeWithAlias(distributionType, (t) => getConditionalType(root, prependTypeMapping(checkType, t, newMapper), forConstraint), aliasSymbol, aliasTypeArguments) : getConditionalType(root, newMapper, forConstraint, aliasSymbol, aliasTypeArguments);
root.instantiations.set(id, result);
}
return result;
@@ -61062,10 +61203,10 @@ ${lanes.join(`
}
function instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments) {
const flags = type.flags;
- if (flags & 262144) {
+ if (flags & 524288) {
return getMappedType(type, mapper);
}
- if (flags & 524288) {
+ if (flags & 1048576) {
const objectFlags = type.objectFlags;
if (objectFlags & (4 | 16 | 32)) {
if (objectFlags & 4 && !type.node) {
@@ -61080,47 +61221,47 @@ ${lanes.join(`
}
return type;
}
- if (flags & 3145728) {
- const origin = type.flags & 1048576 ? type.origin : undefined;
- const types = origin && origin.flags & 3145728 ? origin.types : type.types;
+ if (flags & 402653184) {
+ const origin = type.flags & 134217728 ? type.origin : undefined;
+ const types = origin && origin.flags & 402653184 ? origin.types : type.types;
const newTypes = instantiateTypes(types, mapper);
if (newTypes === types && aliasSymbol === type.aliasSymbol) {
return type;
}
const newAliasSymbol = aliasSymbol || type.aliasSymbol;
const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);
- return flags & 2097152 || origin && origin.flags & 2097152 ? getIntersectionType(newTypes, 0, newAliasSymbol, newAliasTypeArguments) : getUnionType(newTypes, 1, newAliasSymbol, newAliasTypeArguments);
+ return flags & 268435456 || origin && origin.flags & 268435456 ? getIntersectionType(newTypes, 0, newAliasSymbol, newAliasTypeArguments) : getUnionType(newTypes, 1, newAliasSymbol, newAliasTypeArguments);
}
- if (flags & 4194304) {
+ if (flags & 2097152) {
return getIndexType(instantiateType(type.type, mapper));
}
- if (flags & 134217728) {
+ if (flags & 4194304) {
return getTemplateLiteralType(type.texts, instantiateTypes(type.types, mapper));
}
- if (flags & 268435456) {
+ if (flags & 8388608) {
return getStringMappingType(type.symbol, instantiateType(type.type, mapper));
}
- if (flags & 8388608) {
+ if (flags & 33554432) {
const newAliasSymbol = aliasSymbol || type.aliasSymbol;
const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);
return getIndexedAccessType(instantiateType(type.objectType, mapper), instantiateType(type.indexType, mapper), type.accessFlags, undefined, newAliasSymbol, newAliasTypeArguments);
}
- if (flags & 16777216) {
+ if (flags & 67108864) {
return getConditionalTypeInstantiation(type, combineTypeMappers(type.mapper, mapper), false, aliasSymbol, aliasTypeArguments);
}
- if (flags & 33554432) {
+ if (flags & 16777216) {
const newBaseType = instantiateType(type.baseType, mapper);
if (isNoInferType(type)) {
return getNoInferType(newBaseType);
}
const newConstraint = instantiateType(type.constraint, mapper);
- if (newBaseType.flags & 8650752 && isGenericType(newConstraint)) {
+ if (newBaseType.flags & 34078720 && isGenericType(newConstraint)) {
return getSubstitutionType(newBaseType, newConstraint);
}
if (newConstraint.flags & 3 || isTypeAssignableTo(getRestrictiveInstantiation(newBaseType), getRestrictiveInstantiation(newConstraint))) {
return newBaseType;
}
- return newBaseType.flags & 8650752 ? getSubstitutionType(newBaseType, newConstraint) : getIntersectionType([newConstraint, newBaseType]);
+ return newBaseType.flags & 34078720 ? getSubstitutionType(newBaseType, newConstraint) : getIntersectionType([newConstraint, newBaseType]);
}
return type;
}
@@ -61130,7 +61271,7 @@ ${lanes.join(`
return type;
}
const innerIndexType = instantiateType(type.constraintType, mapper);
- if (!(innerIndexType.flags & 4194304)) {
+ if (!(innerIndexType.flags & 2097152)) {
return type;
}
const instantiated = inferTypeForHomomorphicMappedType(instantiateType(type.source, mapper), innerMappedType, innerIndexType);
@@ -61140,10 +61281,10 @@ ${lanes.join(`
return type;
}
function getPermissiveInstantiation(type) {
- return type.flags & (402784252 | 3 | 131072) ? type : type.permissiveInstantiation || (type.permissiveInstantiation = instantiateType(type, permissiveMapper));
+ return type.flags & (12713980 | 3 | 262144) ? type : type.permissiveInstantiation || (type.permissiveInstantiation = instantiateType(type, permissiveMapper));
}
function getRestrictiveInstantiation(type) {
- if (type.flags & (402784252 | 3 | 131072)) {
+ if (type.flags & (12713980 | 3 | 262144)) {
return type;
}
if (type.restrictiveInstantiation) {
@@ -61182,7 +61323,8 @@ ${lanes.join(`
const { initializer } = node;
return !!initializer && isContextSensitive(initializer);
}
- case 295: {
+ case 295:
+ case 230: {
const { expression } = node;
return !!expression && isContextSensitive(expression);
}
@@ -61190,7 +61332,7 @@ ${lanes.join(`
return false;
}
function isContextSensitiveFunctionLikeDeclaration(node) {
- return hasContextSensitiveParameters(node) || hasContextSensitiveReturnExpression(node);
+ return hasContextSensitiveParameters(node) || hasContextSensitiveReturnExpression(node) || hasContextSensitiveYieldExpression(node);
}
function hasContextSensitiveReturnExpression(node) {
if (node.typeParameters || getEffectiveReturnTypeNode(node) || !node.body) {
@@ -61201,11 +61343,14 @@ ${lanes.join(`
}
return !!forEachReturnStatement(node.body, (statement) => !!statement.expression && isContextSensitive(statement.expression));
}
+ function hasContextSensitiveYieldExpression(node) {
+ return !!(getFunctionFlags(node) & 1 && node.body && forEachYieldExpression(node.body, isContextSensitive));
+ }
function isContextSensitiveFunctionOrObjectLiteralMethod(func) {
return (isFunctionExpressionOrArrowFunction(func) || isObjectLiteralMethod(func)) && isContextSensitiveFunctionLikeDeclaration(func);
}
function getTypeWithoutSignatures(type) {
- if (type.flags & 524288) {
+ if (type.flags & 1048576) {
const resolved = resolveStructuredTypeMembers(type);
if (resolved.constructSignatures.length || resolved.callSignatures.length) {
const result = createObjectType(16, type.symbol);
@@ -61216,7 +61361,7 @@ ${lanes.join(`
result.indexInfos = emptyArray;
return result;
}
- } else if (type.flags & 2097152) {
+ } else if (type.flags & 268435456) {
return getIntersectionType(map(type.types, getTypeWithoutSignatures));
}
return type;
@@ -61243,7 +61388,7 @@ ${lanes.join(`
return isTypeRelatedTo(source, target, assignableRelation);
}
function isTypeDerivedFrom(source, target) {
- return source.flags & 1048576 ? every(source.types, (t) => isTypeDerivedFrom(t, target)) : target.flags & 1048576 ? some(target.types, (t) => isTypeDerivedFrom(source, t)) : source.flags & 2097152 ? some(source.types, (t) => isTypeDerivedFrom(t, target)) : source.flags & 58982400 ? isTypeDerivedFrom(getBaseConstraintOfType(source) || unknownType, target) : isEmptyAnonymousObjectType(target) ? !!(source.flags & (524288 | 67108864)) : target === globalObjectType ? !!(source.flags & (524288 | 67108864)) && !isEmptyAnonymousObjectType(source) : target === globalFunctionType ? !!(source.flags & 524288) && isFunctionObjectType(source) : hasBaseType(source, getTargetType(target)) || isArrayType(target) && !isReadonlyArrayType(target) && isTypeDerivedFrom(source, globalReadonlyArrayType);
+ return source.flags & 134217728 ? every(source.types, (t) => isTypeDerivedFrom(t, target)) : target.flags & 134217728 ? some(target.types, (t) => isTypeDerivedFrom(source, t)) : source.flags & 268435456 ? some(source.types, (t) => isTypeDerivedFrom(t, target)) : source.flags & 117964800 ? isTypeDerivedFrom(getBaseConstraintOfType(source) || unknownType, target) : isEmptyAnonymousObjectType(target) ? !!(source.flags & (1048576 | 131072)) : target === globalObjectType ? !!(source.flags & (1048576 | 131072)) && !isEmptyAnonymousObjectType(source) : target === globalFunctionType ? !!(source.flags & 1048576) && isFunctionObjectType(source) : hasBaseType(source, getTargetType(target)) || isArrayType(target) && !isReadonlyArrayType(target) && isTypeDerivedFrom(source, globalReadonlyArrayType);
}
function isTypeComparableTo(source, target) {
return isTypeRelatedTo(source, target, comparableRelation);
@@ -61266,7 +61411,7 @@ ${lanes.join(`
return false;
}
function isOrHasGenericConditional(type) {
- return !!(type.flags & 16777216 || type.flags & 2097152 && some(type.types, isOrHasGenericConditional));
+ return !!(type.flags & 67108864 || type.flags & 268435456 && some(type.types, isOrHasGenericConditional));
}
function elaborateError(node, source, target, relation, headMessage, containingMessageChain, errorOutputContainer) {
if (!node || isOrHasGenericConditional(target))
@@ -61306,7 +61451,7 @@ ${lanes.join(`
for (const signatures of [constructSignatures, callSignatures]) {
if (some(signatures, (s) => {
const returnType = getReturnTypeOfSignature(s);
- return !(returnType.flags & (1 | 131072)) && checkTypeRelatedTo(returnType, target, relation, undefined);
+ return !(returnType.flags & (1 | 262144)) && checkTypeRelatedTo(returnType, target, relation, undefined);
})) {
const resultObj = errorOutputContainer || {};
checkTypeAssignableTo(source, target, node, headMessage, containingMessageChain, resultObj);
@@ -61359,7 +61504,7 @@ ${lanes.join(`
if (idx) {
return idx;
}
- if (target.flags & 1048576) {
+ if (target.flags & 134217728) {
const best = getBestMatchingType(source, target);
if (best) {
return getIndexedAccessTypeOrUndefined(best, nameType);
@@ -61377,7 +61522,7 @@ ${lanes.join(`
for (const value of iterator) {
const { errorNode: prop, innerExpression: next, nameType, errorMessage } = value;
let targetPropType = getBestMatchIndexedAccessTypeOrUndefined(source, target, nameType);
- if (!targetPropType || targetPropType.flags & 8388608)
+ if (!targetPropType || targetPropType.flags & 33554432)
continue;
let sourcePropType = getIndexedAccessTypeOrUndefined(source, nameType);
if (!sourcePropType)
@@ -61410,15 +61555,15 @@ ${lanes.join(`
let issuedElaboration = false;
if (!targetProp) {
const indexInfo = getApplicableIndexInfo(target, nameType);
- if (indexInfo && indexInfo.declaration && !getSourceFileOfNode(indexInfo.declaration).hasNoDefaultLib) {
+ if (indexInfo && indexInfo.declaration && !host.isSourceFileDefaultLibrary(getSourceFileOfNode(indexInfo.declaration))) {
issuedElaboration = true;
addRelatedInfo(reportedDiag, createDiagnosticForNode(indexInfo.declaration, Diagnostics.The_expected_type_comes_from_this_index_signature));
}
}
if (!issuedElaboration && (targetProp && length(targetProp.declarations) || target.symbol && length(target.symbol.declarations))) {
const targetNode = targetProp && length(targetProp.declarations) ? targetProp.declarations[0] : target.symbol.declarations[0];
- if (!getSourceFileOfNode(targetNode).hasNoDefaultLib) {
- addRelatedInfo(reportedDiag, createDiagnosticForNode(targetNode, Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1, propertyName && !(nameType.flags & 8192) ? unescapeLeadingUnderscores(propertyName) : typeToString(nameType), typeToString(target)));
+ if (!host.isSourceFileDefaultLibrary(getSourceFileOfNode(targetNode))) {
+ addRelatedInfo(reportedDiag, createDiagnosticForNode(targetNode, Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1, propertyName && !(nameType.flags & 16384) ? unescapeLeadingUnderscores(propertyName) : typeToString(nameType), typeToString(target)));
}
}
}
@@ -61436,7 +61581,7 @@ ${lanes.join(`
const { errorNode: prop, innerExpression: next, nameType, errorMessage } = status.value;
let targetPropType = iterationType;
const targetIndexedPropType = tupleOrArrayLikeTargetParts !== neverType ? getBestMatchIndexedAccessTypeOrUndefined(source, tupleOrArrayLikeTargetParts, nameType) : undefined;
- if (targetIndexedPropType && !(targetIndexedPropType.flags & 8388608)) {
+ if (targetIndexedPropType && !(targetIndexedPropType.flags & 33554432)) {
targetPropType = iterationType ? getUnionType([iterationType, targetIndexedPropType]) : targetIndexedPropType;
}
if (!targetPropType)
@@ -61595,7 +61740,7 @@ ${lanes.join(`
}
}
function elaborateArrayLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer) {
- if (target.flags & (402784252 | 131072))
+ if (target.flags & (12713980 | 262144))
return false;
if (isTupleLikeType(source)) {
return elaborateElementwise(generateLimitedTupleElements(node, target), source, target, relation, containingMessageChain, errorOutputContainer);
@@ -61614,8 +61759,8 @@ ${lanes.join(`
for (const prop of node.properties) {
if (isSpreadAssignment(prop))
continue;
- const type = getLiteralTypeFromProperty(getSymbolOfDeclaration(prop), 8576);
- if (!type || type.flags & 131072) {
+ const type = getLiteralTypeFromProperty(getSymbolOfDeclaration(prop), 19456);
+ if (!type || type.flags & 262144) {
continue;
}
switch (prop.kind) {
@@ -61634,7 +61779,7 @@ ${lanes.join(`
}
}
function elaborateObjectLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer) {
- if (target.flags & (402784252 | 131072))
+ if (target.flags & (12713980 | 262144))
return false;
return elaborateElementwise(generateObjectLiteralElements(node), source, target, relation, containingMessageChain, errorOutputContainer);
}
@@ -61648,11 +61793,11 @@ ${lanes.join(`
if (!s.typeParameters && (!s.thisParameter || isTypeAny(getTypeOfParameter(s.thisParameter))) && s.parameters.length === 1 && signatureHasRestParameter(s)) {
const paramType = getTypeOfParameter(s.parameters[0]);
const restType = isArrayType(paramType) ? getTypeArguments(paramType)[0] : paramType;
- return !!(restType.flags & (1 | 131072) && getReturnTypeOfSignature(s).flags & 3);
+ return !!(restType.flags & (1 | 262144) && getReturnTypeOfSignature(s).flags & 3);
}
return false;
}
- function compareSignaturesRelated(source, target, checkMode, reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) {
+ function compareSignaturesRelated(source, target, checkMode, reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes2, reportUnreliableMarkers) {
if (source === target) {
return -1;
}
@@ -61672,7 +61817,7 @@ ${lanes.join(`
}
if (source.typeParameters && source.typeParameters !== target.typeParameters) {
target = getCanonicalSignature(target);
- source = instantiateSignatureInContextOf(source, target, undefined, compareTypes);
+ source = instantiateSignatureInContextOf(source, target, undefined, compareTypes2);
}
const sourceCount = getParameterCount(source);
const sourceRestType = getNonArrayRestType(source);
@@ -61687,7 +61832,7 @@ ${lanes.join(`
if (sourceThisType && sourceThisType !== voidType) {
const targetThisType = getThisTypeOfSignature(target);
if (targetThisType) {
- const related = !strictVariance && compareTypes(sourceThisType, targetThisType, false) || compareTypes(targetThisType, sourceThisType, reportErrors2);
+ const related = !strictVariance && compareTypes2(sourceThisType, targetThisType, false) || compareTypes2(targetThisType, sourceThisType, reportErrors2);
if (!related) {
if (reportErrors2) {
errorReporter(Diagnostics.The_this_types_of_each_signature_are_incompatible);
@@ -61706,8 +61851,8 @@ ${lanes.join(`
const sourceSig = checkMode & 3 || isInstantiatedGenericParameter(source, i) ? undefined : getSingleCallSignature(getNonNullableType(sourceType));
const targetSig = checkMode & 3 || isInstantiatedGenericParameter(target, i) ? undefined : getSingleCallSignature(getNonNullableType(targetType));
const callbacks = sourceSig && targetSig && !getTypePredicateOfSignature(sourceSig) && !getTypePredicateOfSignature(targetSig) && getTypeFacts(sourceType, 50331648) === getTypeFacts(targetType, 50331648);
- let related = callbacks ? compareSignaturesRelated(targetSig, sourceSig, checkMode & 8 | (strictVariance ? 2 : 1), reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) : !(checkMode & 3) && !strictVariance && compareTypes(sourceType, targetType, false) || compareTypes(targetType, sourceType, reportErrors2);
- if (related && checkMode & 8 && i >= getMinArgumentCount(source) && i < getMinArgumentCount(target) && compareTypes(sourceType, targetType, false)) {
+ let related = callbacks ? compareSignaturesRelated(targetSig, sourceSig, checkMode & 8 | (strictVariance ? 2 : 1), reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes2, reportUnreliableMarkers) : !(checkMode & 3) && !strictVariance && compareTypes2(sourceType, targetType, false) || compareTypes2(targetType, sourceType, reportErrors2);
+ if (related && checkMode & 8 && i >= getMinArgumentCount(source) && i < getMinArgumentCount(target) && compareTypes2(sourceType, targetType, false)) {
related = 0;
}
if (!related) {
@@ -61729,7 +61874,7 @@ ${lanes.join(`
if (targetTypePredicate) {
const sourceTypePredicate = getTypePredicateOfSignature(source);
if (sourceTypePredicate) {
- result &= compareTypePredicateRelatedTo(sourceTypePredicate, targetTypePredicate, reportErrors2, errorReporter, compareTypes);
+ result &= compareTypePredicateRelatedTo(sourceTypePredicate, targetTypePredicate, reportErrors2, errorReporter, compareTypes2);
} else if (isIdentifierTypePredicate(targetTypePredicate) || isThisTypePredicate(targetTypePredicate)) {
if (reportErrors2) {
errorReporter(Diagnostics.Signature_0_must_be_a_type_predicate, signatureToString(source));
@@ -61737,7 +61882,7 @@ ${lanes.join(`
return 0;
}
} else {
- result &= checkMode & 1 && compareTypes(targetReturnType, sourceReturnType, false) || compareTypes(sourceReturnType, targetReturnType, reportErrors2);
+ result &= checkMode & 1 && compareTypes2(targetReturnType, sourceReturnType, false) || compareTypes2(sourceReturnType, targetReturnType, reportErrors2);
if (!result && reportErrors2 && incompatibleErrorReporter) {
incompatibleErrorReporter(sourceReturnType, targetReturnType);
}
@@ -61745,7 +61890,7 @@ ${lanes.join(`
}
return result;
}
- function compareTypePredicateRelatedTo(source, target, reportErrors2, errorReporter, compareTypes) {
+ function compareTypePredicateRelatedTo(source, target, reportErrors2, errorReporter, compareTypes2) {
if (source.kind !== target.kind) {
if (reportErrors2) {
errorReporter(Diagnostics.A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard);
@@ -61762,7 +61907,7 @@ ${lanes.join(`
return 0;
}
}
- const related = source.type === target.type ? -1 : source.type && target.type ? compareTypes(source.type, target.type, reportErrors2) : 0;
+ const related = source.type === target.type ? -1 : source.type && target.type ? compareTypes2(source.type, target.type, reportErrors2) : 0;
if (related === 0 && reportErrors2) {
errorReporter(Diagnostics.Type_predicate_0_is_not_assignable_to_1, typePredicateToString(source), typePredicateToString(target));
}
@@ -61782,30 +61927,30 @@ ${lanes.join(`
return t !== anyFunctionType && t.properties.length === 0 && t.callSignatures.length === 0 && t.constructSignatures.length === 0 && t.indexInfos.length === 0;
}
function isEmptyObjectType(type) {
- return type.flags & 524288 ? !isGenericMappedType(type) && isEmptyResolvedType(resolveStructuredTypeMembers(type)) : type.flags & 67108864 ? true : type.flags & 1048576 ? some(type.types, isEmptyObjectType) : type.flags & 2097152 ? every(type.types, isEmptyObjectType) : false;
+ return type.flags & 1048576 ? !isGenericMappedType(type) && isEmptyResolvedType(resolveStructuredTypeMembers(type)) : type.flags & 131072 ? true : type.flags & 134217728 ? some(type.types, isEmptyObjectType) : type.flags & 268435456 ? every(type.types, isEmptyObjectType) : false;
}
function isEmptyAnonymousObjectType(type) {
return !!(getObjectFlags(type) & 16 && (type.members && isEmptyResolvedType(type) || type.symbol && type.symbol.flags & 2048 && getMembersOfSymbol(type.symbol).size === 0));
}
function isUnknownLikeUnionType(type) {
- if (strictNullChecks && type.flags & 1048576) {
+ if (strictNullChecks && type.flags & 134217728) {
if (!(type.objectFlags & 33554432)) {
const types = type.types;
- type.objectFlags |= 33554432 | (types.length >= 3 && types[0].flags & 32768 && types[1].flags & 65536 && some(types, isEmptyAnonymousObjectType) ? 67108864 : 0);
+ type.objectFlags |= 33554432 | (types.length >= 3 && types[0].flags & 4 && types[1].flags & 8 && some(types, isEmptyAnonymousObjectType) ? 67108864 : 0);
}
return !!(type.objectFlags & 67108864);
}
return false;
}
function containsUndefinedType(type) {
- return !!((type.flags & 1048576 ? type.types[0] : type).flags & 32768);
+ return !!((type.flags & 134217728 ? type.types[0] : type).flags & 4);
}
function containsNonMissingUndefinedType(type) {
- const candidate = type.flags & 1048576 ? type.types[0] : type;
- return !!(candidate.flags & 32768) && candidate !== missingType;
+ const candidate = type.flags & 134217728 ? type.types[0] : type;
+ return !!(candidate.flags & 4) && candidate !== missingType;
}
function isStringIndexSignatureOnlyType(type) {
- return type.flags & 524288 && !isGenericMappedType(type) && getPropertiesOfType(type).length === 0 && getIndexInfosOfType(type).length === 1 && !!getIndexInfoOfType(type, stringType) || type.flags & 3145728 && every(type.types, isStringIndexSignatureOnlyType) || false;
+ return type.flags & 1048576 && !isGenericMappedType(type) && getPropertiesOfType(type).length === 0 && getIndexInfosOfType(type).length === 1 && !!getIndexInfoOfType(type, stringType) || type.flags & 402653184 && every(type.types, isStringIndexSignatureOnlyType) || false;
}
function isEnumTypeRelatedTo(source, target, errorReporter) {
const sourceSymbol = source.flags & 8 ? getParentOfSymbol(source) : source;
@@ -61865,46 +62010,46 @@ ${lanes.join(`
function isSimpleTypeRelatedTo(source, target, relation, errorReporter) {
const s = source.flags;
const t = target.flags;
- if (t & 1 || s & 131072 || source === wildcardType)
+ if (t & 1 || s & 262144 || source === wildcardType)
return true;
if (t & 2 && !(relation === strictSubtypeRelation && s & 1))
return true;
- if (t & 131072)
+ if (t & 262144)
return false;
- if (s & 402653316 && t & 4)
+ if (s & 12583968 && t & 32)
return true;
- if (s & 128 && s & 1024 && t & 128 && !(t & 1024) && source.value === target.value)
+ if (s & 1024 && s & 32768 && t & 1024 && !(t & 32768) && source.value === target.value)
return true;
- if (s & 296 && t & 8)
+ if (s & 67648 && t & 64)
return true;
- if (s & 256 && s & 1024 && t & 256 && !(t & 1024) && source.value === target.value)
+ if (s & 2048 && s & 32768 && t & 2048 && !(t & 32768) && source.value === target.value)
return true;
- if (s & 2112 && t & 64)
+ if (s & 4224 && t & 128)
return true;
- if (s & 528 && t & 16)
+ if (s & 8448 && t & 256)
return true;
- if (s & 12288 && t & 4096)
+ if (s & 16896 && t & 512)
return true;
- if (s & 32 && t & 32 && source.symbol.escapedName === target.symbol.escapedName && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter))
+ if (s & 65536 && t & 65536 && source.symbol.escapedName === target.symbol.escapedName && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter))
return true;
- if (s & 1024 && t & 1024) {
- if (s & 1048576 && t & 1048576 && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter))
+ if (s & 32768 && t & 32768) {
+ if (s & 134217728 && t & 134217728 && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter))
return true;
- if (s & 2944 && t & 2944 && source.value === target.value && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter))
+ if (s & 15360 && t & 15360 && source.value === target.value && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter))
return true;
}
- if (s & 32768 && (!strictNullChecks && !(t & 3145728) || t & (32768 | 16384)))
+ if (s & 4 && (!strictNullChecks && !(t & 402653184) || t & (4 | 16)))
return true;
- if (s & 65536 && (!strictNullChecks && !(t & 3145728) || t & 65536))
+ if (s & 8 && (!strictNullChecks && !(t & 402653184) || t & 8))
return true;
- if (s & 524288 && t & 67108864 && !(relation === strictSubtypeRelation && isEmptyAnonymousObjectType(source) && !(getObjectFlags(source) & 8192)))
+ if (s & 1048576 && t & 131072 && !(relation === strictSubtypeRelation && isEmptyAnonymousObjectType(source) && !(getObjectFlags(source) & 8192)))
return true;
if (relation === assignableRelation || relation === comparableRelation) {
if (s & 1)
return true;
- if (s & 8 && (t & 32 || t & 256 && t & 1024))
+ if (s & 64 && (t & 65536 || t & 2048 && t & 32768))
return true;
- if (s & 256 && !(s & 1024) && (t & 32 || t & 256 && t & 1024 && source.value === target.value))
+ if (s & 2048 && !(s & 32768) && (t & 65536 || t & 2048 && t & 32768 && source.value === target.value))
return true;
if (isUnknownLikeUnionType(target))
return true;
@@ -61922,22 +62067,22 @@ ${lanes.join(`
return true;
}
if (relation !== identityRelation) {
- if (relation === comparableRelation && !(target.flags & 131072) && isSimpleTypeRelatedTo(target, source, relation) || isSimpleTypeRelatedTo(source, target, relation)) {
+ if (relation === comparableRelation && !(target.flags & 262144) && isSimpleTypeRelatedTo(target, source, relation) || isSimpleTypeRelatedTo(source, target, relation)) {
return true;
}
- } else if (!((source.flags | target.flags) & (3145728 | 8388608 | 16777216 | 33554432))) {
+ } else if (!((source.flags | target.flags) & (402653184 | 33554432 | 67108864 | 16777216))) {
if (source.flags !== target.flags)
return false;
- if (source.flags & 67358815)
+ if (source.flags & 394239)
return true;
}
- if (source.flags & 524288 && target.flags & 524288) {
+ if (source.flags & 1048576 && target.flags & 1048576) {
const related = relation.get(getRelationKey(source, target, 0, relation, false));
if (related !== undefined) {
return !!(related & 1);
}
}
- if (source.flags & 469499904 || target.flags & 469499904) {
+ if (source.flags & 536346624 || target.flags & 536346624) {
return checkTypeRelatedTo(source, target, relation, undefined);
}
return false;
@@ -61947,7 +62092,7 @@ ${lanes.join(`
}
function getNormalizedType(type, writing) {
while (true) {
- const t = isFreshLiteralType(type) ? type.regularType : isGenericTupleType(type) ? getNormalizedTupleType(type, writing) : getObjectFlags(type) & 4 ? type.node ? createTypeReference(type.target, getTypeArguments(type)) : getSingleBaseForNonAugmentingSubtype(type) || type : type.flags & 3145728 ? getNormalizedUnionOrIntersectionType(type, writing) : type.flags & 33554432 ? writing ? type.baseType : getSubstitutionIntersection(type) : type.flags & 25165824 ? getSimplifiedType(type, writing) : type;
+ const t = isFreshLiteralType(type) ? type.regularType : isGenericTupleType(type) ? getNormalizedTupleType(type, writing) : getObjectFlags(type) & 4 ? type.node ? createTypeReference(type.target, getTypeArguments(type)) : getSingleBaseForNonAugmentingSubtype(type) || type : type.flags & 402653184 ? getNormalizedUnionOrIntersectionType(type, writing) : type.flags & 16777216 ? writing ? type.baseType : getSubstitutionIntersection(type) : type.flags & 102760448 ? getSimplifiedType(type, writing) : type;
if (t === type)
return t;
type = t;
@@ -61958,7 +62103,7 @@ ${lanes.join(`
if (reduced !== type) {
return reduced;
}
- if (type.flags & 2097152 && shouldNormalizeIntersection(type)) {
+ if (type.flags & 268435456 && shouldNormalizeIntersection(type)) {
const normalizedTypes = sameMap(type.types, (t) => getNormalizedType(t, writing));
if (normalizedTypes !== type.types) {
return getIntersectionType(normalizedTypes);
@@ -61970,8 +62115,8 @@ ${lanes.join(`
let hasInstantiable = false;
let hasNullableOrEmpty = false;
for (const t of type.types) {
- hasInstantiable || (hasInstantiable = !!(t.flags & 465829888));
- hasNullableOrEmpty || (hasNullableOrEmpty = !!(t.flags & 98304) || isEmptyAnonymousObjectType(t));
+ hasInstantiable || (hasInstantiable = !!(t.flags & 132644864));
+ hasNullableOrEmpty || (hasNullableOrEmpty = !!(t.flags & 12) || isEmptyAnonymousObjectType(t));
if (hasInstantiable && hasNullableOrEmpty)
return true;
}
@@ -61979,7 +62124,7 @@ ${lanes.join(`
}
function getNormalizedTupleType(type, writing) {
const elements = getElementTypes(type);
- const normalizedElements = sameMap(elements, (t) => t.flags & 25165824 ? getSimplifiedType(t, writing) : t);
+ const normalizedElements = sameMap(elements, (t) => t.flags & 102760448 ? getSimplifiedType(t, writing) : t);
return elements !== normalizedElements ? createNormalizedTupleType(type.target, normalizedElements) : type;
}
function checkTypeRelatedTo(source, target, relation, errorNode, headMessage, containingMessageChain, errorOutputContainer) {
@@ -62180,13 +62325,13 @@ ${lanes.join(`
const [sourceType, targetType] = getTypeNamesForErrorDisplay(source2, target2);
let generalizedSource = source2;
let generalizedSourceType = sourceType;
- if (!(target2.flags & 131072) && isLiteralType(source2) && !typeCouldHaveTopLevelSingletonTypes(target2)) {
+ if (!(target2.flags & 262144) && isLiteralType(source2) && !typeCouldHaveTopLevelSingletonTypes(target2)) {
generalizedSource = getBaseTypeOfLiteralType(source2);
Debug.assert(!isTypeAssignableTo(generalizedSource, target2), "generalized source shouldn't be assignable");
generalizedSourceType = getTypeNameForErrorDisplay(generalizedSource);
}
- const targetFlags = target2.flags & 8388608 && !(source2.flags & 8388608) ? target2.objectType.flags : target2.flags;
- if (targetFlags & 262144 && target2 !== markerSuperTypeForCheck && target2 !== markerSubTypeForCheck) {
+ const targetFlags = target2.flags & 33554432 && !(source2.flags & 33554432) ? target2.objectType.flags : target2.flags;
+ if (targetFlags & 524288 && target2 !== markerSuperTypeForCheck && target2 !== markerSubTypeForCheck) {
const constraint = getBaseConstraintOfType(target2);
let needsOriginalSource;
if (constraint && (isTypeAssignableTo(generalizedSource, constraint) || (needsOriginalSource = isTypeAssignableTo(source2, constraint)))) {
@@ -62204,7 +62349,7 @@ ${lanes.join(`
} else if (exactOptionalPropertyTypes && getExactOptionalUnassignableProperties(source2, target2).length) {
message = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties;
} else {
- if (source2.flags & 128 && target2.flags & 1048576) {
+ if (source2.flags & 1024 && target2.flags & 134217728) {
const suggestedType = getSuggestedTypeForNonexistentStringLiteralType(source2, target2);
if (suggestedType) {
reportError(Diagnostics.Type_0_is_not_assignable_to_type_1_Did_you_mean_2, generalizedSourceType, targetType, typeToString(suggestedType));
@@ -62252,8 +62397,8 @@ ${lanes.join(`
function isRelatedTo(originalSource, originalTarget, recursionFlags = 3, reportErrors2 = false, headMessage2, intersectionState = 0) {
if (originalSource === originalTarget)
return -1;
- if (originalSource.flags & 524288 && originalTarget.flags & 402784252) {
- if (relation === comparableRelation && !(originalTarget.flags & 131072) && isSimpleTypeRelatedTo(originalTarget, originalSource, relation) || isSimpleTypeRelatedTo(originalSource, originalTarget, relation, reportErrors2 ? reportError : undefined)) {
+ if (originalSource.flags & 1048576 && originalTarget.flags & 12713980) {
+ if (relation === comparableRelation && !(originalTarget.flags & 262144) && isSimpleTypeRelatedTo(originalTarget, originalSource, relation) || isSimpleTypeRelatedTo(originalSource, originalTarget, relation, reportErrors2 ? reportError : undefined)) {
return -1;
}
if (reportErrors2) {
@@ -62268,26 +62413,26 @@ ${lanes.join(`
if (relation === identityRelation) {
if (source2.flags !== target2.flags)
return 0;
- if (source2.flags & 67358815)
+ if (source2.flags & 394239)
return -1;
traceUnionsOrIntersectionsTooLarge(source2, target2);
return recursiveTypeRelatedTo(source2, target2, false, 0, recursionFlags);
}
- if (source2.flags & 262144 && getConstraintOfType(source2) === target2) {
+ if (source2.flags & 524288 && getConstraintOfType(source2) === target2) {
return -1;
}
- if (source2.flags & 470302716 && target2.flags & 1048576) {
+ if (source2.flags & 13893600 && target2.flags & 134217728) {
const types = target2.types;
- const candidate = types.length === 2 && types[0].flags & 98304 ? types[1] : types.length === 3 && types[0].flags & 98304 && types[1].flags & 98304 ? types[2] : undefined;
- if (candidate && !(candidate.flags & 98304)) {
+ const candidate = types.length === 2 && types[0].flags & 12 ? types[1] : types.length === 3 && types[0].flags & 12 && types[1].flags & 12 ? types[2] : undefined;
+ if (candidate && !(candidate.flags & 12)) {
target2 = getNormalizedType(candidate, true);
if (source2 === target2)
return -1;
}
}
- if (relation === comparableRelation && !(target2.flags & 131072) && isSimpleTypeRelatedTo(target2, source2, relation) || isSimpleTypeRelatedTo(source2, target2, relation, reportErrors2 ? reportError : undefined))
+ if (relation === comparableRelation && !(target2.flags & 262144) && isSimpleTypeRelatedTo(target2, source2, relation) || isSimpleTypeRelatedTo(source2, target2, relation, reportErrors2 ? reportError : undefined))
return -1;
- if (source2.flags & 469499904 || target2.flags & 469499904) {
+ if (source2.flags & 536346624 || target2.flags & 536346624) {
const isPerformingExcessPropertyChecks = !(intersectionState & 2) && (isObjectLiteralType2(source2) && getObjectFlags(source2) & 8192);
if (isPerformingExcessPropertyChecks) {
if (hasExcessProperties(source2, target2, reportErrors2)) {
@@ -62297,7 +62442,7 @@ ${lanes.join(`
return 0;
}
}
- const isPerformingCommonPropertyChecks = (relation !== comparableRelation || isUnitType(source2)) && !(intersectionState & 2) && source2.flags & (402784252 | 524288 | 2097152) && source2 !== globalObjectType && target2.flags & (524288 | 2097152) && isWeakType(target2) && (getPropertiesOfType(source2).length > 0 || typeHasCallOrConstructSignatures(source2));
+ const isPerformingCommonPropertyChecks = (relation !== comparableRelation || isUnitType(source2)) && !(intersectionState & 2) && source2.flags & (12713980 | 1048576 | 268435456) && source2 !== globalObjectType && target2.flags & (1048576 | 268435456) && isWeakType(target2) && (getPropertiesOfType(source2).length > 0 || typeHasCallOrConstructSignatures(source2));
const isComparingJsxAttributes = !!(getObjectFlags(source2) & 2048);
if (isPerformingCommonPropertyChecks && !hasCommonProperties(source2, target2, isComparingJsxAttributes)) {
if (reportErrors2) {
@@ -62314,7 +62459,7 @@ ${lanes.join(`
return 0;
}
traceUnionsOrIntersectionsTooLarge(source2, target2);
- const skipCaching = source2.flags & 1048576 && source2.types.length < 4 && !(target2.flags & 1048576) || target2.flags & 1048576 && target2.types.length < 4 && !(source2.flags & 469499904);
+ const skipCaching = source2.flags & 134217728 && source2.types.length < 4 && !(target2.flags & 134217728) || target2.flags & 134217728 && target2.types.length < 4 && !(source2.flags & 536346624);
const result2 = skipCaching ? unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState) : recursiveTypeRelatedTo(source2, target2, reportErrors2, intersectionState, recursionFlags);
if (result2) {
return result2;
@@ -62335,18 +62480,18 @@ ${lanes.join(`
if (maybeSuppress) {
overrideNextErrorInfo--;
}
- if (source2.flags & 524288 && target2.flags & 524288) {
+ if (source2.flags & 1048576 && target2.flags & 1048576) {
const currentError = errorInfo;
tryElaborateArrayLikeErrors(source2, target2, true);
if (errorInfo !== currentError) {
maybeSuppress = !!errorInfo;
}
}
- if (source2.flags & 524288 && target2.flags & 402784252) {
+ if (source2.flags & 1048576 && target2.flags & 12713980) {
tryElaborateErrorsForPrimitivesAndObjects(source2, target2);
- } else if (source2.symbol && source2.flags & 524288 && globalObjectType === source2) {
+ } else if (source2.symbol && source2.flags & 1048576 && globalObjectType === source2) {
reportError(Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);
- } else if (getObjectFlags(source2) & 2048 && target2.flags & 2097152) {
+ } else if (getObjectFlags(source2) & 2048 && target2.flags & 268435456) {
const targetTypes = target2.types;
const intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes, errorNode);
const intrinsicClassAttributes = getJsxType(JsxNames.IntrinsicClassAttributes, errorNode);
@@ -62371,7 +62516,7 @@ ${lanes.join(`
return;
}
reportRelationError(headMessage2, source2, target2);
- if (source2.flags & 262144 && ((_b = (_a2 = source2.symbol) == null ? undefined : _a2.declarations) == null ? undefined : _b[0]) && !getConstraintOfType(source2)) {
+ if (source2.flags & 524288 && ((_b = (_a2 = source2.symbol) == null ? undefined : _a2.declarations) == null ? undefined : _b[0]) && !getConstraintOfType(source2)) {
const syntheticParam = cloneTypeParameter(source2);
syntheticParam.constraint = instantiateType(target2, makeUnaryTypeMapper(source2, syntheticParam));
if (hasNonCircularBaseConstraint(syntheticParam)) {
@@ -62384,7 +62529,7 @@ ${lanes.join(`
if (!tracing) {
return;
}
- if (source2.flags & 3145728 && target2.flags & 3145728) {
+ if (source2.flags & 402653184 && target2.flags & 402653184) {
const sourceUnionOrIntersection = source2;
const targetUnionOrIntersection = target2;
if (sourceUnionOrIntersection.objectFlags & targetUnionOrIntersection.objectFlags & 32768) {
@@ -62408,7 +62553,7 @@ ${lanes.join(`
const appendPropType = (propTypes, type) => {
var _a2;
type = getApparentType(type);
- const prop = type.flags & 3145728 ? getPropertyOfUnionOrIntersectionType(type, name) : getPropertyOfObjectType(type, name);
+ const prop = type.flags & 402653184 ? getPropertyOfUnionOrIntersectionType(type, name) : getPropertyOfObjectType(type, name);
const propType = prop && getTypeOfSymbol(prop) || ((_a2 = getApplicableIndexInfoForName(type, name)) == null ? undefined : _a2.type) || undefinedType;
return append(propTypes, propType);
};
@@ -62425,9 +62570,9 @@ ${lanes.join(`
}
let reducedTarget = target2;
let checkTypes;
- if (target2.flags & 1048576) {
+ if (target2.flags & 134217728) {
reducedTarget = findMatchingDiscriminantType(source2, target2, isRelatedTo) || filterPrimitivesIfContainsNonPrimitive(target2);
- checkTypes = reducedTarget.flags & 1048576 ? reducedTarget.types : [reducedTarget];
+ checkTypes = reducedTarget.flags & 134217728 ? reducedTarget.types : [reducedTarget];
}
for (const prop of getPropertiesOfType(source2)) {
if (shouldCheckAsExcessProperty(prop, source2.symbol) && !isIgnoredJsxProperty(source2, prop)) {
@@ -62483,33 +62628,33 @@ ${lanes.join(`
return prop.valueDeclaration && container.valueDeclaration && prop.valueDeclaration.parent === container.valueDeclaration;
}
function unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState) {
- if (source2.flags & 1048576) {
- if (target2.flags & 1048576) {
+ if (source2.flags & 134217728) {
+ if (target2.flags & 134217728) {
const sourceOrigin = source2.origin;
- if (sourceOrigin && sourceOrigin.flags & 2097152 && target2.aliasSymbol && contains(sourceOrigin.types, target2)) {
+ if (sourceOrigin && sourceOrigin.flags & 268435456 && target2.aliasSymbol && contains(sourceOrigin.types, target2)) {
return -1;
}
const targetOrigin = target2.origin;
- if (targetOrigin && targetOrigin.flags & 1048576 && source2.aliasSymbol && contains(targetOrigin.types, source2)) {
+ if (targetOrigin && targetOrigin.flags & 134217728 && source2.aliasSymbol && contains(targetOrigin.types, source2)) {
return -1;
}
}
- return relation === comparableRelation ? someTypeRelatedToType(source2, target2, reportErrors2 && !(source2.flags & 402784252), intersectionState) : eachTypeRelatedToType(source2, target2, reportErrors2 && !(source2.flags & 402784252), intersectionState);
+ return relation === comparableRelation ? someTypeRelatedToType(source2, target2, reportErrors2 && !(source2.flags & 12713980), intersectionState) : eachTypeRelatedToType(source2, target2, reportErrors2 && !(source2.flags & 12713980), intersectionState);
}
- if (target2.flags & 1048576) {
- return typeRelatedToSomeType(getRegularTypeOfObjectLiteral(source2), target2, reportErrors2 && !(source2.flags & 402784252) && !(target2.flags & 402784252), intersectionState);
+ if (target2.flags & 134217728) {
+ return typeRelatedToSomeType(getRegularTypeOfObjectLiteral(source2), target2, reportErrors2 && !(source2.flags & 12713980) && !(target2.flags & 12713980), intersectionState);
}
- if (target2.flags & 2097152) {
+ if (target2.flags & 268435456) {
return typeRelatedToEachType(source2, target2, reportErrors2, 2);
}
- if (relation === comparableRelation && target2.flags & 402784252) {
- const constraints = sameMap(source2.types, (t) => t.flags & 465829888 ? getBaseConstraintOfType(t) || unknownType : t);
+ if (relation === comparableRelation && target2.flags & 12713980) {
+ const constraints = sameMap(source2.types, (t) => t.flags & 132644864 ? getBaseConstraintOfType(t) || unknownType : t);
if (constraints !== source2.types) {
source2 = getIntersectionType(constraints);
- if (source2.flags & 131072) {
+ if (source2.flags & 262144) {
return 0;
}
- if (!(source2.flags & 2097152)) {
+ if (!(source2.flags & 268435456)) {
return isRelatedTo(source2, target2, 1, false) || isRelatedTo(target2, source2, 1, false);
}
}
@@ -62530,13 +62675,13 @@ ${lanes.join(`
}
function typeRelatedToSomeType(source2, target2, reportErrors2, intersectionState) {
const targetTypes = target2.types;
- if (target2.flags & 1048576) {
+ if (target2.flags & 134217728) {
if (containsType(targetTypes, source2)) {
return -1;
}
- if (relation !== comparableRelation && getObjectFlags(target2) & 32768 && !(source2.flags & 1024) && (source2.flags & (128 | 512 | 2048) || (relation === subtypeRelation || relation === strictSubtypeRelation) && source2.flags & 256)) {
+ if (relation !== comparableRelation && getObjectFlags(target2) & 32768 && !(source2.flags & 32768) && (source2.flags & (1024 | 8192 | 4096) || (relation === subtypeRelation || relation === strictSubtypeRelation) && source2.flags & 2048)) {
const alternateForm = source2 === source2.regularType ? source2.freshType : source2.regularType;
- const primitive = source2.flags & 128 ? stringType : source2.flags & 256 ? numberType : source2.flags & 2048 ? bigintType : undefined;
+ const primitive = source2.flags & 1024 ? stringType : source2.flags & 2048 ? numberType : source2.flags & 4096 ? bigintType : undefined;
return primitive && containsType(targetTypes, primitive) || alternateForm && containsType(targetTypes, alternateForm) ? -1 : 0;
}
const match = getMatchingUnionConstituentForType(target2, source2);
@@ -62575,7 +62720,7 @@ ${lanes.join(`
}
function someTypeRelatedToType(source2, target2, reportErrors2, intersectionState) {
const sourceTypes = source2.types;
- if (source2.flags & 1048576 && containsType(sourceTypes, target2)) {
+ if (source2.flags & 134217728 && containsType(sourceTypes, target2)) {
return -1;
}
const len = sourceTypes.length;
@@ -62588,8 +62733,8 @@ ${lanes.join(`
return 0;
}
function getUndefinedStrippedTargetIfNeeded(source2, target2) {
- if (source2.flags & 1048576 && target2.flags & 1048576 && !(source2.types[0].flags & 32768) && target2.types[0].flags & 32768) {
- return extractTypesOfKind(target2, ~32768);
+ if (source2.flags & 134217728 && target2.flags & 134217728 && !(source2.types[0].flags & 4) && target2.types[0].flags & 4) {
+ return extractTypesOfKind(target2, ~4);
}
return target2;
}
@@ -62599,7 +62744,7 @@ ${lanes.join(`
const undefinedStrippedTarget = getUndefinedStrippedTargetIfNeeded(source2, target2);
for (let i = 0;i < sourceTypes.length; i++) {
const sourceType = sourceTypes[i];
- if (undefinedStrippedTarget.flags & 1048576 && sourceTypes.length >= undefinedStrippedTarget.types.length && sourceTypes.length % undefinedStrippedTarget.types.length === 0) {
+ if (undefinedStrippedTarget.flags & 134217728 && sourceTypes.length >= undefinedStrippedTarget.types.length && sourceTypes.length % undefinedStrippedTarget.types.length === 0) {
const related2 = isRelatedTo(sourceType, undefinedStrippedTarget.types[i % undefinedStrippedTarget.types.length], 3, false, undefined, intersectionState);
if (related2) {
result2 &= related2;
@@ -62629,19 +62774,24 @@ ${lanes.join(`
let related = -1;
if (varianceFlags & 8) {
related = relation === identityRelation ? isRelatedTo(s, t, 3, false) : compareTypesIdentical(s, t);
- } else if (variance === 1) {
- related = isRelatedTo(s, t, 3, reportErrors2, undefined, intersectionState);
- } else if (variance === 2) {
- related = isRelatedTo(t, s, 3, reportErrors2, undefined, intersectionState);
- } else if (variance === 3) {
- related = isRelatedTo(t, s, 3, false);
- if (!related) {
- related = isRelatedTo(s, t, 3, reportErrors2, undefined, intersectionState);
- }
} else {
- related = isRelatedTo(s, t, 3, reportErrors2, undefined, intersectionState);
- if (related) {
- related &= isRelatedTo(t, s, 3, reportErrors2, undefined, intersectionState);
+ if (inVarianceComputation && varianceFlags & 16) {
+ instantiateType(s, reportUnreliableMapper);
+ }
+ if (variance === 1) {
+ related = isRelatedTo(s, t, 3, reportErrors2, undefined, intersectionState);
+ } else if (variance === 2) {
+ related = isRelatedTo(t, s, 3, reportErrors2, undefined, intersectionState);
+ } else if (variance === 3) {
+ related = isRelatedTo(t, s, 3, false);
+ if (!related) {
+ related = isRelatedTo(s, t, 3, reportErrors2, undefined, intersectionState);
+ }
+ } else {
+ related = isRelatedTo(s, t, 3, reportErrors2, undefined, intersectionState);
+ if (related) {
+ related &= isRelatedTo(t, s, 3, reportErrors2, undefined, intersectionState);
+ }
}
}
if (!related) {
@@ -62781,18 +62931,18 @@ ${lanes.join(`
const saveErrorInfo = captureErrorCalculationState();
let result2 = structuredTypeRelatedToWorker(source2, target2, reportErrors2, intersectionState, saveErrorInfo);
if (relation !== identityRelation) {
- if (!result2 && (source2.flags & 2097152 || source2.flags & 262144 && target2.flags & 1048576)) {
- const constraint = getEffectiveConstraintOfIntersection(source2.flags & 2097152 ? source2.types : [source2], !!(target2.flags & 1048576));
+ if (!result2 && (source2.flags & 268435456 || source2.flags & 524288 && target2.flags & 134217728)) {
+ const constraint = getEffectiveConstraintOfIntersection(source2.flags & 268435456 ? source2.types : [source2], !!(target2.flags & 134217728));
if (constraint && everyType(constraint, (c) => c !== source2)) {
result2 = isRelatedTo(constraint, target2, 1, false, undefined, intersectionState);
}
}
- if (result2 && !(intersectionState & 2) && target2.flags & 2097152 && !isGenericObjectType(target2) && source2.flags & (524288 | 2097152)) {
+ if (result2 && !(intersectionState & 2) && target2.flags & 268435456 && !isGenericObjectType(target2) && source2.flags & (1048576 | 268435456)) {
result2 &= propertiesRelatedTo(source2, target2, reportErrors2, undefined, false, 0);
if (result2 && isObjectLiteralType2(source2) && getObjectFlags(source2) & 8192) {
result2 &= indexSignaturesRelatedTo(source2, target2, false, reportErrors2, 0);
}
- } else if (result2 && isNonGenericObjectType(target2) && !isArrayOrTupleType(target2) && source2.flags & 2097152 && getApparentType(source2).flags & 3670016 && !some(source2.types, (t) => t === target2 || !!(getObjectFlags(t) & 262144))) {
+ } else if (result2 && isNonGenericObjectType(target2) && !isArrayOrTupleType(target2) && source2.flags & 268435456 && getApparentType(source2).flags & 403701760 && !some(source2.types, (t) => t === target2 || !!(getObjectFlags(t) & 262144))) {
result2 &= propertiesRelatedTo(source2, target2, reportErrors2, undefined, true, intersectionState);
}
}
@@ -62804,7 +62954,7 @@ ${lanes.join(`
function getApparentMappedTypeKeys(nameType, targetType) {
const modifiersType = getApparentType(getModifiersTypeFromMappedType(targetType));
const mappedKeys = [];
- forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(modifiersType, 8576, false, (t) => void mappedKeys.push(instantiateType(nameType, appendTypeMapping(targetType.mapper, getTypeParameterFromMappedType(targetType), t))));
+ forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(modifiersType, 19456, false, (t) => void mappedKeys.push(instantiateType(nameType, appendTypeMapping(targetType.mapper, getTypeParameterFromMappedType(targetType), t))));
return getUnionType(mappedKeys);
}
function structuredTypeRelatedToWorker(source2, target2, reportErrors2, intersectionState, saveErrorInfo) {
@@ -62814,24 +62964,24 @@ ${lanes.join(`
let sourceFlags = source2.flags;
const targetFlags = target2.flags;
if (relation === identityRelation) {
- if (sourceFlags & 3145728) {
+ if (sourceFlags & 402653184) {
let result3 = eachTypeRelatedToSomeType(source2, target2);
if (result3) {
result3 &= eachTypeRelatedToSomeType(target2, source2);
}
return result3;
}
- if (sourceFlags & 4194304) {
+ if (sourceFlags & 2097152) {
return isRelatedTo(source2.type, target2.type, 3, false);
}
- if (sourceFlags & 8388608) {
+ if (sourceFlags & 33554432) {
if (result2 = isRelatedTo(source2.objectType, target2.objectType, 3, false)) {
if (result2 &= isRelatedTo(source2.indexType, target2.indexType, 3, false)) {
return result2;
}
}
}
- if (sourceFlags & 16777216) {
+ if (sourceFlags & 67108864) {
if (source2.root.isDistributive === target2.root.isDistributive) {
if (result2 = isRelatedTo(source2.checkType, target2.checkType, 3, false)) {
if (result2 &= isRelatedTo(source2.extendsType, target2.extendsType, 3, false)) {
@@ -62844,14 +62994,14 @@ ${lanes.join(`
}
}
}
- if (sourceFlags & 33554432) {
+ if (sourceFlags & 16777216) {
if (result2 = isRelatedTo(source2.baseType, target2.baseType, 3, false)) {
if (result2 &= isRelatedTo(source2.constraint, target2.constraint, 3, false)) {
return result2;
}
}
}
- if (sourceFlags & 134217728) {
+ if (sourceFlags & 4194304) {
if (arrayIsEqualTo(source2.texts, target2.texts)) {
const sourceTypes = source2.types;
const targetTypes = target2.types;
@@ -62864,23 +63014,23 @@ ${lanes.join(`
return result2;
}
}
- if (sourceFlags & 268435456) {
+ if (sourceFlags & 8388608) {
if (source2.symbol === target2.symbol) {
return isRelatedTo(source2.type, target2.type, 3, false);
}
}
- if (!(sourceFlags & 524288)) {
+ if (!(sourceFlags & 1048576)) {
return 0;
}
- } else if (sourceFlags & 3145728 || targetFlags & 3145728) {
+ } else if (sourceFlags & 402653184 || targetFlags & 402653184) {
if (result2 = unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState)) {
return result2;
}
- if (!(sourceFlags & 465829888 || sourceFlags & 524288 && targetFlags & 1048576 || sourceFlags & 2097152 && targetFlags & (524288 | 1048576 | 465829888))) {
+ if (!(sourceFlags & 132644864 || sourceFlags & 1048576 && targetFlags & 134217728 || sourceFlags & 268435456 && targetFlags & (1048576 | 134217728 | 132644864))) {
return 0;
}
}
- if (sourceFlags & (524288 | 16777216) && source2.aliasSymbol && source2.aliasTypeArguments && source2.aliasSymbol === target2.aliasSymbol && !(isMarkerType(source2) || isMarkerType(target2))) {
+ if (sourceFlags & (1048576 | 67108864) && source2.aliasSymbol && source2.aliasTypeArguments && source2.aliasSymbol === target2.aliasSymbol && !(isMarkerType(source2) || isMarkerType(target2))) {
const variances = getAliasVariances(source2.aliasSymbol);
if (variances === emptyArray) {
return 1;
@@ -62897,7 +63047,7 @@ ${lanes.join(`
if (isSingleElementGenericTupleType(source2) && !source2.target.readonly && (result2 = isRelatedTo(getTypeArguments(source2)[0], target2, 1)) || isSingleElementGenericTupleType(target2) && (target2.target.readonly || isMutableArrayOrTuple(getBaseConstraintOfType(source2) || source2)) && (result2 = isRelatedTo(source2, getTypeArguments(target2)[0], 2))) {
return result2;
}
- if (targetFlags & 262144) {
+ if (targetFlags & 524288) {
if (getObjectFlags(source2) & 32 && !source2.declaration.nameType && isRelatedTo(getIndexType(target2), getConstraintTypeFromMappedType(source2), 3)) {
if (!(getMappedTypeModifiers(source2) & 4)) {
const templateType = getTemplateTypeFromMappedType(source2);
@@ -62907,10 +63057,10 @@ ${lanes.join(`
}
}
}
- if (relation === comparableRelation && sourceFlags & 262144) {
+ if (relation === comparableRelation && sourceFlags & 524288) {
let constraint = getConstraintOfTypeParameter(source2);
if (constraint) {
- while (constraint && someType(constraint, (c) => !!(c.flags & 262144))) {
+ while (constraint && someType(constraint, (c) => !!(c.flags & 524288))) {
if (result2 = isRelatedTo(constraint, target2, 1, false)) {
return result2;
}
@@ -62919,9 +63069,9 @@ ${lanes.join(`
}
return 0;
}
- } else if (targetFlags & 4194304) {
+ } else if (targetFlags & 2097152) {
const targetType = target2.type;
- if (sourceFlags & 4194304) {
+ if (sourceFlags & 2097152) {
if (result2 = isRelatedTo(targetType, source2.type, 3, false)) {
return result2;
}
@@ -62951,8 +63101,8 @@ ${lanes.join(`
}
}
}
- } else if (targetFlags & 8388608) {
- if (sourceFlags & 8388608) {
+ } else if (targetFlags & 33554432) {
+ if (sourceFlags & 33554432) {
if (result2 = isRelatedTo(source2.objectType, target2.objectType, 3, reportErrors2)) {
result2 &= isRelatedTo(source2.indexType, target2.indexType, 3, reportErrors2);
}
@@ -62992,7 +63142,7 @@ ${lanes.join(`
const templateType = getTemplateTypeFromMappedType(target2);
const modifiers = getMappedTypeModifiers(target2);
if (!(modifiers & 8)) {
- if (!keysRemapped && templateType.flags & 8388608 && templateType.objectType === source2 && templateType.indexType === getTypeParameterFromMappedType(target2)) {
+ if (!keysRemapped && templateType.flags & 33554432 && templateType.objectType === source2 && templateType.indexType === getTypeParameterFromMappedType(target2)) {
return -1;
}
if (!isGenericMappedType(source2)) {
@@ -63000,11 +63150,11 @@ ${lanes.join(`
const sourceKeys = getIndexType(source2, 2);
const includeOptional = modifiers & 4;
const filteredByApplicability = includeOptional ? intersectTypes(targetKeys, sourceKeys) : undefined;
- if (includeOptional ? !(filteredByApplicability.flags & 131072) : isRelatedTo(targetKeys, sourceKeys, 3)) {
+ if (includeOptional ? !(filteredByApplicability.flags & 262144) : isRelatedTo(targetKeys, sourceKeys, 3)) {
const templateType2 = getTemplateTypeFromMappedType(target2);
const typeParameter = getTypeParameterFromMappedType(target2);
- const nonNullComponent = extractTypesOfKind(templateType2, ~98304);
- if (!keysRemapped && nonNullComponent.flags & 8388608 && nonNullComponent.indexType === typeParameter) {
+ const nonNullComponent = extractTypesOfKind(templateType2, ~12);
+ if (!keysRemapped && nonNullComponent.flags & 33554432 && nonNullComponent.indexType === typeParameter) {
if (result2 = isRelatedTo(source2, nonNullComponent.objectType, 2, reportErrors2)) {
return result2;
}
@@ -63020,12 +63170,12 @@ ${lanes.join(`
resetErrorInfo(saveErrorInfo);
}
}
- } else if (targetFlags & 16777216) {
+ } else if (targetFlags & 67108864) {
if (isDeeplyNestedType(target2, targetStack, targetDepth, 10)) {
return 3;
}
const c = target2;
- if (!c.root.inferTypeParameters && !isDistributionDependent(c.root) && !(source2.flags & 16777216 && source2.root === c.root)) {
+ if (!c.root.inferTypeParameters && !isDistributionDependent(c.root) && !(source2.flags & 67108864 && source2.root === c.root)) {
const skipTrue = !isTypeAssignableTo(getPermissiveInstantiation(c.checkType), getPermissiveInstantiation(c.extendsType));
const skipFalse = !skipTrue && isTypeAssignableTo(getRestrictiveInstantiation(c.checkType), getRestrictiveInstantiation(c.extendsType));
if (result2 = skipTrue ? -1 : isRelatedTo(source2, getTrueTypeFromConditionalType(c), 2, false, undefined, intersectionState)) {
@@ -63035,8 +63185,8 @@ ${lanes.join(`
}
}
}
- } else if (targetFlags & 134217728) {
- if (sourceFlags & 134217728) {
+ } else if (targetFlags & 4194304) {
+ if (sourceFlags & 4194304) {
if (relation === comparableRelation) {
return templateLiteralTypesDefinitelyUnrelated(source2, target2) ? 0 : -1;
}
@@ -63045,19 +63195,19 @@ ${lanes.join(`
if (isTypeMatchedByTemplateLiteralType(source2, target2)) {
return -1;
}
- } else if (target2.flags & 268435456) {
- if (!(source2.flags & 268435456)) {
+ } else if (target2.flags & 8388608) {
+ if (!(source2.flags & 8388608)) {
if (isMemberOfStringMapping(source2, target2)) {
return -1;
}
}
}
- if (sourceFlags & 8650752) {
- if (!(sourceFlags & 8388608 && targetFlags & 8388608)) {
+ if (sourceFlags & 34078720) {
+ if (!(sourceFlags & 33554432 && targetFlags & 33554432)) {
const constraint = getConstraintOfType(source2) || unknownType;
if (result2 = isRelatedTo(constraint, target2, 1, false, undefined, intersectionState)) {
return result2;
- } else if (result2 = isRelatedTo(getTypeWithThisArgument(constraint, source2), target2, 1, reportErrors2 && constraint !== unknownType && !(targetFlags & sourceFlags & 262144), undefined, intersectionState)) {
+ } else if (result2 = isRelatedTo(getTypeWithThisArgument(constraint, source2), target2, 1, reportErrors2 && constraint !== unknownType && !(targetFlags & sourceFlags & 524288), undefined, intersectionState)) {
return result2;
}
if (isMappedTypeGenericIndexedAccess(source2)) {
@@ -63069,7 +63219,7 @@ ${lanes.join(`
}
}
}
- } else if (sourceFlags & 4194304) {
+ } else if (sourceFlags & 2097152) {
const isDeferredMappedIndex = shouldDeferIndexType(source2.type, source2.indexFlags) && getObjectFlags(source2.type) & 32;
if (result2 = isRelatedTo(stringNumberSymbolType, target2, 1, reportErrors2 && !isDeferredMappedIndex)) {
return result2;
@@ -63082,15 +63232,15 @@ ${lanes.join(`
return result2;
}
}
- } else if (sourceFlags & 134217728 && !(targetFlags & 524288)) {
- if (!(targetFlags & 134217728)) {
+ } else if (sourceFlags & 4194304 && !(targetFlags & 1048576)) {
+ if (!(targetFlags & 4194304)) {
const constraint = getBaseConstraintOfType(source2);
if (constraint && constraint !== source2 && (result2 = isRelatedTo(constraint, target2, 1, reportErrors2))) {
return result2;
}
}
- } else if (sourceFlags & 268435456) {
- if (targetFlags & 268435456) {
+ } else if (sourceFlags & 8388608) {
+ if (targetFlags & 8388608) {
if (source2.symbol !== target2.symbol) {
return 0;
}
@@ -63103,11 +63253,11 @@ ${lanes.join(`
return result2;
}
}
- } else if (sourceFlags & 16777216) {
+ } else if (sourceFlags & 67108864) {
if (isDeeplyNestedType(source2, sourceStack, sourceDepth, 10)) {
return 3;
}
- if (targetFlags & 16777216) {
+ if (targetFlags & 67108864) {
const sourceParams = source2.root.inferTypeParameters;
let sourceExtends = source2.extendsType;
let mapper;
@@ -63132,7 +63282,7 @@ ${lanes.join(`
return result2;
}
}
- const distributiveConstraint = !(targetFlags & 16777216) && hasNonCircularBaseConstraint(source2) ? getConstraintOfDistributiveConditionalType(source2) : undefined;
+ const distributiveConstraint = !(targetFlags & 67108864) && hasNonCircularBaseConstraint(source2) ? getConstraintOfDistributiveConditionalType(source2) : undefined;
if (distributiveConstraint) {
resetErrorInfo(saveErrorInfo);
if (result2 = isRelatedTo(distributiveConstraint, target2, 1, reportErrors2)) {
@@ -63151,7 +63301,7 @@ ${lanes.join(`
}
return 0;
}
- const sourceIsPrimitive = !!(sourceFlags & 402784252);
+ const sourceIsPrimitive = !!(sourceFlags & 12713980);
if (relation !== identityRelation) {
source2 = getApparentType(source2);
sourceFlags = source2.flags;
@@ -63184,7 +63334,7 @@ ${lanes.join(`
} else if ((relation === subtypeRelation || relation === strictSubtypeRelation) && isEmptyObjectType(target2) && getObjectFlags(target2) & 8192 && !isEmptyObjectType(source2)) {
return 0;
}
- if (sourceFlags & (524288 | 2097152) && targetFlags & 524288) {
+ if (sourceFlags & (1048576 | 268435456) && targetFlags & 1048576) {
const reportStructuralErrors = reportErrors2 && errorInfo === saveErrorInfo.errorInfo && !sourceIsPrimitive;
result2 = propertiesRelatedTo(source2, target2, reportStructuralErrors, undefined, false, intersectionState);
if (result2) {
@@ -63202,9 +63352,9 @@ ${lanes.join(`
return result2;
}
}
- if (sourceFlags & (524288 | 2097152) && targetFlags & 1048576) {
- const objectOnlyTarget = extractTypesOfKind(target2, 524288 | 2097152 | 33554432);
- if (objectOnlyTarget.flags & 1048576) {
+ if (sourceFlags & (1048576 | 268435456) && targetFlags & 134217728) {
+ const objectOnlyTarget = extractTypesOfKind(target2, 1048576 | 268435456 | 16777216);
+ if (objectOnlyTarget.flags & 134217728) {
const result3 = typeRelatedToDiscriminatedType(source2, objectOnlyTarget);
if (result3) {
return result3;
@@ -63272,7 +63422,7 @@ ${lanes.join(`
for (let i = 0;i < sourcePropertiesFiltered.length; i++) {
const sourceProperty = sourcePropertiesFiltered[i];
const sourcePropertyType = getNonMissingTypeOfSymbol(sourceProperty);
- sourceDiscriminantTypes[i] = sourcePropertyType.flags & 1048576 ? sourcePropertyType.types : [sourcePropertyType];
+ sourceDiscriminantTypes[i] = sourcePropertyType.flags & 134217728 ? sourcePropertyType.types : [sourcePropertyType];
excludedProperties.add(sourceProperty.escapedName);
}
const discriminantCombinations = cartesianProduct(sourceDiscriminantTypes);
@@ -63530,13 +63680,10 @@ ${lanes.join(`
if (isObjectLiteralType2(target2)) {
for (const sourceProp of excludeProperties(getPropertiesOfType(source2), excludedProperties)) {
if (!getPropertyOfObjectType(target2, sourceProp.escapedName)) {
- const sourceType = getTypeOfSymbol(sourceProp);
- if (!(sourceType.flags & 32768)) {
- if (reportErrors2) {
- reportError(Diagnostics.Property_0_does_not_exist_on_type_1, symbolToString(sourceProp), typeToString(target2));
- }
- return 0;
+ if (reportErrors2) {
+ reportError(Diagnostics.Property_0_does_not_exist_on_type_1, symbolToString(sourceProp), typeToString(target2));
}
+ return 0;
}
}
}
@@ -63558,7 +63705,7 @@ ${lanes.join(`
return result2;
}
function propertiesIdenticalTo(source2, target2, excludedProperties) {
- if (!(source2.flags & 524288 && target2.flags & 524288)) {
+ if (!(source2.flags & 1048576 && target2.flags & 1048576)) {
return 0;
}
const sourceProperties = excludeProperties(getPropertiesOfObjectType(source2), excludedProperties);
@@ -63585,9 +63732,12 @@ ${lanes.join(`
if (relation === identityRelation) {
return signaturesIdenticalTo(source2, target2, kind);
}
- if (target2 === anyFunctionType || source2 === anyFunctionType) {
+ if (source2 === anyFunctionType) {
return -1;
}
+ if (target2 === anyFunctionType) {
+ return 0;
+ }
const sourceIsJSConstructor = source2.symbol && isJSConstructor(source2.symbol.valueDeclaration);
const targetIsJSConstructor = target2.symbol && isJSConstructor(target2.symbol.valueDeclaration);
const sourceSignatures = getSignaturesOfType(source2, sourceIsJSConstructor && kind === 1 ? 0 : kind);
@@ -63701,14 +63851,14 @@ ${lanes.join(`
function membersRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState) {
let result2 = -1;
const keyType = targetInfo.keyType;
- const props = source2.flags & 2097152 ? getPropertiesOfUnionOrIntersectionType(source2) : getPropertiesOfObjectType(source2);
+ const props = source2.flags & 268435456 ? getPropertiesOfUnionOrIntersectionType(source2) : getPropertiesOfObjectType(source2);
for (const prop of props) {
if (isIgnoredJsxProperty(source2, prop)) {
continue;
}
- if (isApplicableIndexType(getLiteralTypeFromProperty(prop, 8576), keyType)) {
+ if (isApplicableIndexType(getLiteralTypeFromProperty(prop, 19456), keyType)) {
const propType = getNonMissingTypeOfSymbol(prop);
- const type = exactOptionalPropertyTypes || propType.flags & 32768 || keyType === numberType || !(prop.flags & 16777216) ? propType : getTypeWithFacts(propType, 524288);
+ const type = exactOptionalPropertyTypes || propType.flags & 4 || keyType === numberType || !(prop.flags & 16777216) ? propType : getTypeWithFacts(propType, 524288);
const related = isRelatedTo(type, targetInfo.type, 3, reportErrors2, undefined, intersectionState);
if (!related) {
if (reportErrors2) {
@@ -63806,19 +63956,19 @@ ${lanes.join(`
}
}
function typeCouldHaveTopLevelSingletonTypes(type) {
- if (type.flags & 16) {
+ if (type.flags & 256) {
return false;
}
- if (type.flags & 3145728) {
+ if (type.flags & 402653184) {
return !!forEach(type.types, typeCouldHaveTopLevelSingletonTypes);
}
- if (type.flags & 465829888) {
+ if (type.flags & 132644864) {
const constraint = getConstraintOfType(type);
if (constraint && constraint !== type) {
return typeCouldHaveTopLevelSingletonTypes(constraint);
}
}
- return isUnitType(type) || !!(type.flags & 134217728) || !!(type.flags & 268435456);
+ return isUnitType(type) || !!(type.flags & 4194304) || !!(type.flags & 8388608);
}
function getExactOptionalUnassignableProperties(source, target) {
if (isTupleType(source) && isTupleType(target))
@@ -63826,7 +63976,7 @@ ${lanes.join(`
return getPropertiesOfType(target).filter((targetProp) => isExactOptionalPropertyMismatch(getTypeOfPropertyOfType(source, targetProp.escapedName), getTypeOfSymbol(targetProp)));
}
function isExactOptionalPropertyMismatch(source, target) {
- return !!source && !!target && maybeTypeOfKind(source, 32768) && !!containsMissingType(target);
+ return !!source && !!target && maybeTypeOfKind(source, 4) && !!containsMissingType(target);
}
function getExactOptionalProperties(type) {
return getPropertiesOfType(type).filter((targetProp) => containsMissingType(getTypeOfSymbol(targetProp)));
@@ -63836,7 +63986,7 @@ ${lanes.join(`
}
function discriminateTypeByDiscriminableItems(target, discriminators, related) {
const types = target.types;
- const include = types.map((t) => t.flags & 402784252 ? 0 : -1);
+ const include = types.map((t) => t.flags & 12713980 || getReducedType(t).flags & 262144 ? 0 : -1);
for (const [getDiscriminatingType, propertyName] of discriminators) {
let matched = false;
for (let i = 0;i < types.length; i++) {
@@ -63858,17 +64008,17 @@ ${lanes.join(`
}
}
const filtered = contains(include, 0) ? getUnionType(types.filter((_, i) => include[i]), 0) : target;
- return filtered.flags & 131072 ? target : filtered;
+ return filtered.flags & 262144 ? target : filtered;
}
function isWeakType(type) {
- if (type.flags & 524288) {
+ if (type.flags & 1048576) {
const resolved = resolveStructuredTypeMembers(type);
return resolved.callSignatures.length === 0 && resolved.constructSignatures.length === 0 && resolved.indexInfos.length === 0 && resolved.properties.length > 0 && every(resolved.properties, (p) => !!(p.flags & 16777216));
}
- if (type.flags & 33554432) {
+ if (type.flags & 16777216) {
return isWeakType(type.baseType);
}
- if (type.flags & 2097152) {
+ if (type.flags & 268435456) {
return every(type.types, isWeakType);
}
return false;
@@ -63954,20 +64104,20 @@ ${lanes.join(`
}
function hasCovariantVoidArgument(typeArguments, variances) {
for (let i = 0;i < variances.length; i++) {
- if ((variances[i] & 7) === 1 && typeArguments[i].flags & 16384) {
+ if ((variances[i] & 7) === 1 && typeArguments[i].flags & 16) {
return true;
}
}
return false;
}
function isUnconstrainedTypeParameter(type) {
- return type.flags & 262144 && !getConstraintOfTypeParameter(type);
+ return type.flags & 524288 && !getConstraintOfTypeParameter(type);
}
function isNonDeferredTypeReference(type) {
return !!(getObjectFlags(type) & 4) && !type.node;
}
function isTypeReferenceWithGenericArguments(type) {
- return isNonDeferredTypeReference(type) && some(getTypeArguments(type), (t) => !!(t.flags & 262144) || isTypeReferenceWithGenericArguments(t));
+ return isNonDeferredTypeReference(type) && some(getTypeArguments(type), (t) => !!(t.flags & 524288) || isTypeReferenceWithGenericArguments(t));
}
function getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) {
const typeParameters = [];
@@ -63978,7 +64128,7 @@ ${lanes.join(`
function getTypeReferenceId(type, depth = 0) {
let result = "" + type.target.id;
for (const t of getTypeArguments(type)) {
- if (t.flags & 262144) {
+ if (t.flags & 524288) {
if (ignoreConstraints || isUnconstrainedTypeParameter(t)) {
let index = typeParameters.indexOf(t);
if (index < 0) {
@@ -64045,7 +64195,7 @@ ${lanes.join(`
if ((getObjectFlags(type) & 96) === 96) {
type = getMappedTargetWithSymbol(type);
}
- if (type.flags & 2097152) {
+ if (type.flags & 268435456) {
return some(type.types, (t) => isDeeplyNestedType(t, stack, depth, maxDepth));
}
const identity2 = getRecursionIdentity(type);
@@ -64068,7 +64218,7 @@ ${lanes.join(`
}
function getMappedTargetWithSymbol(type) {
let target;
- while ((getObjectFlags(type) & 96) === 96 && (target = getModifiersTypeFromMappedType(type)) && (target.symbol || target.flags & 2097152 && some(target.types, (t) => !!t.symbol))) {
+ while ((getObjectFlags(type) & 96) === 96 && (target = getModifiersTypeFromMappedType(type)) && (target.symbol || target.flags & 268435456 && some(target.types, (t) => !!t.symbol))) {
type = target;
}
return type;
@@ -64077,13 +64227,13 @@ ${lanes.join(`
if ((getObjectFlags(type) & 96) === 96) {
type = getMappedTargetWithSymbol(type);
}
- if (type.flags & 2097152) {
+ if (type.flags & 268435456) {
return some(type.types, (t) => hasMatchingRecursionIdentity(t, identity2));
}
return getRecursionIdentity(type) === identity2;
}
function getRecursionIdentity(type) {
- if (type.flags & 524288 && !isObjectOrArrayLiteralType(type)) {
+ if (type.flags & 1048576 && !isObjectOrArrayLiteralType(type)) {
if (getObjectFlags(type) & 4 && type.node) {
return type.node;
}
@@ -64094,16 +64244,16 @@ ${lanes.join(`
return type.target;
}
}
- if (type.flags & 262144) {
+ if (type.flags & 524288) {
return type.symbol;
}
- if (type.flags & 8388608) {
+ if (type.flags & 33554432) {
do {
type = type.objectType;
- } while (type.flags & 8388608);
+ } while (type.flags & 33554432);
return type;
}
- if (type.flags & 16777216) {
+ if (type.flags & 67108864) {
return type.root;
}
return type;
@@ -64111,7 +64261,7 @@ ${lanes.join(`
function isPropertyIdenticalTo(sourceProp, targetProp) {
return compareProperties2(sourceProp, targetProp, compareTypesIdentical) !== 0;
}
- function compareProperties2(sourceProp, targetProp, compareTypes) {
+ function compareProperties2(sourceProp, targetProp, compareTypes2) {
if (sourceProp === targetProp) {
return -1;
}
@@ -64132,7 +64282,7 @@ ${lanes.join(`
if (isReadonlySymbol(sourceProp) !== isReadonlySymbol(targetProp)) {
return 0;
}
- return compareTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));
+ return compareTypes2(getNonMissingTypeOfSymbol(sourceProp), getNonMissingTypeOfSymbol(targetProp));
}
function isMatchingSignature(source, target, partialMatch) {
const sourceParameterCount = getParameterCount(source);
@@ -64149,7 +64299,7 @@ ${lanes.join(`
}
return false;
}
- function compareSignaturesIdentical(source, target, partialMatch, ignoreThisTypes, ignoreReturnTypes, compareTypes) {
+ function compareSignaturesIdentical(source, target, partialMatch, ignoreThisTypes, ignoreReturnTypes, compareTypes2) {
if (source === target) {
return -1;
}
@@ -64164,7 +64314,7 @@ ${lanes.join(`
for (let i = 0;i < target.typeParameters.length; i++) {
const s = source.typeParameters[i];
const t = target.typeParameters[i];
- if (!(s === t || compareTypes(instantiateType(getConstraintFromTypeParameter(s), mapper) || unknownType, getConstraintFromTypeParameter(t) || unknownType) && compareTypes(instantiateType(getDefaultFromTypeParameter(s), mapper) || unknownType, getDefaultFromTypeParameter(t) || unknownType))) {
+ if (!(s === t || compareTypes2(instantiateType(getConstraintFromTypeParameter(s), mapper) || unknownType, getConstraintFromTypeParameter(t) || unknownType) && compareTypes2(instantiateType(getDefaultFromTypeParameter(s), mapper) || unknownType, getDefaultFromTypeParameter(t) || unknownType))) {
return 0;
}
}
@@ -64176,7 +64326,7 @@ ${lanes.join(`
if (sourceThisType) {
const targetThisType = getThisTypeOfSignature(target);
if (targetThisType) {
- const related = compareTypes(sourceThisType, targetThisType);
+ const related = compareTypes2(sourceThisType, targetThisType);
if (!related) {
return 0;
}
@@ -64188,7 +64338,7 @@ ${lanes.join(`
for (let i = 0;i < targetLen; i++) {
const s = getTypeAtPosition(source, i);
const t = getTypeAtPosition(target, i);
- const related = compareTypes(t, s);
+ const related = compareTypes2(t, s);
if (!related) {
return 0;
}
@@ -64197,17 +64347,17 @@ ${lanes.join(`
if (!ignoreReturnTypes) {
const sourceTypePredicate = getTypePredicateOfSignature(source);
const targetTypePredicate = getTypePredicateOfSignature(target);
- result &= sourceTypePredicate || targetTypePredicate ? compareTypePredicatesIdentical(sourceTypePredicate, targetTypePredicate, compareTypes) : compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target));
+ result &= sourceTypePredicate || targetTypePredicate ? compareTypePredicatesIdentical(sourceTypePredicate, targetTypePredicate, compareTypes2) : compareTypes2(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target));
}
return result;
}
- function compareTypePredicatesIdentical(source, target, compareTypes) {
- return !(source && target && typePredicateKindsMatch(source, target)) ? 0 : source.type === target.type ? -1 : source.type && target.type ? compareTypes(source.type, target.type) : 0;
+ function compareTypePredicatesIdentical(source, target, compareTypes2) {
+ return !(source && target && typePredicateKindsMatch(source, target)) ? 0 : source.type === target.type ? -1 : source.type && target.type ? compareTypes2(source.type, target.type) : 0;
}
function literalTypesWithSameBaseType(types) {
let commonBaseType;
for (const t of types) {
- if (!(t.flags & 131072)) {
+ if (!(t.flags & 262144)) {
const baseType = getBaseTypeOfLiteralType(t);
commonBaseType ?? (commonBaseType = baseType);
if (baseType === t || baseType !== commonBaseType) {
@@ -64218,15 +64368,15 @@ ${lanes.join(`
return true;
}
function getCombinedTypeFlags(types) {
- return reduceLeft(types, (flags, t) => flags | (t.flags & 1048576 ? getCombinedTypeFlags(t.types) : t.flags), 0);
+ return reduceLeft(types, (flags, t) => flags | (t.flags & 134217728 ? getCombinedTypeFlags(t.types) : t.flags), 0);
}
function getCommonSupertype(types) {
if (types.length === 1) {
return types[0];
}
- const primaryTypes = strictNullChecks ? sameMap(types, (t) => filterType(t, (u) => !(u.flags & 98304))) : types;
+ const primaryTypes = strictNullChecks ? sameMap(types, (t) => filterType(t, (u) => !(u.flags & 12))) : types;
const superTypeOrUnion = literalTypesWithSameBaseType(primaryTypes) ? getUnionType(primaryTypes) : getSingleCommonSupertype(primaryTypes);
- return primaryTypes === types ? superTypeOrUnion : getNullableType(superTypeOrUnion, getCombinedTypeFlags(types) & 98304);
+ return primaryTypes === types ? superTypeOrUnion : getNullableType(superTypeOrUnion, getCombinedTypeFlags(types) & 12);
}
function getSingleCommonSupertype(types) {
const candidate = reduceLeft(types, (s, t) => isTypeStrictSubtypeOf(s, t) ? t : s);
@@ -64251,10 +64401,10 @@ ${lanes.join(`
return isArrayType(type) ? getTypeArguments(type)[0] : undefined;
}
function isArrayLikeType(type) {
- return isArrayType(type) || !(type.flags & 98304) && isTypeAssignableTo(type, anyReadonlyArrayType);
+ return isArrayType(type) || !(type.flags & 12) && isTypeAssignableTo(type, anyReadonlyArrayType);
}
function isMutableArrayLikeType(type) {
- return isMutableArrayOrTuple(type) || !(type.flags & (1 | 98304)) && isTypeAssignableTo(type, anyArrayType);
+ return isMutableArrayOrTuple(type) || !(type.flags & (1 | 12)) && isTypeAssignableTo(type, anyArrayType);
}
function getSingleBaseForNonAugmentingSubtype(type) {
if (!(getObjectFlags(type) & 4) || !(getObjectFlags(type.target) & 3)) {
@@ -64294,7 +64444,7 @@ ${lanes.join(`
}
function isTupleLikeType(type) {
let lengthType;
- return isTupleType(type) || !!getPropertyOfType(type, "0") || isArrayLikeType(type) && !!(lengthType = getTypeOfPropertyOfType(type, "length")) && everyType(lengthType, (t) => !!(t.flags & 256));
+ return isTupleType(type) || !!getPropertyOfType(type, "0") || isArrayLikeType(type) && !!(lengthType = getTypeOfPropertyOfType(type, "length")) && everyType(lengthType, (t) => !!(t.flags & 2048));
}
function isArrayOrTupleLikeType(type) {
return isArrayLikeType(type) || isTupleLikeType(type);
@@ -64310,36 +64460,36 @@ ${lanes.join(`
return;
}
function isNeitherUnitTypeNorNever(type) {
- return !(type.flags & (109472 | 131072));
+ return !(type.flags & (97292 | 262144));
}
function isUnitType(type) {
- return !!(type.flags & 109472);
+ return !!(type.flags & 97292);
}
function isUnitLikeType(type) {
const t = getBaseConstraintOrType(type);
- return t.flags & 2097152 ? some(t.types, isUnitType) : isUnitType(t);
+ return t.flags & 268435456 ? some(t.types, isUnitType) : isUnitType(t);
}
function extractUnitType(type) {
- return type.flags & 2097152 ? find(type.types, isUnitType) || type : type;
+ return type.flags & 268435456 ? find(type.types, isUnitType) || type : type;
}
function isLiteralType(type) {
- return type.flags & 16 ? true : type.flags & 1048576 ? type.flags & 1024 ? true : every(type.types, isUnitType) : isUnitType(type);
+ return type.flags & 256 ? true : type.flags & 134217728 ? type.flags & 32768 ? true : every(type.types, isUnitType) : isUnitType(type);
}
function getBaseTypeOfLiteralType(type) {
- return type.flags & 1056 ? getBaseTypeOfEnumLikeType(type) : type.flags & (128 | 134217728 | 268435456) ? stringType : type.flags & 256 ? numberType : type.flags & 2048 ? bigintType : type.flags & 512 ? booleanType : type.flags & 1048576 ? getBaseTypeOfLiteralTypeUnion(type) : type;
+ return type.flags & 98304 ? getBaseTypeOfEnumLikeType(type) : type.flags & (1024 | 4194304 | 8388608) ? stringType : type.flags & 2048 ? numberType : type.flags & 4096 ? bigintType : type.flags & 8192 ? booleanType : type.flags & 134217728 ? getBaseTypeOfLiteralTypeUnion(type) : type;
}
function getBaseTypeOfLiteralTypeUnion(type) {
const key = `B${getTypeId(type)}`;
return getCachedType(key) ?? setCachedType(key, mapType(type, getBaseTypeOfLiteralType));
}
function getBaseTypeOfLiteralTypeForComparison(type) {
- return type.flags & (128 | 134217728 | 268435456) ? stringType : type.flags & (256 | 32) ? numberType : type.flags & 2048 ? bigintType : type.flags & 512 ? booleanType : type.flags & 1048576 ? mapType(type, getBaseTypeOfLiteralTypeForComparison) : type;
+ return type.flags & (1024 | 4194304 | 8388608) ? stringType : type.flags & (2048 | 65536) ? numberType : type.flags & 4096 ? bigintType : type.flags & 8192 ? booleanType : type.flags & 134217728 ? mapType(type, getBaseTypeOfLiteralTypeForComparison) : type;
}
function getWidenedLiteralType(type) {
- return type.flags & 1056 && isFreshLiteralType(type) ? getBaseTypeOfEnumLikeType(type) : type.flags & 128 && isFreshLiteralType(type) ? stringType : type.flags & 256 && isFreshLiteralType(type) ? numberType : type.flags & 2048 && isFreshLiteralType(type) ? bigintType : type.flags & 512 && isFreshLiteralType(type) ? booleanType : type.flags & 1048576 ? mapType(type, getWidenedLiteralType) : type;
+ return type.flags & 98304 && isFreshLiteralType(type) ? getBaseTypeOfEnumLikeType(type) : type.flags & 1024 && isFreshLiteralType(type) ? stringType : type.flags & 2048 && isFreshLiteralType(type) ? numberType : type.flags & 4096 && isFreshLiteralType(type) ? bigintType : type.flags & 8192 && isFreshLiteralType(type) ? booleanType : type.flags & 134217728 ? mapType(type, getWidenedLiteralType) : type;
}
function getWidenedUniqueESSymbolType(type) {
- return type.flags & 8192 ? esSymbolType : type.flags & 1048576 ? mapType(type, getWidenedUniqueESSymbolType) : type;
+ return type.flags & 16384 ? esSymbolType : type.flags & 134217728 ? mapType(type, getWidenedUniqueESSymbolType) : type;
}
function getWidenedLiteralLikeTypeForContextualType(type, contextualType) {
if (!isLiteralOfContextualType(type, contextualType)) {
@@ -64416,16 +64566,16 @@ ${lanes.join(`
return mapType(type, getDefinitelyFalsyPartOfType);
}
function getDefinitelyFalsyPartOfType(type) {
- return type.flags & 4 ? emptyStringType : type.flags & 8 ? zeroType : type.flags & 64 ? zeroBigIntType : type === regularFalseType || type === falseType || type.flags & (16384 | 32768 | 65536 | 3) || type.flags & 128 && type.value === "" || type.flags & 256 && type.value === 0 || type.flags & 2048 && isZeroBigInt(type) ? type : neverType;
+ return type.flags & 32 ? emptyStringType : type.flags & 64 ? zeroType : type.flags & 128 ? zeroBigIntType : type === regularFalseType || type === falseType || type.flags & (16 | 4 | 8 | 3) || type.flags & 1024 && type.value === "" || type.flags & 2048 && type.value === 0 || type.flags & 4096 && isZeroBigInt(type) ? type : neverType;
}
function getNullableType(type, flags) {
- const missing = flags & ~type.flags & (32768 | 65536);
- return missing === 0 ? type : missing === 32768 ? getUnionType([type, undefinedType]) : missing === 65536 ? getUnionType([type, nullType]) : getUnionType([type, undefinedType, nullType]);
+ const missing = flags & ~type.flags & (4 | 8);
+ return missing === 0 ? type : missing === 4 ? getUnionType([type, undefinedType]) : missing === 8 ? getUnionType([type, nullType]) : getUnionType([type, undefinedType, nullType]);
}
function getOptionalType(type, isProperty = false) {
Debug.assert(strictNullChecks);
const missingOrUndefined = isProperty ? undefinedOrMissingType : undefinedType;
- return type === missingOrUndefined || type.flags & 1048576 && type.types[0] === missingOrUndefined ? type : getUnionType([type, missingOrUndefined]);
+ return type === missingOrUndefined || type.flags & 134217728 && type.types[0] === missingOrUndefined ? type : getUnionType([type, missingOrUndefined]);
}
function getGlobalNonNullableTypeInstantiation(type) {
if (!deferredGlobalNonNullableTypeAlias) {
@@ -64452,17 +64602,17 @@ ${lanes.join(`
return exactOptionalPropertyTypes && isOptional ? removeType(type, missingType) : type;
}
function containsMissingType(type) {
- return type === missingType || !!(type.flags & 1048576) && type.types[0] === missingType;
+ return type === missingType || !!(type.flags & 134217728) && type.types[0] === missingType;
}
function removeMissingOrUndefinedType(type) {
return exactOptionalPropertyTypes ? removeType(type, missingType) : getTypeWithFacts(type, 524288);
}
function isCoercibleUnderDoubleEquals(source, target) {
- return (source.flags & (8 | 4 | 512)) !== 0 && (target.flags & (8 | 4 | 16)) !== 0;
+ return (source.flags & (64 | 32 | 8192)) !== 0 && (target.flags & (64 | 32 | 256)) !== 0;
}
function isObjectTypeWithInferableIndex(type) {
const objectFlags = getObjectFlags(type);
- return type.flags & 2097152 ? every(type.types, isObjectTypeWithInferableIndex) : !!(type.symbol && (type.symbol.flags & (4096 | 2048 | 384 | 512)) !== 0 && !(type.symbol.flags & 32) && !typeHasCallOrConstructSignatures(type)) || !!(objectFlags & 4194304) || !!(objectFlags & 1024 && isObjectTypeWithInferableIndex(type.source));
+ return type.flags & 268435456 ? every(type.types, isObjectTypeWithInferableIndex) : !!(type.symbol && (type.symbol.flags & (4096 | 2048 | 384 | 512)) !== 0 && !(type.symbol.flags & 32) && !typeHasCallOrConstructSignatures(type)) || !!(objectFlags & 4194304) || !!(objectFlags & 1024 && isObjectTypeWithInferableIndex(type.source));
}
function createSymbolWithType(source, type) {
const symbol = createSymbol(source.flags, source.escapedName, getCheckFlags(source) & 8);
@@ -64582,15 +64732,15 @@ ${lanes.join(`
return type.widened;
}
let result;
- if (type.flags & (1 | 98304)) {
+ if (type.flags & (1 | 12)) {
result = anyType;
} else if (isObjectLiteralType2(type)) {
result = getWidenedTypeOfObjectLiteral(type, context);
- } else if (type.flags & 1048576) {
+ } else if (type.flags & 134217728) {
const unionContext = context || createWideningContext(undefined, undefined, type.types);
- const widenedTypes = sameMap(type.types, (t) => t.flags & 98304 ? t : getWidenedTypeWithContext(t, unionContext));
+ const widenedTypes = sameMap(type.types, (t) => t.flags & 12 ? t : getWidenedTypeWithContext(t, unionContext));
result = getUnionType(widenedTypes, some(widenedTypes, isEmptyObjectType) ? 2 : 1);
- } else if (type.flags & 2097152) {
+ } else if (type.flags & 268435456) {
result = getIntersectionType(sameMap(type.types, getWidenedType));
} else if (isArrayOrTupleType(type)) {
result = createTypeReference(type.target, sameMap(getTypeArguments(type), getWidenedType));
@@ -64606,7 +64756,7 @@ ${lanes.join(`
var _a;
let errorReported = false;
if (getObjectFlags(type) & 65536) {
- if (type.flags & 1048576) {
+ if (type.flags & 134217728) {
if (some(type.types, isEmptyObjectType)) {
errorReported = true;
} else {
@@ -64775,18 +64925,18 @@ ${lanes.join(`
callback(getReturnTypeOfSignature(source), targetReturnType);
}
}
- function createInferenceContext(typeParameters, signature, flags, compareTypes) {
- return createInferenceContextWorker(typeParameters.map(createInferenceInfo), signature, flags, compareTypes || compareTypesAssignable);
+ function createInferenceContext(typeParameters, signature, flags, compareTypes2) {
+ return createInferenceContextWorker(typeParameters.map(createInferenceInfo), signature, flags, compareTypes2 || compareTypesAssignable);
}
function cloneInferenceContext(context, extraFlags = 0) {
return context && createInferenceContextWorker(map(context.inferences, cloneInferenceInfo), context.signature, context.flags | extraFlags, context.compareTypes);
}
- function createInferenceContextWorker(inferences, signature, flags, compareTypes) {
+ function createInferenceContextWorker(inferences, signature, flags, compareTypes2) {
const context = {
inferences,
signature,
flags,
- compareTypes,
+ compareTypes: compareTypes2,
mapper: reportUnmeasurableMapper,
nonFixingMapper: reportUnmeasurableMapper
};
@@ -64866,8 +65016,8 @@ ${lanes.join(`
if (objectFlags & 524288) {
return !!(objectFlags & 1048576);
}
- const result = !!(type.flags & 465829888 || type.flags & 524288 && !isNonGenericTopLevelType(type) && (objectFlags & 4 && (type.node || some(getTypeArguments(type), couldContainTypeVariables)) || objectFlags & 16 && type.symbol && type.symbol.flags & (16 | 8192 | 32 | 2048 | 4096) && type.symbol.declarations || objectFlags & (32 | 1024 | 4194304 | 8388608)) || type.flags & 3145728 && !(type.flags & 1024) && !isNonGenericTopLevelType(type) && some(type.types, couldContainTypeVariables));
- if (type.flags & 3899393) {
+ const result = !!(type.flags & 132644864 || type.flags & 1048576 && !isNonGenericTopLevelType(type) && (objectFlags & 4 && (type.node || some(getTypeArguments(type), couldContainTypeVariables)) || objectFlags & 16 && type.symbol && type.symbol.flags & (16 | 8192 | 32 | 2048 | 4096) && type.symbol.declarations || objectFlags & (32 | 1024 | 4194304 | 8388608)) || type.flags & 402653184 && !(type.flags & 32768) && !isNonGenericTopLevelType(type) && some(type.types, couldContainTypeVariables));
+ if (type.flags & 403963917) {
type.objectFlags |= 524288 | (result ? 1048576 : 0);
}
return result;
@@ -64880,7 +65030,7 @@ ${lanes.join(`
return false;
}
function isTypeParameterAtTopLevel(type, tp, depth = 0) {
- return !!(type === tp || type.flags & 3145728 && some(type.types, (t) => isTypeParameterAtTopLevel(t, tp, depth)) || depth < 3 && type.flags & 16777216 && (isTypeParameterAtTopLevel(getTrueTypeFromConditionalType(type), tp, depth + 1) || isTypeParameterAtTopLevel(getFalseTypeFromConditionalType(type), tp, depth + 1)));
+ return !!(type === tp || type.flags & 402653184 && some(type.types, (t) => isTypeParameterAtTopLevel(t, tp, depth)) || depth < 3 && type.flags & 67108864 && (isTypeParameterAtTopLevel(getTrueTypeFromConditionalType(type), tp, depth + 1) || isTypeParameterAtTopLevel(getFalseTypeFromConditionalType(type), tp, depth + 1)));
}
function isTypeParameterAtTopLevelInReturnType(signature, typeParameter) {
const typePredicate = getTypePredicateOfSignature(signature);
@@ -64889,7 +65039,7 @@ ${lanes.join(`
function createEmptyObjectTypeFromStringLiteral(type) {
const members = createSymbolTable();
forEachType(type, (t) => {
- if (!(t.flags & 128)) {
+ if (!(t.flags & 1024)) {
return;
}
const name = escapeLeadingUnderscores(t.value);
@@ -64901,7 +65051,7 @@ ${lanes.join(`
}
members.set(name, literalProp);
});
- const indexInfos = type.flags & 4 ? [createIndexInfo(stringType, emptyObjectType, false)] : emptyArray;
+ const indexInfos = type.flags & 32 ? [createIndexInfo(stringType, emptyObjectType, false)] : emptyArray;
return createAnonymousType(undefined, members, emptyArray, emptyArray, indexInfos);
}
function inferTypeForHomomorphicMappedType(source, target, constraint) {
@@ -64953,7 +65103,7 @@ ${lanes.join(`
const templateType = getTemplateTypeFromMappedType(target);
const inference = createInferenceInfo(typeParameter);
inferTypes([inference], sourceType, templateType);
- return getTypeFromInference(inference) || unknownType;
+ return getWidenedType(getTypeFromInference(inference) || unknownType);
}
function inferReverseMappedType(source, target, constraint) {
const cacheKey = source.id + "," + target.id + "," + constraint.id;
@@ -64989,7 +65139,7 @@ ${lanes.join(`
yield targetProp;
} else if (matchDiscriminantProperties) {
const targetType = getTypeOfSymbol(targetProp);
- if (targetType.flags & 109472) {
+ if (targetType.flags & 97292) {
const sourceType = getTypeOfSymbol(sourceProp);
if (!(sourceType.flags & 1 || getRegularTypeOfLiteralType(sourceType) === getRegularTypeOfLiteralType(targetType))) {
yield targetProp;
@@ -65039,12 +65189,12 @@ ${lanes.join(`
if (target.flags & 1) {
return true;
}
- if (target.flags & (4 | 134217728)) {
+ if (target.flags & (32 | 4194304)) {
return isTypeAssignableTo(source, target);
}
- if (target.flags & 268435456) {
+ if (target.flags & 8388608) {
const mappingStack = [];
- while (target.flags & 268435456) {
+ while (target.flags & 8388608) {
mappingStack.unshift(target.symbol);
target = target.type;
}
@@ -65054,24 +65204,24 @@ ${lanes.join(`
return false;
}
function isValidTypeForTemplateLiteralPlaceholder(source, target) {
- if (target.flags & 2097152) {
+ if (target.flags & 268435456) {
return every(target.types, (t) => t === emptyTypeLiteralType || isValidTypeForTemplateLiteralPlaceholder(source, t));
}
- if (target.flags & 4 || isTypeAssignableTo(source, target)) {
+ if (target.flags & 32 || isTypeAssignableTo(source, target)) {
return true;
}
- if (source.flags & 128) {
+ if (source.flags & 1024) {
const value = source.value;
- return !!(target.flags & 8 && isValidNumberString(value, false) || target.flags & 64 && isValidBigIntString(value, false) || target.flags & (512 | 98304) && value === target.intrinsicName || target.flags & 268435456 && isMemberOfStringMapping(source, target) || target.flags & 134217728 && isTypeMatchedByTemplateLiteralType(source, target));
+ return !!(target.flags & 64 && isValidNumberString(value, false) || target.flags & 128 && isValidBigIntString(value, false) || target.flags & (8192 | 12) && value === target.intrinsicName || target.flags & 8388608 && isMemberOfStringMapping(source, target) || target.flags & 4194304 && isTypeMatchedByTemplateLiteralType(source, target));
}
- if (source.flags & 134217728) {
+ if (source.flags & 4194304) {
const texts = source.texts;
return texts.length === 2 && texts[0] === "" && texts[1] === "" && isTypeAssignableTo(source.types[0], target);
}
return false;
}
function inferTypesFromTemplateLiteralType(source, target) {
- return source.flags & 128 ? inferFromLiteralPartsToTemplateLiteral([source.value], emptyArray, target) : source.flags & 134217728 ? arrayIsEqualTo(source.texts, target.texts) ? map(source.types, (s, i) => {
+ return source.flags & 1024 ? inferFromLiteralPartsToTemplateLiteral([source.value], emptyArray, target) : source.flags & 4194304 ? arrayIsEqualTo(source.texts, target.texts) ? map(source.types, (s, i) => {
return isTypeAssignableTo(getBaseConstraintOrType(s), getBaseConstraintOrType(target.types[i])) ? s : getStringLikeTypeForType(s);
}) : inferFromLiteralPartsToTemplateLiteral(source.texts, source.types, target) : undefined;
}
@@ -65080,7 +65230,7 @@ ${lanes.join(`
return !!inferences && every(inferences, (r, i) => isValidTypeForTemplateLiteralPlaceholder(r, target.types[i]));
}
function getStringLikeTypeForType(type) {
- return type.flags & (1 | 402653316) ? type : getTemplateLiteralType(["", ""], [type]);
+ return type.flags & (1 | 12583968) ? type : getTemplateLiteralType(["", ""], [type]);
}
function inferFromLiteralPartsToTemplateLiteral(sourceTexts, sourceTypes, target) {
const lastSourceIndex = sourceTexts.length - 1;
@@ -65162,14 +65312,14 @@ ${lanes.join(`
}
return;
}
- if (source === target && source.flags & 3145728) {
+ if (source === target && source.flags & 402653184) {
for (const t of source.types) {
inferFromTypes(t, t);
}
return;
}
- if (target.flags & 1048576) {
- const [tempSources, tempTargets] = inferFromMatchingTypes(source.flags & 1048576 ? source.types : [source], target.types, isTypeOrBaseIdenticalTo);
+ if (target.flags & 134217728) {
+ const [tempSources, tempTargets] = inferFromMatchingTypes(source.flags & 134217728 ? source.types : [source], target.types, isTypeOrBaseIdenticalTo);
const [sources, targets] = inferFromMatchingTypes(tempSources, tempTargets, isTypeCloselyMatchedBy);
if (targets.length === 0) {
return;
@@ -65180,9 +65330,9 @@ ${lanes.join(`
return;
}
source = getUnionType(sources);
- } else if (target.flags & 2097152 && !every(target.types, isNonGenericObjectType)) {
- if (!(source.flags & 1048576)) {
- const [sources, targets] = inferFromMatchingTypes(source.flags & 2097152 ? source.types : [source], target.types, isTypeIdenticalTo);
+ } else if (target.flags & 268435456 && !every(target.types, isNonGenericObjectType)) {
+ if (!(source.flags & 134217728)) {
+ const [sources, targets] = inferFromMatchingTypes(source.flags & 268435456 ? source.types : [source], target.types, isTypeIdenticalTo);
if (sources.length === 0 || targets.length === 0) {
return;
}
@@ -65190,13 +65340,13 @@ ${lanes.join(`
target = getIntersectionType(targets);
}
}
- if (target.flags & (8388608 | 33554432)) {
+ if (target.flags & (33554432 | 16777216)) {
if (isNoInferType(target)) {
return;
}
target = getActualTypeVariable(target);
}
- if (target.flags & 8650752) {
+ if (target.flags & 34078720) {
if (isFromInferenceBlockedSource(source)) {
return;
}
@@ -65227,7 +65377,7 @@ ${lanes.join(`
clearCachedInferences(inferences);
}
}
- if (!(priority & 128) && target.flags & 262144 && inference.topLevel && !isTypeParameterAtTopLevel(originalTarget, target)) {
+ if (!(priority & 128) && target.flags & 524288 && inference.topLevel && !isTypeParameterAtTopLevel(originalTarget, target)) {
inference.topLevel = false;
clearCachedInferences(inferences);
}
@@ -65238,9 +65388,9 @@ ${lanes.join(`
const simplified = getSimplifiedType(target, false);
if (simplified !== target) {
inferFromTypes(source, simplified);
- } else if (target.flags & 8388608) {
+ } else if (target.flags & 33554432) {
const indexType = getSimplifiedType(target.indexType, false);
- if (indexType.flags & 465829888) {
+ if (indexType.flags & 132644864) {
const simplified2 = distributeIndexOverObjectType(getSimplifiedType(target.objectType, false), indexType, false);
if (simplified2 && simplified2 !== target) {
inferFromTypes(source, simplified2);
@@ -65250,45 +65400,45 @@ ${lanes.join(`
}
if (getObjectFlags(source) & 4 && getObjectFlags(target) & 4 && (source.target === target.target || isArrayType(source) && isArrayType(target)) && !(source.node && target.node)) {
inferFromTypeArguments(getTypeArguments(source), getTypeArguments(target), getVariances(source.target));
- } else if (source.flags & 4194304 && target.flags & 4194304) {
+ } else if (source.flags & 2097152 && target.flags & 2097152) {
inferFromContravariantTypes(source.type, target.type);
- } else if ((isLiteralType(source) || source.flags & 4) && target.flags & 4194304) {
+ } else if ((isLiteralType(source) || source.flags & 32) && target.flags & 2097152) {
const empty = createEmptyObjectTypeFromStringLiteral(source);
inferFromContravariantTypesWithPriority(empty, target.type, 256);
- } else if (source.flags & 8388608 && target.flags & 8388608) {
+ } else if (source.flags & 33554432 && target.flags & 33554432) {
inferFromTypes(source.objectType, target.objectType);
inferFromTypes(source.indexType, target.indexType);
- } else if (source.flags & 268435456 && target.flags & 268435456) {
+ } else if (source.flags & 8388608 && target.flags & 8388608) {
if (source.symbol === target.symbol) {
inferFromTypes(source.type, target.type);
}
- } else if (source.flags & 33554432) {
+ } else if (source.flags & 16777216) {
inferFromTypes(source.baseType, target);
inferWithPriority(getSubstitutionIntersection(source), target, 4);
- } else if (target.flags & 16777216) {
+ } else if (target.flags & 67108864) {
invokeOnce(source, target, inferToConditionalType);
- } else if (target.flags & 3145728) {
+ } else if (target.flags & 402653184) {
inferToMultipleTypes(source, target.types, target.flags);
- } else if (source.flags & 1048576) {
+ } else if (source.flags & 134217728) {
const sourceTypes = source.types;
for (const sourceType of sourceTypes) {
inferFromTypes(sourceType, target);
}
- } else if (target.flags & 134217728) {
+ } else if (target.flags & 4194304) {
inferToTemplateLiteralType(source, target);
} else {
source = getReducedType(source);
if (isGenericMappedType(source) && isGenericMappedType(target)) {
invokeOnce(source, target, inferFromGenericMappedTypes);
}
- if (!(priority & 512 && source.flags & (2097152 | 465829888))) {
+ if (!(priority & 512 && source.flags & (268435456 | 132644864))) {
const apparentSource = getApparentType(source);
- if (apparentSource !== source && !(apparentSource.flags & (524288 | 2097152))) {
+ if (apparentSource !== source && !(apparentSource.flags & (1048576 | 268435456))) {
return inferFromTypes(apparentSource, target);
}
source = apparentSource;
}
- if (source.flags & (524288 | 2097152)) {
+ if (source.flags & (1048576 | 268435456)) {
invokeOnce(source, target, inferFromObjectTypes);
}
}
@@ -65379,7 +65529,7 @@ ${lanes.join(`
}
}
function getInferenceInfoForType(type) {
- if (type.flags & 8650752) {
+ if (type.flags & 34078720) {
for (const inference of inferences) {
if (type === inference.typeParameter) {
return inference;
@@ -65391,7 +65541,7 @@ ${lanes.join(`
function getSingleTypeVariableFromIntersectionTypes(types) {
let typeVariable;
for (const type of types) {
- const t = type.flags & 2097152 && find(type.types, (t2) => !!getInferenceInfoForType(t2));
+ const t = type.flags & 268435456 && find(type.types, (t2) => !!getInferenceInfoForType(t2));
if (!t || typeVariable && t !== typeVariable) {
return;
}
@@ -65401,9 +65551,9 @@ ${lanes.join(`
}
function inferToMultipleTypes(source, targets, targetFlags) {
let typeVariableCount = 0;
- if (targetFlags & 1048576) {
+ if (targetFlags & 134217728) {
let nakedTypeVariable;
- const sources = source.flags & 1048576 ? source.types : [source];
+ const sources = source.flags & 134217728 ? source.types : [source];
const matched = new Array(sources.length);
let inferenceCircularity = false;
for (const t of targets) {
@@ -65445,7 +65595,7 @@ ${lanes.join(`
}
}
}
- if (targetFlags & 2097152 ? typeVariableCount === 1 : typeVariableCount > 0) {
+ if (targetFlags & 268435456 ? typeVariableCount === 1 : typeVariableCount > 0) {
for (const t of targets) {
if (getInferenceInfoForType(t)) {
inferWithPriority(source, t, 1);
@@ -65454,14 +65604,14 @@ ${lanes.join(`
}
}
function inferToMappedType(source, target, constraintType) {
- if (constraintType.flags & 1048576 || constraintType.flags & 2097152) {
+ if (constraintType.flags & 134217728 || constraintType.flags & 268435456) {
let result = false;
for (const type of constraintType.types) {
result = inferToMappedType(source, target, type) || result;
}
return result;
}
- if (constraintType.flags & 4194304) {
+ if (constraintType.flags & 2097152) {
const inference = getInferenceInfoForType(constraintType.type);
if (inference && !inference.isFixed && !isFromInferenceBlockedSource(source)) {
const inferredType = inferTypeForHomomorphicMappedType(source, target, constraintType);
@@ -65471,7 +65621,7 @@ ${lanes.join(`
}
return true;
}
- if (constraintType.flags & 262144) {
+ if (constraintType.flags & 524288) {
inferWithPriority(getIndexType(source, source.pattern ? 2 : 0), constraintType, 32);
const extendedConstraint = getConstraintOfType(constraintType);
if (extendedConstraint && inferToMappedType(source, target, extendedConstraint)) {
@@ -65485,7 +65635,7 @@ ${lanes.join(`
return false;
}
function inferToConditionalType(source, target) {
- if (source.flags & 16777216) {
+ if (source.flags & 67108864) {
inferFromTypes(source.checkType, target.checkType);
inferFromTypes(source.extendsType, target.extendsType);
inferFromTypes(getTrueTypeFromConditionalType(source), getTrueTypeFromConditionalType(target));
@@ -65502,22 +65652,22 @@ ${lanes.join(`
for (let i = 0;i < types.length; i++) {
const source2 = matches ? matches[i] : neverType;
const target2 = types[i];
- if (source2.flags & 128 && target2.flags & 8650752) {
+ if (source2.flags & 1024 && target2.flags & 34078720) {
const inferenceContext = getInferenceInfoForType(target2);
const constraint = inferenceContext ? getBaseConstraintOfType(inferenceContext.typeParameter) : undefined;
if (constraint && !isTypeAny(constraint)) {
- const constraintTypes = constraint.flags & 1048576 ? constraint.types : [constraint];
+ const constraintTypes = constraint.flags & 134217728 ? constraint.types : [constraint];
let allTypeFlags = reduceLeft(constraintTypes, (flags, t) => flags | t.flags, 0);
- if (!(allTypeFlags & 4)) {
+ if (!(allTypeFlags & 32)) {
const str = source2.value;
- if (allTypeFlags & 296 && !isValidNumberString(str, true)) {
- allTypeFlags &= ~296;
+ if (allTypeFlags & 67648 && !isValidNumberString(str, true)) {
+ allTypeFlags &= ~67648;
}
- if (allTypeFlags & 2112 && !isValidBigIntString(str, true)) {
- allTypeFlags &= ~2112;
+ if (allTypeFlags & 4224 && !isValidBigIntString(str, true)) {
+ allTypeFlags &= ~4224;
}
- const matchingType = reduceLeft(constraintTypes, (left, right) => !(right.flags & allTypeFlags) ? left : left.flags & 4 ? left : right.flags & 4 ? source2 : left.flags & 134217728 ? left : right.flags & 134217728 && isTypeMatchedByTemplateLiteralType(source2, right) ? source2 : left.flags & 268435456 ? left : right.flags & 268435456 && str === applyStringMapping(right.symbol, str) ? source2 : left.flags & 128 ? left : right.flags & 128 && right.value === str ? right : left.flags & 8 ? left : right.flags & 8 ? getNumberLiteralType(+str) : left.flags & 32 ? left : right.flags & 32 ? getNumberLiteralType(+str) : left.flags & 256 ? left : right.flags & 256 && right.value === +str ? right : left.flags & 64 ? left : right.flags & 64 ? parseBigIntLiteralType(str) : left.flags & 2048 ? left : right.flags & 2048 && pseudoBigIntToString(right.value) === str ? right : left.flags & 16 ? left : right.flags & 16 ? str === "true" ? trueType : str === "false" ? falseType : booleanType : left.flags & 512 ? left : right.flags & 512 && right.intrinsicName === str ? right : left.flags & 32768 ? left : right.flags & 32768 && right.intrinsicName === str ? right : left.flags & 65536 ? left : right.flags & 65536 && right.intrinsicName === str ? right : left, neverType);
- if (!(matchingType.flags & 131072)) {
+ const matchingType = reduceLeft(constraintTypes, (left, right) => !(right.flags & allTypeFlags) ? left : left.flags & 32 ? left : right.flags & 32 ? source2 : left.flags & 4194304 ? left : right.flags & 4194304 && isTypeMatchedByTemplateLiteralType(source2, right) ? source2 : left.flags & 8388608 ? left : right.flags & 8388608 && str === applyStringMapping(right.symbol, str) ? source2 : left.flags & 1024 ? left : right.flags & 1024 && right.value === str ? right : left.flags & 64 ? left : right.flags & 64 ? getNumberLiteralType(+str) : left.flags & 65536 ? left : right.flags & 65536 ? getNumberLiteralType(+str) : left.flags & 2048 ? left : right.flags & 2048 && right.value === +str ? right : left.flags & 128 ? left : right.flags & 128 ? parseBigIntLiteralType(str) : left.flags & 4096 ? left : right.flags & 4096 && pseudoBigIntToString(right.value) === str ? right : left.flags & 256 ? left : right.flags & 256 ? str === "true" ? trueType : str === "false" ? falseType : booleanType : left.flags & 8192 ? left : right.flags & 8192 && right.intrinsicName === str ? right : left.flags & 4 ? left : right.flags & 4 && right.intrinsicName === str ? right : left.flags & 8 ? left : right.flags & 8 && right.intrinsicName === str ? right : left, neverType);
+ if (!(matchingType.flags & 262144)) {
inferFromTypes(matchingType, target2);
continue;
}
@@ -65668,7 +65818,7 @@ ${lanes.join(`
for (const targetInfo of indexInfos) {
const propTypes = [];
for (const prop of getPropertiesOfType(source)) {
- if (isApplicableIndexType(getLiteralTypeFromProperty(prop, 8576), targetInfo.keyType)) {
+ if (isApplicableIndexType(getLiteralTypeFromProperty(prop, 19456), targetInfo.keyType)) {
const propType = getTypeOfSymbol(prop);
propTypes.push(prop.flags & 16777216 ? removeMissingOrUndefinedType(propType) : propType);
}
@@ -65692,14 +65842,14 @@ ${lanes.join(`
}
}
function isTypeOrBaseIdenticalTo(s, t) {
- return t === missingType ? s === t : isTypeIdenticalTo(s, t) || !!(t.flags & 4 && s.flags & 128 || t.flags & 8 && s.flags & 256);
+ return t === missingType ? s === t : isTypeIdenticalTo(s, t) || !!(t.flags & 32 && s.flags & 1024 || t.flags & 64 && s.flags & 2048);
}
function isTypeCloselyMatchedBy(s, t) {
- return !!(s.flags & 524288 && t.flags & 524288 && s.symbol && s.symbol === t.symbol || s.aliasSymbol && s.aliasTypeArguments && s.aliasSymbol === t.aliasSymbol);
+ return !!(s.flags & 1048576 && t.flags & 1048576 && s.symbol && s.symbol === t.symbol || s.aliasSymbol && s.aliasTypeArguments && s.aliasSymbol === t.aliasSymbol);
}
function hasPrimitiveConstraint(type) {
const constraint = getConstraintOfTypeParameter(type);
- return !!constraint && maybeTypeOfKind(constraint.flags & 16777216 ? getDefaultConstraintOfConditionalType(constraint) : constraint, 402784252 | 4194304 | 134217728 | 268435456);
+ return !!constraint && maybeTypeOfKind(constraint.flags & 67108864 ? getDefaultConstraintOfConditionalType(constraint) : constraint, 12713980 | 2097152 | 4194304 | 8388608);
}
function isObjectLiteralType2(type) {
return !!(getObjectFlags(type) & 128);
@@ -65737,7 +65887,7 @@ ${lanes.join(`
const inferredCovariantType = inference.candidates ? getCovariantInference(inference, context.signature) : undefined;
const inferredContravariantType = inference.contraCandidates ? getContravariantInference(inference) : undefined;
if (inferredCovariantType || inferredContravariantType) {
- const preferCovariantType = inferredCovariantType && (!inferredContravariantType || !(inferredCovariantType.flags & (131072 | 1)) && some(inference.contraCandidates, (t) => isTypeAssignableTo(inferredCovariantType, t)) && every(context.inferences, (other) => other !== inference && getConstraintOfTypeParameter(other.typeParameter) !== inference.typeParameter || every(other.candidates, (t) => isTypeAssignableTo(t, inferredCovariantType))));
+ const preferCovariantType = inferredCovariantType && (!inferredContravariantType || !(inferredCovariantType.flags & (262144 | 1)) && some(inference.contraCandidates, (t) => isTypeAssignableTo(inferredCovariantType, t)) && every(context.inferences, (other) => other !== inference && getConstraintOfTypeParameter(other.typeParameter) !== inference.typeParameter || every(other.candidates, (t) => isTypeAssignableTo(t, inferredCovariantType))));
inferredType = preferCovariantType ? inferredCovariantType : inferredContravariantType;
fallbackType = preferCovariantType ? inferredContravariantType : inferredCovariantType;
} else if (context.flags & 1) {
@@ -65755,9 +65905,17 @@ ${lanes.join(`
const constraint = getConstraintOfTypeParameter(inference.typeParameter);
if (constraint) {
const instantiatedConstraint = instantiateType(constraint, context.nonFixingMapper);
- if (!inferredType || !context.compareTypes(inferredType, getTypeWithThisArgument(instantiatedConstraint, inferredType))) {
- inference.inferredType = fallbackType && context.compareTypes(fallbackType, getTypeWithThisArgument(instantiatedConstraint, fallbackType)) ? fallbackType : instantiatedConstraint;
+ if (inferredType) {
+ const constraintWithThis = getTypeWithThisArgument(instantiatedConstraint, inferredType);
+ if (!context.compareTypes(inferredType, constraintWithThis)) {
+ const filteredByConstraint = inference.priority === 128 ? filterType(inferredType, (t) => !!context.compareTypes(t, constraintWithThis)) : neverType;
+ inferredType = !(filteredByConstraint.flags & 262144) ? filteredByConstraint : undefined;
+ }
}
+ if (!inferredType) {
+ inferredType = fallbackType && context.compareTypes(fallbackType, getTypeWithThisArgument(instantiatedConstraint, fallbackType)) ? fallbackType : instantiatedConstraint;
+ }
+ inference.inferredType = inferredType;
}
clearActiveMapperCaches();
}
@@ -65779,19 +65937,21 @@ ${lanes.join(`
case "console":
return Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom;
case "$":
- return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery;
+ return usesWildcardTypes(compilerOptions) ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig;
+ case "beforeEach":
case "describe":
case "suite":
case "it":
case "test":
- return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha;
+ return usesWildcardTypes(compilerOptions) ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig;
case "process":
case "require":
case "Buffer":
case "module":
- return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode;
+ case "NodeJS":
+ return usesWildcardTypes(compilerOptions) ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig;
case "Bun":
- return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun;
+ return usesWildcardTypes(compilerOptions) ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig;
case "Map":
case "Set":
case "Promise":
@@ -65823,6 +65983,18 @@ ${lanes.join(`
}
}
}
+ function getCannotResolveModuleNameErrorForSpecificModule(moduleName) {
+ if (moduleName.kind === 11) {
+ if (nodeCoreModules.has(moduleName.text)) {
+ if (usesWildcardTypes(compilerOptions)) {
+ return Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode;
+ } else {
+ return Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig;
+ }
+ }
+ }
+ return;
+ }
function getResolvedSymbol(node) {
const links = getNodeLinks(node);
if (!links.resolvedSymbol) {
@@ -65935,7 +66107,7 @@ ${lanes.join(`
return;
}
function tryGetNameFromType(type) {
- return type.flags & 8192 ? type.escapedName : type.flags & 384 ? escapeLeadingUnderscores("" + type.value) : undefined;
+ return type.flags & 16384 ? type.escapedName : type.flags & 3072 ? escapeLeadingUnderscores("" + type.value) : undefined;
}
function tryGetElementAccessExpressionName(node) {
return isStringOrNumericLiteralLike(node.argumentExpression) ? escapeLeadingUnderscores(node.argumentExpression.text) : isEntityNameExpression(node.argumentExpression) ? tryGetNameFromEntityNameExpression(node.argumentExpression) : undefined;
@@ -65985,7 +66157,7 @@ ${lanes.join(`
return false;
}
function isDiscriminantProperty(type, name) {
- if (type && type.flags & 1048576) {
+ if (type && type.flags & 134217728) {
const prop = getUnionOrIntersectionProperty(type, name);
if (prop && getCheckFlags(prop) & 2) {
if (prop.links.isDiscriminantProperty === undefined) {
@@ -66013,37 +66185,35 @@ ${lanes.join(`
const map2 = /* @__PURE__ */ new Map;
let count = 0;
for (const type of types) {
- if (type.flags & (524288 | 2097152 | 58982400)) {
+ if (type.flags & (1048576 | 268435456 | 117964800)) {
const discriminant = getTypeOfPropertyOfType(type, name);
- if (discriminant) {
- if (!isLiteralType(discriminant)) {
- return;
- }
- let duplicate = false;
- forEachType(discriminant, (t) => {
- const id = getTypeId(getRegularTypeOfLiteralType(t));
- const existing = map2.get(id);
- if (!existing) {
- map2.set(id, type);
- } else if (existing !== unknownType) {
- map2.set(id, unknownType);
- duplicate = true;
- }
- });
- if (!duplicate)
- count++;
+ if (!discriminant || !isLiteralType(discriminant)) {
+ return;
}
+ let duplicate = false;
+ forEachType(discriminant, (t) => {
+ const id = getTypeId(getRegularTypeOfLiteralType(t));
+ const existing = map2.get(id);
+ if (!existing) {
+ map2.set(id, type);
+ } else if (existing !== unknownType) {
+ map2.set(id, unknownType);
+ duplicate = true;
+ }
+ });
+ if (!duplicate)
+ count++;
}
}
return count >= 10 && count * 2 >= types.length ? map2 : undefined;
}
function getKeyPropertyName(unionType) {
const types = unionType.types;
- if (types.length < 10 || getObjectFlags(unionType) & 32768 || countWhere(types, (t) => !!(t.flags & (524288 | 58982400))) < 10) {
+ if (types.length < 10 || getObjectFlags(unionType) & 32768 || countWhere(types, (t) => !!(t.flags & (1048576 | 117964800))) < 10) {
return;
}
if (unionType.keyPropertyName === undefined) {
- const keyPropertyName = forEach(types, (t) => t.flags & (524288 | 58982400) ? forEach(getPropertiesOfType(t), (p) => isUnitType(getTypeOfSymbol(p)) ? p.escapedName : undefined) : undefined);
+ const keyPropertyName = forEach(types, (t) => t.flags & (1048576 | 117964800) ? forEach(getPropertiesOfType(t), (p) => isUnitType(getTypeOfSymbol(p)) ? p.escapedName : undefined) : undefined);
const mapByKeyProperty = keyPropertyName && mapTypesByKeyProperty(types, keyPropertyName);
unionType.keyPropertyName = mapByKeyProperty ? keyPropertyName : "";
unionType.constituentMap = mapByKeyProperty;
@@ -66090,7 +66260,7 @@ ${lanes.join(`
return flow.id;
}
function typeMaybeAssignableTo(source, target) {
- if (!(source.flags & 1048576)) {
+ if (!(source.flags & 134217728)) {
return isTypeAssignableTo(source, target);
}
for (const t of source.types) {
@@ -66104,7 +66274,7 @@ ${lanes.join(`
if (declaredType === assignedType) {
return declaredType;
}
- if (assignedType.flags & 131072) {
+ if (assignedType.flags & 262144) {
return assignedType;
}
const key = `A${getTypeId(declaredType)},${getTypeId(assignedType)}`;
@@ -66112,7 +66282,7 @@ ${lanes.join(`
}
function getAssignmentReducedTypeWorker(declaredType, assignedType) {
const filteredType = filterType(declaredType, (t) => typeMaybeAssignableTo(assignedType, t));
- const reducedType = assignedType.flags & 512 && isFreshLiteralType(assignedType) ? mapType(filteredType, getFreshTypeOfLiteralType) : filteredType;
+ const reducedType = assignedType.flags & 8192 && isFreshLiteralType(assignedType) ? mapType(filteredType, getFreshTypeOfLiteralType) : filteredType;
return isTypeAssignableTo(assignedType, reducedType) ? reducedType : declaredType;
}
function isFunctionObjectType(type) {
@@ -66129,76 +66299,76 @@ ${lanes.join(`
return getTypeFacts(type, mask2) !== 0;
}
function getTypeFactsWorker(type, callerOnlyNeeds) {
- if (type.flags & (2097152 | 465829888)) {
+ if (type.flags & (268435456 | 132644864)) {
type = getBaseConstraintOfType(type) || unknownType;
}
const flags = type.flags;
- if (flags & (4 | 268435456)) {
+ if (flags & (32 | 8388608)) {
return strictNullChecks ? 16317953 : 16776705;
}
- if (flags & (128 | 134217728)) {
- const isEmpty = flags & 128 && type.value === "";
+ if (flags & (1024 | 4194304)) {
+ const isEmpty = flags & 1024 && type.value === "";
return strictNullChecks ? isEmpty ? 12123649 : 7929345 : isEmpty ? 12582401 : 16776705;
}
- if (flags & (8 | 32)) {
+ if (flags & (64 | 65536)) {
return strictNullChecks ? 16317698 : 16776450;
}
- if (flags & 256) {
+ if (flags & 2048) {
const isZero = type.value === 0;
return strictNullChecks ? isZero ? 12123394 : 7929090 : isZero ? 12582146 : 16776450;
}
- if (flags & 64) {
+ if (flags & 128) {
return strictNullChecks ? 16317188 : 16775940;
}
- if (flags & 2048) {
+ if (flags & 4096) {
const isZero = isZeroBigInt(type);
return strictNullChecks ? isZero ? 12122884 : 7928580 : isZero ? 12581636 : 16775940;
}
- if (flags & 16) {
+ if (flags & 256) {
return strictNullChecks ? 16316168 : 16774920;
}
- if (flags & 528) {
+ if (flags & 8448) {
return strictNullChecks ? type === falseType || type === regularFalseType ? 12121864 : 7927560 : type === falseType || type === regularFalseType ? 12580616 : 16774920;
}
- if (flags & 524288) {
+ if (flags & 1048576) {
const possibleFacts = strictNullChecks ? 83427327 | 7880640 | 7888800 : 83886079 | 16728000 | 16736160;
if ((callerOnlyNeeds & possibleFacts) === 0) {
return 0;
}
return getObjectFlags(type) & 16 && isEmptyObjectType(type) ? strictNullChecks ? 83427327 : 83886079 : isFunctionObjectType(type) ? strictNullChecks ? 7880640 : 16728000 : strictNullChecks ? 7888800 : 16736160;
}
- if (flags & 16384) {
+ if (flags & 16) {
return 9830144;
}
- if (flags & 32768) {
+ if (flags & 4) {
return 26607360;
}
- if (flags & 65536) {
+ if (flags & 8) {
return 42917664;
}
- if (flags & 12288) {
+ if (flags & 16896) {
return strictNullChecks ? 7925520 : 16772880;
}
- if (flags & 67108864) {
+ if (flags & 131072) {
return strictNullChecks ? 7888800 : 16736160;
}
- if (flags & 131072) {
+ if (flags & 262144) {
return 0;
}
- if (flags & 1048576) {
+ if (flags & 134217728) {
return reduceLeft(type.types, (facts, t) => facts | getTypeFactsWorker(t, callerOnlyNeeds), 0);
}
- if (flags & 2097152) {
+ if (flags & 268435456) {
return getIntersectionTypeFacts(type, callerOnlyNeeds);
}
return 83886079;
}
function getIntersectionTypeFacts(type, callerOnlyNeeds) {
- const ignoreObjects = maybeTypeOfKind(type, 402784252);
+ const ignoreObjects = maybeTypeOfKind(type, 12713980);
let oredFacts = 0;
let andedFacts = 134217727;
for (const t of type.types) {
- if (!(ignoreObjects && t.flags & 524288)) {
+ if (!(ignoreObjects && t.flags & 1048576)) {
const f = getTypeFactsWorker(t, callerOnlyNeeds);
oredFacts |= f;
andedFacts &= f;
@@ -66375,13 +66545,13 @@ ${lanes.join(`
return witnesses;
}
function eachTypeContainedIn(source, types) {
- return source.flags & 1048576 ? !forEach(source.types, (t) => !contains(types, t)) : contains(types, source);
+ return source.flags & 134217728 ? !forEach(source.types, (t) => !contains(types, t)) : contains(types, source);
}
function isTypeSubsetOf(source, target) {
- return !!(source === target || source.flags & 131072 || target.flags & 1048576 && isTypeSubsetOfUnion(source, target));
+ return !!(source === target || source.flags & 262144 || target.flags & 134217728 && isTypeSubsetOfUnion(source, target));
}
function isTypeSubsetOfUnion(source, target) {
- if (source.flags & 1048576) {
+ if (source.flags & 134217728) {
for (const t of source.types) {
if (!containsType(target.types, t)) {
return false;
@@ -66389,25 +66559,25 @@ ${lanes.join(`
}
return true;
}
- if (source.flags & 1056 && getBaseTypeOfEnumLikeType(source) === target) {
+ if (source.flags & 98304 && getBaseTypeOfEnumLikeType(source) === target) {
return true;
}
return containsType(target.types, source);
}
function forEachType(type, f) {
- return type.flags & 1048576 ? forEach(type.types, f) : f(type);
+ return type.flags & 134217728 ? forEach(type.types, f) : f(type);
}
function someType(type, f) {
- return type.flags & 1048576 ? some(type.types, f) : f(type);
+ return type.flags & 134217728 ? some(type.types, f) : f(type);
}
function everyType(type, f) {
- return type.flags & 1048576 ? every(type.types, f) : f(type);
+ return type.flags & 134217728 ? every(type.types, f) : f(type);
}
function everyContainedType(type, f) {
- return type.flags & 3145728 ? every(type.types, f) : f(type);
+ return type.flags & 402653184 ? every(type.types, f) : f(type);
}
function filterType(type, f) {
- if (type.flags & 1048576) {
+ if (type.flags & 134217728) {
const types = type.types;
const filtered = filter(types, f);
if (filtered === types) {
@@ -66415,39 +66585,39 @@ ${lanes.join(`
}
const origin = type.origin;
let newOrigin;
- if (origin && origin.flags & 1048576) {
+ if (origin && origin.flags & 134217728) {
const originTypes = origin.types;
- const originFiltered = filter(originTypes, (t) => !!(t.flags & 1048576) || f(t));
+ const originFiltered = filter(originTypes, (t) => !!(t.flags & 134217728) || f(t));
if (originTypes.length - originFiltered.length === types.length - filtered.length) {
if (originFiltered.length === 1) {
return originFiltered[0];
}
- newOrigin = createOriginUnionOrIntersectionType(1048576, originFiltered);
+ newOrigin = createOriginUnionOrIntersectionType(134217728, originFiltered);
}
}
return getUnionTypeFromSortedList(filtered, type.objectFlags & (32768 | 16777216), undefined, undefined, newOrigin);
}
- return type.flags & 131072 || f(type) ? type : neverType;
+ return type.flags & 262144 || f(type) ? type : neverType;
}
function removeType(type, targetType) {
return filterType(type, (t) => t !== targetType);
}
function countTypes(type) {
- return type.flags & 1048576 ? type.types.length : 1;
+ return type.flags & 134217728 ? type.types.length : 1;
}
function mapType(type, mapper, noReductions) {
- if (type.flags & 131072) {
+ if (type.flags & 262144) {
return type;
}
- if (!(type.flags & 1048576)) {
+ if (!(type.flags & 134217728)) {
return mapper(type);
}
const origin = type.origin;
- const types = origin && origin.flags & 1048576 ? origin.types : type.types;
+ const types = origin && origin.flags & 134217728 ? origin.types : type.types;
let mappedTypes;
let changed = false;
for (const t of types) {
- const mapped = t.flags & 1048576 ? mapType(t, mapper, noReductions) : mapper(t);
+ const mapped = t.flags & 134217728 ? mapType(t, mapper, noReductions) : mapper(t);
changed || (changed = t !== mapped);
if (mapped) {
if (!mappedTypes) {
@@ -66460,14 +66630,14 @@ ${lanes.join(`
return changed ? mappedTypes && getUnionType(mappedTypes, noReductions ? 0 : 1) : type;
}
function mapTypeWithAlias(type, mapper, aliasSymbol, aliasTypeArguments) {
- return type.flags & 1048576 && aliasSymbol ? getUnionType(map(type.types, mapper), 1, aliasSymbol, aliasTypeArguments) : mapType(type, mapper);
+ return type.flags & 134217728 && aliasSymbol ? getUnionType(map(type.types, mapper), 1, aliasSymbol, aliasTypeArguments) : mapType(type, mapper);
}
function extractTypesOfKind(type, kind) {
return filterType(type, (t) => (t.flags & kind) !== 0);
}
function replacePrimitivesWithLiterals(typeWithPrimitives, typeWithLiterals) {
- if (maybeTypeOfKind(typeWithPrimitives, 4 | 134217728 | 8 | 64) && maybeTypeOfKind(typeWithLiterals, 128 | 134217728 | 268435456 | 256 | 2048)) {
- return mapType(typeWithPrimitives, (t) => t.flags & 4 ? extractTypesOfKind(typeWithLiterals, 4 | 128 | 134217728 | 268435456) : isPatternLiteralType(t) && !maybeTypeOfKind(typeWithLiterals, 4 | 134217728 | 268435456) ? extractTypesOfKind(typeWithLiterals, 128) : t.flags & 8 ? extractTypesOfKind(typeWithLiterals, 8 | 256) : t.flags & 64 ? extractTypesOfKind(typeWithLiterals, 64 | 2048) : t);
+ if (maybeTypeOfKind(typeWithPrimitives, 32 | 4194304 | 64 | 128) && maybeTypeOfKind(typeWithLiterals, 1024 | 4194304 | 8388608 | 2048 | 4096)) {
+ return mapType(typeWithPrimitives, (t) => t.flags & 32 ? extractTypesOfKind(typeWithLiterals, 32 | 1024 | 4194304 | 8388608) : isPatternLiteralType(t) && !maybeTypeOfKind(typeWithLiterals, 32 | 4194304 | 8388608) ? extractTypesOfKind(typeWithLiterals, 1024) : t.flags & 64 ? extractTypesOfKind(typeWithLiterals, 64 | 2048) : t.flags & 128 ? extractTypesOfKind(typeWithLiterals, 128 | 4096) : t);
}
return typeWithPrimitives;
}
@@ -66478,7 +66648,7 @@ ${lanes.join(`
return flowType.flags === 0 ? flowType.type : flowType;
}
function createFlowType(type, incomplete) {
- return incomplete ? { flags: 0, type: type.flags & 131072 ? silentNeverType : type } : type;
+ return incomplete ? { flags: 0, type: type.flags & 262144 ? silentNeverType : type } : type;
}
function createEvolvingArrayType(elementType) {
const result = createObjectType(256);
@@ -66493,7 +66663,7 @@ ${lanes.join(`
return isTypeSubsetOf(elementType, evolvingArrayType.elementType) ? evolvingArrayType : getEvolvingArrayType(getUnionType([evolvingArrayType.elementType, elementType]));
}
function createFinalArrayType(elementType) {
- return elementType.flags & 131072 ? autoArrayType : createArrayType(elementType.flags & 1048576 ? getUnionType(elementType.types, 2) : elementType);
+ return elementType.flags & 262144 ? autoArrayType : createArrayType(elementType.flags & 134217728 ? getUnionType(elementType.types, 2) : elementType);
}
function getFinalArrayType(evolvingArrayType) {
return evolvingArrayType.finalArrayType || (evolvingArrayType.finalArrayType = createFinalArrayType(evolvingArrayType.elementType));
@@ -66507,7 +66677,7 @@ ${lanes.join(`
function isEvolvingArrayTypeList(types) {
let hasEvolvingArrayType = false;
for (const t of types) {
- if (!(t.flags & 131072)) {
+ if (!(t.flags & 262144)) {
if (!(getObjectFlags(t) & 256)) {
return false;
}
@@ -66520,7 +66690,7 @@ ${lanes.join(`
const root = getReferenceRoot(node);
const parent2 = root.parent;
const isLengthPushOrUnshift = isPropertyAccessExpression(parent2) && (parent2.name.escapedText === "length" || parent2.parent.kind === 214 && isIdentifier(parent2.name) && isPushOrUnshiftIdentifier(parent2.name));
- const isElementAssignment = parent2.kind === 213 && parent2.expression === root && parent2.parent.kind === 227 && parent2.parent.operatorToken.kind === 64 && parent2.parent.left === parent2 && !isAssignmentTarget(parent2.parent) && isTypeAssignableToKind(getTypeOfExpression(parent2.argumentExpression), 296);
+ const isElementAssignment = parent2.kind === 213 && parent2.expression === root && parent2.parent.kind === 227 && parent2.parent.operatorToken.kind === 64 && parent2.parent.left === parent2 && !isAssignmentTarget(parent2.parent) && isTypeAssignableToKind(getTypeOfExpression(parent2.argumentExpression), 67648);
return isLengthPushOrUnshift || isElementAssignment;
}
function isDeclarationWithExplicitTypeAnnotation(node) {
@@ -66613,7 +66783,7 @@ ${lanes.join(`
return signature === unknownSignature ? undefined : signature;
}
function hasTypePredicateOrNeverReturnType(signature) {
- return !!(getTypePredicateOfSignature(signature) || signature.declaration && (getReturnTypeFromAnnotation(signature.declaration) || unknownType).flags & 131072);
+ return !!(getTypePredicateOfSignature(signature) || signature.declaration && (getReturnTypeFromAnnotation(signature.declaration) || unknownType).flags & 262144);
}
function getTypePredicateArgument(predicate, callExpression) {
if (predicate.kind === 1 || predicate.kind === 3) {
@@ -66664,7 +66834,7 @@ ${lanes.join(`
return false;
}
}
- if (getReturnTypeOfSignature(signature).flags & 131072) {
+ if (getReturnTypeOfSignature(signature).flags & 262144) {
return false;
}
}
@@ -66765,7 +66935,7 @@ ${lanes.join(`
const evolvedType = getTypeFromFlowType(getTypeAtFlowNode(flowNode));
sharedFlowCount = sharedFlowStart;
const resultType = getObjectFlags(evolvedType) & 256 && isEvolvingArrayOperationTarget(reference) ? autoArrayType : finalizeEvolvingArrayType(evolvedType);
- if (resultType === unreachableNeverType || reference.parent && reference.parent.kind === 236 && !(resultType.flags & 131072) && getTypeWithFacts(resultType, 2097152).flags & 131072) {
+ if (resultType === unreachableNeverType || reference.parent && reference.parent.kind === 236 && !(resultType.flags & 262144) && getTypeWithFacts(resultType, 2097152).flags & 262144) {
return declaredType;
}
return resultType;
@@ -66873,7 +67043,7 @@ ${lanes.join(`
return isTypeAssignableTo(assignedType, declaredType) ? assignedType : anyArrayType;
}
const t = isInCompoundLikeAssignment(node) ? getBaseTypeOfLiteralType(declaredType) : declaredType;
- if (t.flags & 1048576) {
+ if (t.flags & 134217728) {
return getAssignmentReducedType(t, getInitialOrAssignedType(flow));
}
return t;
@@ -66920,7 +67090,7 @@ ${lanes.join(`
const narrowedType = predicate.type ? narrowTypeByTypePredicate(type, predicate, flow.node, true) : predicate.kind === 3 && predicate.parameterIndex >= 0 && predicate.parameterIndex < flow.node.arguments.length ? narrowTypeByAssertion(type, flow.node.arguments[predicate.parameterIndex]) : type;
return narrowedType === type ? flowType : createFlowType(narrowedType, isIncomplete(flowType));
}
- if (getReturnTypeOfSignature(signature).flags & 131072) {
+ if (getReturnTypeOfSignature(signature).flags & 262144) {
return unreachableNeverType;
}
}
@@ -66941,7 +67111,7 @@ ${lanes.join(`
}
} else {
const indexType = getContextFreeTypeOfExpression(node.left.argumentExpression);
- if (isTypeAssignableToKind(indexType, 296)) {
+ if (isTypeAssignableToKind(indexType, 67648)) {
evolvedType2 = addEvolvingArrayElementType(evolvedType2, node.right);
}
}
@@ -66955,7 +67125,7 @@ ${lanes.join(`
function getTypeAtFlowCondition(flow) {
const flowType = getTypeAtFlowNode(flow.antecedent);
const type = getTypeFromFlowType(flowType);
- if (type.flags & 131072) {
+ if (type.flags & 262144) {
return flowType;
}
const assumeTrue = (flow.flags & 32) !== 0;
@@ -66979,9 +67149,9 @@ ${lanes.join(`
} else {
if (strictNullChecks) {
if (optionalChainContainsReference(expr, reference)) {
- type = narrowTypeBySwitchOptionalChainContainment(type, flow.node, (t) => !(t.flags & (32768 | 131072)));
+ type = narrowTypeBySwitchOptionalChainContainment(type, flow.node, (t) => !(t.flags & (4 | 262144)));
} else if (expr.kind === 222 && optionalChainContainsReference(expr.expression, reference)) {
- type = narrowTypeBySwitchOptionalChainContainment(type, flow.node, (t) => !(t.flags & 131072 || t.flags & 128 && t.value === "undefined"));
+ type = narrowTypeBySwitchOptionalChainContainment(type, flow.node, (t) => !(t.flags & 262144 || t.flags & 1024 && t.value === "undefined"));
}
}
const access = getDiscriminantPropertyAccess(expr, type);
@@ -67017,7 +67187,7 @@ ${lanes.join(`
if (bypassFlow) {
const flowType = getTypeAtFlowNode(bypassFlow);
const type = getTypeFromFlowType(flowType);
- if (!(type.flags & 131072) && !contains(antecedentTypes, type) && !isExhaustiveSwitchStatement(bypassFlow.node.switchStatement)) {
+ if (!(type.flags & 262144) && !contains(antecedentTypes, type) && !isExhaustiveSwitchStatement(bypassFlow.node.switchStatement)) {
if (type === declaredType && declaredType === initialType) {
return type;
}
@@ -67091,7 +67261,7 @@ ${lanes.join(`
return getEvolvingArrayType(getUnionType(map(types, getElementTypeOfEvolvingArrayType)));
}
const result = recombineUnknownType(getUnionType(sameMap(types, finalizeEvolvingArrayType), subtypeReduction));
- if (result !== declaredType && result.flags & declaredType.flags & 1048576 && arrayIsEqualTo(result.types, declaredType.types)) {
+ if (result !== declaredType && result.flags & declaredType.flags & 134217728 && arrayIsEqualTo(result.types, declaredType.types)) {
return declaredType;
}
return result;
@@ -67113,26 +67283,30 @@ ${lanes.join(`
const symbol = getResolvedSymbol(expr);
if (isConstantVariable(symbol)) {
const declaration = symbol.valueDeclaration;
- if (isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && isAccessExpression(declaration.initializer) && isMatchingReference(reference, declaration.initializer.expression)) {
- return declaration.initializer;
+ let initializer = getCandidateVariableDeclarationInitializer(declaration);
+ if (initializer && isAccessExpression(initializer) && isMatchingReference(reference, initializer.expression)) {
+ return initializer;
}
if (isBindingElement(declaration) && !declaration.initializer) {
- const parent2 = declaration.parent.parent;
- if (isVariableDeclaration(parent2) && !parent2.type && parent2.initializer && (isIdentifier(parent2.initializer) || isAccessExpression(parent2.initializer)) && isMatchingReference(reference, parent2.initializer)) {
+ initializer = getCandidateVariableDeclarationInitializer(declaration.parent.parent);
+ if (initializer && (isIdentifier(initializer) || isAccessExpression(initializer)) && isMatchingReference(reference, initializer)) {
return declaration;
}
}
}
}
return;
+ function getCandidateVariableDeclarationInitializer(node) {
+ return isVariableDeclaration(node) && !node.type && node.initializer ? skipParentheses(node.initializer) : undefined;
+ }
}
function getDiscriminantPropertyAccess(expr, computedType) {
- if (declaredType.flags & 1048576 || computedType.flags & 1048576) {
+ if (declaredType.flags & 134217728 || computedType.flags & 134217728) {
const access = getCandidateDiscriminantPropertyAccess(expr);
if (access) {
const name = getAccessedPropertyName(access);
if (name) {
- const type = declaredType.flags & 1048576 && isTypeSubsetOf(computedType, declaredType) ? declaredType : computedType;
+ const type = declaredType.flags & 134217728 && isTypeSubsetOf(computedType, declaredType) ? declaredType : computedType;
if (isDiscriminantProperty(type, name)) {
return access;
}
@@ -67147,7 +67321,7 @@ ${lanes.join(`
return type;
}
const optionalChain = isOptionalChain(access);
- const removeNullable = strictNullChecks && (optionalChain || isNonNullAccess(access)) && maybeTypeOfKind(type, 98304);
+ const removeNullable = strictNullChecks && (optionalChain || isNonNullAccess(access)) && maybeTypeOfKind(type, 12);
let propType = getTypeOfPropertyOfType(removeNullable ? getTypeWithFacts(type, 2097152) : type, propName);
if (!propType) {
return type;
@@ -67156,11 +67330,11 @@ ${lanes.join(`
const narrowedPropType = narrowType2(propType);
return filterType(type, (t) => {
const discriminantType = getTypeOfPropertyOrIndexSignatureOfType(t, propName) || unknownType;
- return !(discriminantType.flags & 131072) && !(narrowedPropType.flags & 131072) && areTypesComparable(narrowedPropType, discriminantType);
+ return !(discriminantType.flags & 262144) && !(narrowedPropType.flags & 262144) && areTypesComparable(narrowedPropType, discriminantType);
});
}
function narrowTypeByDiscriminantProperty(type, access, operator, value, assumeTrue) {
- if ((operator === 37 || operator === 38) && type.flags & 1048576) {
+ if ((operator === 37 || operator === 38) && type.flags & 134217728) {
const keyPropertyName = getKeyPropertyName(type);
if (keyPropertyName && keyPropertyName === getAccessedPropertyName(access)) {
const candidate = getConstituentTypeForKeyType(type, getTypeOfExpression(value));
@@ -67172,7 +67346,7 @@ ${lanes.join(`
return narrowTypeByDiscriminant(type, access, (t) => narrowTypeByEquality(t, operator, value, assumeTrue));
}
function narrowTypeBySwitchOnDiscriminantProperty(type, access, data) {
- if (data.clauseStart < data.clauseEnd && type.flags & 1048576 && getKeyPropertyName(type) === getAccessedPropertyName(access)) {
+ if (data.clauseStart < data.clauseEnd && type.flags & 134217728 && getKeyPropertyName(type) === getAccessedPropertyName(access)) {
const clauseTypes = getSwitchClauseTypes(data.switchStatement).slice(data.clauseStart, data.clauseEnd);
const candidate = getUnionType(map(clauseTypes, (t) => getConstituentTypeForKeyType(type, t) || unknownType));
if (candidate !== unknownType) {
@@ -67315,7 +67489,7 @@ ${lanes.join(`
}
function narrowTypeByOptionalChainContainment(type, operator, value, assumeTrue) {
const equalsOperator = operator === 35 || operator === 37;
- const nullableFlags = operator === 35 || operator === 36 ? 98304 : 32768;
+ const nullableFlags = operator === 35 || operator === 36 ? 12 : 4;
const valueType = getTypeOfExpression(value);
const removeNullable = equalsOperator !== assumeTrue && everyType(valueType, (t) => !!(t.flags & nullableFlags)) || equalsOperator === assumeTrue && everyType(valueType, (t) => !(t.flags & (3 | nullableFlags)));
return removeNullable ? getAdjustedTypeWithFacts(type, 2097152) : type;
@@ -67329,19 +67503,19 @@ ${lanes.join(`
}
const valueType = getTypeOfExpression(value);
const doubleEquals = operator === 35 || operator === 36;
- if (valueType.flags & 98304) {
+ if (valueType.flags & 12) {
if (!strictNullChecks) {
return type;
}
- const facts = doubleEquals ? assumeTrue ? 262144 : 2097152 : valueType.flags & 65536 ? assumeTrue ? 131072 : 1048576 : assumeTrue ? 65536 : 524288;
+ const facts = doubleEquals ? assumeTrue ? 262144 : 2097152 : valueType.flags & 8 ? assumeTrue ? 131072 : 1048576 : assumeTrue ? 65536 : 524288;
return getAdjustedTypeWithFacts(type, facts);
}
if (assumeTrue) {
if (!doubleEquals && (type.flags & 2 || someType(type, isEmptyAnonymousObjectType))) {
- if (valueType.flags & (402784252 | 67108864) || isEmptyAnonymousObjectType(valueType)) {
+ if (valueType.flags & (12713980 | 131072) || isEmptyAnonymousObjectType(valueType)) {
return valueType;
}
- if (valueType.flags & 524288) {
+ if (valueType.flags & 1048576) {
return nonPrimitiveType;
}
}
@@ -67388,11 +67562,11 @@ ${lanes.join(`
let groundClauseTypes;
for (let i = 0;i < clauseTypes.length; i += 1) {
const t = clauseTypes[i];
- if (t.flags & (402784252 | 67108864)) {
+ if (t.flags & (12713980 | 131072)) {
if (groundClauseTypes !== undefined) {
groundClauseTypes.push(t);
}
- } else if (t.flags & 524288) {
+ } else if (t.flags & 1048576) {
if (groundClauseTypes === undefined) {
groundClauseTypes = clauseTypes.slice(0, i);
}
@@ -67404,12 +67578,12 @@ ${lanes.join(`
return getUnionType(groundClauseTypes === undefined ? clauseTypes : groundClauseTypes);
}
const discriminantType = getUnionType(clauseTypes);
- const caseType = discriminantType.flags & 131072 ? neverType : replacePrimitivesWithLiterals(filterType(type, (t) => areTypesComparable(discriminantType, t)), discriminantType);
+ const caseType = discriminantType.flags & 262144 ? neverType : replacePrimitivesWithLiterals(filterType(type, (t) => areTypesComparable(discriminantType, t)), discriminantType);
if (!hasDefaultClause) {
return caseType;
}
- const defaultType = filterType(type, (t) => !(isUnitLikeType(t) && contains(switchTypes, t.flags & 32768 ? undefinedType : getRegularTypeOfLiteralType(extractUnitType(t)))));
- return caseType.flags & 131072 ? defaultType : getUnionType([caseType, defaultType]);
+ const defaultType = filterType(type, (t) => !(isUnitLikeType(t) && contains(switchTypes, t.flags & 4 ? undefinedType : getRegularTypeOfLiteralType(extractUnitType(t)), (t1, t2) => isUnitType(t1) && areTypesComparable(t1, t2))));
+ return caseType.flags & 262144 ? defaultType : getUnionType([caseType, defaultType]);
}
function narrowTypeByTypeName(type, typeName) {
switch (typeName) {
@@ -67495,7 +67669,7 @@ ${lanes.join(`
}
return filterType(type, (t) => isConstructedBy(t, candidate));
function isConstructedBy(source, target) {
- if (source.flags & 524288 && getObjectFlags(source) & 1 || target.flags & 524288 && getObjectFlags(target) & 1) {
+ if (source.flags & 1048576 && getObjectFlags(source) & 1 || target.flags & 1048576 && getObjectFlags(target) & 1) {
return source.symbol === target.symbol;
}
return isTypeSubtypeOf(source, target);
@@ -67523,7 +67697,7 @@ ${lanes.join(`
return type;
}
const instanceType = mapType(rightType, getInstanceType);
- if (isTypeAny(type) && (instanceType === globalObjectType || instanceType === globalFunctionType) || !assumeTrue && !(instanceType.flags & 524288 && !isEmptyAnonymousObjectType(instanceType))) {
+ if (isTypeAny(type) && (instanceType === globalObjectType || instanceType === globalFunctionType) || !assumeTrue && !(instanceType.flags & 1048576 && !isEmptyAnonymousObjectType(instanceType))) {
return type;
}
return getNarrowedType(type, instanceType, assumeTrue, true);
@@ -67540,7 +67714,7 @@ ${lanes.join(`
return emptyObjectType;
}
function getNarrowedType(type, candidate, assumeTrue, checkDerived) {
- const key2 = type.flags & 1048576 ? `N${getTypeId(type)},${getTypeId(candidate)},${(assumeTrue ? 1 : 0) | (checkDerived ? 2 : 0)}` : undefined;
+ const key2 = type.flags & 134217728 ? `N${getTypeId(type)},${getTypeId(candidate)},${(assumeTrue ? 1 : 0) | (checkDerived ? 2 : 0)}` : undefined;
return getCachedType(key2) ?? setCachedType(key2, getNarrowedTypeWorker(type, candidate, assumeTrue, checkDerived));
}
function getNarrowedTypeWorker(type, candidate, assumeTrue, checkDerived) {
@@ -67562,14 +67736,14 @@ ${lanes.join(`
return candidate;
}
const isRelated = checkDerived ? isTypeDerivedFrom : isTypeSubtypeOf;
- const keyPropertyName = type.flags & 1048576 ? getKeyPropertyName(type) : undefined;
+ const keyPropertyName = type.flags & 134217728 ? getKeyPropertyName(type) : undefined;
const narrowedType = mapType(candidate, (c) => {
const discriminant = keyPropertyName && getTypeOfPropertyOfType(c, keyPropertyName);
const matching = discriminant && getConstituentTypeForKeyType(type, discriminant);
const directlyRelated = mapType(matching || type, checkDerived ? (t) => isTypeDerivedFrom(t, c) ? t : isTypeDerivedFrom(c, t) ? c : neverType : (t) => isTypeStrictSubtypeOf(t, c) ? t : isTypeStrictSubtypeOf(c, t) ? c : isTypeSubtypeOf(t, c) ? t : isTypeSubtypeOf(c, t) ? c : neverType);
- return directlyRelated.flags & 131072 ? mapType(type, (t) => maybeTypeOfKind(t, 465829888) && isRelated(c, getBaseConstraintOfType(t) || unknownType) ? getIntersectionType([t, c]) : neverType) : directlyRelated;
+ return directlyRelated.flags & 262144 ? mapType(type, (t) => maybeTypeOfKind(t, 132644864) && isRelated(c, getBaseConstraintOfType(t) || unknownType) ? getIntersectionType([t, c]) : neverType) : directlyRelated;
});
- return !(narrowedType.flags & 131072) ? narrowedType : isTypeSubtypeOf(candidate, type) ? candidate : isTypeAssignableTo(type, candidate) ? type : isTypeAssignableTo(candidate, type) ? candidate : getIntersectionType([type, candidate]);
+ return !(narrowedType.flags & 262144) ? narrowedType : isTypeSubtypeOf(candidate, type) ? candidate : isTypeAssignableTo(type, candidate) ? type : isTypeAssignableTo(candidate, type) ? candidate : getIntersectionType([type, candidate]);
}
function narrowTypeByCallExpression(type, callExpression, assumeTrue) {
if (hasMatchingArgument(callExpression, reference)) {
@@ -67815,10 +67989,10 @@ ${lanes.join(`
return parent2.kind === 212 || parent2.kind === 167 || parent2.kind === 214 && parent2.expression === node || parent2.kind === 215 && parent2.expression === node || parent2.kind === 213 && parent2.expression === node && !(someType(type, isGenericTypeWithoutNullableConstraint) && isGenericIndexType(getTypeOfExpression(parent2.argumentExpression)));
}
function isGenericTypeWithUnionConstraint(type) {
- return type.flags & 2097152 ? some(type.types, isGenericTypeWithUnionConstraint) : !!(type.flags & 465829888 && getBaseConstraintOrType(type).flags & (98304 | 1048576));
+ return type.flags & 268435456 ? some(type.types, isGenericTypeWithUnionConstraint) : !!(type.flags & 132644864 && getBaseConstraintOrType(type).flags & (12 | 134217728));
}
function isGenericTypeWithoutNullableConstraint(type) {
- return type.flags & 2097152 ? some(type.types, isGenericTypeWithoutNullableConstraint) : !!(type.flags & 465829888 && !maybeTypeOfKind(getBaseConstraintOrType(type), 98304));
+ return type.flags & 268435456 ? some(type.types, isGenericTypeWithoutNullableConstraint) : !!(type.flags & 132644864 && !maybeTypeOfKind(getBaseConstraintOrType(type), 12));
}
function hasContextualTypeWithNoGenericTypes(node, checkMode) {
const contextualType = (isIdentifier(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node)) && !((isJsxOpeningElement(node.parent) || isJsxSelfClosingElement(node.parent)) && node.parent.tagName === node) && (checkMode && checkMode & 32 ? getContextualType2(node, 8) : getContextualType2(node, undefined));
@@ -68145,10 +68319,10 @@ ${lanes.join(`
const parentType = getTypeForBindingElementParent(parent2, 0);
const parentTypeConstraint = parentType && mapType(parentType, getBaseConstraintOrType);
links.flags &= ~4194304;
- if (parentTypeConstraint && parentTypeConstraint.flags & 1048576 && !(rootDeclaration.kind === 170 && isSomeSymbolAssigned(rootDeclaration))) {
+ if (parentTypeConstraint && parentTypeConstraint.flags & 134217728 && !(rootDeclaration.kind === 170 && isSomeSymbolAssigned(rootDeclaration))) {
const pattern = declaration.parent;
const narrowedType = getFlowTypeOfReference(pattern, parentTypeConstraint, parentTypeConstraint, undefined, location.flowNode);
- if (narrowedType.flags & 131072) {
+ if (narrowedType.flags & 262144) {
return neverType;
}
return getBindingElementTypeFromParentType(declaration, narrowedType, true);
@@ -68162,7 +68336,7 @@ ${lanes.join(`
const contextualSignature = getContextualSignature(func);
if (contextualSignature && contextualSignature.parameters.length === 1 && signatureHasRestParameter(contextualSignature)) {
const restType = getReducedApparentType(instantiateType(getTypeOfSymbol(contextualSignature.parameters[0]), (_a = getInferenceContext(func)) == null ? undefined : _a.nonFixingMapper));
- if (restType.flags & 1048576 && everyType(restType, isTupleType) && !some(func.parameters, isSomeSymbolAssigned)) {
+ if (restType.flags & 134217728 && everyType(restType, isTupleType) && !some(func.parameters, isSomeSymbolAssigned)) {
const narrowedType = getFlowTypeOfReference(func, restType, restType, undefined, location.flowNode);
const index = func.parameters.indexOf(declaration) - (getThisParameter(func) ? 1 : 0);
return getIndexedAccessType(narrowedType, getNumberLiteralType(index));
@@ -68231,7 +68405,7 @@ ${lanes.join(`
}
checkIdentifierCalculateNodeCheckFlags(node, symbol);
if (symbol === argumentsSymbol) {
- if (isInPropertyInitializerOrClassStaticBlock(node)) {
+ if (isInPropertyInitializerOrClassStaticBlock(node, true)) {
return errorType;
}
return getTypeOfSymbol(symbol);
@@ -68287,8 +68461,8 @@ ${lanes.join(`
while (flowContainer !== declarationContainer && (flowContainer.kind === 219 || flowContainer.kind === 220 || isObjectLiteralOrClassExpressionMethodOrAccessor(flowContainer)) && (isConstantVariable(localOrExportSymbol) && type !== autoArrayType || isParameterOrMutableLocalVariable(localOrExportSymbol) && isPastLastAssignment(localOrExportSymbol, node))) {
flowContainer = getControlFlowContainer(flowContainer);
}
- const isNeverInitialized = immediateDeclaration && isVariableDeclaration(immediateDeclaration) && !immediateDeclaration.initializer && !immediateDeclaration.exclamationToken && isMutableLocalVariableDeclaration(immediateDeclaration) && !isSymbolAssignedDefinitely(symbol);
- const assumeInitialized = isParameter2 || isAlias || isOuterVariable && !isNeverInitialized || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (3 | 16384)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === 282) || node.parent.kind === 236 || declaration.kind === 261 && declaration.exclamationToken || declaration.flags & 33554432;
+ const isNeverInitialized = immediateDeclaration && isVariableDeclaration(immediateDeclaration) && !isForInOrOfStatement(immediateDeclaration.parent.parent) && !immediateDeclaration.initializer && !immediateDeclaration.exclamationToken && isMutableLocalVariableDeclaration(immediateDeclaration) && !isSymbolAssignedDefinitely(symbol);
+ const assumeInitialized = isParameter2 || isAlias || isOuterVariable && !isNeverInitialized || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (3 | 16)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === 282) || node.parent.kind === 236 || declaration.kind === 261 && declaration.exclamationToken || declaration.flags & 33554432;
const initialType = isAutomaticTypeInNonNull ? undefinedType : assumeInitialized ? isParameter2 ? removeOptionalityFromDeclaredType(type, declaration) : type : typeIsAutomatic ? undefinedType : getOptionalType(type);
const flowType = isAutomaticTypeInNonNull ? getNonNullableType(getFlowTypeOfReference(node, type, initialType, flowContainer)) : getFlowTypeOfReference(node, type, initialType, flowContainer);
if (!isEvolvingArrayOperationTarget(node) && (type === autoType || type === autoArrayType)) {
@@ -68664,7 +68838,7 @@ ${lanes.join(`
}
function getThisTypeFromContextualType(type) {
return mapType(type, (t) => {
- return t.flags & 2097152 ? forEach(t.types, getThisTypeArgument) : getThisTypeArgument(t);
+ return t.flags & 268435456 ? forEach(t.types, getThisTypeArgument) : getThisTypeArgument(t);
});
}
function getThisTypeOfObjectLiteralFromContextualType(containingLiteral, contextualType) {
@@ -68809,7 +68983,7 @@ ${lanes.join(`
const functionFlags = getFunctionFlags(func);
if (functionFlags & 1) {
const isAsyncGenerator = (functionFlags & 2) !== 0;
- if (contextualReturnType.flags & 1048576) {
+ if (contextualReturnType.flags & 134217728) {
contextualReturnType = filterType(contextualReturnType, (type) => !!getIterationTypeOfGeneratorFunctionReturnType(1, type, isAsyncGenerator));
}
const iterationReturnType = getIterationTypeOfGeneratorFunctionReturnType(1, contextualReturnType, (functionFlags & 2) !== 0);
@@ -68842,7 +69016,7 @@ ${lanes.join(`
let contextualReturnType = getContextualReturnType(func, contextFlags);
if (contextualReturnType) {
const isAsyncGenerator = (functionFlags & 2) !== 0;
- if (!node.asteriskToken && contextualReturnType.flags & 1048576) {
+ if (!node.asteriskToken && contextualReturnType.flags & 134217728) {
contextualReturnType = filterType(contextualReturnType, (type) => !!getIterationTypeOfGeneratorFunctionReturnType(1, type, isAsyncGenerator));
}
if (node.asteriskToken) {
@@ -68894,12 +69068,12 @@ ${lanes.join(`
const functionFlags = getFunctionFlags(functionDecl);
if (functionFlags & 1) {
return filterType(returnType2, (t) => {
- return !!(t.flags & (3 | 16384 | 58982400)) || checkGeneratorInstantiationAssignabilityToReturnType(t, functionFlags, undefined);
+ return !!(t.flags & (3 | 16 | 117964800)) || checkGeneratorInstantiationAssignabilityToReturnType(t, functionFlags, undefined);
});
}
if (functionFlags & 2) {
return filterType(returnType2, (t) => {
- return !!(t.flags & (3 | 16384 | 58982400)) || !!getAwaitedTypeOfPromise(t);
+ return !!(t.flags & (3 | 16 | 117964800)) || !!getAwaitedTypeOfPromise(t);
});
}
return returnType2;
@@ -69081,23 +69255,23 @@ ${lanes.join(`
return !!(getCheckFlags(symbol) & 262144 && !symbol.links.type && findResolutionCycleStartIndex(symbol, 0) >= 0);
}
function isExcludedMappedPropertyName(constraint, propertyNameType) {
- if (constraint.flags & 16777216) {
+ if (constraint.flags & 67108864) {
const type = constraint;
- return !!(getReducedType(getTrueTypeFromConditionalType(type)).flags & 131072) && getActualTypeVariable(getFalseTypeFromConditionalType(type)) === getActualTypeVariable(type.checkType) && isTypeAssignableTo(propertyNameType, type.extendsType);
+ return !!(getReducedType(getTrueTypeFromConditionalType(type)).flags & 262144) && getActualTypeVariable(getFalseTypeFromConditionalType(type)) === getActualTypeVariable(type.checkType) && isTypeAssignableTo(propertyNameType, type.extendsType);
}
- if (constraint.flags & 2097152) {
+ if (constraint.flags & 268435456) {
return some(constraint.types, (t) => isExcludedMappedPropertyName(t, propertyNameType));
}
return false;
}
function getTypeOfPropertyOfContextualType(type, name, nameType) {
return mapType(type, (t) => {
- if (t.flags & 2097152) {
+ if (t.flags & 268435456) {
let types;
let indexInfoCandidates;
let ignoreIndexInfos = false;
for (const constituentType of t.types) {
- if (!(constituentType.flags & 524288)) {
+ if (!(constituentType.flags & 1048576)) {
continue;
}
if (isGenericMappedType(constituentType) && getMappedTypeNameTypeKind(constituentType) !== 2) {
@@ -69130,7 +69304,7 @@ ${lanes.join(`
}
return getIntersectionType(types);
}
- if (!(t.flags & 524288)) {
+ if (!(t.flags & 1048576)) {
return;
}
return isGenericMappedType(t) && getMappedTypeNameTypeKind(t) !== 2 ? getIndexedMappedTypeSubstitutedTypeOfContextualType(t, name, nameType) : getTypeOfConcretePropertyOfContextualType(t, name) ?? getTypeFromIndexInfosOfContextualType(t, name, nameType);
@@ -69329,32 +69503,37 @@ ${lanes.join(`
function getApparentTypeOfContextualType(node, contextFlags) {
const contextualType = isObjectLiteralMethod(node) ? getContextualTypeForObjectLiteralMethod(node, contextFlags) : getContextualType2(node, contextFlags);
const instantiatedType = instantiateContextualType(contextualType, node, contextFlags);
- if (instantiatedType && !(contextFlags && contextFlags & 2 && instantiatedType.flags & 8650752)) {
+ if (instantiatedType && !(contextFlags && contextFlags & 2 && instantiatedType.flags & 34078720)) {
const apparentType = mapType(instantiatedType, (t) => getObjectFlags(t) & 32 ? t : getApparentType(t), true);
- return apparentType.flags & 1048576 && isObjectLiteralExpression(node) ? discriminateContextualTypeByObjectMembers(node, apparentType) : apparentType.flags & 1048576 && isJsxAttributes(node) ? discriminateContextualTypeByJSXAttributes(node, apparentType) : apparentType;
+ return apparentType.flags & 134217728 && isObjectLiteralExpression(node) ? discriminateContextualTypeByObjectMembers(node, apparentType) : apparentType.flags & 134217728 && isJsxAttributes(node) ? discriminateContextualTypeByJSXAttributes(node, apparentType) : apparentType;
}
}
function instantiateContextualType(contextualType, node, contextFlags) {
- if (contextualType && maybeTypeOfKind(contextualType, 465829888)) {
+ if (contextualType && maybeTypeOfKind(contextualType, 132644864)) {
const inferenceContext = getInferenceContext(node);
if (inferenceContext && contextFlags & 1 && some(inferenceContext.inferences, hasInferenceCandidatesOrDefault)) {
- return instantiateInstantiableTypes(contextualType, inferenceContext.nonFixingMapper);
+ const type = instantiateInstantiableTypes(contextualType, inferenceContext.nonFixingMapper);
+ if (!(type.flags & 3)) {
+ return type;
+ }
}
if (inferenceContext == null ? undefined : inferenceContext.returnMapper) {
const type = instantiateInstantiableTypes(contextualType, inferenceContext.returnMapper);
- return type.flags & 1048576 && containsType(type.types, regularFalseType) && containsType(type.types, regularTrueType) ? filterType(type, (t) => t !== regularFalseType && t !== regularTrueType) : type;
+ if (!(type.flags & 3)) {
+ return type.flags & 134217728 && containsType(type.types, regularFalseType) && containsType(type.types, regularTrueType) ? filterType(type, (t) => t !== regularFalseType && t !== regularTrueType) : type;
+ }
}
}
return contextualType;
}
function instantiateInstantiableTypes(type, mapper) {
- if (type.flags & 465829888) {
+ if (type.flags & 132644864) {
return instantiateType(type, mapper);
}
- if (type.flags & 1048576) {
+ if (type.flags & 134217728) {
return getUnionType(map(type.types, (t) => instantiateInstantiableTypes(t, mapper)), 0);
}
- if (type.flags & 2097152) {
+ if (type.flags & 268435456) {
return getIntersectionType(map(type.types, (t) => instantiateInstantiableTypes(t, mapper)));
}
return type;
@@ -69556,7 +69735,7 @@ ${lanes.join(`
return getOrCreateTypeFromSignature(fakeSignature);
}
const tagType = checkExpressionCached(context.tagName);
- if (tagType.flags & 128) {
+ if (tagType.flags & 1024) {
const result = getIntrinsicAttributesTypeFromStringLiteralType(tagType, context);
if (!result) {
return errorType;
@@ -69675,10 +69854,10 @@ ${lanes.join(`
const thisParam = combineIntersectionThisParam(left.thisParameter, right.thisParameter, paramMapper);
const minArgCount = Math.max(left.minArgumentCount, right.minArgumentCount);
const result = createSignature(declaration, typeParams, thisParam, params, undefined, undefined, minArgCount, flags);
- result.compositeKind = 2097152;
- result.compositeSignatures = concatenate(left.compositeKind === 2097152 && left.compositeSignatures || [left], [right]);
+ result.compositeKind = 268435456;
+ result.compositeSignatures = concatenate(left.compositeKind === 268435456 && left.compositeSignatures || [left], [right]);
if (paramMapper) {
- result.mapper = left.compositeKind === 2097152 && left.mapper && left.compositeSignatures ? combineTypeMappers(left.mapper, paramMapper) : paramMapper;
+ result.mapper = left.compositeKind === 268435456 && left.mapper && left.compositeSignatures ? combineTypeMappers(left.mapper, paramMapper) : paramMapper;
}
return result;
}
@@ -69713,7 +69892,7 @@ ${lanes.join(`
if (!type) {
return;
}
- if (!(type.flags & 1048576)) {
+ if (!(type.flags & 134217728)) {
return getContextualCallSignature(type, node);
}
let signatureList;
@@ -69866,7 +70045,7 @@ ${lanes.join(`
}
}
function isNumericComputedName(name) {
- return isTypeAssignableToKind(checkComputedPropertyName(name), 296);
+ return isTypeAssignableToKind(checkComputedPropertyName(name), 67648);
}
function checkComputedPropertyName(node) {
const links = getNodeLinks(node.expression);
@@ -69884,7 +70063,7 @@ ${lanes.join(`
getNodeLinks(node.parent.parent).flags |= 32768;
}
}
- if (links.resolvedType.flags & 98304 || !isTypeAssignableToKind(links.resolvedType, 402653316 | 296 | 12288) && !isTypeAssignableTo(links.resolvedType, stringNumberSymbolType)) {
+ if (links.resolvedType.flags & 12 || !isTypeAssignableToKind(links.resolvedType, 12583968 | 67648 | 16896) && !isTypeAssignableTo(links.resolvedType, stringNumberSymbolType)) {
error2(node, Diagnostics.A_computed_property_name_must_be_of_type_string_number_symbol_or_any);
}
}
@@ -69898,7 +70077,7 @@ ${lanes.join(`
function isSymbolWithSymbolName(symbol) {
var _a;
const firstDecl = (_a = symbol.declarations) == null ? undefined : _a[0];
- return isKnownSymbol(symbol) || firstDecl && isNamedDeclaration(firstDecl) && isComputedPropertyName(firstDecl.name) && isTypeAssignableToKind(checkComputedPropertyName(firstDecl.name), 4096);
+ return isKnownSymbol(symbol) || firstDecl && isNamedDeclaration(firstDecl) && isComputedPropertyName(firstDecl.name) && isTypeAssignableToKind(checkComputedPropertyName(firstDecl.name), 512);
}
function isSymbolWithComputedName(symbol) {
var _a;
@@ -70035,7 +70214,7 @@ ${lanes.join(`
Debug.assert(memberDecl.kind === 178 || memberDecl.kind === 179);
checkNodeDeferred(memberDecl);
}
- if (computedNameType && !(computedNameType.flags & 8576)) {
+ if (computedNameType && !(computedNameType.flags & 19456)) {
if (isTypeAssignableTo(computedNameType, stringNumberSymbolType)) {
if (isTypeAssignableTo(computedNameType, numberType)) {
hasComputedNumberProperty = true;
@@ -70093,7 +70272,7 @@ ${lanes.join(`
}
function isValidSpreadType(type) {
const t = removeDefinitelyFalsyTypes(mapType(type, getBaseConstraintOrType));
- return !!(t.flags & (1 | 67108864 | 524288 | 58982400) || t.flags & 3145728 && every(t.types, isValidSpreadType));
+ return !!(t.flags & (1 | 131072 | 1048576 | 117964800) || t.flags & 402653184 && every(t.types, isValidSpreadType));
}
function checkJsxSelfClosingElementDeferred(node) {
checkJsxOpeningLikeElementOrOpeningFragment(node);
@@ -70224,7 +70403,7 @@ ${lanes.join(`
childrenPropSymbol.valueDeclaration.symbol = childrenPropSymbol;
const childPropMap = createSymbolTable();
childPropMap.set(jsxChildrenPropertyName, childrenPropSymbol);
- spread = getSpreadType(spread, createAnonymousType(attributesSymbol, childPropMap, emptyArray, emptyArray, emptyArray), attributesSymbol, objectFlags, false);
+ spread = getSpreadType(spread, createAnonymousType(attributesSymbol, childPropMap, emptyArray, emptyArray, emptyArray), attributesSymbol, objectFlags | getPropagatingFlagsOfTypes(childrenTypes), false);
}
}
if (hasSpreadAnyType) {
@@ -70261,7 +70440,7 @@ ${lanes.join(`
}
function checkSpreadPropOverrides(type, props, spread) {
for (const right of getPropertiesOfType(type)) {
- if (!(right.flags & 16777216)) {
+ if (!(right.flags & 16777216) && !(getCheckFlags(right) & 48)) {
const left = props.get(right.escapedName);
if (left) {
const diagnostic = error2(left.valueDeclaration, Diagnostics._0_is_specified_more_than_once_so_this_usage_will_be_overwritten, unescapeLeadingUnderscores(left.escapedName));
@@ -70396,9 +70575,9 @@ ${lanes.join(`
return getNameFromJsxElementAttributesContainer(JsxNames.ElementChildrenAttributeNameContainer, jsxNamespace);
}
function getUninstantiatedJsxSignaturesOfType(elementType, caller) {
- if (elementType.flags & 4) {
+ if (elementType.flags & 32) {
return [anySignature];
- } else if (elementType.flags & 128) {
+ } else if (elementType.flags & 1024) {
const intrinsicType = getIntrinsicAttributesTypeFromStringLiteralType(elementType, caller);
if (!intrinsicType) {
error2(caller, Diagnostics.Property_0_does_not_exist_on_type_1, elementType.value, "JSX." + JsxNames.IntrinsicElements);
@@ -70413,7 +70592,7 @@ ${lanes.join(`
if (signatures.length === 0) {
signatures = getSignaturesOfType(apparentElemType, 0);
}
- if (signatures.length === 0 && apparentElemType.flags & 1048576) {
+ if (signatures.length === 0 && apparentElemType.flags & 134217728) {
signatures = getUnionSignatures(map(apparentElemType.types, (t) => getUninstantiatedJsxSignaturesOfType(t, caller)));
}
return signatures;
@@ -70557,15 +70736,15 @@ ${lanes.join(`
}
}
function isKnownProperty(targetType, name, isComparingJsxAttributes) {
- if (targetType.flags & 524288) {
+ if (targetType.flags & 1048576) {
if (getPropertyOfObjectType(targetType, name) || getApplicableIndexInfoForName(targetType, name) || isLateBoundName(name) && getIndexInfoOfType(targetType, stringType) || isComparingJsxAttributes && isHyphenatedJsxName(name)) {
return true;
}
}
- if (targetType.flags & 33554432) {
+ if (targetType.flags & 16777216) {
return isKnownProperty(targetType.baseType, name, isComparingJsxAttributes);
}
- if (targetType.flags & 3145728 && isExcessPropertyCheckTarget(targetType)) {
+ if (targetType.flags & 402653184 && isExcessPropertyCheckTarget(targetType)) {
for (const t of targetType.types) {
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
return true;
@@ -70575,7 +70754,7 @@ ${lanes.join(`
return false;
}
function isExcessPropertyCheckTarget(type) {
- return !!(type.flags & 524288 && !(getObjectFlags(type) & 512) || type.flags & 67108864 || type.flags & 33554432 && isExcessPropertyCheckTarget(type.baseType) || type.flags & 1048576 && some(type.types, isExcessPropertyCheckTarget) || type.flags & 2097152 && every(type.types, isExcessPropertyCheckTarget));
+ return !!(type.flags & 1048576 && !(getObjectFlags(type) & 512) || type.flags & 131072 || type.flags & 16777216 && isExcessPropertyCheckTarget(type.baseType) || type.flags & 134217728 && some(type.types, isExcessPropertyCheckTarget) || type.flags & 268435456 && every(type.types, isExcessPropertyCheckTarget));
}
function checkJsxExpression(node, checkMode) {
checkGrammarJsxExpression(node);
@@ -70631,10 +70810,10 @@ ${lanes.join(`
}
}
if (flags & 64 && symbolHasNonMethodDeclaration(prop) && (isThisProperty(location) || isThisInitializedObjectBindingExpression(location) || isObjectBindingPattern(location.parent) && isThisInitializedDeclaration(location.parent.parent))) {
- const declaringClassDeclaration = getClassLikeDeclarationOfSymbol(getParentOfSymbol(prop));
- if (declaringClassDeclaration && isNodeUsedDuringClassInitialization(location)) {
+ const parentSymbol = getParentOfSymbol(prop);
+ if (parentSymbol && parentSymbol.flags & 32 && isNodeUsedDuringClassInitialization(location)) {
if (errorNode) {
- error2(errorNode, Diagnostics.Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor, symbolToString(prop), getTextOfIdentifierOrLiteral(declaringClassDeclaration.name));
+ error2(errorNode, Diagnostics.Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor, symbolToString(prop), symbolToString(parentSymbol));
}
return false;
}
@@ -70672,7 +70851,7 @@ ${lanes.join(`
if (flags & 256) {
return true;
}
- if (containingType.flags & 262144) {
+ if (containingType.flags & 524288) {
containingType = containingType.isThisType ? getConstraintOfTypeParameter(containingType) : getBaseConstraintOfType(containingType);
}
if (!containingType || !hasBaseType(containingType, enclosingClass)) {
@@ -70687,7 +70866,7 @@ ${lanes.join(`
const thisParameter = getThisParameterFromNodeContext(node);
let thisType = (thisParameter == null ? undefined : thisParameter.type) && getTypeFromTypeNode(thisParameter.type);
if (thisType) {
- if (thisType.flags & 262144) {
+ if (thisType.flags & 524288) {
thisType = getConstraintOfTypeParameter(thisType);
}
} else {
@@ -70752,7 +70931,7 @@ ${lanes.join(`
if (facts & 50331648) {
reportError(node, facts);
const t = getNonNullableType(type);
- return t.flags & (98304 | 131072) ? errorType : t;
+ return t.flags & (12 | 262144) ? errorType : t;
}
return type;
}
@@ -70761,7 +70940,7 @@ ${lanes.join(`
}
function checkNonNullNonVoidType(type, node) {
const nonNullType = checkNonNullType(type, node);
- if (nonNullType.flags & 16384) {
+ if (nonNullType.flags & 16) {
if (isEntityNameExpression(node)) {
const nodeText2 = entityNameToString(node);
if (isIdentifier(node) && nodeText2 === "undefined") {
@@ -70996,7 +71175,7 @@ ${lanes.join(`
if (assignmentKind === 1) {
return removeMissingType(propType, !!(prop && prop.flags & 16777216));
}
- if (prop && !(prop.flags & (3 | 4 | 98304)) && !(prop.flags & 8192 && propType.flags & 1048576) && !isDuplicatedCommonJSExport(prop.declarations)) {
+ if (prop && !(prop.flags & (3 | 4 | 98304)) && !(prop.flags & 8192 && propType.flags & 134217728) && !isDuplicatedCommonJSExport(prop.declarations)) {
return propType;
}
if (propType === autoType) {
@@ -71059,27 +71238,14 @@ ${lanes.join(`
});
}
function isPropertyDeclaredInAncestorClass(prop) {
- if (!(prop.parent.flags & 32)) {
- return false;
- }
- let classType = getTypeOfSymbol(prop.parent);
- while (true) {
- classType = classType.symbol && getSuperClass(classType);
- if (!classType) {
- return false;
- }
- const superProperty = getPropertyOfType(classType, prop.escapedName);
- if (superProperty && superProperty.valueDeclaration) {
- return true;
+ if (prop.parent && prop.parent.flags & 32) {
+ const baseTypes = getBaseTypes(getDeclaredTypeOfSymbol(prop.parent));
+ if (baseTypes.length) {
+ const superProperty = getPropertyOfType(baseTypes[0], prop.escapedName);
+ return !!(superProperty && superProperty.valueDeclaration);
}
}
- }
- function getSuperClass(classType) {
- const x = getBaseTypes(classType);
- if (x.length === 0) {
- return;
- }
- return getIntersectionType(x);
+ return false;
}
function reportNonexistentProperty(propNode, containingType, isUncheckedJS) {
const links = getNodeLinks(propNode);
@@ -71091,7 +71257,7 @@ ${lanes.join(`
cache.add(key);
let errorInfo;
let relatedInfo;
- if (!isPrivateIdentifier(propNode) && containingType.flags & 1048576 && !(containingType.flags & 402784252)) {
+ if (!isPrivateIdentifier(propNode) && containingType.flags & 134217728 && !(containingType.flags & 12713980)) {
for (const subtype of containingType.types) {
if (!getPropertyOfType(subtype, propNode.escapedText) && !getApplicableIndexInfoForName(subtype, propNode.escapedText)) {
errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1, declarationNameToString(propNode), typeToString(subtype));
@@ -71191,13 +71357,12 @@ ${lanes.join(`
const symbol = getSymbol2(symbols, name, meaning);
if (symbol)
return symbol;
- let candidates;
+ let candidates = arrayFrom(symbols.values());
if (symbols === globals) {
const primitives = mapDefined(["string", "number", "boolean", "object", "bigint", "symbol"], (s) => symbols.has(s.charAt(0).toUpperCase() + s.slice(1)) ? createSymbol(524288, s) : undefined);
- candidates = primitives.concat(arrayFrom(symbols.values()));
- } else {
- candidates = arrayFrom(symbols.values());
+ candidates = concatenate(primitives, candidates);
}
+ sortSymbolsIfTSGoCompat(candidates);
return getSpellingSuggestionForName(unescapeLeadingUnderscores(name), candidates, meaning);
}
function getSuggestedSymbolForNonexistentSymbol(location, outerName, meaning) {
@@ -71206,7 +71371,7 @@ ${lanes.join(`
return result;
}
function getSuggestedSymbolForNonexistentModule(name, targetModule) {
- return targetModule.exports && getSpellingSuggestionForName(idText(name), getExportsOfModuleAsArray(targetModule), 2623475);
+ return targetModule.exports && getSpellingSuggestionForName(idText(name), sortSymbolsIfTSGoCompat(getExportsOfModuleAsArray(targetModule)), 2623475);
}
function getSuggestionForNonexistentIndexSignature(objectType, expr, keyedType) {
function hasProp(name) {
@@ -71230,7 +71395,7 @@ ${lanes.join(`
return suggestion;
}
function getSuggestedTypeForNonexistentStringLiteralType(source, target) {
- const candidates = target.types.filter((type) => !!(type.flags & 128));
+ const candidates = target.types.filter((type) => !!(type.flags & 1024));
return getSpellingSuggestion(source.value, candidates, (type) => type.value);
}
function getSpellingSuggestionForName(name, symbols, meaning) {
@@ -71436,10 +71601,10 @@ ${lanes.join(`
return findIndex(args, isSpreadArgument);
}
function acceptsVoid(t) {
- return !!(t.flags & 16384);
+ return !!(t.flags & 16);
}
function acceptsVoidUndefinedUnknownOrAny(t) {
- return !!(t.flags & (16384 | 32768 | 2 | 1));
+ return !!(t.flags & (16 | 4 | 2 | 1));
}
function hasCorrectArity(node, args, signature, signatureHelpTrailingComma = false) {
if (isJsxOpeningFragment(node))
@@ -71489,7 +71654,7 @@ ${lanes.join(`
}
for (let i = argCount;i < effectiveMinimumArguments; i++) {
const type = getTypeAtPosition(signature, i);
- if (filterType(type, isInJSFile(node) && !strictNullChecks ? acceptsVoidUndefinedUnknownOrAny : acceptsVoid).flags & 131072) {
+ if (filterType(type, isInJSFile(node) && !strictNullChecks ? acceptsVoidUndefinedUnknownOrAny : acceptsVoid).flags & 262144) {
return false;
}
}
@@ -71511,7 +71676,7 @@ ${lanes.join(`
return getSingleSignature(type, 0, false) || getSingleSignature(type, 1, false);
}
function getSingleSignature(type, kind, allowMembers) {
- if (type.flags & 524288) {
+ if (type.flags & 1048576) {
const resolved = resolveStructuredTypeMembers(type);
if (allowMembers || resolved.properties.length === 0 && resolved.indexInfos.length === 0) {
if (kind === 0 && resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0) {
@@ -71524,10 +71689,10 @@ ${lanes.join(`
}
return;
}
- function instantiateSignatureInContextOf(signature, contextualSignature, inferenceContext, compareTypes) {
- const context = createInferenceContext(getTypeParametersForMapper(signature), signature, 0, compareTypes);
+ function instantiateSignatureInContextOf(signature, contextualSignature, inferenceContext, compareTypes2) {
+ const context = createInferenceContext(getTypeParametersForMapper(signature), signature, 0, compareTypes2);
const restType = getEffectiveRestType(contextualSignature);
- const mapper = inferenceContext && (restType && restType.flags & 262144 ? inferenceContext.nonFixingMapper : inferenceContext.mapper);
+ const mapper = inferenceContext && (restType && restType.flags & 524288 ? inferenceContext.nonFixingMapper : inferenceContext.mapper);
const sourceSignature = mapper ? instantiateSignature(contextualSignature, mapper) : contextualSignature;
applyToParameterTypes(sourceSignature, signature, (source, target) => {
inferTypes(context.inferences, source, target);
@@ -71580,7 +71745,7 @@ ${lanes.join(`
}
const restType = getNonArrayRestType(signature);
const argCount = restType ? Math.min(getParameterCount(signature) - 1, args.length) : args.length;
- if (restType && restType.flags & 262144) {
+ if (restType && restType.flags & 524288) {
const info = find(context.inferences, (info2) => info2.typeParameter === restType);
if (info) {
info.impliedArity = findIndex(args, isSpreadArgument, argCount) < 0 ? args.length - argCount : undefined;
@@ -71608,7 +71773,7 @@ ${lanes.join(`
return getInferredTypes(context);
}
function getMutableArrayOrTupleType(type) {
- return type.flags & 1048576 ? mapType(type, getMutableArrayOrTupleType) : type.flags & 1 || isMutableArrayOrTuple(getBaseConstraintOfType(type) || type) ? type : isTupleType(type) ? createTupleType(getElementTypes(type), type.target.elementFlags, false, type.target.labeledElementDeclarations) : createTupleType([type], [8]);
+ return type.flags & 134217728 ? mapType(type, getMutableArrayOrTupleType) : type.flags & 1 || isMutableArrayOrTuple(getBaseConstraintOfType(type) || type) ? type : isTupleType(type) ? createTupleType(getElementTypes(type), type.target.elementFlags, false, type.target.labeledElementDeclarations) : createTupleType([type], [8]);
}
function getSpreadArgumentType(args, index, argCount, restType, context, checkMode) {
const inConstContext = isConstTypeVariable(restType);
@@ -71639,7 +71804,7 @@ ${lanes.join(`
} else {
const contextualType = isTupleType(restType) ? getContextualTypeForElementExpression(restType, i - index, argCount - index) || unknownType : getIndexedAccessType(restType, getNumberLiteralType(i - index), 256);
const argType = checkExpressionWithContextualType(arg, contextualType, context, checkMode);
- const hasPrimitiveContextualType = inConstContext || maybeTypeOfKind(contextualType, 402784252 | 4194304 | 134217728 | 268435456);
+ const hasPrimitiveContextualType = inConstContext || maybeTypeOfKind(contextualType, 12713980 | 2097152 | 4194304 | 8388608);
types.push(hasPrimitiveContextualType ? getRegularTypeOfLiteralType(argType) : getWidenedLiteralType(argType));
flags.push(1);
}
@@ -72452,7 +72617,7 @@ ${lanes.join(`
return !!(signature.typeParameters && isFunctionType(getReturnTypeOfSignature(signature)));
}
function isUntypedFunctionCall(funcType, apparentFuncType, numCallSignatures, numConstructSignatures) {
- return isTypeAny(funcType) || isTypeAny(apparentFuncType) && !!(funcType.flags & 262144) || !numCallSignatures && !numConstructSignatures && !(apparentFuncType.flags & 1048576) && !(getReducedType(apparentFuncType).flags & 131072) && isTypeAssignableTo(funcType, globalFunctionType);
+ return isTypeAny(funcType) || isTypeAny(apparentFuncType) && !!(funcType.flags & 524288) || !numCallSignatures && !numConstructSignatures && !(apparentFuncType.flags & 134217728) && !(getReducedType(apparentFuncType).flags & 262144) && isTypeAssignableTo(funcType, globalFunctionType);
}
function resolveNewExpression(node, candidatesOutArray, checkMode) {
let expressionType = checkNonNullExpression(node.expression);
@@ -72505,7 +72670,7 @@ ${lanes.join(`
if (isArray(signatures)) {
return some(signatures, (signature) => someSignature(signature, f));
}
- return signatures.compositeKind === 1048576 ? some(signatures.compositeSignatures, f) : f(signatures);
+ return signatures.compositeKind === 134217728 ? some(signatures.compositeSignatures, f) : f(signatures);
}
function typeHasProtectedAccessibleBase(target, type) {
const baseTypes = getBaseTypes(type);
@@ -72513,7 +72678,7 @@ ${lanes.join(`
return false;
}
const firstBase = baseTypes[0];
- if (firstBase.flags & 2097152) {
+ if (firstBase.flags & 268435456) {
const types = firstBase.types;
const mixinFlags = findMixins(types);
let i = 0;
@@ -72571,7 +72736,7 @@ ${lanes.join(`
const isCall = kind === 0;
const awaitedType = getAwaitedType(apparentType);
const maybeMissingAwait = awaitedType && getSignaturesOfType(awaitedType, kind).length > 0;
- if (apparentType.flags & 1048576) {
+ if (apparentType.flags & 134217728) {
const types = apparentType.types;
let hasSignatures2 = false;
for (const constituent of types) {
@@ -72958,10 +73123,10 @@ ${lanes.join(`
return resolveExternalModuleTypeByLiteral(node.arguments[0]);
}
const returnType = getReturnTypeOfSignature(signature);
- if (returnType.flags & 12288 && isSymbolOrSymbolForCall(node)) {
+ if (returnType.flags & 16896 && isSymbolOrSymbolForCall(node)) {
return getESSymbolLikeTypeForNode(walkUpParenthesizedExpressions(node.parent));
}
- if (node.kind === 214 && !node.questionDotToken && node.parent.kind === 245 && returnType.flags & 16384 && getTypePredicateOfSignature(signature)) {
+ if (node.kind === 214 && !node.questionDotToken && node.parent.kind === 245 && returnType.flags & 16 && getTypePredicateOfSignature(signature)) {
if (!isDottedName(node.expression)) {
error2(node.expression, Diagnostics.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);
} else if (!getEffectsSignature(node)) {
@@ -73038,13 +73203,21 @@ ${lanes.join(`
for (let i = 2;i < node.arguments.length; ++i) {
checkExpressionCached(node.arguments[i]);
}
- if (specifierType.flags & 32768 || specifierType.flags & 65536 || !isTypeAssignableTo(specifierType, stringType)) {
+ if (specifierType.flags & 4 || specifierType.flags & 8 || !isTypeAssignableTo(specifierType, stringType)) {
error2(specifier, Diagnostics.Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0, typeToString(specifierType));
}
if (optionsType) {
const importCallOptionsType = getGlobalImportCallOptionsType(true);
if (importCallOptionsType !== emptyObjectType) {
- checkTypeAssignableTo(optionsType, getNullableType(importCallOptionsType, 32768), node.arguments[1]);
+ checkTypeAssignableTo(optionsType, getNullableType(importCallOptionsType, 4), node.arguments[1]);
+ }
+ if (compilerOptions.ignoreDeprecations !== "6.0" && isObjectLiteralExpression(node.arguments[1])) {
+ for (const prop of node.arguments[1].properties) {
+ if (isPropertyAssignment(prop) && isIdentifier(prop.name) && prop.name.escapedText === "assert") {
+ grammarErrorOnNode(prop.name, Diagnostics.Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert);
+ break;
+ }
+ }
}
}
const moduleSymbol = resolveExternalModuleName(node, specifier);
@@ -73172,7 +73345,7 @@ ${lanes.join(`
const exprType = checkExpression(expression, checkMode);
if (isConstTypeReference(type)) {
if (!isValidConstAssertionArgument(expression)) {
- error2(expression, Diagnostics.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals);
+ error2(expression, Diagnostics.A_const_assertion_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals);
}
return getRegularTypeOfLiteralType(exprType);
}
@@ -73265,7 +73438,7 @@ ${lanes.join(`
}
return result2;
function getInstantiatedTypePart(type2) {
- if (type2.flags & 524288) {
+ if (type2.flags & 1048576) {
const resolved = resolveStructuredTypeMembers(type2);
const callSignatures = getInstantiatedSignatures(resolved.callSignatures);
const constructSignatures = getInstantiatedSignatures(resolved.constructSignatures);
@@ -73277,7 +73450,7 @@ ${lanes.join(`
result3.node = node;
return result3;
}
- } else if (type2.flags & 58982400) {
+ } else if (type2.flags & 117964800) {
const constraint = getBaseConstraintOfType(type2);
if (constraint) {
const instantiated = getInstantiatedTypePart(constraint);
@@ -73285,9 +73458,9 @@ ${lanes.join(`
return instantiated;
}
}
- } else if (type2.flags & 1048576) {
+ } else if (type2.flags & 134217728) {
return mapType(type2, getInstantiatedType);
- } else if (type2.flags & 2097152) {
+ } else if (type2.flags & 268435456) {
return getIntersectionType(sameMap(type2.types, getInstantiatedTypePart));
}
return type2;
@@ -73561,7 +73734,7 @@ ${lanes.join(`
}
for (let i = minArgumentCount - 1;i >= 0; i--) {
const type = getTypeAtPosition(signature, i);
- if (filterType(type, acceptsVoid).flags & 131072) {
+ if (filterType(type, acceptsVoid).flags & 262144) {
break;
}
minArgumentCount = i;
@@ -73902,6 +74075,9 @@ ${lanes.join(`
let fallbackReturnType = voidType;
if (func.body.kind !== 242) {
returnType = checkExpressionCached(func.body, checkMode && checkMode & ~8);
+ if (isConstContext(func.body)) {
+ returnType = getRegularTypeOfLiteralType(returnType);
+ }
if (isAsync) {
returnType = unwrapAwaitedType(checkAwaitedType(returnType, false, func, Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member));
}
@@ -73922,7 +74098,7 @@ ${lanes.join(`
}
if (types.length === 0) {
const contextualReturnType = getContextualReturnType(func, undefined);
- const returnType2 = contextualReturnType && (unwrapReturnType(contextualReturnType, functionFlags) || voidType).flags & 32768 ? undefinedType : voidType;
+ const returnType2 = contextualReturnType && someType(unwrapReturnType(contextualReturnType, functionFlags) || voidType, (t) => !!(t.flags & 4)) ? undefinedType : voidType;
return functionFlags & 2 ? createPromiseReturnType(func, returnType2) : returnType2;
}
returnType = getUnionType(types, 2);
@@ -73978,7 +74154,10 @@ ${lanes.join(`
const nextTypes = [];
const isAsync = (getFunctionFlags(func) & 2) !== 0;
forEachYieldExpression(func.body, (yieldExpression) => {
- const yieldExpressionType = yieldExpression.expression ? checkExpression(yieldExpression.expression, checkMode) : undefinedWideningType;
+ let yieldExpressionType = yieldExpression.expression ? checkExpression(yieldExpression.expression, checkMode && checkMode & ~8) : undefinedWideningType;
+ if (yieldExpression.expression && isConstContext(yieldExpression.expression)) {
+ yieldExpressionType = getRegularTypeOfLiteralType(yieldExpressionType);
+ }
pushIfUnique(yieldTypes, getYieldedTypeOfYieldExpression(yieldExpression, yieldExpressionType, anyType, isAsync));
let nextType;
if (yieldExpression.asteriskToken) {
@@ -73993,9 +74172,6 @@ ${lanes.join(`
return { yieldTypes, nextTypes };
}
function getYieldedTypeOfYieldExpression(node, expressionType, sentType, isAsync) {
- if (expressionType === silentNeverType) {
- return silentNeverType;
- }
const errorNode = node.expression || node;
const yieldedType = node.asteriskToken ? checkIteratedTypeOrElementType(isAsync ? 19 : 17, expressionType, sentType, errorNode) : expressionType;
return !isAsync ? yieldedType : getAwaitedType(yieldedType, errorNode, node.asteriskToken ? Diagnostics.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member : Diagnostics.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member);
@@ -74067,10 +74243,10 @@ ${lanes.join(`
if (functionFlags & 2) {
type = unwrapAwaitedType(checkAwaitedType(type, false, func, Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member));
}
- if (type.flags & 131072) {
+ if (type.flags & 262144) {
hasReturnOfTypeNever = true;
}
- pushIfUnique(aggregatedTypes, type);
+ pushIfUnique(aggregatedTypes, isConstContext(expr) ? getRegularTypeOfLiteralType(type) : type);
} else {
hasReturnWithNoExpression = true;
}
@@ -74121,11 +74297,11 @@ ${lanes.join(`
function checkIfExpressionRefinesAnyParameter(func, expr) {
expr = skipParentheses(expr, true);
const returnType = checkExpressionCached(expr);
- if (!(returnType.flags & 16))
+ if (!(returnType.flags & 256))
return;
return forEach(func.parameters, (param, i) => {
const initType = getTypeOfSymbol(param.symbol);
- if (!initType || initType.flags & 16 || !isIdentifier(param.name) || isSymbolAssigned(param.symbol) || isRestParameter(param)) {
+ if (!initType || initType.flags & 256 || !isIdentifier(param.name) || isSymbolAssigned(param.symbol) || isRestParameter(param)) {
return;
}
const trueType2 = checkIfExpressionRefinesParameter(func, expr, param, initType);
@@ -74142,7 +74318,7 @@ ${lanes.join(`
return;
const falseCondition = createFlowNode(64, expr, antecedent);
const falseSubtype = getReducedType(getFlowTypeOfReference(param.name, initType, trueType2, func, falseCondition));
- return falseSubtype.flags & 131072 ? trueType2 : undefined;
+ return falseSubtype.flags & 262144 ? trueType2 : undefined;
}
function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func, returnType) {
addLazyDiagnostic(checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics);
@@ -74150,7 +74326,7 @@ ${lanes.join(`
function checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics() {
const functionFlags = getFunctionFlags(func);
const type = returnType && unwrapReturnType(returnType, functionFlags);
- if (type && (maybeTypeOfKind(type, 16384) || type.flags & (1 | 32768))) {
+ if (type && (maybeTypeOfKind(type, 16) || type.flags & (1 | 4))) {
return;
}
if (func.kind === 174 || nodeIsMissing(func.body) || func.body.kind !== 242 || !functionHasImplicitReturn(func)) {
@@ -74158,7 +74334,7 @@ ${lanes.join(`
}
const hasExplicitReturn = func.flags & 1024;
const errorNode = getEffectiveReturnTypeNode(func) || func;
- if (type && type.flags & 131072) {
+ if (type && type.flags & 262144) {
error2(errorNode, Diagnostics.A_function_returning_never_cannot_have_a_reachable_end_point);
} else if (type && !hasExplicitReturn) {
error2(errorNode, Diagnostics.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value);
@@ -74225,7 +74401,7 @@ ${lanes.join(`
if (checkMode && checkMode & 2) {
inferFromAnnotatedParametersAndReturn(signature, contextualSignature, inferenceContext);
const restType = getEffectiveRestType(contextualSignature);
- if (restType && restType.flags & 262144) {
+ if (restType && restType.flags & 524288) {
instantiatedContextualSignature = instantiateSignature(contextualSignature, inferenceContext.nonFixingMapper);
}
}
@@ -74378,7 +74554,7 @@ ${lanes.join(`
}
function checkDeleteExpressionMustBeOptional(expr, symbol) {
const type = getTypeOfSymbol(symbol);
- if (strictNullChecks && !(type.flags & (3 | 131072)) && !(exactOptionalPropertyTypes ? symbol.flags & 16777216 : hasTypeFacts(type, 16777216))) {
+ if (strictNullChecks && !(type.flags & (3 | 262144)) && !(exactOptionalPropertyTypes ? symbol.flags & 16777216 : hasTypeFacts(type, 16777216))) {
error2(expr, Diagnostics.The_operand_of_a_delete_operator_must_be_optional);
}
}
@@ -74492,11 +74668,11 @@ ${lanes.join(`
case 41:
case 55:
checkNonNullType(operandType, node.operand);
- if (maybeTypeOfKindConsideringBaseConstraint(operandType, 12288)) {
+ if (maybeTypeOfKindConsideringBaseConstraint(operandType, 16896)) {
error2(node.operand, Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, tokenToString(node.operator));
}
if (node.operator === 40) {
- if (maybeTypeOfKindConsideringBaseConstraint(operandType, 2112)) {
+ if (maybeTypeOfKindConsideringBaseConstraint(operandType, 4224)) {
error2(node.operand, Diagnostics.Operator_0_cannot_be_applied_to_type_1, tokenToString(node.operator), typeToString(getBaseTypeOfLiteralType(operandType)));
}
return numberType;
@@ -74528,8 +74704,8 @@ ${lanes.join(`
return getUnaryResultType(operandType);
}
function getUnaryResultType(operandType) {
- if (maybeTypeOfKind(operandType, 2112)) {
- return isTypeAssignableToKind(operandType, 3) || maybeTypeOfKind(operandType, 296) ? numberOrBigIntType : bigintType;
+ if (maybeTypeOfKind(operandType, 4224)) {
+ return isTypeAssignableToKind(operandType, 3) || maybeTypeOfKind(operandType, 67648) ? numberOrBigIntType : bigintType;
}
return numberType;
}
@@ -74544,7 +74720,7 @@ ${lanes.join(`
if (type.flags & kind) {
return true;
}
- if (type.flags & 3145728) {
+ if (type.flags & 402653184) {
const types = type.types;
for (const t of types) {
if (maybeTypeOfKind(t, kind)) {
@@ -74558,13 +74734,13 @@ ${lanes.join(`
if (source.flags & kind) {
return true;
}
- if (strict && source.flags & (3 | 16384 | 32768 | 65536)) {
+ if (strict && source.flags & (3 | 16 | 4 | 8)) {
return false;
}
- return !!(kind & 296) && isTypeAssignableTo(source, numberType) || !!(kind & 2112) && isTypeAssignableTo(source, bigintType) || !!(kind & 402653316) && isTypeAssignableTo(source, stringType) || !!(kind & 528) && isTypeAssignableTo(source, booleanType) || !!(kind & 16384) && isTypeAssignableTo(source, voidType) || !!(kind & 131072) && isTypeAssignableTo(source, neverType) || !!(kind & 65536) && isTypeAssignableTo(source, nullType) || !!(kind & 32768) && isTypeAssignableTo(source, undefinedType) || !!(kind & 4096) && isTypeAssignableTo(source, esSymbolType) || !!(kind & 67108864) && isTypeAssignableTo(source, nonPrimitiveType);
+ return !!(kind & 67648) && isTypeAssignableTo(source, numberType) || !!(kind & 4224) && isTypeAssignableTo(source, bigintType) || !!(kind & 12583968) && isTypeAssignableTo(source, stringType) || !!(kind & 8448) && isTypeAssignableTo(source, booleanType) || !!(kind & 16) && isTypeAssignableTo(source, voidType) || !!(kind & 262144) && isTypeAssignableTo(source, neverType) || !!(kind & 8) && isTypeAssignableTo(source, nullType) || !!(kind & 4) && isTypeAssignableTo(source, undefinedType) || !!(kind & 512) && isTypeAssignableTo(source, esSymbolType) || !!(kind & 131072) && isTypeAssignableTo(source, nonPrimitiveType);
}
function allTypesAssignableToKind(source, kind, strict) {
- return source.flags & 1048576 ? every(source.types, (subType) => allTypesAssignableToKind(subType, kind, strict)) : isTypeAssignableToKind(source, kind, strict);
+ return source.flags & 134217728 ? every(source.types, (subType) => allTypesAssignableToKind(subType, kind, strict)) : isTypeAssignableToKind(source, kind, strict);
}
function isConstEnumObjectType(type) {
return !!(getObjectFlags(type) & 16) && !!type.symbol && isConstEnumSymbol(type.symbol);
@@ -74574,7 +74750,7 @@ ${lanes.join(`
}
function getSymbolHasInstanceMethodOfObjectType(type) {
const hasInstancePropertyName = getPropertyNameForKnownSymbolName("hasInstance");
- if (allTypesAssignableToKind(type, 67108864)) {
+ if (allTypesAssignableToKind(type, 131072)) {
const hasInstanceProperty = getPropertyOfType(type, hasInstancePropertyName);
if (hasInstanceProperty) {
const hasInstancePropertyType = getTypeOfSymbol(hasInstanceProperty);
@@ -74588,7 +74764,7 @@ ${lanes.join(`
if (leftType === silentNeverType || rightType === silentNeverType) {
return silentNeverType;
}
- if (!isTypeAny(leftType) && allTypesAssignableToKind(leftType, 402784252)) {
+ if (!isTypeAny(leftType) && allTypesAssignableToKind(leftType, 12713980)) {
error2(left, Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter);
}
Debug.assert(isInstanceOfExpression(left.parent));
@@ -74601,7 +74777,7 @@ ${lanes.join(`
return booleanType;
}
function hasEmptyObjectIntersection(type) {
- return someType(type, (t) => t === unknownEmptyObjectType || !!(t.flags & 2097152) && isEmptyAnonymousObjectType(getBaseConstraintOrType(t)));
+ return someType(type, (t) => t === unknownEmptyObjectType || !!(t.flags & 268435456) && isEmptyAnonymousObjectType(getBaseConstraintOrType(t)));
}
function checkInExpression(left, right, leftType, rightType) {
if (leftType === silentNeverType || rightType === silentNeverType) {
@@ -74812,7 +74988,7 @@ ${lanes.join(`
}
}
function isTypeEqualityComparableTo(source, target) {
- return (target.flags & 98304) !== 0 || isTypeComparableTo(source, target);
+ return (target.flags & 12) !== 0 || isTypeComparableTo(source, target);
}
function createCheckBinaryExpression() {
const trampoline = createBinaryExpressionTrampoline(onEnter, onLeft, onOperator, onRight, onExit, foldState);
@@ -74941,7 +75117,6 @@ ${lanes.join(`
}
}
checkNullishCoalesceOperandLeft(node);
- checkNullishCoalesceOperandRight(node);
}
function checkNullishCoalesceOperandLeft(node) {
const leftTarget = skipOuterExpressions(node.left, 63);
@@ -74954,21 +75129,6 @@ ${lanes.join(`
}
}
}
- function checkNullishCoalesceOperandRight(node) {
- const rightTarget = skipOuterExpressions(node.right, 63);
- const nullishSemantics = getSyntacticNullishnessSemantics(rightTarget);
- if (isNotWithinNullishCoalesceExpression(node)) {
- return;
- }
- if (nullishSemantics === 1) {
- error2(rightTarget, Diagnostics.This_expression_is_always_nullish);
- } else if (nullishSemantics === 2) {
- error2(rightTarget, Diagnostics.This_expression_is_never_nullish);
- }
- }
- function isNotWithinNullishCoalesceExpression(node) {
- return !isBinaryExpression(node.parent) || node.parent.operatorToken.kind !== 61;
- }
function getSyntacticNullishnessSemantics(node) {
node = skipOuterExpressions(node);
switch (node.kind) {
@@ -74984,15 +75144,15 @@ ${lanes.join(`
return 3;
case 227:
switch (node.operatorToken.kind) {
- case 64:
- case 61:
- case 78:
case 57:
case 76:
case 56:
case 77:
return 3;
case 28:
+ case 64:
+ case 61:
+ case 78:
return getSyntacticNullishnessSemantics(node.right);
}
return 2;
@@ -75053,14 +75213,14 @@ ${lanes.join(`
leftType = checkNonNullType(leftType, left);
rightType = checkNonNullType(rightType, right);
let suggestedOperator;
- if (leftType.flags & 528 && rightType.flags & 528 && (suggestedOperator = getSuggestedBooleanOperator(operatorToken.kind)) !== undefined) {
+ if (leftType.flags & 8448 && rightType.flags & 8448 && (suggestedOperator = getSuggestedBooleanOperator(operatorToken.kind)) !== undefined) {
error2(errorNode || operatorToken, Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, tokenToString(operatorToken.kind), tokenToString(suggestedOperator));
return numberType;
} else {
const leftOk = checkArithmeticOperandType(left, leftType, Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type, true);
const rightOk = checkArithmeticOperandType(right, rightType, Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type, true);
let resultType2;
- if (isTypeAssignableToKind(leftType, 3) && isTypeAssignableToKind(rightType, 3) || !(maybeTypeOfKind(leftType, 2112) || maybeTypeOfKind(rightType, 2112))) {
+ if (isTypeAssignableToKind(leftType, 3) && isTypeAssignableToKind(rightType, 3) || !(maybeTypeOfKind(leftType, 4224) || maybeTypeOfKind(rightType, 4224))) {
resultType2 = numberType;
} else if (bothAreBigIntLike(leftType, rightType)) {
switch (operator) {
@@ -75104,16 +75264,16 @@ ${lanes.join(`
if (leftType === silentNeverType || rightType === silentNeverType) {
return silentNeverType;
}
- if (!isTypeAssignableToKind(leftType, 402653316) && !isTypeAssignableToKind(rightType, 402653316)) {
+ if (!isTypeAssignableToKind(leftType, 12583968) && !isTypeAssignableToKind(rightType, 12583968)) {
leftType = checkNonNullType(leftType, left);
rightType = checkNonNullType(rightType, right);
}
let resultType;
- if (isTypeAssignableToKind(leftType, 296, true) && isTypeAssignableToKind(rightType, 296, true)) {
+ if (isTypeAssignableToKind(leftType, 67648, true) && isTypeAssignableToKind(rightType, 67648, true)) {
resultType = numberType;
- } else if (isTypeAssignableToKind(leftType, 2112, true) && isTypeAssignableToKind(rightType, 2112, true)) {
+ } else if (isTypeAssignableToKind(leftType, 4224, true) && isTypeAssignableToKind(rightType, 4224, true)) {
resultType = bigintType;
- } else if (isTypeAssignableToKind(leftType, 402653316, true) || isTypeAssignableToKind(rightType, 402653316, true)) {
+ } else if (isTypeAssignableToKind(leftType, 12583968, true) || isTypeAssignableToKind(rightType, 12583968, true)) {
resultType = stringType;
} else if (isTypeAny(leftType) || isTypeAny(rightType)) {
resultType = isErrorType(leftType) || isErrorType(rightType) ? errorType : anyType;
@@ -75122,7 +75282,7 @@ ${lanes.join(`
return resultType;
}
if (!resultType) {
- const closeEnoughKind = 296 | 2112 | 402653316 | 3;
+ const closeEnoughKind = 67648 | 4224 | 12583968 | 3;
reportOperatorError((left2, right2) => isTypeAssignableToKind(left2, closeEnoughKind) && isTypeAssignableToKind(right2, closeEnoughKind));
return anyType;
}
@@ -75192,7 +75352,7 @@ ${lanes.join(`
const declKind = isBinaryExpression(left.parent) ? getAssignmentDeclarationKind(left.parent) : 0;
checkAssignmentDeclaration(declKind, rightType);
if (isAssignmentDeclaration2(declKind)) {
- if (!(rightType.flags & 524288) || declKind !== 2 && declKind !== 6 && !isEmptyObjectType(rightType) && !isFunctionObjectType(rightType) && !(getObjectFlags(rightType) & 1)) {
+ if (!(rightType.flags & 1048576) || declKind !== 2 && declKind !== 6 && !isEmptyObjectType(rightType) && !isFunctionObjectType(rightType) && !(getObjectFlags(rightType) & 1)) {
checkAssignmentOperator(rightType);
}
return leftType;
@@ -75218,7 +75378,7 @@ ${lanes.join(`
return Debug.fail();
}
function bothAreBigIntLike(left2, right2) {
- return isTypeAssignableToKind(left2, 2112) && isTypeAssignableToKind(right2, 2112);
+ return isTypeAssignableToKind(left2, 4224) && isTypeAssignableToKind(right2, 4224);
}
function checkAssignmentDeclaration(kind, rightType2) {
if (kind === 2) {
@@ -75239,7 +75399,7 @@ ${lanes.join(`
return node.parent.kind === 218 && isNumericLiteral(node.left) && node.left.text === "0" && (isCallExpression(node.parent.parent) && node.parent.parent.expression === node.parent || node.parent.parent.kind === 216) && (isAccessExpression(node.right) || isIdentifier(node.right) && node.right.escapedText === "eval");
}
function checkForDisallowedESSymbolOperand(operator2) {
- const offendingSymbolOperand = maybeTypeOfKindConsideringBaseConstraint(leftType, 12288) ? left : maybeTypeOfKindConsideringBaseConstraint(rightType, 12288) ? right : undefined;
+ const offendingSymbolOperand = maybeTypeOfKindConsideringBaseConstraint(leftType, 16896) ? left : maybeTypeOfKindConsideringBaseConstraint(rightType, 16896) ? right : undefined;
if (offendingSymbolOperand) {
error2(offendingSymbolOperand, Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, tokenToString(operator2));
return false;
@@ -75272,7 +75432,7 @@ ${lanes.join(`
}
if (checkReferenceExpression(left, Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access, Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access)) {
let headMessage;
- if (exactOptionalPropertyTypes && isPropertyAccessExpression(left) && maybeTypeOfKind(valueType, 32768)) {
+ if (exactOptionalPropertyTypes && isPropertyAccessExpression(left) && maybeTypeOfKind(valueType, 4)) {
const target = getTypeOfPropertyOfType(getTypeOfExpression(left.expression), left.name.escapedText);
if (isExactOptionalPropertyMismatch(valueType, target)) {
headMessage = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target;
@@ -75386,7 +75546,7 @@ ${lanes.join(`
}
}
let returnType = getReturnTypeFromAnnotation(func);
- if (returnType && returnType.flags & 1048576) {
+ if (returnType && returnType.flags & 134217728) {
returnType = filterType(returnType, (t) => checkGeneratorInstantiationAssignabilityToReturnType(t, functionFlags, undefined));
}
const iterationTypes = returnType && getIterationTypesOfGeneratorFunctionReturnType(returnType, isAsync);
@@ -75441,7 +75601,7 @@ ${lanes.join(`
const types = [];
for (const span of node.templateSpans) {
const type = checkExpression(span.expression);
- if (maybeTypeOfKindConsideringBaseConstraint(type, 12288)) {
+ if (maybeTypeOfKindConsideringBaseConstraint(type, 16896)) {
error2(span.expression, Diagnostics.Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String);
}
texts.push(span.literal.text);
@@ -75457,7 +75617,7 @@ ${lanes.join(`
return stringType;
}
function isTemplateLiteralContextualType(type) {
- return !!(type.flags & (128 | 134217728) || type.flags & 58982400 && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316));
+ return !!(type.flags & (1024 | 4194304) || type.flags & 117964800 && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 12583968));
}
function getContextNode2(node) {
if (isJsxAttributes(node) && !isJsxSelfClosingElement(node.parent)) {
@@ -75473,7 +75633,7 @@ ${lanes.join(`
if (inferenceContext && inferenceContext.intraExpressionInferenceSites) {
inferenceContext.intraExpressionInferenceSites = undefined;
}
- const result = maybeTypeOfKind(type, 2944) && isLiteralOfContextualType(type, instantiateContextualType(contextualType, node, undefined)) ? getRegularTypeOfLiteralType(type) : type;
+ const result = maybeTypeOfKind(type, 15360) && isLiteralOfContextualType(type, instantiateContextualType(contextualType, node, undefined)) ? getRegularTypeOfLiteralType(type) : type;
popInferenceContext();
popContextualType();
return result;
@@ -75584,15 +75744,15 @@ ${lanes.join(`
}
function isLiteralOfContextualType(candidateType, contextualType) {
if (contextualType) {
- if (contextualType.flags & 3145728) {
+ if (contextualType.flags & 402653184) {
const types = contextualType.types;
return some(types, (t) => isLiteralOfContextualType(candidateType, t));
}
- if (contextualType.flags & 58982400) {
+ if (contextualType.flags & 117964800) {
const constraint = getBaseConstraintOfType(contextualType) || unknownType;
- return maybeTypeOfKind(constraint, 4) && maybeTypeOfKind(candidateType, 128) || maybeTypeOfKind(constraint, 8) && maybeTypeOfKind(candidateType, 256) || maybeTypeOfKind(constraint, 64) && maybeTypeOfKind(candidateType, 2048) || maybeTypeOfKind(constraint, 4096) && maybeTypeOfKind(candidateType, 8192) || isLiteralOfContextualType(candidateType, constraint);
+ return maybeTypeOfKind(constraint, 32) && maybeTypeOfKind(candidateType, 1024) || maybeTypeOfKind(constraint, 64) && maybeTypeOfKind(candidateType, 2048) || maybeTypeOfKind(constraint, 128) && maybeTypeOfKind(candidateType, 4096) || maybeTypeOfKind(constraint, 512) && maybeTypeOfKind(candidateType, 16384) || isLiteralOfContextualType(candidateType, constraint);
}
- return !!(contextualType.flags & (128 | 4194304 | 134217728 | 268435456) && maybeTypeOfKind(candidateType, 128) || contextualType.flags & 256 && maybeTypeOfKind(candidateType, 256) || contextualType.flags & 2048 && maybeTypeOfKind(candidateType, 2048) || contextualType.flags & 512 && maybeTypeOfKind(candidateType, 512) || contextualType.flags & 8192 && maybeTypeOfKind(candidateType, 8192));
+ return !!(contextualType.flags & (1024 | 2097152 | 4194304 | 8388608) && maybeTypeOfKind(candidateType, 1024) || contextualType.flags & 2048 && maybeTypeOfKind(candidateType, 2048) || contextualType.flags & 4096 && maybeTypeOfKind(candidateType, 4096) || contextualType.flags & 8192 && maybeTypeOfKind(candidateType, 8192) || contextualType.flags & 16384 && maybeTypeOfKind(candidateType, 16384));
}
return false;
}
@@ -76523,6 +76683,38 @@ ${lanes.join(`
}
return;
}
+ function getUninstantiatedSignatures(node) {
+ switch (node.kind) {
+ case 214:
+ case 171:
+ return getSignaturesOfType(getTypeOfExpression(node.expression), 0);
+ case 215:
+ return getSignaturesOfType(getTypeOfExpression(node.expression), 1);
+ case 286:
+ case 287:
+ if (isJsxIntrinsicTagName(node.tagName))
+ return [];
+ return getSignaturesOfType(getTypeOfExpression(node.tagName), 0);
+ case 216:
+ return getSignaturesOfType(getTypeOfExpression(node.tag), 0);
+ case 227:
+ case 290:
+ return [];
+ }
+ }
+ function getTypeParameterConstraintForPositionAcrossSignatures(signatures, position) {
+ const relevantTypeParameterConstraints = flatMap(signatures, (signature) => {
+ var _a;
+ const relevantTypeParameter = (_a = signature.typeParameters) == null ? undefined : _a[position];
+ if (relevantTypeParameter === undefined)
+ return [];
+ const relevantConstraint = getConstraintOfTypeParameter(relevantTypeParameter);
+ if (relevantConstraint === undefined)
+ return [];
+ return [relevantConstraint];
+ });
+ return getUnionType(relevantTypeParameterConstraints);
+ }
function checkTypeReferenceNode(node) {
checkGrammarTypeArguments(node, node.typeArguments);
if (node.kind === 184 && !isInJSFile(node) && !isInJSDoc(node) && node.typeArguments && node.typeName.end !== node.typeArguments.pos) {
@@ -76554,14 +76746,36 @@ ${lanes.join(`
}
}
function getTypeArgumentConstraint(node) {
- const typeReferenceNode = tryCast(node.parent, isTypeReferenceType);
- if (!typeReferenceNode)
- return;
- const typeParameters = getTypeParametersForTypeReferenceOrImport(typeReferenceNode);
- if (!typeParameters)
- return;
- const constraint = getConstraintOfTypeParameter(typeParameters[typeReferenceNode.typeArguments.indexOf(node)]);
- return constraint && instantiateType(constraint, createTypeMapper(typeParameters, getEffectiveTypeArguments2(typeReferenceNode, typeParameters)));
+ let typeArgumentPosition;
+ if (hasTypeArguments(node.parent) && Array.isArray(node.parent.typeArguments)) {
+ typeArgumentPosition = node.parent.typeArguments.indexOf(node);
+ }
+ if (typeArgumentPosition !== undefined) {
+ if (isCallLikeExpression(node.parent)) {
+ return getTypeParameterConstraintForPositionAcrossSignatures(getUninstantiatedSignatures(node.parent), typeArgumentPosition);
+ }
+ if (isDecorator(node.parent.parent)) {
+ return getTypeParameterConstraintForPositionAcrossSignatures(getUninstantiatedSignatures(node.parent.parent), typeArgumentPosition);
+ }
+ if (isExpressionWithTypeArguments(node.parent) && isExpressionStatement(node.parent.parent)) {
+ const uninstantiatedType = checkExpression(node.parent.expression);
+ const callConstraint = getTypeParameterConstraintForPositionAcrossSignatures(getSignaturesOfType(uninstantiatedType, 0), typeArgumentPosition);
+ const constructConstraint = getTypeParameterConstraintForPositionAcrossSignatures(getSignaturesOfType(uninstantiatedType, 1), typeArgumentPosition);
+ if (constructConstraint.flags & 262144)
+ return callConstraint;
+ if (callConstraint.flags & 262144)
+ return constructConstraint;
+ return getIntersectionType([callConstraint, constructConstraint]);
+ }
+ if (isTypeReferenceType(node.parent)) {
+ const typeParameters = getTypeParametersForTypeReferenceOrImport(node.parent);
+ if (!typeParameters)
+ return;
+ const relevantTypeParameter = typeParameters[typeArgumentPosition];
+ const constraint = getConstraintOfTypeParameter(relevantTypeParameter);
+ return constraint && instantiateType(constraint, createTypeMapper(typeParameters, getEffectiveTypeArguments2(node.parent, typeParameters)));
+ }
+ }
}
function checkTypeQuery(node) {
getTypeFromTypeQueryNode(node);
@@ -76619,14 +76833,13 @@ ${lanes.join(`
getTypeFromTypeNode(node);
}
function checkIndexedAccessIndexType(type, accessNode) {
- if (!(type.flags & 8388608)) {
+ if (!(type.flags & 33554432)) {
return type;
}
const objectType = type.objectType;
const indexType = type.indexType;
- const objectIndexType = isGenericMappedType(objectType) && getMappedTypeNameTypeKind(objectType) === 2 ? getIndexTypeForMappedType(objectType, 0) : getIndexType(objectType, 0);
const hasNumberIndexInfo = !!getIndexInfoOfType(objectType, numberType);
- if (everyType(indexType, (t) => isTypeAssignableTo(t, objectIndexType) || hasNumberIndexInfo && isApplicableIndexType(t, numberType))) {
+ if (everyType(indexType, (t) => isTypeAssignableTo(t, getIndexType(objectType, 0)) || hasNumberIndexInfo && isApplicableIndexType(t, numberType))) {
if (accessNode.kind === 213 && isAssignmentTarget(accessNode) && getObjectFlags(objectType) & 32 && getMappedTypeModifiers(objectType) & 1) {
error2(accessNode, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(objectType));
}
@@ -76716,6 +76929,9 @@ ${lanes.join(`
function checkImportType(node) {
checkSourceElement(node.argument);
if (node.attributes) {
+ if (node.attributes.token !== 118 && compilerOptions.ignoreDeprecations !== "6.0") {
+ grammarErrorOnFirstToken(node.attributes, Diagnostics.Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert);
+ }
getResolutionModeOverride(node.attributes, grammarErrorOnNode);
}
checkTypeReferenceOrImport(node);
@@ -77036,7 +77252,7 @@ ${lanes.join(`
if (isReferenceToType2(type, getGlobalPromiseType(false))) {
return typeAsPromise.promisedTypeOfPromise = getTypeArguments(type)[0];
}
- if (allTypesAssignableToKind(getBaseConstraintOrType(type), 402784252 | 131072)) {
+ if (allTypesAssignableToKind(getBaseConstraintOrType(type), 12713980 | 262144)) {
return;
}
const thenFunction = getTypeOfPropertyOfType(type, "then");
@@ -77088,7 +77304,7 @@ ${lanes.join(`
return awaitedType || errorType;
}
function isThenableType(type) {
- if (allTypesAssignableToKind(getBaseConstraintOrType(type), 402784252 | 131072)) {
+ if (allTypesAssignableToKind(getBaseConstraintOrType(type), 12713980 | 262144)) {
return false;
}
const thenFunction = getTypeOfPropertyOfType(type, "then");
@@ -77096,14 +77312,14 @@ ${lanes.join(`
}
function isAwaitedTypeInstantiation(type) {
var _a;
- if (type.flags & 16777216) {
+ if (type.flags & 67108864) {
const awaitedSymbol = getGlobalAwaitedSymbol(false);
return !!awaitedSymbol && type.aliasSymbol === awaitedSymbol && ((_a = type.aliasTypeArguments) == null ? undefined : _a.length) === 1;
}
return false;
}
function unwrapAwaitedType(type) {
- return type.flags & 1048576 ? mapType(type, unwrapAwaitedType) : isAwaitedTypeInstantiation(type) ? type.aliasTypeArguments[0] : type;
+ return type.flags & 134217728 ? mapType(type, unwrapAwaitedType) : isAwaitedTypeInstantiation(type) ? type.aliasTypeArguments[0] : type;
}
function isAwaitedTypeNeeded(type) {
if (isTypeAny(type) || isAwaitedTypeInstantiation(type)) {
@@ -77111,7 +77327,7 @@ ${lanes.join(`
}
if (isGenericObjectType(type)) {
const baseConstraint = getBaseConstraintOfType(type);
- if (baseConstraint ? baseConstraint.flags & 3 || isEmptyObjectType(baseConstraint) || someType(baseConstraint, isThenableType) : maybeTypeOfKind(type, 8650752)) {
+ if (baseConstraint ? baseConstraint.flags & 3 || isEmptyObjectType(baseConstraint) || someType(baseConstraint, isThenableType) : maybeTypeOfKind(type, 34078720)) {
return true;
}
}
@@ -77146,7 +77362,7 @@ ${lanes.join(`
if (typeAsAwaitable.awaitedTypeOfType) {
return typeAsAwaitable.awaitedTypeOfType;
}
- if (type.flags & 1048576) {
+ if (type.flags & 134217728) {
if (awaitedTypeStack.lastIndexOf(type.id) >= 0) {
if (errorNode) {
error2(errorNode, Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);
@@ -78241,7 +78457,7 @@ ${lanes.join(`
return;
}
const type = location === condExpr2 ? condType : checkExpression(location);
- if (type.flags & 1024 && isPropertyAccessExpression(location) && (getNodeLinks(location.expression).resolvedSymbol ?? unknownSymbol).flags & 384) {
+ if (type.flags & 32768 && isPropertyAccessExpression(location) && (getNodeLinks(location.expression).resolvedSymbol ?? unknownSymbol).flags & 384) {
error2(location, Diagnostics.This_condition_will_always_return_0, type.value ? "true" : "false");
return;
}
@@ -78328,7 +78544,7 @@ ${lanes.join(`
checkSourceElement(node.statement);
}
function checkTruthinessOfType(type, node) {
- if (type.flags & 16384) {
+ if (type.flags & 16) {
error2(node, Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness);
} else {
const semantics = getSyntacticTruthySemantics(node);
@@ -78452,7 +78668,7 @@ ${lanes.join(`
checkReferenceExpression(varExpr, Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access, Diagnostics.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access);
}
}
- if (rightType === neverType || !isTypeAssignableToKind(rightType, 67108864 | 58982400)) {
+ if (rightType === neverType || !isTypeAssignableToKind(rightType, 131072 | 117964800)) {
error2(node.expression, Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0, typeToString(rightType));
}
checkSourceElement(node.statement);
@@ -78478,7 +78694,8 @@ ${lanes.join(`
}
return;
}
- const uplevelIteration = languageVersion >= 2;
+ const iterableExists = getGlobalIterableType(false) !== emptyGenericType;
+ const uplevelIteration = languageVersion >= 2 && iterableExists;
const downlevelIteration = !uplevelIteration && compilerOptions.downlevelIteration;
const possibleOutOfBounds = compilerOptions.noUncheckedIndexedAccess && !!(use & 128);
if (uplevelIteration || downlevelIteration || allowAsyncIterables) {
@@ -78498,18 +78715,18 @@ ${lanes.join(`
let arrayType = inputType;
let hasStringConstituent = false;
if (use & 4) {
- if (arrayType.flags & 1048576) {
+ if (arrayType.flags & 134217728) {
const arrayTypes = inputType.types;
- const filteredTypes = filter(arrayTypes, (t) => !(t.flags & 402653316));
+ const filteredTypes = filter(arrayTypes, (t) => !(t.flags & 12583968));
if (filteredTypes !== arrayTypes) {
arrayType = getUnionType(filteredTypes, 2);
}
- } else if (arrayType.flags & 402653316) {
+ } else if (arrayType.flags & 12583968) {
arrayType = neverType;
}
hasStringConstituent = arrayType !== inputType;
if (hasStringConstituent) {
- if (arrayType.flags & 131072) {
+ if (arrayType.flags & 262144) {
return possibleOutOfBounds ? includeUndefinedInIndexSignature(stringType) : stringType;
}
}
@@ -78524,7 +78741,7 @@ ${lanes.join(`
}
const arrayElementType = getIndexTypeOfType(arrayType, numberType);
if (hasStringConstituent && arrayElementType) {
- if (arrayElementType.flags & 402653316 && !compilerOptions.noUncheckedIndexedAccess) {
+ if (arrayElementType.flags & 12583968 && !compilerOptions.noUncheckedIndexedAccess) {
return stringType;
}
return getUnionType(possibleOutOfBounds ? [arrayElementType, stringType, undefinedType] : [arrayElementType, stringType], 2);
@@ -78569,7 +78786,7 @@ ${lanes.join(`
return iterationTypes && iterationTypes[getIterationTypesKeyFromIterationTypeKind(typeKind)];
}
function createIterationTypes(yieldType = neverType, returnType = neverType, nextType = unknownType) {
- if (yieldType.flags & 67359327 && returnType.flags & (1 | 131072 | 2 | 16384 | 32768) && nextType.flags & (1 | 131072 | 2 | 16384 | 32768)) {
+ if (yieldType.flags & 402431 && returnType.flags & (1 | 262144 | 2 | 16 | 4) && nextType.flags & (1 | 262144 | 2 | 16 | 4)) {
const id = getTypeListId([yieldType, returnType, nextType]);
let iterationTypes = iterationTypesCache.get(id);
if (!iterationTypes) {
@@ -78608,13 +78825,11 @@ ${lanes.join(`
}
function getIterationTypesOfIterable(type, use, errorNode) {
var _a, _b;
- if (type === silentNeverType) {
- return silentNeverIterationTypes;
- }
+ type = getReducedType(type);
if (isTypeAny(type)) {
return anyIterationTypes;
}
- if (!(type.flags & 1048576)) {
+ if (!(type.flags & 134217728)) {
const errorOutputContainer = errorNode ? { errors: undefined, skipLogging: true } : undefined;
const iterationTypes2 = getIterationTypesOfIterableWorker(type, use, errorNode, errorOutputContainer);
if (iterationTypes2 === noIterationTypes) {
@@ -78677,7 +78892,7 @@ ${lanes.join(`
}
let noCache = false;
if (use & 2) {
- const iterationTypes = getIterationTypesOfIterableCached(type, asyncIterationTypesResolver) || getIterationTypesOfIterableFast(type, asyncIterationTypesResolver);
+ let iterationTypes = getIterationTypesOfIterableCached(type, asyncIterationTypesResolver) || getIterationTypesOfIterableFast(type, asyncIterationTypesResolver);
if (iterationTypes) {
if (iterationTypes === noIterationTypes && errorNode) {
noCache = true;
@@ -78685,6 +78900,10 @@ ${lanes.join(`
return use & 8 ? getAsyncFromSyncIterationTypes(iterationTypes, errorNode) : iterationTypes;
}
}
+ iterationTypes = getIterationTypesOfIterableSlow(type, asyncIterationTypesResolver, errorNode, errorOutputContainer, noCache);
+ if (iterationTypes !== noIterationTypes) {
+ return iterationTypes;
+ }
}
if (use & 1) {
let iterationTypes = getIterationTypesOfIterableCached(type, syncIterationTypesResolver) || getIterationTypesOfIterableFast(type, syncIterationTypesResolver);
@@ -78702,15 +78921,7 @@ ${lanes.join(`
}
}
}
- }
- if (use & 2) {
- const iterationTypes = getIterationTypesOfIterableSlow(type, asyncIterationTypesResolver, errorNode, errorOutputContainer, noCache);
- if (iterationTypes !== noIterationTypes) {
- return iterationTypes;
- }
- }
- if (use & 1) {
- let iterationTypes = getIterationTypesOfIterableSlow(type, syncIterationTypesResolver, errorNode, errorOutputContainer, noCache);
+ iterationTypes = getIterationTypesOfIterableSlow(type, syncIterationTypesResolver, errorNode, errorOutputContainer, noCache);
if (iterationTypes !== noIterationTypes) {
if (use & 2) {
iterationTypes = getAsyncFromSyncIterationTypes(iterationTypes, errorNode);
@@ -78945,7 +79156,7 @@ ${lanes.join(`
}
function isUnwrappedReturnTypeUndefinedVoidOrAny(func, returnType) {
const type = unwrapReturnType(returnType, getFunctionFlags(func));
- return !!(type && (maybeTypeOfKind(type, 16384) || type.flags & (1 | 32768)));
+ return !!(type && (maybeTypeOfKind(type, 16) || type.flags & (1 | 4)));
}
function checkReturnStatement(node) {
if (checkGrammarStatementInAmbientContext(node)) {
@@ -78962,7 +79173,7 @@ ${lanes.join(`
}
const signature = getSignatureFromDeclaration(container);
const returnType = getReturnTypeOfSignature(signature);
- if (strictNullChecks || node.expression || returnType.flags & 131072) {
+ if (strictNullChecks || node.expression || returnType.flags & 262144) {
const exprType = node.expression ? checkExpressionCached(node.expression) : undefinedType;
if (container.kind === 179) {
if (node.expression) {
@@ -79059,6 +79270,9 @@ ${lanes.join(`
return false;
});
}
+ if (node.label.flags & 1073741824 && compilerOptions.allowUnusedLabels !== true) {
+ errorOrSuggestion(compilerOptions.allowUnusedLabels === false, node.label, Diagnostics.Unused_label);
+ }
checkSourceElement(node.statement);
}
function checkThrowStatement(node) {
@@ -79112,7 +79326,7 @@ ${lanes.join(`
}
for (const prop of getPropertiesOfObjectType(type)) {
if (!(isStaticIndex && prop.flags & 4194304)) {
- checkIndexConstraintForProperty(type, prop, getLiteralTypeFromProperty(prop, 8576, true), getNonMissingTypeOfSymbol(prop));
+ checkIndexConstraintForProperty(type, prop, getLiteralTypeFromProperty(prop, 19456, true), getNonMissingTypeOfSymbol(prop));
}
}
const typeDeclaration = symbol.valueDeclaration;
@@ -79184,7 +79398,7 @@ ${lanes.join(`
}
}
function checkClassNameCollisionWithObject(name) {
- if (languageVersion >= 1 && name.escapedText === "Object" && host.getEmitModuleFormatOfFile(getSourceFileOfNode(name)) < 5) {
+ if (name.escapedText === "Object" && host.getEmitModuleFormatOfFile(getSourceFileOfNode(name)) < 5) {
error2(name, Diagnostics.Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0, ModuleKind[moduleKind]);
}
}
@@ -79257,7 +79471,7 @@ ${lanes.join(`
function visit(node) {
if (node.kind === 184) {
const type = getTypeFromTypeReference(node);
- if (type.flags & 262144) {
+ if (type.flags & 524288) {
for (let i = index;i < typeParameters.length; i++) {
if (type.symbol === getSymbolOfDeclaration(typeParameters[i])) {
error2(node, Diagnostics.Type_parameter_defaults_can_only_reference_previously_declared_type_parameters);
@@ -79429,7 +79643,7 @@ ${lanes.join(`
} else {
checkTypeAssignableTo(staticType, getTypeWithoutSignatures(staticBaseType), node.name || node, Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1);
}
- if (baseConstructorType.flags & 8650752) {
+ if (baseConstructorType.flags & 34078720) {
if (!isMixinConstructorType(staticType)) {
error2(node.name || node, Diagnostics.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any);
} else {
@@ -79439,7 +79653,7 @@ ${lanes.join(`
}
}
}
- if (!(staticBaseType.symbol && staticBaseType.symbol.flags & 32) && !(baseConstructorType.flags & 8650752)) {
+ if (!(staticBaseType.symbol && staticBaseType.symbol.flags & 32) && !(baseConstructorType.flags & 34078720)) {
const constructors = getInstantiatedConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode);
if (forEach(constructors, (sig) => !isJSConstructor(sig.declaration) && !isTypeIdenticalTo(getReturnTypeOfSignature(sig), baseType))) {
error2(baseTypeNode.expression, Diagnostics.Base_constructors_must_all_have_the_same_return_type);
@@ -80090,10 +80304,7 @@ ${lanes.join(`
if (isIdentifier(node.name)) {
checkCollisionsForDeclarationName(node, node.name);
if (!(node.flags & (32 | 2048))) {
- const sourceFile = getSourceFileOfNode(node);
- const pos = getNonModifierTokenPosOfNode(node);
- const span = getSpanOfTokenAtPosition(sourceFile, pos);
- suggestionDiagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead));
+ error2(node.name, Diagnostics.A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead);
}
}
checkExportsOnMergedDeclarations(node);
@@ -80382,7 +80593,7 @@ ${lanes.join(`
if (node) {
const importAttributesType = getGlobalImportAttributesType(true);
if (importAttributesType !== emptyObjectType) {
- checkTypeAssignableTo(getTypeFromImportAttributes(node), getNullableType(importAttributesType, 32768), node);
+ checkTypeAssignableTo(getTypeFromImportAttributes(node), getNullableType(importAttributesType, 4), node);
}
const validForTypeAttributes = isExclusivelyTypeOnlyImportOrExport(declaration);
const override = getResolutionModeOverride(node, validForTypeAttributes ? grammarErrorOnNode : undefined);
@@ -80396,6 +80607,9 @@ ${lanes.join(`
if (102 <= moduleKind && moduleKind <= 199 && !isImportAttributes2) {
return grammarErrorOnFirstToken(node, Diagnostics.Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert);
}
+ if (!isImportAttributes2 && compilerOptions.ignoreDeprecations !== "6.0") {
+ grammarErrorOnFirstToken(node, Diagnostics.Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert);
+ }
if (declaration.moduleSpecifier && getEmitSyntaxForModuleSpecifierExpression(declaration.moduleSpecifier) === 1) {
return grammarErrorOnNode(node, isImportAttributes2 ? Diagnostics.Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls : Diagnostics.Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls);
}
@@ -80442,7 +80656,7 @@ ${lanes.join(`
error2(node.moduleSpecifier, Diagnostics.Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0, ModuleKind[moduleKind]);
}
} else if (noUncheckedSideEffectImports && !importClause) {
- resolveExternalModuleName(node, node.moduleSpecifier);
+ resolveExternalModuleName(node, node.moduleSpecifier, undefined, Diagnostics.Cannot_find_module_or_type_declarations_for_side_effect_import_of_0);
}
}
checkImportAttributes(node);
@@ -80682,10 +80896,12 @@ ${lanes.join(`
function checkSourceElement(node) {
if (node) {
const saveCurrentNode = currentNode;
+ const saveWithinUnreachableCode = withinUnreachableCode;
currentNode = node;
instantiationCount = 0;
checkSourceElementWorker(node);
currentNode = saveCurrentNode;
+ withinUnreachableCode = saveWithinUnreachableCode;
}
}
function checkSourceElementWorker(node) {
@@ -80713,8 +80929,10 @@ ${lanes.join(`
cancellationToken.throwIfCancellationRequested();
}
}
- if (kind >= 244 && kind <= 260 && canHaveFlowNode(node) && node.flowNode && !isReachableFlowNode(node.flowNode)) {
- errorOrSuggestion(compilerOptions.allowUnreachableCode === false, node, Diagnostics.Unreachable_code_detected);
+ if (compilerOptions.allowUnreachableCode !== true && !withinUnreachableCode) {
+ if (checkSourceElementUnreachable(node)) {
+ withinUnreachableCode = true;
+ }
}
switch (kind) {
case 169:
@@ -80891,6 +81109,66 @@ ${lanes.join(`
return checkMissingDeclaration(node);
}
}
+ function checkSourceElementUnreachable(node) {
+ if (!isPotentiallyExecutableNode(node)) {
+ return false;
+ }
+ if (reportedUnreachableNodes == null ? undefined : reportedUnreachableNodes.has(node)) {
+ return true;
+ }
+ if (!isSourceElementUnreachable(node)) {
+ return false;
+ }
+ (reportedUnreachableNodes ?? (reportedUnreachableNodes = /* @__PURE__ */ new Set)).add(node);
+ const sourceFile = getSourceFileOfNode(node);
+ let startNode2 = node;
+ let endNode2 = node;
+ const parent2 = node.parent;
+ if (canHaveStatements(parent2)) {
+ const statements = parent2.statements;
+ const offset = statements.indexOf(node);
+ if (offset >= 0) {
+ let first2 = offset;
+ for (let i = offset - 1;i >= 0; i--) {
+ const prevNode = statements[i];
+ if (!isPotentiallyExecutableNode(prevNode) || reportedUnreachableNodes.has(prevNode) || !isSourceElementUnreachable(prevNode)) {
+ break;
+ }
+ first2 = i;
+ reportedUnreachableNodes.add(prevNode);
+ }
+ let last2 = offset;
+ for (let i = offset + 1;i < statements.length; i++) {
+ const nextNode = statements[i];
+ if (!isPotentiallyExecutableNode(nextNode) || !isSourceElementUnreachable(nextNode)) {
+ break;
+ }
+ last2 = i;
+ reportedUnreachableNodes.add(nextNode);
+ }
+ startNode2 = statements[first2];
+ endNode2 = statements[last2];
+ }
+ }
+ const start = getTokenPosOfNode(startNode2, sourceFile);
+ addErrorOrSuggestion(compilerOptions.allowUnreachableCode === false, createFileDiagnostic(sourceFile, start, endNode2.end - start, Diagnostics.Unreachable_code_detected));
+ return true;
+ }
+ function isSourceElementUnreachable(node) {
+ if (node.flags & 1073741824) {
+ switch (node.kind) {
+ case 267:
+ return !isEnumConst(node) || shouldPreserveConstEnums(compilerOptions);
+ case 268:
+ return isInstantiatedModule(node, shouldPreserveConstEnums(compilerOptions));
+ default:
+ return true;
+ }
+ } else if (canHaveFlowNode(node) && node.flowNode) {
+ return !isReachableFlowNode(node.flowNode);
+ }
+ return false;
+ }
function checkJSDocCommentWorker(node) {
if (isArray(node)) {
forEach(node, (tag) => {
@@ -81040,6 +81318,7 @@ ${lanes.join(`
mark(afterMark);
measure("Check", beforeMark, afterMark);
(_b = tracing) == null || _b.pop();
+ reportedUnreachableNodes = undefined;
}
function unusedIsError(kind, isAmbient) {
if (isAmbient) {
@@ -81625,7 +81904,7 @@ ${lanes.join(`
if (isIdentifier(node) && isPropertyAccessExpression(node.parent) && node.parent.name === node) {
const keyType = getLiteralTypeFromPropertyName(node);
const objectType = getTypeOfExpression(node.parent.expression);
- const objectTypes = objectType.flags & 1048576 ? objectType.types : [objectType];
+ const objectTypes = objectType.flags & 134217728 ? objectType.types : [objectType];
return flatMap(objectTypes, (t) => filter(getIndexInfosOfType(t), (info) => isApplicableIndexType(keyType, info.keyType)));
}
return;
@@ -81749,7 +82028,7 @@ ${lanes.join(`
return getStringLiteralType(name.text);
case 168:
const nameType = checkComputedPropertyName(name);
- return isTypeAssignableToKind(nameType, 12288) ? nameType : stringType;
+ return isTypeAssignableToKind(nameType, 16896) ? nameType : stringType;
default:
return Debug.fail("Unsupported property name.");
}
@@ -81765,7 +82044,7 @@ ${lanes.join(`
}
});
}
- return getNamedMembers(propsByName);
+ return getNamedMembers(propsByName, undefined);
}
function typeHasCallOrConstructSignatures(type) {
return getSignaturesOfType(type, 0).length !== 0 || getSignaturesOfType(type, 1).length !== 0;
@@ -82163,7 +82442,7 @@ ${lanes.join(`
return;
}
function isFunctionType(type) {
- return !!(type.flags & 524288) && getSignaturesOfType(type, 0).length > 0;
+ return !!(type.flags & 1048576) && getSignaturesOfType(type, 0).length > 0;
}
function getTypeReferenceSerializationKind(typeNameIn, location) {
var _a;
@@ -82206,19 +82485,19 @@ ${lanes.join(`
return isTypeOnly ? 11 : 0;
} else if (type.flags & 3) {
return 11;
- } else if (isTypeAssignableToKind(type, 16384 | 98304 | 131072)) {
+ } else if (isTypeAssignableToKind(type, 16 | 12 | 262144)) {
return 2;
- } else if (isTypeAssignableToKind(type, 528)) {
+ } else if (isTypeAssignableToKind(type, 8448)) {
return 6;
- } else if (isTypeAssignableToKind(type, 296)) {
+ } else if (isTypeAssignableToKind(type, 67648)) {
return 3;
- } else if (isTypeAssignableToKind(type, 2112)) {
+ } else if (isTypeAssignableToKind(type, 4224)) {
return 4;
- } else if (isTypeAssignableToKind(type, 402653316)) {
+ } else if (isTypeAssignableToKind(type, 12583968)) {
return 5;
} else if (isTupleType(type)) {
return 7;
- } else if (isTypeAssignableToKind(type, 12288)) {
+ } else if (isTypeAssignableToKind(type, 16896)) {
return 8;
} else if (isFunctionType(type)) {
return 10;
@@ -82343,7 +82622,7 @@ ${lanes.join(`
return false;
}
function literalTypeToNode(type, enclosing, tracker) {
- const enumResult = type.flags & 1056 ? nodeBuilder.symbolToExpression(type.symbol, 111551, enclosing, undefined, undefined, tracker) : type === trueType ? factory.createTrue() : type === falseType && factory.createFalse();
+ const enumResult = type.flags & 98304 ? nodeBuilder.symbolToExpression(type.symbol, 111551, enclosing, undefined, undefined, tracker) : type === trueType ? factory.createTrue() : type === falseType && factory.createFalse();
if (enumResult)
return enumResult;
const literalValue = type.value;
@@ -83255,7 +83534,7 @@ ${lanes.join(`
return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);
}
const type = getTypeFromTypeNode(parameter.type);
- if (someType(type, (t) => !!(t.flags & 8576)) || isGenericType(type)) {
+ if (someType(type, (t) => !!(t.flags & 19456)) || isGenericType(type)) {
return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead);
}
if (!everyType(type, isValidIndexKeyType)) {
@@ -83764,7 +84043,7 @@ ${lanes.join(`
}
function isSimpleLiteralEnumReference(expr) {
if ((isPropertyAccessExpression(expr) || isElementAccessExpression(expr) && isStringOrNumberLiteralExpression(expr.argumentExpression)) && isEntityNameExpression(expr.expression)) {
- return !!(checkExpressionCached(expr).flags & 1056);
+ return !!(checkExpressionCached(expr).flags & 98304);
}
}
function checkAmbientInitializer(node) {
@@ -83860,6 +84139,8 @@ ${lanes.join(`
if (blockScopeFlags === 4 || blockScopeFlags === 6) {
if (isForInStatement(declarationList.parent)) {
return grammarErrorOnNode(declarationList, blockScopeFlags === 4 ? Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration : Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration);
+ } else if (isVariableStatement(declarationList.parent) && isCaseOrDefaultClause(declarationList.parent.parent)) {
+ return grammarErrorOnNode(declarationList, blockScopeFlags === 4 ? Diagnostics.using_declarations_are_not_allowed_in_case_or_default_clauses_unless_contained_within_a_block : Diagnostics.await_using_declarations_are_not_allowed_in_case_or_default_clauses_unless_contained_within_a_block);
}
if (declarationList.flags & 33554432) {
return grammarErrorOnNode(declarationList, blockScopeFlags === 4 ? Diagnostics.using_declarations_are_not_allowed_in_ambient_contexts : Diagnostics.await_using_declarations_are_not_allowed_in_ambient_contexts);
@@ -84153,9 +84434,9 @@ ${lanes.join(`
}
function findMatchingTypeReferenceOrTypeAliasReference(source, unionTarget) {
const sourceObjectFlags = getObjectFlags(source);
- if (sourceObjectFlags & (4 | 16) && unionTarget.flags & 1048576) {
+ if (sourceObjectFlags & (4 | 16) && unionTarget.flags & 134217728) {
return find(unionTarget.types, (target) => {
- if (target.flags & 524288) {
+ if (target.flags & 1048576) {
const overlapObjFlags = sourceObjectFlags & getObjectFlags(target);
if (overlapObjFlags & 4) {
return source.target === target.target;
@@ -84182,15 +84463,15 @@ ${lanes.join(`
}
function findMostOverlappyType(source, unionTarget) {
let bestMatch;
- if (!(source.flags & (402784252 | 406847488))) {
+ if (!(source.flags & (12713980 | 14680064))) {
let matchingCount = 0;
for (const target of unionTarget.types) {
- if (!(target.flags & (402784252 | 406847488))) {
+ if (!(target.flags & (12713980 | 14680064))) {
const overlap = getIntersectionType([getIndexType(source), getIndexType(target)]);
- if (overlap.flags & 4194304) {
+ if (overlap.flags & 2097152) {
return target;
- } else if (isUnitType(overlap) || overlap.flags & 1048576) {
- const len = overlap.flags & 1048576 ? countWhere(overlap.types, isUnitType) : 1;
+ } else if (isUnitType(overlap) || overlap.flags & 134217728) {
+ const len = overlap.flags & 134217728 ? countWhere(overlap.types, isUnitType) : 1;
if (len >= matchingCount) {
bestMatch = target;
matchingCount = len;
@@ -84202,16 +84483,16 @@ ${lanes.join(`
return bestMatch;
}
function filterPrimitivesIfContainsNonPrimitive(type) {
- if (maybeTypeOfKind(type, 67108864)) {
- const result = filterType(type, (t) => !(t.flags & 402784252));
- if (!(result.flags & 131072)) {
+ if (maybeTypeOfKind(type, 131072)) {
+ const result = filterType(type, (t) => !(t.flags & 12713980));
+ if (!(result.flags & 262144)) {
return result;
}
}
return type;
}
function findMatchingDiscriminantType(source, target, isRelatedTo) {
- if (target.flags & 1048576 && source.flags & (2097152 | 524288)) {
+ if (target.flags & 134217728 && source.flags & (268435456 | 1048576)) {
const match = getMatchingUnionConstituentForType(target, source);
if (match) {
return match;
@@ -84267,6 +84548,345 @@ ${lanes.join(`
Debug.assert(specifier && nodeIsSynthesized(specifier) && specifier.text === "tslib", `Expected sourceFile.imports[0] to be the synthesized tslib import`);
return specifier;
}
+ function sortSymbolsIfTSGoCompat(array) {
+ if (stableTypeOrdering && array) {
+ return array.sort(compareSymbols);
+ }
+ return array;
+ }
+ function compareSymbols(s1, s2) {
+ if (s1 === s2)
+ return 0;
+ if (s1 === undefined)
+ return 1;
+ if (s2 === undefined)
+ return -1;
+ if (length(s1.declarations) !== 0 && length(s2.declarations) !== 0) {
+ const r2 = compareNodes(s1.declarations[0], s2.declarations[0]);
+ if (r2 !== 0)
+ return r2;
+ } else if (length(s1.declarations) !== 0) {
+ return -1;
+ } else if (length(s2.declarations) !== 0) {
+ return 1;
+ }
+ const r = compareComparableValues(s1.escapedName, s2.escapedName);
+ if (r !== 0)
+ return r;
+ return getSymbolId(s1) - getSymbolId(s2);
+ }
+ function compareNodes(n1, n2) {
+ if (n1 === n2)
+ return 0;
+ if (n1 === undefined)
+ return 1;
+ if (n2 === undefined)
+ return -1;
+ const s1 = getSourceFileOfNode(n1);
+ const s2 = getSourceFileOfNode(n2);
+ if (s1 !== s2) {
+ const f1 = fileIndexMap.get(s1);
+ const f2 = fileIndexMap.get(s2);
+ return f1 - f2;
+ }
+ return n1.pos - n2.pos;
+ }
+ function compareTypes(t1, t2) {
+ if (t1 === t2)
+ return 0;
+ if (t1 === undefined)
+ return -1;
+ if (t2 === undefined)
+ return 1;
+ let c = getSortOrderFlags(t1) - getSortOrderFlags(t2);
+ if (c !== 0)
+ return c;
+ c = compareTypeNames(t1, t2);
+ if (c !== 0)
+ return c;
+ if (t1.flags & (1 | 2 | 32 | 64 | 256 | 128 | 512 | 16 | 4 | 8 | 262144 | 131072)) {} else if (t1.flags & 1048576) {
+ const c2 = compareSymbols(t1.symbol, t2.symbol);
+ if (c2 !== 0)
+ return c2;
+ if (getObjectFlags(t1) & 4 && getObjectFlags(t2) & 4) {
+ const r1 = t1;
+ const r2 = t2;
+ if (getObjectFlags(r1.target) & 8 && getObjectFlags(r2.target) & 8) {
+ const c3 = compareTupleTypes(r1.target, r2.target);
+ if (c3 !== 0) {
+ return c3;
+ }
+ }
+ if (r1.node === undefined && r2.node === undefined) {
+ const c3 = compareTypeLists(t1.resolvedTypeArguments, t2.resolvedTypeArguments);
+ if (c3 !== 0) {
+ return c3;
+ }
+ } else {
+ let c3 = compareNodes(r1.node, r2.node);
+ if (c3 !== 0) {
+ return c3;
+ }
+ c3 = compareTypeMappers(t1.mapper, t2.mapper);
+ if (c3 !== 0) {
+ return c3;
+ }
+ }
+ } else if (getObjectFlags(t1) & 4) {
+ return -1;
+ } else if (getObjectFlags(t2) & 4) {
+ return 1;
+ } else {
+ let c3 = (getObjectFlags(t1) & 142607679) - (getObjectFlags(t2) & 142607679);
+ if (c3 !== 0) {
+ return c3;
+ }
+ c3 = compareTypeMappers(t1.mapper, t2.mapper);
+ if (c3 !== 0) {
+ return c3;
+ }
+ }
+ } else if (t1.flags & 134217728) {
+ const o1 = t1.origin;
+ const o2 = t2.origin;
+ if (o1 === undefined && o2 === undefined) {
+ const c2 = compareTypeLists(t1.types, t2.types);
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (o1 === undefined) {
+ return 1;
+ } else if (o2 === undefined) {
+ return -1;
+ } else {
+ const c2 = compareTypes(o1, o2);
+ if (c2 !== 0) {
+ return c2;
+ }
+ }
+ } else if (t1.flags & 268435456) {
+ const c2 = compareTypeLists(t1.types, t2.types);
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (t1.flags & (65536 | 32768 | 16384)) {
+ const c2 = compareSymbols(t1.symbol, t2.symbol);
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (t1.flags & 1024) {
+ const c2 = compareComparableValues(t1.value, t2.value);
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (t1.flags & 2048) {
+ const c2 = compareComparableValues(t1.value, t2.value);
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (t1.flags & 8192) {
+ const b1 = t1.intrinsicName === "true";
+ const b2 = t2.intrinsicName === "true";
+ if (b1 !== b2) {
+ if (b1) {
+ return 1;
+ }
+ return -1;
+ }
+ } else if (t1.flags & 524288) {
+ const c2 = compareSymbols(t1.symbol, t2.symbol);
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (t1.flags & 2097152) {
+ let c2 = compareTypes(t1.type, t2.type);
+ if (c2 !== 0) {
+ return c2;
+ }
+ c2 = t1.indexFlags - t2.indexFlags;
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (t1.flags & 33554432) {
+ let c2 = compareTypes(t1.objectType, t2.objectType);
+ if (c2 !== 0) {
+ return c2;
+ }
+ c2 = compareTypes(t1.indexType, t2.indexType);
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (t1.flags & 67108864) {
+ let c2 = compareNodes(t1.root.node, t2.root.node);
+ if (c2 !== 0) {
+ return c2;
+ }
+ c2 = compareTypeMappers(t1.mapper, t2.mapper);
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (t1.flags & 16777216) {
+ let c2 = compareTypes(t1.baseType, t2.baseType);
+ if (c2 !== 0) {
+ return c2;
+ }
+ c2 = compareTypes(t1.constraint, t2.constraint);
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (t1.flags & 4194304) {
+ let c2 = slicesCompareString(t1.texts, t2.texts);
+ if (c2 !== 0) {
+ return c2;
+ }
+ c2 = compareTypeLists(t1.types, t2.types);
+ if (c2 !== 0) {
+ return c2;
+ }
+ } else if (t1.flags & 8388608) {
+ const c2 = compareTypes(t1.type, t2.type);
+ if (c2 !== 0) {
+ return c2;
+ }
+ }
+ return t1.id - t2.id;
+ function slicesCompareString(s1, s2) {
+ for (let i = 0;i < s1.length; i++) {
+ if (i > s2.length) {
+ return 1;
+ }
+ const v1 = s1[i];
+ const v2 = s2[i];
+ const c2 = compareComparableValues(v1, v2);
+ if (c2 !== 0)
+ return c2;
+ }
+ if (s1.length < s2.length) {
+ return -1;
+ }
+ return 0;
+ }
+ }
+ function getSortOrderFlags(t) {
+ if (t.flags & (32768 | 65536) && !(t.flags & 134217728)) {
+ return 65536;
+ }
+ return t.flags;
+ }
+ function compareTypeNames(t1, t2) {
+ const s1 = getTypeNameSymbol(t1);
+ const s2 = getTypeNameSymbol(t2);
+ if (s1 === s2) {
+ if (t1.aliasTypeArguments !== undefined) {
+ return compareTypeLists(t1.aliasTypeArguments, t2.aliasTypeArguments);
+ }
+ return 0;
+ }
+ if (s1 === undefined) {
+ return 1;
+ }
+ if (s2 === undefined) {
+ return -1;
+ }
+ return compareComparableValues(s1.escapedName, s2.escapedName);
+ }
+ function getTypeNameSymbol(t) {
+ if (t.aliasSymbol !== undefined) {
+ return t.aliasSymbol;
+ }
+ if (t.flags & (524288 | 8388608) || getObjectFlags(t) & (3 | 4)) {
+ return t.symbol;
+ }
+ return;
+ }
+ function compareTupleTypes(t1, t2) {
+ var _a;
+ if (t1 === t2) {
+ return 0;
+ }
+ if (t1.readonly !== t2.readonly) {
+ return t1.readonly ? 1 : -1;
+ }
+ if (t1.elementFlags.length !== t2.elementFlags.length) {
+ return t1.elementFlags.length - t2.elementFlags.length;
+ }
+ for (let i = 0;i < t1.elementFlags.length; i++) {
+ const c = t1.elementFlags[i] - t2.elementFlags[i];
+ if (c !== 0) {
+ return c;
+ }
+ }
+ for (let i = 0;i < (((_a = t1.labeledElementDeclarations) == null ? undefined : _a.length) ?? 0); i++) {
+ const c = compareElementLabels(t1.labeledElementDeclarations[i], t2.labeledElementDeclarations[i]);
+ if (c !== 0) {
+ return c;
+ }
+ }
+ return 0;
+ }
+ function compareElementLabels(n1, n2) {
+ if (n1 === n2) {
+ return 0;
+ }
+ if (n1 === undefined) {
+ return -1;
+ }
+ if (n2 === undefined) {
+ return 1;
+ }
+ return compareComparableValues(n1.name.escapedText, n2.name.escapedText);
+ }
+ function compareTypeLists(s1, s2) {
+ if (length(s1) !== length(s2)) {
+ return length(s1) - length(s2);
+ }
+ for (let i = 0;i < length(s1); i++) {
+ const c = compareTypes(s1[i], s2 == null ? undefined : s2[i]);
+ if (c !== 0)
+ return c;
+ }
+ return 0;
+ }
+ function compareTypeMappers(m1, m2) {
+ if (m1 === m2) {
+ return 0;
+ }
+ if (m1 === undefined) {
+ return 1;
+ }
+ if (m2 === undefined) {
+ return -1;
+ }
+ const kind1 = m1.kind;
+ const kind2 = m2.kind;
+ if (kind1 !== kind2) {
+ return kind1 - kind2;
+ }
+ switch (kind1) {
+ case 0: {
+ const c = compareTypes(m1.source, m2.source);
+ if (c !== 0) {
+ return c;
+ }
+ return compareTypes(m1.target, m2.target);
+ }
+ case 1: {
+ const c = compareTypeLists(m1.sources, m2.sources);
+ if (c !== 0) {
+ return c;
+ }
+ return compareTypeLists(m1.targets, m2.targets);
+ }
+ case 5: {
+ const c = compareTypeMappers(m1.mapper1, m2.mapper1);
+ if (c !== 0) {
+ return c;
+ }
+ return compareTypeMappers(m1.mapper2, m2.mapper2);
+ }
+ }
+ return 0;
+ }
}
function isNotAccessor(declaration) {
return !isAccessor(declaration);
@@ -84391,11 +85011,11 @@ ${lanes.join(`
this.inner.reportCyclicStructureError();
}
}
- reportLikelyUnsafeImportRequiredError(specifier) {
+ reportLikelyUnsafeImportRequiredError(specifier, symbolName2) {
var _a;
if ((_a = this.inner) == null ? undefined : _a.reportLikelyUnsafeImportRequiredError) {
this.onDiagnosticReported();
- this.inner.reportLikelyUnsafeImportRequiredError(specifier);
+ this.inner.reportLikelyUnsafeImportRequiredError(specifier, symbolName2);
}
}
reportTruncationError() {
@@ -86979,7 +87599,7 @@ ${lanes.join(`
}
}
function visitSourceFile(node) {
- const alwaysStrict = getStrictOptionValue(compilerOptions, "alwaysStrict") && !(isExternalModule(node) && moduleKind >= 5) && !isJsonSourceFile(node);
+ const alwaysStrict = getAlwaysStrict(compilerOptions) && !(isExternalModule(node) && moduleKind >= 5) && !isJsonSourceFile(node);
return factory2.updateSourceFile(node, visitLexicalEnvironment(node.statements, sourceElementVisitor, context, 0, alwaysStrict));
}
function visitObjectLiteralExpression(node) {
@@ -87012,7 +87632,7 @@ ${lanes.join(`
}
function visitClassDeclaration(node) {
const facts = getClassFacts(node);
- const promoteToIIFE = languageVersion <= 1 && !!(facts & 7);
+ const promoteToIIFE = languageVersion < 2 && !!(facts & 7);
if (!isClassLikeDeclarationWithTypeScriptSyntax(node) && !classOrConstructorParameterIsDecorated(legacyDecorators, node) && !isExportOfNamespace(node)) {
return factory2.updateClassDeclaration(node, visitNodes2(node.modifiers, modifierVisitor, isModifier), node.name, undefined, visitNodes2(node.heritageClauses, visitor, isHeritageClause), visitNodes2(node.members, getClassElementVisitor(node), isClassElement));
}
@@ -87094,6 +87714,9 @@ ${lanes.join(`
const parametersWithPropertyAssignments = constructor && filter(constructor.parameters, (p) => isParameterPropertyDeclaration(p, constructor));
if (parametersWithPropertyAssignments) {
for (const parameter of parametersWithPropertyAssignments) {
+ if (!isIdentifier(parameter.name)) {
+ continue;
+ }
const parameterProperty = factory2.createPropertyDeclaration(undefined, parameter.name, undefined, undefined, undefined);
setOriginalNode(parameterProperty, parameter);
newMembers = append(newMembers, parameterProperty);
@@ -93066,8 +93689,6 @@ ${lanes.join(`
return visitForStatement(node);
case 251:
return visitForOfStatement(node);
- case 256:
- return visitSwitchStatement(node);
default:
return visitEachChild(node, visitor, context);
}
@@ -93152,26 +93773,6 @@ ${lanes.join(`
}
return visitEachChild(node, visitor, context);
}
- function visitCaseOrDefaultClause(node, envBinding) {
- if (getUsingKindOfStatements(node.statements) !== 0) {
- if (isCaseClause(node)) {
- return factory2.updateCaseClause(node, visitNode(node.expression, visitor, isExpression), transformUsingDeclarations(node.statements, 0, node.statements.length, envBinding, undefined));
- } else {
- return factory2.updateDefaultClause(node, transformUsingDeclarations(node.statements, 0, node.statements.length, envBinding, undefined));
- }
- }
- return visitEachChild(node, visitor, context);
- }
- function visitSwitchStatement(node) {
- const usingKind = getUsingKindOfCaseOrDefaultClauses(node.caseBlock.clauses);
- if (usingKind) {
- const envBinding = createEnvBinding();
- return createDownlevelUsingStatements([
- factory2.updateSwitchStatement(node, visitNode(node.expression, visitor, isExpression), factory2.updateCaseBlock(node.caseBlock, node.caseBlock.clauses.map((clause) => visitCaseOrDefaultClause(clause, envBinding))))
- ], envBinding, usingKind === 2);
- }
- return visitEachChild(node, visitor, context);
- }
function transformUsingDeclarations(statementsIn, start, end, envBinding, topLevelStatements) {
const statements = [];
for (let i = start;i < end; i++) {
@@ -93424,17 +94025,6 @@ ${lanes.join(`
}
return result;
}
- function getUsingKindOfCaseOrDefaultClauses(clauses) {
- let result = 0;
- for (const clause of clauses) {
- const usingKind = getUsingKindOfStatements(clause.statements);
- if (usingKind === 2)
- return 2;
- if (usingKind > result)
- result = usingKind;
- }
- return result;
- }
function transformJsx(context) {
const {
factory: factory2,
@@ -93573,15 +94163,15 @@ ${lanes.join(`
}
function visitJsxElement(node, isChild) {
const tagTransform = shouldUseCreateElement(node.openingElement) ? visitJsxOpeningLikeElementCreateElement : visitJsxOpeningLikeElementJSX;
- return tagTransform(node.openingElement, node.children, isChild, node);
+ return tagTransform(node.openingElement, node.children, isChild, createRange(skipTrivia2(currentSourceFile.text, node.pos), node.end));
}
function visitJsxSelfClosingElement(node, isChild) {
const tagTransform = shouldUseCreateElement(node) ? visitJsxOpeningLikeElementCreateElement : visitJsxOpeningLikeElementJSX;
- return tagTransform(node, undefined, isChild, node);
+ return tagTransform(node, undefined, isChild, createRange(skipTrivia2(currentSourceFile.text, node.pos), node.end));
}
function visitJsxFragment(node, isChild) {
const tagTransform = currentFileState.importSpecifier === undefined ? visitJsxOpeningFragmentCreateElement : visitJsxOpeningFragmentJSX;
- return tagTransform(node.openingFragment, node.children, isChild, node);
+ return tagTransform(node.openingFragment, node.children, isChild, createRange(skipTrivia2(currentSourceFile.text, node.pos), node.end));
}
function convertJsxChildrenToChildrenPropObject(children) {
const prop = convertJsxChildrenToChildrenPropAssignment(children);
@@ -97843,7 +98433,7 @@ ${lanes.join(`
function transformCommonJSModule(node) {
startLexicalEnvironment();
const statements = [];
- const ensureUseStrict = getStrictOptionValue(compilerOptions, "alwaysStrict") || isExternalModule(currentSourceFile);
+ const ensureUseStrict = getAlwaysStrict(compilerOptions) || isExternalModule(currentSourceFile);
const statementOffset = factory2.copyPrologue(node.statements, statements, ensureUseStrict && !isJsonSourceFile(node), topLevelVisitor);
if (shouldEmitUnderscoreUnderscoreESModule()) {
append(statements, createUnderscoreUnderscoreESModule());
@@ -98924,7 +99514,7 @@ ${lanes.join(`
function createSystemModuleBody(node, dependencyGroups) {
const statements = [];
startLexicalEnvironment();
- const ensureUseStrict = getStrictOptionValue(compilerOptions, "alwaysStrict") || isExternalModule(currentSourceFile);
+ const ensureUseStrict = getAlwaysStrict(compilerOptions) || isExternalModule(currentSourceFile);
const statementOffset = factory2.copyPrologue(node.statements, statements, ensureUseStrict, topLevelVisitor);
statements.push(factory2.createVariableStatement(undefined, factory2.createVariableDeclarationList([
factory2.createVariableDeclaration("__moduleName", undefined, undefined, factory2.createLogicalAnd(contextObject, factory2.createPropertyAccessExpression(contextObject, "id")))
@@ -100508,9 +101098,13 @@ ${lanes.join(`
context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), "this"));
}
}
- function reportLikelyUnsafeImportRequiredError(specifier) {
+ function reportLikelyUnsafeImportRequiredError(specifier, symbolName2) {
if (errorNameNode || errorFallbackNode) {
- context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), specifier));
+ if (symbolName2) {
+ context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_2_from_1_This_is_likely_not_portable_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), specifier, symbolName2));
+ } else {
+ context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), specifier));
+ }
}
}
function reportTruncationError() {
@@ -100552,11 +101146,9 @@ ${lanes.join(`
rawReferencedFiles = [];
rawTypeReferenceDirectives = [];
rawLibReferenceDirectives = [];
- let hasNoDefaultLib = false;
const bundle = factory2.createBundle(map(node.sourceFiles, (sourceFile) => {
if (sourceFile.isDeclarationFile)
return;
- hasNoDefaultLib = hasNoDefaultLib || sourceFile.hasNoDefaultLib;
currentSourceFile = sourceFile;
enclosingDeclaration = sourceFile;
lateMarkedStatements = undefined;
@@ -100581,7 +101173,6 @@ ${lanes.join(`
bundle.syntheticFileReferences = getReferencedFiles(outputFilePath2);
bundle.syntheticTypeReferences = getTypeReferences();
bundle.syntheticLibReferences = getLibReferences();
- bundle.hasNoDefaultLib = hasNoDefaultLib;
return bundle;
}
needsDeclare = true;
@@ -100610,7 +101201,7 @@ ${lanes.join(`
}
}
const outputFilePath = getDirectoryPath(normalizeSlashes(getOutputPathsFor(node, host, true).declarationFilePath));
- return factory2.updateSourceFile(node, combinedStatements, true, getReferencedFiles(outputFilePath), getTypeReferences(), node.hasNoDefaultLib, getLibReferences());
+ return factory2.updateSourceFile(node, combinedStatements, true, getReferencedFiles(outputFilePath), getTypeReferences(), false, getLibReferences());
function collectFileReferences(sourceFile) {
rawReferencedFiles = concatenate(rawReferencedFiles, map(sourceFile.referencedFiles, (f) => [sourceFile, f]));
rawTypeReferenceDirectives = concatenate(rawTypeReferenceDirectives, sourceFile.typeReferenceDirectives);
@@ -101317,6 +101908,7 @@ ${lanes.join(`
continue;
if (isBindingPattern(elem.name)) {
elems = concatenate(elems, walkBindingPattern(elem.name));
+ continue;
}
elems = elems || [];
elems.push(factory2.createPropertyDeclaration(ensureModifiers(param), elem.name, undefined, ensureType(elem), undefined));
@@ -102113,7 +102705,7 @@ ${lanes.join(`
if (options.rootDir) {
commonSourceDirectory = getNormalizedAbsolutePath(options.rootDir, currentDirectory);
checkSourceFilesBelongToPath == null || checkSourceFilesBelongToPath(options.rootDir);
- } else if (options.composite && options.configFilePath) {
+ } else if (options.configFilePath) {
commonSourceDirectory = getDirectoryPath(normalizeSlashes(options.configFilePath));
checkSourceFilesBelongToPath == null || checkSourceFilesBelongToPath(commonSourceDirectory);
} else {
@@ -102124,6 +102716,13 @@ ${lanes.join(`
}
return commonSourceDirectory;
}
+ function getComputedCommonSourceDirectory(emittedFiles, currentDirectory, getCanonicalFileName) {
+ let commonSourceDirectory = computeCommonSourceDirectoryOfFilenames(emittedFiles, currentDirectory, getCanonicalFileName);
+ if (commonSourceDirectory && commonSourceDirectory[commonSourceDirectory.length - 1] !== directorySeparator) {
+ commonSourceDirectory += directorySeparator;
+ }
+ return commonSourceDirectory;
+ }
function getCommonSourceDirectoryOfConfig({ options, fileNames }, ignoreCase) {
return getCommonSourceDirectory(options, () => filter(fileNames, (file) => !(options.noEmitForJsFiles && fileExtensionIsOneOf(file, supportedJSExtensionsFlat)) && !isDeclarationFileName(file)), getDirectoryPath(normalizeSlashes(Debug.checkDefined(options.configFilePath))), createGetCanonicalFileName(!ignoreCase));
}
@@ -103651,7 +104250,7 @@ ${lanes.join(`
increaseIndent();
}
const preferNewLine = node.multiLine ? 65536 : 0;
- const allowTrailingComma = currentSourceFile && currentSourceFile.languageVersion >= 1 && !isJsonSourceFile(currentSourceFile) ? 64 : 0;
+ const allowTrailingComma = currentSourceFile && !isJsonSourceFile(currentSourceFile) ? 64 : 0;
emitList(node, node.properties, 526226 | allowTrailingComma | preferNewLine);
if (indentedFlag) {
decreaseIndent();
@@ -104946,17 +105545,13 @@ ${lanes.join(`
emitSourceFileWorker(node);
}
function emitSyntheticTripleSlashReferencesIfNeeded(node) {
- emitTripleSlashDirectives(!!node.hasNoDefaultLib, node.syntheticFileReferences || [], node.syntheticTypeReferences || [], node.syntheticLibReferences || []);
+ emitTripleSlashDirectives(node.syntheticFileReferences || [], node.syntheticTypeReferences || [], node.syntheticLibReferences || []);
}
function emitTripleSlashDirectivesIfNeeded(node) {
if (node.isDeclarationFile)
- emitTripleSlashDirectives(node.hasNoDefaultLib, node.referencedFiles, node.typeReferenceDirectives, node.libReferenceDirectives);
+ emitTripleSlashDirectives(node.referencedFiles, node.typeReferenceDirectives, node.libReferenceDirectives);
}
- function emitTripleSlashDirectives(hasNoDefaultLib, files, types, libs2) {
- if (hasNoDefaultLib) {
- writeComment(`/// `);
- writeLine();
- }
+ function emitTripleSlashDirectives(files, types, libs2) {
if (currentSourceFile && currentSourceFile.moduleName) {
writeComment(`/// `);
writeLine();
@@ -107638,7 +108233,6 @@ ${lanes.join(`
mark("beforeProgram");
const host = createProgramOptionsHost || createCompilerHost(options);
const configParsingHost = parseConfigHostFromCompilerHostLike(host);
- let skipDefaultLib = options.noLib;
const getDefaultLibraryFileName = memoize(() => host.getDefaultLibFileName(options));
const defaultLibraryPath = host.getDefaultLibLocation ? host.getDefaultLibLocation() : getDirectoryPath(getDefaultLibraryFileName());
let skipVerifyCompilerOptions = false;
@@ -107683,6 +108277,7 @@ ${lanes.join(`
let redirectTargetsMap = createMultiMap();
let usesUriStyleNodeCoreModules;
const filesByName = /* @__PURE__ */ new Map;
+ const libFiles = /* @__PURE__ */ new Set;
let missingFileNames = /* @__PURE__ */ new Map;
const filesByNameIgnoreCase = host.useCaseSensitiveFileNames() ? /* @__PURE__ */ new Map : undefined;
let resolvedProjectReferences;
@@ -107741,7 +108336,7 @@ ${lanes.join(`
}
}
(_i = tracing) == null || _i.push(tracing.Phase.Program, "processRootFiles", { count: rootNames.length });
- forEach(rootNames, (name, index) => processRootFile(name, false, false, { kind: 0, index }));
+ forEach(rootNames, (name, index) => processRootFile(name, false, { kind: 0, index }));
(_j = tracing) == null || _j.pop();
automaticTypeDirectiveNames ?? (automaticTypeDirectiveNames = rootNames.length ? getAutomaticTypeDirectiveNames(options, host) : emptyArray);
automaticTypeDirectiveResolutions = createModeAwareCache();
@@ -107760,13 +108355,14 @@ ${lanes.join(`
}
(_n = tracing) == null || _n.pop();
}
- if (rootNames.length && !skipDefaultLib) {
+ if (rootNames.length && !options.noLib) {
const defaultLibraryFileName = getDefaultLibraryFileName();
if (!options.lib && defaultLibraryFileName) {
- processRootFile(defaultLibraryFileName, true, false, { kind: 6 });
+ libFiles.add(toPath3(defaultLibraryFileName));
+ processRootFile(defaultLibraryFileName, true, { kind: 6 });
} else {
forEach(options.lib, (libFileName, index) => {
- processRootFile(pathForLibFile(libFileName), true, false, { kind: 6, index });
+ processRootFile(pathForLibFile(libFileName), true, { kind: 6, index });
});
}
}
@@ -108215,8 +108811,6 @@ ${lanes.join(`
structureIsReused = 1;
} else if (!arrayIsEqualTo(oldSourceFile.libReferenceDirectives, newSourceFile.libReferenceDirectives, fileReferenceIsEqualTo)) {
structureIsReused = 1;
- } else if (oldSourceFile.hasNoDefaultLib !== newSourceFile.hasNoDefaultLib) {
- structureIsReused = 1;
} else if (!arrayIsEqualTo(oldSourceFile.referencedFiles, newSourceFile.referencedFiles, fileReferenceIsEqualTo)) {
structureIsReused = 1;
} else {
@@ -108277,6 +108871,9 @@ ${lanes.join(`
Debug.assert(newSourceFiles.length === oldProgram.getSourceFiles().length);
for (const newSourceFile of newSourceFiles) {
filesByName.set(newSourceFile.path, newSourceFile);
+ if (oldProgram.isSourceFileDefaultLibrary(newSourceFile)) {
+ libFiles.add(newSourceFile.path);
+ }
}
const oldFilesByNameMap = oldProgram.getFilesByNameMap();
oldFilesByNameMap.forEach((oldFile, path) => {
@@ -108373,24 +108970,7 @@ ${lanes.join(`
return !!sourceFilesFoundSearchingNodeModules.get(file.path);
}
function isSourceFileDefaultLibrary(file) {
- if (!file.isDeclarationFile) {
- return false;
- }
- if (file.hasNoDefaultLib) {
- return true;
- }
- if (options.noLib) {
- return false;
- }
- const equalityComparer = host.useCaseSensitiveFileNames() ? equateStringsCaseSensitive : equateStringsCaseInsensitive;
- if (!options.lib) {
- return equalityComparer(file.fileName, getDefaultLibraryFileName());
- } else {
- return some(options.lib, (libFileName) => {
- const resolvedLib = resolvedLibReferences.get(libFileName);
- return !!resolvedLib && equalityComparer(file.fileName, resolvedLib.actual);
- });
- }
+ return libFiles.has(file.path);
}
function getTypeChecker() {
return typeChecker || (typeChecker = createTypeChecker(program));
@@ -108803,8 +109383,8 @@ ${lanes.join(`
function getConfigFileParsingDiagnostics2() {
return configFileParsingDiagnostics || emptyArray;
}
- function processRootFile(fileName, isDefaultLib, ignoreNoDefaultLib, reason) {
- processSourceFile(normalizePath(fileName), isDefaultLib, ignoreNoDefaultLib, undefined, reason);
+ function processRootFile(fileName, isDefaultLib, reason) {
+ processSourceFile(normalizePath(fileName), isDefaultLib, undefined, reason);
}
function fileReferenceIsEqualTo(a, b) {
return a.fileName === b.fileName;
@@ -108938,11 +109518,11 @@ ${lanes.join(`
return sourceFileWithAddedExtension;
}
}
- function processSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, packageId, reason) {
- getSourceFileFromReferenceWorker(fileName, (fileName2) => findSourceFile(fileName2, isDefaultLib, ignoreNoDefaultLib, reason, packageId), (diagnostic, ...args) => addFilePreprocessingFileExplainingDiagnostic(undefined, reason, diagnostic, args), reason);
+ function processSourceFile(fileName, isDefaultLib, packageId, reason) {
+ getSourceFileFromReferenceWorker(fileName, (fileName2) => findSourceFile(fileName2, isDefaultLib, reason, packageId), (diagnostic, ...args) => addFilePreprocessingFileExplainingDiagnostic(undefined, reason, diagnostic, args), reason);
}
function processProjectReferenceFile(fileName, reason) {
- return processSourceFile(fileName, false, false, undefined, reason);
+ return processSourceFile(fileName, false, undefined, reason);
}
function reportFileNamesDifferOnlyInCasingError(fileName, existingFile, reason) {
const hasExistingReasonToReportErrorOn = !isReferencedFile(reason) && some(programDiagnostics.getFileReasons().get(existingFile.path), isReferencedFile);
@@ -108964,14 +109544,14 @@ ${lanes.join(`
sourceFilesFoundSearchingNodeModules.set(path, currentNodeModulesDepth > 0);
return redirect;
}
- function findSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId) {
+ function findSourceFile(fileName, isDefaultLib, reason, packageId) {
var _a2, _b2;
(_a2 = tracing) == null || _a2.push(tracing.Phase.Program, "findSourceFile", {
fileName,
isDefaultLib: isDefaultLib || undefined,
fileIncludeKind: FileIncludeKind[reason.kind]
});
- const result = findSourceFileWorker(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId);
+ const result = findSourceFileWorker(fileName, isDefaultLib, reason, packageId);
(_b2 = tracing) == null || _b2.pop();
return result;
}
@@ -108981,7 +109561,7 @@ ${lanes.join(`
const setExternalModuleIndicator2 = getSetExternalModuleIndicator(options2);
return typeof result === "object" ? { ...result, languageVersion, setExternalModuleIndicator: setExternalModuleIndicator2, jsDocParsingMode: host2.jsDocParsingMode } : { languageVersion, impliedNodeFormat: result, setExternalModuleIndicator: setExternalModuleIndicator2, jsDocParsingMode: host2.jsDocParsingMode };
}
- function findSourceFileWorker(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId) {
+ function findSourceFileWorker(fileName, isDefaultLib, reason, packageId) {
var _a2, _b2;
const path = toPath3(fileName);
if (useSourceOfProjectReferenceRedirect) {
@@ -108992,7 +109572,7 @@ ${lanes.join(`
source = getRedirectFromOutput(realPath2);
}
if (source == null ? undefined : source.source) {
- const file2 = findSourceFile(source.source, isDefaultLib, ignoreNoDefaultLib, reason, packageId);
+ const file2 = findSourceFile(source.source, isDefaultLib, reason, packageId);
if (file2)
addFileToFilesByName(file2, path, fileName, undefined);
return file2;
@@ -109081,7 +109661,6 @@ ${lanes.join(`
filesByNameIgnoreCase.set(pathLowerCase, file);
}
}
- skipDefaultLib = skipDefaultLib || file.hasNoDefaultLib && !ignoreNoDefaultLib;
if (!options.noResolve) {
processReferencedFiles(file, isDefaultLib);
processTypeReferenceDirectives(file);
@@ -109141,7 +109720,7 @@ ${lanes.join(`
}
function processReferencedFiles(file, isDefaultLib) {
forEach(file.referencedFiles, (ref, index) => {
- processSourceFile(resolveTripleslashReference(ref.fileName, file.fileName), isDefaultLib, false, undefined, { kind: 4, file: file.path, index });
+ processSourceFile(resolveTripleslashReference(ref.fileName, file.fileName), isDefaultLib, undefined, { kind: 4, file: file.path, index });
});
}
function processTypeReferenceDirectives(file) {
@@ -109176,7 +109755,7 @@ ${lanes.join(`
if (resolvedTypeReferenceDirective) {
if (resolvedTypeReferenceDirective.isExternalLibraryImport)
currentNodeModulesDepth++;
- processSourceFile(resolvedTypeReferenceDirective.resolvedFileName, false, false, resolvedTypeReferenceDirective.packageId, reason);
+ processSourceFile(resolvedTypeReferenceDirective.resolvedFileName, false, resolvedTypeReferenceDirective.packageId, reason);
if (resolvedTypeReferenceDirective.isExternalLibraryImport)
currentNodeModulesDepth--;
} else {
@@ -109189,6 +109768,7 @@ ${lanes.join(`
return existing.actual;
const result = pathForLibFileWorker(libFileName);
(resolvedLibReferences ?? (resolvedLibReferences = /* @__PURE__ */ new Map)).set(libFileName, result);
+ libFiles.add(toPath3(result.actual));
return result.actual;
}
function pathForLibFileWorker(libFileName) {
@@ -109196,7 +109776,7 @@ ${lanes.join(`
const existing = resolvedLibProcessing == null ? undefined : resolvedLibProcessing.get(libFileName);
if (existing)
return existing;
- if (options.libReplacement === false) {
+ if (!options.libReplacement) {
const result2 = {
resolution: {
resolvedModule: undefined
@@ -109237,7 +109817,7 @@ ${lanes.join(`
forEach(file.libReferenceDirectives, (libReference, index) => {
const libFileName = getLibFileNameFromLibReference(libReference);
if (libFileName) {
- processRootFile(pathForLibFile(libFileName), true, true, { kind: 7, file: file.path, index });
+ processRootFile(pathForLibFile(libFileName), true, { kind: 7, file: file.path, index });
} else {
programDiagnostics.addFileProcessingDiagnostic({
kind: 0,
@@ -109279,7 +109859,7 @@ ${lanes.join(`
if (elideImport) {
modulesWithElidedImports.set(file.path, true);
} else if (shouldAddFile) {
- findSourceFile(resolvedFileName, false, false, { kind: 3, file: file.path, index }, resolution.packageId);
+ findSourceFile(resolvedFileName, false, { kind: 3, file: file.path, index }, resolution.packageId);
}
if (isFromNodeModulesSearch) {
currentNodeModulesDepth--;
@@ -109508,6 +110088,14 @@ ${lanes.join(`
createDiagnosticForOptionName(Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files, "outDir");
}
}
+ if (!options.noEmit && !options.composite && !options.rootDir && options.configFilePath && (options.outDir || getEmitDeclarations(options) && options.declarationDir || options.outFile)) {
+ const dir = getCommonSourceDirectory2();
+ const emittedFiles = mapDefined(files, (file) => !file.isDeclarationFile && sourceFileMayBeEmitted(file, program) ? file.fileName : undefined);
+ const dir59 = getComputedCommonSourceDirectory(emittedFiles, currentDirectory, getCanonicalFileName);
+ if (dir59 !== "" && getCanonicalFileName(dir) !== getCanonicalFileName(dir59)) {
+ createDiagnosticForOption(true, options.outFile ? "outFile" : options.outDir ? "outDir" : "declarationDir", !options.outFile && options.outDir ? "declarationDir" : undefined, chainDiagnosticMessages(chainDiagnosticMessages(undefined, Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashts6_for_migration_information), Diagnostics.The_common_source_directory_of_0_is_1_The_rootDir_setting_must_be_explicitly_set_to_this_or_another_path_to_adjust_your_output_s_file_layout, getBaseFileName(options.configFilePath), getRelativePathFromFile(options.configFilePath, dir59, getCanonicalFileName)));
+ }
+ }
if (options.checkJs && !getAllowJSCompilerOption(options)) {
createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "checkJs", "allowJs");
}
@@ -109560,7 +110148,7 @@ ${lanes.join(`
}
}
if (options.allowImportingTsExtensions && !(options.noEmit || options.emitDeclarationOnly || options.rewriteRelativeImportExtensions)) {
- createOptionValueDiagnostic("allowImportingTsExtensions", Diagnostics.Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set);
+ createOptionValueDiagnostic("allowImportingTsExtensions", Diagnostics.Option_allowImportingTsExtensions_can_only_be_used_when_one_of_noEmit_emitDeclarationOnly_or_rewriteRelativeImportExtensions_is_set);
}
const moduleResolution = getEmitModuleResolutionKind(options);
if (options.resolvePackageJsonExports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
@@ -109572,8 +110160,8 @@ ${lanes.join(`
if (options.customConditions && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, "customConditions");
}
- if (moduleResolution === 100 && !emitModuleKindIsNonNodeESM(moduleKind) && moduleKind !== 200) {
- createOptionValueDiagnostic("moduleResolution", Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later, "bundler");
+ if (moduleResolution === 100 && !emitModuleKindIsNonNodeESM(moduleKind) && moduleKind !== 200 && moduleKind !== 1) {
+ createOptionValueDiagnostic("moduleResolution", Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_preserve_commonjs_or_es2015_or_later, "bundler");
}
if (ModuleKind[moduleKind] && (100 <= moduleKind && moduleKind <= 199) && !(3 <= moduleResolution && moduleResolution <= 99)) {
const moduleKindName = ModuleKind[moduleKind];
@@ -109616,7 +110204,7 @@ ${lanes.join(`
function getIgnoreDeprecationsVersion() {
const ignoreDeprecations = options.ignoreDeprecations;
if (ignoreDeprecations) {
- if (ignoreDeprecations === "5.0") {
+ if (ignoreDeprecations === "5.0" || ignoreDeprecations === "6.0") {
return new Version(ignoreDeprecations);
}
reportInvalidIgnoreDeprecations();
@@ -109631,31 +110219,39 @@ ${lanes.join(`
const mustBeRemoved = !(removedInVersion.compareTo(typescriptVersion) === 1);
const canBeSilenced = !mustBeRemoved && ignoreDeprecationsVersion.compareTo(deprecatedInVersion) === -1;
if (mustBeRemoved || canBeSilenced) {
- fn((name, value, useInstead) => {
+ fn((name, value, useInstead, related) => {
if (mustBeRemoved) {
if (value === undefined) {
- createDiagnostic(name, value, useInstead, Diagnostics.Option_0_has_been_removed_Please_remove_it_from_your_configuration, name);
+ createDiagnostic(name, value, useInstead, related, Diagnostics.Option_0_has_been_removed_Please_remove_it_from_your_configuration, name);
} else {
- createDiagnostic(name, value, useInstead, Diagnostics.Option_0_1_has_been_removed_Please_remove_it_from_your_configuration, name, value);
+ createDiagnostic(name, value, useInstead, related, Diagnostics.Option_0_1_has_been_removed_Please_remove_it_from_your_configuration, name, value);
}
} else {
if (value === undefined) {
- createDiagnostic(name, value, useInstead, Diagnostics.Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error, name, removedIn, deprecatedIn);
+ createDiagnostic(name, value, useInstead, related, Diagnostics.Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error, name, removedIn, deprecatedIn);
} else {
- createDiagnostic(name, value, useInstead, Diagnostics.Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error, name, value, removedIn, deprecatedIn);
+ createDiagnostic(name, value, useInstead, related, Diagnostics.Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error, name, value, removedIn, deprecatedIn);
}
}
});
}
}
function verifyDeprecatedCompilerOptions() {
- function createDiagnostic(name, value, useInstead, message, ...args) {
+ function createDiagnostic(name, value, useInstead, related, message, ...args) {
if (useInstead) {
- const details = chainDiagnosticMessages(undefined, Diagnostics.Use_0_instead, useInstead);
+ let details = chainDiagnosticMessages(undefined, Diagnostics.Use_0_instead, useInstead);
+ if (related) {
+ details = chainDiagnosticMessages(details, related);
+ }
const chain = chainDiagnosticMessages(details, message, ...args);
createDiagnosticForOption(!value, name, undefined, chain);
} else {
- createDiagnosticForOption(!value, name, undefined, message, ...args);
+ let details;
+ if (related) {
+ details = chainDiagnosticMessages(undefined, related);
+ }
+ const chain = chainDiagnosticMessages(details, message, ...args);
+ createDiagnosticForOption(!value, name, undefined, chain);
}
}
checkDeprecations("5.0", "5.5", createDiagnostic, (createDeprecatedDiagnostic) => {
@@ -109681,7 +110277,7 @@ ${lanes.join(`
createDeprecatedDiagnostic("charset");
}
if (options.out) {
- createDeprecatedDiagnostic("out", undefined, "outFile");
+ createDeprecatedDiagnostic("out");
}
if (options.importsNotUsedAsValues) {
createDeprecatedDiagnostic("importsNotUsedAsValues", undefined, "verbatimModuleSyntax");
@@ -109690,9 +110286,41 @@ ${lanes.join(`
createDeprecatedDiagnostic("preserveValueImports", undefined, "verbatimModuleSyntax");
}
});
+ checkDeprecations("6.0", "7.0", createDiagnostic, (createDeprecatedDiagnostic) => {
+ if (options.alwaysStrict === false) {
+ createDeprecatedDiagnostic("alwaysStrict", "false", undefined, undefined);
+ }
+ if (options.target === 1) {
+ createDeprecatedDiagnostic("target", "ES5");
+ }
+ if (options.moduleResolution === 2) {
+ createDeprecatedDiagnostic("moduleResolution", "node10", undefined, Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashts6_for_migration_information);
+ }
+ if (options.moduleResolution === 1) {
+ createDeprecatedDiagnostic("moduleResolution", "classic", undefined, undefined);
+ }
+ if (options.baseUrl !== undefined) {
+ createDeprecatedDiagnostic("baseUrl", undefined, undefined, Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashts6_for_migration_information);
+ }
+ if (options.esModuleInterop === false) {
+ createDeprecatedDiagnostic("esModuleInterop", "false", undefined, undefined);
+ }
+ if (options.allowSyntheticDefaultImports === false) {
+ createDeprecatedDiagnostic("allowSyntheticDefaultImports", "false", undefined, undefined);
+ }
+ if (options.outFile) {
+ createDeprecatedDiagnostic("outFile");
+ }
+ if (options.module === 0 || options.module === 2 || options.module === 3 || options.module === 4) {
+ createDeprecatedDiagnostic("module", ModuleKind[options.module], undefined, undefined);
+ }
+ if (options.downlevelIteration !== undefined) {
+ createDeprecatedDiagnostic("downlevelIteration");
+ }
+ });
}
function verifyDeprecatedProjectReference(ref, parentFile, index) {
- function createDiagnostic(_name, _value, _useInstead, message, ...args) {
+ function createDiagnostic(_name, _value, _useInstead, _related, message, ...args) {
createDiagnosticForReference(parentFile, index, message, ...args);
}
checkDeprecations("5.0", "5.5", createDiagnostic, (createDeprecatedDiagnostic) => {
@@ -110374,9 +111002,7 @@ ${lanes.join(`
const referencesSyntax = forEachTsConfigPropArray(sourceFile, "references", (property) => isArrayLiteralExpression(property.initializer) ? property.initializer : undefined);
return referencesSyntax && referencesSyntax.elements.length > index ? createDiagnosticForNodeInSourceFile(sourceFile, referencesSyntax.elements[index], reason.kind === 2 ? Diagnostics.File_is_output_from_referenced_project_specified_here : Diagnostics.File_is_source_from_referenced_project_specified_here) : undefined;
case 8:
- if (!options.types)
- return;
- configFileNode = getOptionsSyntaxByArrayElementValue(getCompilerOptionsObjectLiteralSyntax(), "types", reason.typeReference);
+ configFileNode = getOptionsSyntaxByArrayElementValue(getCompilerOptionsObjectLiteralSyntax(), "types", usesWildcardTypes(options) ? "*" : reason.typeReference);
message = Diagnostics.File_is_entry_point_of_type_library_specified_here;
break;
case 6:
@@ -110852,7 +111478,7 @@ ${lanes.join(`
if (canCopySemanticDiagnostics) {
if (sourceFile.isDeclarationFile && !copyDeclarationFileDiagnostics)
return;
- if (sourceFile.hasNoDefaultLib && !copyLibFileDiagnostics)
+ if (newProgram.isSourceFileDefaultLibrary(sourceFile) && !copyLibFileDiagnostics)
return;
const diagnostics = oldState.semanticDiagnosticsPerFile.get(sourceFilePath);
if (diagnostics) {
@@ -112481,7 +113107,7 @@ ${lanes.join(`
shouldRetryResolution,
logChanges
}) {
- var _a;
+ var _a, _b;
const path = resolutionHost.toPath(containingFile);
const resolutionsInFile = perFileCache.get(path) || perFileCache.set(path, createModeAwareCache()).get(path);
const resolvedModules = [];
@@ -112501,7 +113127,7 @@ ${lanes.join(`
resolutionHost.onDiscoveredSymlink();
}
resolutionsInFile.set(name, mode, resolution);
- if (resolution !== existingResolution) {
+ if (resolution !== existingResolution && !((_b = resolutionHost.skipWatchingFailedLookups) == null ? undefined : _b.call(resolutionHost, path))) {
watchFailedLookupLocationsOfExternalModuleResolutions(name, resolution, path, getResolutionWithResolvedFileName, deferWatchingNonRelativeResolution);
if (existingResolution) {
stopWatchFailedLookupLocationOfResolution(existingResolution, path, getResolutionWithResolvedFileName);
@@ -112525,8 +113151,11 @@ ${lanes.join(`
reusedNames == null || reusedNames.forEach((entry) => seenNamesInFile.set(loader.nameAndMode.getName(entry), loader.nameAndMode.getMode(entry, containingSourceFile, (redirectedReference == null ? undefined : redirectedReference.commandLine.options) || options), true));
if (resolutionsInFile.size() !== seenNamesInFile.size()) {
resolutionsInFile.forEach((resolution, name, mode) => {
+ var _a2;
if (!seenNamesInFile.has(name, mode)) {
- stopWatchFailedLookupLocationOfResolution(resolution, path, getResolutionWithResolvedFileName);
+ if (!((_a2 = resolutionHost.skipWatchingFailedLookups) == null ? undefined : _a2.call(resolutionHost, path))) {
+ stopWatchFailedLookupLocationOfResolution(resolution, path, getResolutionWithResolvedFileName);
+ }
resolutionsInFile.delete(name, mode);
}
});
@@ -112887,9 +113516,12 @@ ${lanes.join(`
}, nonRecursive ? 0 : 1);
}
function removeResolutionsOfFileFromCache(cache, filePath, getResolutionWithResolvedFileName) {
+ var _a;
const resolutions = cache.get(filePath);
if (resolutions) {
- resolutions.forEach((resolution) => stopWatchFailedLookupLocationOfResolution(resolution, filePath, getResolutionWithResolvedFileName));
+ if (!((_a = resolutionHost.skipWatchingFailedLookups) == null ? undefined : _a.call(resolutionHost, filePath))) {
+ resolutions.forEach((resolution) => stopWatchFailedLookupLocationOfResolution(resolution, filePath, getResolutionWithResolvedFileName));
+ }
cache.delete(filePath);
}
}
@@ -113040,8 +113672,13 @@ ${lanes.join(`
}, 1) : noopFileWatcher;
}
function updateTypeRootsWatch() {
+ var _a;
const options = resolutionHost.getCompilationSettings();
- if (options.types) {
+ if (!usesWildcardTypes(options)) {
+ closeTypeRootsWatch();
+ return;
+ }
+ if (!isRootWatchable || ((_a = resolutionHost.skipWatchingTypeRoots) == null ? undefined : _a.call(resolutionHost))) {
closeTypeRootsWatch();
return;
}
@@ -113327,7 +113964,7 @@ ${lanes.join(`
const referencedResolvedRef = Debug.checkDefined((_b = program.getResolvedProjectReferences()) == null ? undefined : _b[reason.index]);
return chainDiagnosticMessages(undefined, options.outFile ? isOutput ? Diagnostics.Output_from_referenced_project_0_included_because_1_specified : Diagnostics.Source_from_referenced_project_0_included_because_1_specified : isOutput ? Diagnostics.Output_from_referenced_project_0_included_because_module_is_specified_as_none : Diagnostics.Source_from_referenced_project_0_included_because_module_is_specified_as_none, toFileName(referencedResolvedRef.sourceFile.fileName, fileNameConvertor), options.outFile ? "--outFile" : "--out");
case 8: {
- const messageAndArgs = options.types ? reason.packageId ? [Diagnostics.Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1, reason.typeReference, packageIdToString(reason.packageId)] : [Diagnostics.Entry_point_of_type_library_0_specified_in_compilerOptions, reason.typeReference] : reason.packageId ? [Diagnostics.Entry_point_for_implicit_type_library_0_with_packageId_1, reason.typeReference, packageIdToString(reason.packageId)] : [Diagnostics.Entry_point_for_implicit_type_library_0, reason.typeReference];
+ const messageAndArgs = !usesWildcardTypes(options) ? reason.packageId ? [Diagnostics.Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1, reason.typeReference, packageIdToString(reason.packageId)] : [Diagnostics.Entry_point_of_type_library_0_specified_in_compilerOptions, reason.typeReference] : reason.packageId ? [Diagnostics.Entry_point_for_implicit_type_library_0_with_packageId_1, reason.typeReference, packageIdToString(reason.packageId)] : [Diagnostics.Entry_point_for_implicit_type_library_0, reason.typeReference];
return chainDiagnosticMessages(undefined, ...messageAndArgs);
}
case 6: {
@@ -115729,7 +116366,13 @@ ${lanes.join(`
return shouldBePretty(sys2, options) ? createDiagnosticReporter(sys2, true) : existing;
}
function defaultIsPretty(sys2) {
- return !!sys2.writeOutputIsTTY && sys2.writeOutputIsTTY() && !sys2.getEnvironmentVariable("NO_COLOR");
+ if (sys2.getEnvironmentVariable("NO_COLOR")) {
+ return false;
+ }
+ if (sys2.getEnvironmentVariable("FORCE_COLOR")) {
+ return true;
+ }
+ return !!sys2.writeOutputIsTTY && sys2.writeOutputIsTTY();
}
function shouldBePretty(sys2, options) {
if (!options || typeof options.pretty === "undefined") {
@@ -115738,7 +116381,8 @@ ${lanes.join(`
return options.pretty;
}
function getOptionsForHelp(commandLine) {
- return commandLine.options.all ? toSorted(optionDeclarations.concat(tscBuildOption), (a, b) => compareStringsCaseInsensitive(a.name, b.name)) : filter(optionDeclarations.concat(tscBuildOption), (v) => !!v.showInSimplifiedHelpView);
+ const helpOptions = filter(optionDeclarations.concat(tscBuildOption), (option) => option.showInHelp !== false);
+ return commandLine.options.all ? toSorted(helpOptions, (a, b) => compareStringsCaseInsensitive(a.name, b.name)) : filter(helpOptions, (v) => !!v.showInSimplifiedHelpView);
}
function printVersion(sys2) {
sys2.write(getDiagnosticText(Diagnostics.Version_0, version) + sys2.newLine);
@@ -115998,15 +116642,15 @@ ${lanes.join(`
function printAllHelp(sys2, compilerOptions, buildOptions, watchOptions) {
let output = [...getHeader(sys2, `${getDiagnosticText(Diagnostics.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Diagnostics.Version_0, version)}`)];
output = [...output, ...generateSectionOptionsOutput(sys2, getDiagnosticText(Diagnostics.ALL_COMPILER_OPTIONS), compilerOptions, true, undefined, formatMessage(Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, "https://aka.ms/tsc"))];
- output = [...output, ...generateSectionOptionsOutput(sys2, getDiagnosticText(Diagnostics.WATCH_OPTIONS), watchOptions, false, getDiagnosticText(Diagnostics.Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon))];
- output = [...output, ...generateSectionOptionsOutput(sys2, getDiagnosticText(Diagnostics.BUILD_OPTIONS), filter(buildOptions, (option) => option !== tscBuildOption), false, formatMessage(Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, "https://aka.ms/tsc-composite-builds"))];
+ output = [...output, ...generateSectionOptionsOutput(sys2, getDiagnosticText(Diagnostics.WATCH_OPTIONS), filter(watchOptions, (option) => option.showInHelp !== false), false, getDiagnosticText(Diagnostics.Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon))];
+ output = [...output, ...generateSectionOptionsOutput(sys2, getDiagnosticText(Diagnostics.BUILD_OPTIONS), filter(buildOptions, (option) => option !== tscBuildOption && option.showInHelp !== false), false, formatMessage(Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, "https://aka.ms/tsc-composite-builds"))];
for (const line of output) {
sys2.write(line);
}
}
function printBuildHelp(sys2, buildOptions) {
let output = [...getHeader(sys2, `${getDiagnosticText(Diagnostics.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Diagnostics.Version_0, version)}`)];
- output = [...output, ...generateSectionOptionsOutput(sys2, getDiagnosticText(Diagnostics.BUILD_OPTIONS), filter(buildOptions, (option) => option !== tscBuildOption), false, formatMessage(Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, "https://aka.ms/tsc-composite-builds"))];
+ output = [...output, ...generateSectionOptionsOutput(sys2, getDiagnosticText(Diagnostics.BUILD_OPTIONS), filter(buildOptions, (option) => option !== tscBuildOption && option.showInHelp !== false), false, formatMessage(Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, "https://aka.ms/tsc-composite-builds"))];
for (const line of output) {
sys2.write(line);
}
@@ -116082,18 +116726,23 @@ ${lanes.join(`
return sys2.exit(1);
}
}
- } else if (commandLine.fileNames.length === 0) {
+ } else if (!commandLine.options.ignoreConfig || commandLine.fileNames.length === 0) {
const searchPath = normalizePath(sys2.getCurrentDirectory());
configFileName = findConfigFile(searchPath, (fileName) => sys2.fileExists(fileName));
- }
- if (commandLine.fileNames.length === 0 && !configFileName) {
- if (commandLine.options.showConfig) {
- reportDiagnostic(createCompilerDiagnostic(Diagnostics.Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0, normalizePath(sys2.getCurrentDirectory())));
- } else {
- printVersion(sys2);
- printHelp(sys2, commandLine);
+ if (commandLine.fileNames.length !== 0) {
+ if (configFileName) {
+ reportDiagnostic(createCompilerDiagnostic(Diagnostics.tsconfig_json_is_present_but_will_not_be_loaded_if_files_are_specified_on_commandline_Use_ignoreConfig_to_skip_this_error));
+ return sys2.exit(1);
+ }
+ } else if (!configFileName) {
+ if (commandLine.options.showConfig) {
+ reportDiagnostic(createCompilerDiagnostic(Diagnostics.Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0, normalizePath(sys2.getCurrentDirectory())));
+ } else {
+ printVersion(sys2);
+ printHelp(sys2, commandLine);
+ }
+ return sys2.exit(1);
}
- return sys2.exit(1);
}
const currentDirectory = sys2.getCurrentDirectory();
const commandLineOptions = convertToOptionsWithAbsolutePaths(commandLine.options, (fileName) => getNormalizedAbsolutePath(fileName, currentDirectory));
@@ -117507,7 +118156,7 @@ ${lanes.join(`
if (typeAcquisition.include)
addInferredTypings(typeAcquisition.include, "Explicitly included types");
const exclude = typeAcquisition.exclude || [];
- if (!compilerOptions.types) {
+ if (!compilerOptions.types || usesWildcardTypes(compilerOptions)) {
const possibleSearchDirs = new Set(fileNames.map(getDirectoryPath));
possibleSearchDirs.add(projectRootPath);
possibleSearchDirs.forEach((searchDir) => {
@@ -117631,6 +118280,7 @@ ${lanes.join(`
NameValidationResult2[NameValidationResult2["NameTooLong"] = 2] = "NameTooLong";
NameValidationResult2[NameValidationResult2["NameStartsWithDot"] = 3] = "NameStartsWithDot";
NameValidationResult2[NameValidationResult2["NameStartsWithUnderscore"] = 4] = "NameStartsWithUnderscore";
+ NameValidationResult2[NameValidationResult2["NameContainsInvalidCharacters"] = 5] = "NameContainsInvalidCharacters";
NameValidationResult2[NameValidationResult2["NameContainsNonURISafeCharacters"] = 5] = "NameContainsNonURISafeCharacters";
return NameValidationResult2;
})(NameValidationResult || {});
@@ -117665,7 +118315,7 @@ ${lanes.join(`
return 0;
}
}
- if (encodeURIComponent(packageName) !== packageName) {
+ if (!/^[\w.-]+$/.test(packageName)) {
return 5;
}
return 0;
@@ -117685,7 +118335,7 @@ ${lanes.join(`
case 4:
return `'${typing}':: ${kind} name '${name}' cannot start with '_'`;
case 5:
- return `'${typing}':: ${kind} name '${name}' contains non URI safe characters`;
+ return `'${typing}':: ${kind} name '${name}' contains invalid characters`;
case 0:
return Debug.fail();
default:
@@ -119212,7 +119862,7 @@ ${lanes.join(`
return false;
}
function areIntersectedTypesAvoidingStringReduction(checker, t1, t2) {
- return !!(t1.flags & 4) && checker.isEmptyAnonymousObjectType(t2);
+ return !!(t1.flags & 32) && checker.isEmptyAnonymousObjectType(t2);
}
function isStringAndEmptyAnonymousObjectIntersection(type) {
if (!type.isIntersection()) {
@@ -122933,14 +123583,13 @@ ${lanes.join(`
}
function preProcessFile(sourceText, readImportFiles = true, detectJavaScriptImports = false) {
const pragmaContext = {
- languageVersion: 1,
+ languageVersion: 12,
pragmas: undefined,
checkJsDirective: undefined,
referencedFiles: [],
typeReferenceDirectives: [],
libReferenceDirectives: [],
amdDependencies: [],
- hasNoDefaultLib: undefined,
moduleName: undefined
};
const importedFiles = [];
@@ -123235,7 +123884,7 @@ ${lanes.join(`
importedFiles.push(decl.ref);
}
}
- return { referencedFiles: pragmaContext.referencedFiles, typeReferenceDirectives: pragmaContext.typeReferenceDirectives, libReferenceDirectives: pragmaContext.libReferenceDirectives, importedFiles, isLibFile: !!pragmaContext.hasNoDefaultLib, ambientExternalModules: undefined };
+ return { referencedFiles: pragmaContext.referencedFiles, typeReferenceDirectives: pragmaContext.typeReferenceDirectives, libReferenceDirectives: pragmaContext.libReferenceDirectives, importedFiles, isLibFile: false, ambientExternalModules: undefined };
} else {
let ambientModuleNames;
if (ambientExternalModules) {
@@ -123250,7 +123899,7 @@ ${lanes.join(`
}
}
}
- return { referencedFiles: pragmaContext.referencedFiles, typeReferenceDirectives: pragmaContext.typeReferenceDirectives, libReferenceDirectives: pragmaContext.libReferenceDirectives, importedFiles, isLibFile: !!pragmaContext.hasNoDefaultLib, ambientExternalModules: ambientModuleNames };
+ return { referencedFiles: pragmaContext.referencedFiles, typeReferenceDirectives: pragmaContext.typeReferenceDirectives, libReferenceDirectives: pragmaContext.libReferenceDirectives, importedFiles, isLibFile: false, ambientExternalModules: ambientModuleNames };
}
}
var base64UrlRegExp = /^data:(?:application\/json;charset=[uU][tT][fF]-8;base64,([A-Za-z0-9+/=]+)$)?/;
@@ -123596,8 +124245,7 @@ ${lanes.join(`
function transpileDeclaration(input, transpileOptions) {
return transpileWorker(input, transpileOptions, true);
}
- var barebonesLibContent = `///
-interface Boolean {}
+ var barebonesLibContent = `interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
@@ -123644,6 +124292,7 @@ interface Symbol {
options.declaration = false;
options.declarationMap = false;
}
+ options.noLib = !declaration;
const newLine = getNewLineCharacter(options);
const compilerHost = {
getSourceFile: (fileName) => fileName === normalizePath(inputFileName) ? sourceFile : fileName === normalizePath(barebonesLibName) ? barebonesLibSourceFile : undefined,
@@ -123681,8 +124330,7 @@ interface Symbol {
}
let outputText;
let sourceMapText;
- const inputs = declaration ? [inputFileName, barebonesLibName] : [inputFileName];
- const program = createProgram(inputs, options, compilerHost);
+ const program = createProgram([inputFileName], options, compilerHost);
if (transpileOptions.reportDiagnostics) {
addRange(diagnostics, program.getSyntacticDiagnostics(sourceFile));
addRange(diagnostics, program.getOptionsDiagnostics());
@@ -123721,7 +124369,7 @@ interface Symbol {
__export(ts_NavigateTo_exports, {
getNavigateToItems: () => getNavigateToItems
});
- function getNavigateToItems(sourceFiles, checker, cancellationToken, searchValue, maxResultCount, excludeDtsFiles, excludeLibFiles) {
+ function getNavigateToItems(sourceFiles, checker, cancellationToken, searchValue, maxResultCount, excludeDtsFiles, excludeLibFiles, program) {
const patternMatcher = createPatternMatcher(searchValue);
if (!patternMatcher)
return emptyArray;
@@ -123732,26 +124380,26 @@ interface Symbol {
if (excludeDtsFiles && sourceFile.isDeclarationFile) {
continue;
}
- if (shouldExcludeFile(sourceFile, !!excludeLibFiles, singleCurrentFile)) {
+ if (shouldExcludeFile(sourceFile, !!excludeLibFiles, singleCurrentFile, program)) {
continue;
}
sourceFile.getNamedDeclarations().forEach((declarations, name) => {
- getItemsFromNamedDeclaration(patternMatcher, name, declarations, checker, sourceFile.fileName, !!excludeLibFiles, singleCurrentFile, rawItems);
+ getItemsFromNamedDeclaration(patternMatcher, name, declarations, checker, sourceFile.fileName, !!excludeLibFiles, singleCurrentFile, rawItems, program);
});
}
rawItems.sort(compareNavigateToItems);
return (maxResultCount === undefined ? rawItems : rawItems.slice(0, maxResultCount)).map(createNavigateToItem);
}
- function shouldExcludeFile(file, excludeLibFiles, singleCurrentFile) {
- return file !== singleCurrentFile && excludeLibFiles && (isInsideNodeModules(file.path) || file.hasNoDefaultLib);
+ function shouldExcludeFile(file, excludeLibFiles, singleCurrentFile, program) {
+ return file !== singleCurrentFile && excludeLibFiles && (isInsideNodeModules(file.path) || program.isSourceFileDefaultLibrary(file));
}
- function getItemsFromNamedDeclaration(patternMatcher, name, declarations, checker, fileName, excludeLibFiles, singleCurrentFile, rawItems) {
+ function getItemsFromNamedDeclaration(patternMatcher, name, declarations, checker, fileName, excludeLibFiles, singleCurrentFile, rawItems, program) {
const match = patternMatcher.getMatchForLastSegmentOfPattern(name);
if (!match) {
return;
}
for (const declaration of declarations) {
- if (!shouldKeepItem(declaration, checker, excludeLibFiles, singleCurrentFile))
+ if (!shouldKeepItem(declaration, checker, excludeLibFiles, singleCurrentFile, program))
continue;
if (patternMatcher.patternContainsDots) {
const fullMatch = patternMatcher.getFullMatch(getContainers(declaration), name);
@@ -123763,7 +124411,7 @@ interface Symbol {
}
}
}
- function shouldKeepItem(declaration, checker, excludeLibFiles, singleCurrentFile) {
+ function shouldKeepItem(declaration, checker, excludeLibFiles, singleCurrentFile, program) {
var _a;
switch (declaration.kind) {
case 274:
@@ -123771,7 +124419,7 @@ interface Symbol {
case 272:
const importer = checker.getSymbolAtLocation(declaration.name);
const imported = checker.getAliasedSymbol(importer);
- return importer.escapedName !== imported.escapedName && !((_a = imported.declarations) == null ? undefined : _a.every((d) => shouldExcludeFile(d.getSourceFile(), excludeLibFiles, singleCurrentFile)));
+ return importer.escapedName !== imported.escapedName && !((_a = imported.declarations) == null ? undefined : _a.every((d) => shouldExcludeFile(d.getSourceFile(), excludeLibFiles, singleCurrentFile, program)));
default:
return true;
}
@@ -124065,8 +124713,8 @@ interface Symbol {
addNodeWithRecursiveChild(node, getInteriorModule(node).body);
break;
case 278: {
- const expression2 = node.expression;
- const child = isObjectLiteralExpression(expression2) || isCallExpression(expression2) ? expression2 : isArrowFunction(expression2) || isFunctionExpression(expression2) ? expression2.body : undefined;
+ const expression2 = skipOuterExpressions(node.expression);
+ const child = isObjectLiteralExpression(expression2) || isCallExpression(expression2) || isClassExpression(expression2) ? expression2 : isArrowFunction(expression2) || isFunctionExpression(expression2) ? expression2.body : undefined;
if (child) {
startNode(node);
addChildrenRecursively(child);
@@ -128589,7 +129237,7 @@ ${newComment.split(`
const start = first(statements).getStart();
const end = last(statements).end;
expressionDiagnostic = createFileDiagnostic(sourceFile, start, end - start, Messages.expressionExpected);
- } else if (checker.getTypeAtLocation(expression).flags & (16384 | 131072)) {
+ } else if (checker.getTypeAtLocation(expression).flags & (16 | 262144)) {
expressionDiagnostic = createDiagnosticForNode(expression, Messages.uselessConstantType);
}
for (const scope of scopes) {
@@ -129614,25 +130262,25 @@ ${newComment.split(`
return this.checker.getDefaultFromTypeParameter(this);
}
isUnion() {
- return !!(this.flags & 1048576);
+ return !!(this.flags & 134217728);
}
isIntersection() {
- return !!(this.flags & 2097152);
+ return !!(this.flags & 268435456);
}
isUnionOrIntersection() {
- return !!(this.flags & 3145728);
+ return !!(this.flags & 402653184);
}
isLiteral() {
- return !!(this.flags & (128 | 256 | 2048));
+ return !!(this.flags & (1024 | 2048 | 4096));
}
isStringLiteral() {
- return !!(this.flags & 128);
+ return !!(this.flags & 1024);
}
isNumberLiteral() {
- return !!(this.flags & 256);
+ return !!(this.flags & 2048);
}
isTypeParameter() {
- return !!(this.flags & 262144);
+ return !!(this.flags & 524288);
}
isClassOrInterface() {
return !!(getObjectFlags(this) & 3);
@@ -129641,7 +130289,7 @@ ${newComment.split(`
return !!(getObjectFlags(this) & 1);
}
isIndexType() {
- return !!(this.flags & 4194304);
+ return !!(this.flags & 2097152);
}
get typeArguments() {
if (getObjectFlags(this) & 4) {
@@ -129950,7 +130598,7 @@ ${newComment.split(`
}
function getDefaultCompilerOptions2() {
return {
- target: 1,
+ target: 12,
jsx: 1
};
}
@@ -130686,7 +131334,7 @@ ${newComment.split(`
function getNavigateToItems2(searchValue, maxResultCount, fileName, excludeDtsFiles = false, excludeLibFiles = false) {
synchronizeHostData();
const sourceFiles = fileName ? [getValidSourceFile(fileName)] : program.getSourceFiles();
- return getNavigateToItems(sourceFiles, program.getTypeChecker(), cancellationToken, searchValue, maxResultCount, excludeDtsFiles, excludeLibFiles);
+ return getNavigateToItems(sourceFiles, program.getTypeChecker(), cancellationToken, searchValue, maxResultCount, excludeDtsFiles, excludeLibFiles, program);
}
function getEmitOutput(fileName, emitOnlyDtsFiles, forceDtsEmit) {
synchronizeHostData();
@@ -131435,6 +132083,7 @@ ${newComment.split(`
return checker.getSymbolAtLocation(node);
}
function getPropertySymbolsFromContextualType(node, checker, contextualType, unionSymbolOk) {
+ contextualType = contextualType.getNonNullableType();
const name = getNameFromPropertyName(node.name);
if (!name)
return emptyArray;
@@ -136872,7 +137521,7 @@ ${newComment.split(`
return { kind: 0, token, call, modifierFlags, parentDeclaration: declaration, declSourceFile, isJSFile };
}
const enumDeclaration = find(symbol.declarations, isEnumDeclaration);
- if (enumDeclaration && !(leftExpressionType.flags & 1056) && !isPrivateIdentifier(token) && !isSourceFileFromLibrary(program, enumDeclaration.getSourceFile())) {
+ if (enumDeclaration && !(leftExpressionType.flags & 98304) && !isPrivateIdentifier(token) && !isSourceFileFromLibrary(program, enumDeclaration.getSourceFile())) {
return { kind: 1, token, parentDeclaration: enumDeclaration };
}
return;
@@ -137002,7 +137651,7 @@ ${newComment.split(`
function addEnumMemberDeclaration(changes, checker, { token, parentDeclaration }) {
const hasStringInitializer = some(parentDeclaration.members, (member) => {
const type = checker.getTypeAtLocation(member);
- return !!(type && type.flags & 402653316);
+ return !!(type && type.flags & 12583968);
});
const sourceFile = parentDeclaration.getSourceFile();
const enumMember = factory.createEnumMember(token, hasStringInitializer ? factory.createStringLiteral(token.text) : undefined);
@@ -137062,40 +137711,40 @@ ${newComment.split(`
if (type.flags & 3) {
return createUndefined();
}
- if (type.flags & (4 | 134217728)) {
+ if (type.flags & (32 | 4194304)) {
return factory.createStringLiteral("", quotePreference === 0);
}
- if (type.flags & 8) {
+ if (type.flags & 64) {
return factory.createNumericLiteral(0);
}
- if (type.flags & 64) {
+ if (type.flags & 128) {
return factory.createBigIntLiteral("0n");
}
- if (type.flags & 16) {
+ if (type.flags & 256) {
return factory.createFalse();
}
- if (type.flags & 1056) {
+ if (type.flags & 98304) {
const enumMember = type.symbol.exports ? firstOrUndefinedIterator(type.symbol.exports.values()) : type.symbol;
const symbol = type.symbol.parent && type.symbol.parent.flags & 256 ? type.symbol.parent : type.symbol;
const name = checker.symbolToExpression(symbol, 111551, undefined, 64);
return enumMember === undefined || name === undefined ? factory.createNumericLiteral(0) : factory.createPropertyAccessExpression(name, checker.symbolToString(enumMember));
}
- if (type.flags & 256) {
+ if (type.flags & 2048) {
return factory.createNumericLiteral(type.value);
}
- if (type.flags & 2048) {
+ if (type.flags & 4096) {
return factory.createBigIntLiteral(type.value);
}
- if (type.flags & 128) {
+ if (type.flags & 1024) {
return factory.createStringLiteral(type.value, quotePreference === 0);
}
- if (type.flags & 512) {
+ if (type.flags & 8192) {
return type === checker.getFalseType() || type === checker.getFalseType(true) ? factory.createFalse() : factory.createTrue();
}
- if (type.flags & 65536) {
+ if (type.flags & 8) {
return factory.createNull();
}
- if (type.flags & 1048576) {
+ if (type.flags & 134217728) {
const expression = firstDefined(type.types, (t) => tryGetValueFromType(context, checker, importAdder, quotePreference, t, enclosingDeclaration));
return expression ?? createUndefined();
}
@@ -137134,7 +137783,7 @@ ${newComment.split(`
return factory.createIdentifier("undefined");
}
function isObjectLiteralType(type) {
- return type.flags & 524288 && (getObjectFlags(type) & 128 || type.symbol && tryCast(singleOrUndefined(type.symbol.declarations), isTypeLiteralNode));
+ return type.flags & 1048576 && (getObjectFlags(type) & 128 || type.symbol && tryCast(singleOrUndefined(type.symbol.declarations), isTypeLiteralNode));
}
function getUnmatchedAttributes(checker, target, source) {
const attrsType = checker.getContextualType(source.attributes);
@@ -137406,6 +138055,8 @@ ${newComment.split(`
var errorCodes31 = [
errorCodeCannotFindModule,
Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code,
+ Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode.code,
+ Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig.code,
errorCannotFindImplicitJsxImport
];
registerCodeFix({
@@ -137451,7 +138102,13 @@ ${newComment.split(`
}
function getTypesPackageNameToInstall(packageName, host, diagCode) {
var _a;
- return diagCode === errorCodeCannotFindModule ? nodeCoreModules.has(packageName) ? "@types/node" : undefined : ((_a = host.isKnownTypesPackageName) == null ? undefined : _a.call(host, packageName)) ? getTypesPackageName(packageName) : undefined;
+ if (nodeCoreModules.has(packageName)) {
+ return "@types/node";
+ }
+ if (diagCode !== errorCodeCannotFindModule) {
+ return ((_a = host.isKnownTypesPackageName) == null ? undefined : _a.call(host, packageName)) ? getTypesPackageName(packageName) : undefined;
+ }
+ return;
}
var errorCodes32 = [
Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2.code,
@@ -138356,7 +139013,7 @@ ${newComment.split(`
if (!info)
return;
const { typeNode, type } = info;
- const fixedType = typeNode.kind === 315 && fixId56 === fixIdNullable ? checker.getNullableType(type, 32768) : type;
+ const fixedType = typeNode.kind === 315 && fixId56 === fixIdNullable ? checker.getNullableType(type, 4) : type;
doChange29(changes, sourceFile, typeNode, fixedType, checker);
});
}
@@ -138618,7 +139275,7 @@ ${newComment.split(`
}
const variableDeclaration = findAncestor(targetNode, isVariableDeclaration);
const type = variableDeclaration && typeChecker.getTypeAtLocation(variableDeclaration);
- if (type && type.flags & 8192) {
+ if (type && type.flags & 16384) {
return;
}
if (!(isExpressionTarget || isShorthandPropertyAssignmentTarget))
@@ -138945,7 +139602,7 @@ ${newComment.split(`
mutatedTarget: false
};
function getFlags(type2) {
- return (isVariableDeclaration(node) || isPropertyDeclaration(node) && hasSyntacticModifier(node, 256 | 8)) && type2.flags & 8192 ? 1048576 : 0;
+ return (isVariableDeclaration(node) || isPropertyDeclaration(node) && hasSyntacticModifier(node, 256 | 8)) && type2.flags & 16384 ? 1048576 : 0;
}
}
function createTypeOfFromEntityNameExpression(node) {
@@ -139792,7 +140449,7 @@ ${newComment.split(`
case 32:
case 34:
const operandType = checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left);
- if (operandType.flags & 1056) {
+ if (operandType.flags & 98304) {
addCandidateType(usage, operandType);
} else {
usage.isNumber = true;
@@ -139801,11 +140458,11 @@ ${newComment.split(`
case 65:
case 40:
const otherOperandType = checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left);
- if (otherOperandType.flags & 1056) {
+ if (otherOperandType.flags & 98304) {
addCandidateType(usage, otherOperandType);
- } else if (otherOperandType.flags & 296) {
+ } else if (otherOperandType.flags & 67648) {
usage.isNumber = true;
- } else if (otherOperandType.flags & 402653316) {
+ } else if (otherOperandType.flags & 12583968) {
usage.isString = true;
} else if (otherOperandType.flags & 1) {} else {
usage.isNumberOrString = true;
@@ -139875,7 +140532,7 @@ ${newComment.split(`
const indexType = checker.getTypeAtLocation(parent2.argumentExpression);
const indexUsage = createEmptyUsage();
calculateUsageOfNode(parent2, indexUsage);
- if (indexType.flags & 296) {
+ if (indexType.flags & 67648) {
usage.numberIndex = indexUsage;
} else {
usage.stringIndex = indexUsage;
@@ -139914,11 +140571,11 @@ ${newComment.split(`
low: (t) => t === stringNumber
},
{
- high: (t) => !(t.flags & (1 | 16384)),
- low: (t) => !!(t.flags & (1 | 16384))
+ high: (t) => !(t.flags & (1 | 16)),
+ low: (t) => !!(t.flags & (1 | 16))
},
{
- high: (t) => !(t.flags & (98304 | 1 | 16384)) && !(getObjectFlags(t) & 16),
+ high: (t) => !(t.flags & (12 | 1 | 16)) && !(getObjectFlags(t) & 16),
low: (t) => !!(getObjectFlags(t) & 16)
}
];
@@ -140062,7 +140719,7 @@ ${newComment.split(`
function inferTypeParameters(genericType, usageType, typeParameter) {
if (genericType === typeParameter) {
return [usageType];
- } else if (genericType.flags & 3145728) {
+ } else if (genericType.flags & 402653184) {
return flatMap(genericType.types, (t) => inferTypeParameters(t, usageType, typeParameter));
} else if (getObjectFlags(genericType) & 4 && getObjectFlags(usageType) & 4) {
const genericArgs = checker.getTypeArguments(genericType);
@@ -140125,12 +140782,12 @@ ${newComment.split(`
return checker.createSignature(undefined, undefined, undefined, parameters2, returnType, undefined, length2, 0);
}
function addCandidateType(usage, type) {
- if (type && !(type.flags & 1) && !(type.flags & 131072)) {
+ if (type && !(type.flags & 1) && !(type.flags & 262144)) {
(usage.candidateTypes || (usage.candidateTypes = [])).push(type);
}
}
function addCandidateThisType(usage, type) {
- if (type && !(type.flags & 1) && !(type.flags & 131072)) {
+ if (type && !(type.flags & 1) && !(type.flags & 262144)) {
(usage.candidateThisTypes || (usage.candidateThisTypes = [])).push(type);
}
}
@@ -140556,7 +141213,7 @@ ${newComment.split(`
if (type.isUnionOrIntersection()) {
return type.types.some(typeContainsTypeParameter);
}
- return type.flags & 262144;
+ return type.flags & 524288;
}
function getArgumentTypesAndTypeParameters(checker, importAdder, instanceTypes, contextNode, scriptTarget, flags, internalFlags, tracker) {
const argumentTypeNodes = [];
@@ -140584,11 +141241,11 @@ ${newComment.split(`
return { argumentTypeNodes, argumentTypeParameters: arrayFrom(argumentTypeParameters.entries()) };
}
function isAnonymousObjectConstraintType(type) {
- return type.flags & 524288 && type.objectFlags === 16;
+ return type.flags & 1048576 && type.objectFlags === 16;
}
function getFirstTypeParameterName(type) {
var _a;
- if (type.flags & (1048576 | 2097152)) {
+ if (type.flags & (134217728 | 268435456)) {
for (const subType of type.types) {
const subTypeName = getFirstTypeParameterName(subType);
if (subTypeName) {
@@ -140596,7 +141253,7 @@ ${newComment.split(`
}
}
}
- return type.flags & 262144 ? (_a = type.getSymbol()) == null ? undefined : _a.getName() : undefined;
+ return type.flags & 524288 ? (_a = type.getSymbol()) == null ? undefined : _a.getName() : undefined;
}
function createDummyParameters(argCount, names, types, minArgumentCount, inJs) {
const parameters = [];
@@ -141056,13 +141713,13 @@ ${newComment.split(`
return getDefaultValueFromType(checker, checker.getTypeFromTypeNode(propertyDeclaration.type));
}
function getDefaultValueFromType(checker, type) {
- if (type.flags & 512) {
+ if (type.flags & 8192) {
return type === checker.getFalseType() || type === checker.getFalseType(true) ? factory.createFalse() : factory.createTrue();
} else if (type.isStringLiteral()) {
return factory.createStringLiteral(type.value);
} else if (type.isNumberLiteral()) {
return factory.createNumericLiteral(type.value);
- } else if (type.flags & 2048) {
+ } else if (type.flags & 4096) {
return factory.createBigIntLiteral(type.value);
} else if (type.isUnion()) {
return firstDefined(type.types, (t) => getDefaultValueFromType(checker, t));
@@ -141575,6 +142232,7 @@ ${newComment.split(`
getCompletionEntryDetails: () => getCompletionEntryDetails,
getCompletionEntrySymbol: () => getCompletionEntrySymbol,
getCompletionsAtPosition: () => getCompletionsAtPosition,
+ getConstraintOfTypeArgumentProperty: () => getConstraintOfTypeArgumentProperty,
getDefaultCommitCharacters: () => getDefaultCommitCharacters,
getPropertiesForObjectExpression: () => getPropertiesForObjectExpression,
moduleSpecifierResolutionCacheAttemptLimit: () => moduleSpecifierResolutionCacheAttemptLimit,
@@ -141625,7 +142283,7 @@ ${newComment.split(`
SymbolOriginInfoKind2[SymbolOriginInfoKind2["Ignore"] = 256] = "Ignore";
SymbolOriginInfoKind2[SymbolOriginInfoKind2["ComputedPropertyName"] = 512] = "ComputedPropertyName";
SymbolOriginInfoKind2[SymbolOriginInfoKind2["SymbolMemberNoExport"] = 2] = "SymbolMemberNoExport";
- SymbolOriginInfoKind2[SymbolOriginInfoKind2["SymbolMemberExport"] = 6] = "SymbolMemberExport";
+ SymbolOriginInfoKind2[SymbolOriginInfoKind2["SymbolMemberExport"] = 34] = "SymbolMemberExport";
return SymbolOriginInfoKind2;
})(SymbolOriginInfoKind || {});
function originIsThisType(origin) {
@@ -141638,7 +142296,7 @@ ${newComment.split(`
return !!(origin && origin.kind & 4);
}
function originIsResolvedExport(origin) {
- return !!(origin && origin.kind === 32);
+ return !!(origin && origin.kind & 32);
}
function originIncludesSymbolName(origin) {
return originIsExport(origin) || originIsResolvedExport(origin) || originIsComputedPropertyName(origin);
@@ -141973,7 +142631,7 @@ ${newComment.split(`
} else {
if (initializer) {
const inferredType = checker.getTypeAtLocation(initializer.parent);
- if (!(inferredType.flags & (1 | 16384))) {
+ if (!(inferredType.flags & (1 | 16))) {
const sourceFile = initializer.getSourceFile();
const quotePreference = getQuotePreference(sourceFile, preferences);
const builderFlags = quotePreference === 0 ? 268435456 : 0;
@@ -142154,7 +142812,7 @@ ${newComment.split(`
const importAdder = ts_codefix_exports.createImportAdder(sourceFile, program, preferences, host);
const elements = [];
for (const type of switchType.types) {
- if (type.flags & 1024) {
+ if (type.flags & 32768) {
Debug.assert(type.symbol, "An enum member type should have a symbol");
Debug.assert(type.symbol.parent, "An enum member type should have a parent symbol (the enum symbol)");
const enumValue = type.symbol.valueDeclaration && checker.getConstantValue(type.symbol.valueDeclaration);
@@ -142430,8 +143088,8 @@ ${newComment.split(`
if (isJsxIdentifierExpected && !isRightOfOpenTag && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== "none" && !(isJsxAttribute(location.parent) && location.parent.initializer)) {
let useBraces2 = preferences.jsxAttributeCompletionStyle === "braces";
const type = typeChecker.getTypeOfSymbolAtLocation(symbol, location);
- if (preferences.jsxAttributeCompletionStyle === "auto" && !(type.flags & 528) && !(type.flags & 1048576 && find(type.types, (type2) => !!(type2.flags & 528)))) {
- if (type.flags & 402653316 || type.flags & 1048576 && every(type.types, (type2) => !!(type2.flags & (402653316 | 32768) || isStringAndEmptyAnonymousObjectIntersection(type2)))) {
+ if (preferences.jsxAttributeCompletionStyle === "auto" && !(type.flags & 8448) && !(type.flags & 134217728 && find(type.types, (type2) => !!(type2.flags & 8448)))) {
+ if (type.flags & 12583968 || type.flags & 134217728 && every(type.types, (type2) => !!(type2.flags & (12583968 | 4) || isStringAndEmptyAnonymousObjectIntersection(type2)))) {
insertText = `${escapeSnippetText(name)}=${quote(sourceFile, preferences, "$1")}`;
isSnippet = true;
} else {
@@ -142684,8 +143342,8 @@ ${newComment.split(`
case 173:
case 174:
case 175: {
- let effectiveType = type.flags & 1048576 && type.types.length < 10 ? checker.getUnionType(type.types, 2) : type;
- if (effectiveType.flags & 1048576) {
+ let effectiveType = type.flags & 134217728 && type.types.length < 10 ? checker.getUnionType(type.types, 2) : type;
+ if (effectiveType.flags & 134217728) {
const functionTypes = filter(effectiveType.types, (type2) => checker.getSignaturesOfType(type2, 0).length > 0);
if (functionTypes.length === 1) {
effectiveType = functionTypes[0];
@@ -142880,12 +143538,12 @@ ${newComment.split(`
return localSymbol === recommendedCompletion || !!(localSymbol.flags & 1048576) && checker.getExportSymbolOfSymbol(localSymbol) === recommendedCompletion;
}
function getSourceFromOrigin(origin) {
- if (originIsExport(origin)) {
- return stripQuotes(origin.moduleSymbol.name);
- }
if (originIsResolvedExport(origin)) {
return origin.moduleSpecifier;
}
+ if (originIsExport(origin)) {
+ return stripQuotes(origin.moduleSymbol.name);
+ }
if ((origin == null ? undefined : origin.kind) === 1) {
return "ThisProperty/";
}
@@ -143454,10 +144112,10 @@ ${newComment.split(`
}
}
log("getCompletionData: Semantic work: " + (timestamp() - semanticStart));
- const contextualType = previousToken && getContextualType(previousToken, position, sourceFile, typeChecker);
+ const contextualTypeOrConstraint = previousToken && (getContextualType(previousToken, position, sourceFile, typeChecker) ?? getConstraintOfTypeArgumentProperty(previousToken, typeChecker));
const isLiteralExpected = !tryCast(previousToken, isStringLiteralLike) && !isJsxIdentifierExpected;
- const literals = !isLiteralExpected ? [] : mapDefined(contextualType && (contextualType.isUnion() ? contextualType.types : [contextualType]), (t) => t.isLiteral() && !(t.flags & 1024) ? t.value : undefined);
- const recommendedCompletion = previousToken && contextualType && getRecommendedCompletion(previousToken, contextualType, typeChecker);
+ const literals = !isLiteralExpected ? [] : mapDefined(contextualTypeOrConstraint && (contextualTypeOrConstraint.isUnion() ? contextualTypeOrConstraint.types : [contextualTypeOrConstraint]), (t) => t.isLiteral() && !(t.flags & 32768) ? t.value : undefined);
+ const recommendedCompletion = previousToken && contextualTypeOrConstraint && getRecommendedCompletion(previousToken, contextualTypeOrConstraint, typeChecker);
return {
kind: 0,
symbols,
@@ -143633,7 +144291,7 @@ ${newComment.split(`
}], position, isValidTypeOnlyAliasUseSite(location)) || {};
if (moduleSpecifier) {
const origin = {
- kind: getNullableSymbolOriginInfoKind(6),
+ kind: getNullableSymbolOriginInfoKind(34),
moduleSymbol,
isDefaultExport: false,
symbolName: firstAccessibleSymbol.name,
@@ -143832,9 +144490,6 @@ ${newComment.split(`
return true;
return charactersFuzzyMatchInString(symbolName2, lowerCaseTokenText);
}, (info, symbolName2, isFromAmbientModule, exportMapKey) => {
- if (detailsEntryId && !some(info, (i) => detailsEntryId.source === stripQuotes(i.moduleSymbol.name))) {
- return;
- }
info = filter(info, isImportableExportInfo);
if (!info.length) {
return;
@@ -143846,6 +144501,9 @@ ${newComment.split(`
if (result !== "skipped") {
({ exportInfo: exportInfo2 = info[0], moduleSpecifier } = result);
}
+ if (detailsEntryId && (detailsEntryId.source !== moduleSpecifier && !some(info, (i) => detailsEntryId.source === stripQuotes(i.moduleSymbol.name)))) {
+ return;
+ }
const isDefaultExport = exportInfo2.exportKind === 1;
const symbol = isDefaultExport && getLocalSymbolForExportDefault(Debug.checkDefined(exportInfo2.symbol)) || Debug.checkDefined(exportInfo2.symbol);
pushAutoImportSymbol(symbol, {
@@ -144757,7 +145415,7 @@ ${newComment.split(`
}
function getPropertiesForObjectExpression(contextualType, completionsType, obj, checker) {
const hasCompletionsType = completionsType && completionsType !== contextualType;
- const promiseFilteredContextualType = checker.getUnionType(filter(contextualType.flags & 1048576 ? contextualType.types : [contextualType], (t) => !checker.getPromisedTypeOfPromise(t)));
+ const promiseFilteredContextualType = checker.getUnionType(filter(contextualType.flags & 134217728 ? contextualType.types : [contextualType], (t) => !checker.getPromisedTypeOfPromise(t)));
const type = hasCompletionsType && !(completionsType.flags & 3) ? checker.getUnionType([promiseFilteredContextualType, completionsType]) : promiseFilteredContextualType;
const properties = getApparentProperties(type, obj, checker);
return type.isClass() && containsNonPublicProperties(properties) ? [] : hasCompletionsType ? filter(properties, hasDeclarationOtherThanSelf) : properties;
@@ -144770,7 +145428,7 @@ ${newComment.split(`
function getApparentProperties(type, node, checker) {
if (!type.isUnion())
return type.getApparentProperties();
- return checker.getAllPossiblePropertiesOfTypes(filter(type.types, (memberType) => !(memberType.flags & 402784252 || checker.isArrayLikeType(memberType) || checker.isTypeInvalidDueToUnionDiscriminant(memberType, node) || checker.typeHasCallOrConstructSignatures(memberType) || memberType.isClass() && containsNonPublicProperties(memberType.getApparentProperties()))));
+ return checker.getAllPossiblePropertiesOfTypes(filter(type.types, (memberType) => !(memberType.flags & 12713980 || checker.isArrayLikeType(memberType) || checker.isTypeInvalidDueToUnionDiscriminant(memberType, node) || checker.typeHasCallOrConstructSignatures(memberType) || memberType.isClass() && containsNonPublicProperties(memberType.getApparentProperties()))));
}
function containsNonPublicProperties(props) {
return some(props, (p) => !!(getDeclarationModifierFlagsFromSymbol(p) & 6));
@@ -144854,8 +145512,10 @@ ${newComment.split(`
function getConstraintOfTypeArgumentProperty(node, checker) {
if (!node)
return;
- if (isTypeNode(node) && isTypeReferenceType(node.parent)) {
- return checker.getTypeArgumentConstraint(node);
+ if (isTypeNode(node)) {
+ const constraint = checker.getTypeArgumentConstraint(node);
+ if (constraint)
+ return constraint;
}
const t = getConstraintOfTypeArgumentProperty(node.parent, checker);
if (!t)
@@ -144863,10 +145523,17 @@ ${newComment.split(`
switch (node.kind) {
case 172:
return checker.getTypeOfPropertyOfContextualType(t, node.symbol.escapedName);
+ case 59:
+ if (node.parent.kind === 172) {
+ return t;
+ }
+ break;
case 194:
case 188:
case 193:
return t;
+ case 23:
+ return checker.getElementTypeOfArrayType(t);
}
}
function isFromObjectTypeDeclaration(node) {
@@ -145264,7 +145931,12 @@ ${newComment.split(`
if (isObjectLiteralExpression(parent2.parent) && parent2.name === node) {
return stringLiteralCompletionsForObjectLiteral(typeChecker, parent2.parent);
}
- return fromContextualType() || fromContextualType(0);
+ if (findAncestor(parent2.parent, isCallLikeExpression)) {
+ const uniques2 = /* @__PURE__ */ new Set;
+ const stringLiteralTypes = concatenate(getStringLiteralTypes(typeChecker.getContextualType(node, 0), uniques2), getStringLiteralTypes(typeChecker.getContextualType(node, 4), uniques2));
+ return toStringLiteralCompletionsFromTypes(stringLiteralTypes);
+ }
+ return fromContextualType(0);
case 213: {
const { expression, argumentExpression } = parent2;
if (node === skipParentheses(argumentExpression)) {
@@ -145325,7 +145997,12 @@ ${newComment.split(`
}
function fromUnionableLiteralType(grandParent) {
switch (grandParent.kind) {
+ case 214:
case 234:
+ case 287:
+ case 286:
+ case 215:
+ case 216:
case 184: {
const typeArgument = findAncestor(parent2, (n) => n.parent === grandParent);
if (typeArgument) {
@@ -145339,6 +146016,8 @@ ${newComment.split(`
return;
}
return stringLiteralCompletionsFromProperties(typeChecker.getTypeFromTypeNode(objectType));
+ case 172:
+ return { kind: 2, types: getStringLiteralTypes(getConstraintOfTypeArgumentProperty(grandParent, typeChecker)), isNewIdentifier: false };
case 193: {
const result = fromUnionableLiteralType(walkUpParentheses(grandParent.parent));
if (!result) {
@@ -145355,13 +146034,12 @@ ${newComment.split(`
}
}
function fromContextualType(contextFlags = 4) {
- const types = getStringLiteralTypes(getContextualTypeFromParent(node, typeChecker, contextFlags));
- if (!types.length) {
- return;
- }
- return { kind: 2, types, isNewIdentifier: false };
+ return toStringLiteralCompletionsFromTypes(getStringLiteralTypes(getContextualTypeFromParent(node, typeChecker, contextFlags)));
}
}
+ function toStringLiteralCompletionsFromTypes(types) {
+ return types.length ? { kind: 2, types, isNewIdentifier: false } : undefined;
+ }
function walkUpParentheses(node) {
switch (node.kind) {
case 197:
@@ -145390,7 +146068,7 @@ ${newComment.split(`
type = propType;
}
}
- isNewIdentifier = isNewIdentifier || !!(type.flags & 4);
+ isNewIdentifier = isNewIdentifier || !!(type.flags & 32);
return getStringLiteralTypes(type, uniques);
});
return length(types) ? { kind: 2, types, isNewIdentifier } : undefined;
@@ -145418,7 +146096,7 @@ ${newComment.split(`
if (!type)
return emptyArray;
type = skipConstraint(type);
- return type.isUnion() ? flatMap(type.types, (t) => getStringLiteralTypes(t, uniques)) : type.isStringLiteral() && !(type.flags & 1024) && addToSeen(uniques, type.value) ? [type] : emptyArray;
+ return type.isUnion() ? flatMap(type.types, (t) => getStringLiteralTypes(t, uniques)) : type.isStringLiteral() && !(type.flags & 32768) && addToSeen(uniques, type.value) ? [type] : emptyArray;
}
function nameAndKind(name, kind, extension) {
return { name, kind, extension };
@@ -145681,8 +146359,9 @@ ${newComment.split(`
if (tryFileExists(host, packageFile)) {
const packageJson = readJson(packageFile, host);
const fragmentSubpath = components.join("/") + (components.length && hasTrailingDirectorySeparator(fragment) ? "/" : "");
- exportsOrImportsLookup(packageJson.exports, fragmentSubpath, packageDirectory, true, false);
- return;
+ if (exportsOrImportsLookup(packageJson.exports, fragmentSubpath, packageDirectory, true, false)) {
+ return;
+ }
}
return nodeModulesDirectoryOrImportsLookup(ancestor);
};
@@ -145693,7 +146372,7 @@ ${newComment.split(`
return arrayFrom(result.values());
function exportsOrImportsLookup(lookupTable, fragment2, baseDirectory, isExports, isImports) {
if (typeof lookupTable !== "object" || lookupTable === null) {
- return;
+ return lookupTable !== undefined;
}
const keys = getOwnKeys(lookupTable);
const conditions = getConditions(compilerOptions, mode);
@@ -145704,6 +146383,7 @@ ${newComment.split(`
}
return singleElementArray(endsWith(key, "/") && endsWith(pattern, "/") ? pattern + "*" : pattern);
}, comparePatternKeys);
+ return true;
}
}
function getPatternFromFirstMatchingCondition(target, conditions) {
@@ -148272,7 +148952,17 @@ ${newComment.split(`
if (element) {
const contextualType = element && typeChecker.getContextualType(element.parent);
if (contextualType) {
- return flatMap(getPropertySymbolsFromContextualType(element, typeChecker, contextualType, false), (propertySymbol) => getDefinitionFromSymbol(typeChecker, propertySymbol, node));
+ let properties = getPropertySymbolsFromContextualType(element, typeChecker, contextualType, false);
+ if (some(properties, (p) => !!(p.valueDeclaration && isObjectLiteralExpression(p.valueDeclaration.parent) && isObjectLiteralElementLike(p.valueDeclaration) && p.valueDeclaration.name === node))) {
+ const withoutNodeInferencesType = typeChecker.getContextualType(element.parent, 4);
+ if (withoutNodeInferencesType) {
+ const withoutNodeInferencesProperties = getPropertySymbolsFromContextualType(element, typeChecker, withoutNodeInferencesType, false);
+ if (withoutNodeInferencesProperties.length) {
+ properties = withoutNodeInferencesProperties;
+ }
+ }
+ }
+ return flatMap(properties, (propertySymbol) => getDefinitionFromSymbol(typeChecker, propertySymbol, node));
}
}
return emptyArray;
@@ -148426,7 +149116,7 @@ ${newComment.split(`
return typeDefinitions.length ? [...getFirstTypeArgumentDefinitions(typeChecker, resolvedType, node, failedAliasResolution), ...typeDefinitions] : !(symbol.flags & 111551) && symbol.flags & 788968 ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node, failedAliasResolution) : undefined;
}
function definitionFromType(type, checker, node, failedAliasResolution) {
- return flatMap(type.isUnion() && !(type.flags & 32) ? type.types : [type], (t) => t.symbol && getDefinitionFromSymbol(checker, t.symbol, node, failedAliasResolution));
+ return flatMap(type.isUnion() && !(type.flags & 65536) ? type.types : [type], (t) => t.symbol && getDefinitionFromSymbol(checker, t.symbol, node, failedAliasResolution));
}
function tryGetReturnTypeOfFunction(symbol, type, checker) {
if (type.symbol === symbol || symbol.valueDeclaration && type.symbol && isVariableDeclaration(symbol.valueDeclaration) && symbol.valueDeclaration.initializer === type.symbol.valueDeclaration) {
@@ -149012,6 +149702,7 @@ ${newComment.split(`
Debug.assertNode(node2, isTypeParameterDeclaration);
if (node2.modifiers) {
visitDisplayPartList(node2.modifiers, " ");
+ parts.push({ text: " " });
}
visitForDisplayParts(node2.name);
if (node2.constraint) {
@@ -149027,6 +149718,7 @@ ${newComment.split(`
Debug.assertNode(node2, isParameter);
if (node2.modifiers) {
visitDisplayPartList(node2.modifiers, " ");
+ parts.push({ text: " " });
}
if (node2.dotDotDotToken) {
parts.push({ text: "..." });
@@ -150859,7 +151551,7 @@ ${content}
if (!symbol) {
if (isStringLiteralLike(node)) {
const type = getContextualTypeFromParentOrAncestorTypeNode(node, typeChecker);
- if (type && (type.flags & 128 || type.flags & 1048576 && every(type.types, (type2) => !!(type2.flags & 128)))) {
+ if (type && (type.flags & 1024 || type.flags & 134217728 && every(type.types, (type2) => !!(type2.flags & 1024)))) {
return getRenameInfoSuccess(node.text, node.text, "string", "", node, sourceFile);
}
} else if (isLabelName(node)) {
@@ -156287,6 +156979,7 @@ ${options.prefix}` : `
canHaveLocals: () => canHaveLocals,
canHaveModifiers: () => canHaveModifiers,
canHaveModuleSpecifier: () => canHaveModuleSpecifier,
+ canHaveStatements: () => canHaveStatements,
canHaveSymbol: () => canHaveSymbol,
canIncludeBindAndCheckDiagnostics: () => canIncludeBindAndCheckDiagnostics,
canJsonReportNoInputFiles: () => canJsonReportNoInputFiles,
@@ -156334,6 +157027,7 @@ ${options.prefix}` : `
commonOptionsWithBuild: () => commonOptionsWithBuild,
compact: () => compact,
compareBooleans: () => compareBooleans,
+ compareComparableValues: () => compareComparableValues,
compareDataObjects: () => compareDataObjects,
compareDiagnostics: () => compareDiagnostics,
compareEmitHelpers: () => compareEmitHelpers,
@@ -156679,6 +157373,7 @@ ${options.prefix}` : `
getAllowImportingTsExtensions: () => getAllowImportingTsExtensions,
getAllowJSCompilerOption: () => getAllowJSCompilerOption,
getAllowSyntheticDefaultImports: () => getAllowSyntheticDefaultImports,
+ getAlwaysStrict: () => getAlwaysStrict,
getAncestor: () => getAncestor,
getAnyExtensionFromPath: () => getAnyExtensionFromPath,
getAreDeclarationMapsEnabled: () => getAreDeclarationMapsEnabled,
@@ -156708,6 +157403,7 @@ ${options.prefix}` : `
getCommonSourceDirectory: () => getCommonSourceDirectory,
getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,
getCompilerOptionValue: () => getCompilerOptionValue,
+ getComputedCommonSourceDirectory: () => getComputedCommonSourceDirectory,
getConditions: () => getConditions,
getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,
getConstantValue: () => getConstantValue,
@@ -156917,6 +157613,7 @@ ${options.prefix}` : `
getModuleInstanceState: () => getModuleInstanceState,
getModuleNameStringLiteralAt: () => getModuleNameStringLiteralAt,
getModuleSpecifierEndingPreference: () => getModuleSpecifierEndingPreference,
+ getModuleSpecifierOfBareOrAccessedRequire: () => getModuleSpecifierOfBareOrAccessedRequire,
getModuleSpecifierResolverHost: () => getModuleSpecifierResolverHost,
getNameForExportedSymbol: () => getNameForExportedSymbol,
getNameFromImportAttribute: () => getNameFromImportAttribute,
@@ -156947,7 +157644,6 @@ ${options.prefix}` : `
getNonAugmentationDeclaration: () => getNonAugmentationDeclaration,
getNonDecoratorTokenPosOfNode: () => getNonDecoratorTokenPosOfNode,
getNonIncrementalBuildInfoRoots: () => getNonIncrementalBuildInfoRoots,
- getNonModifierTokenPosOfNode: () => getNonModifierTokenPosOfNode,
getNormalizedAbsolutePath: () => getNormalizedAbsolutePath,
getNormalizedAbsolutePathWithoutRoot: () => getNormalizedAbsolutePathWithoutRoot,
getNormalizedPathComponents: () => getNormalizedPathComponents,
@@ -157678,6 +158374,7 @@ ${options.prefix}` : `
isPlusToken: () => isPlusToken,
isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition,
isPostfixUnaryExpression: () => isPostfixUnaryExpression,
+ isPotentiallyExecutableNode: () => isPotentiallyExecutableNode,
isPrefixUnaryExpression: () => isPrefixUnaryExpression,
isPrimitiveLiteralValue: () => isPrimitiveLiteralValue,
isPrivateIdentifier: () => isPrivateIdentifier,
@@ -158280,9 +158977,7 @@ ${options.prefix}` : `
unmangleScopedPackageName: () => unmangleScopedPackageName,
unorderedRemoveItem: () => unorderedRemoveItem,
unprefixedNodeCoreModules: () => unprefixedNodeCoreModules,
- unreachableCodeIsError: () => unreachableCodeIsError,
unsetNodeChildren: () => unsetNodeChildren,
- unusedLabelIsError: () => unusedLabelIsError,
unwrapInnermostStatementOfLabel: () => unwrapInnermostStatementOfLabel,
unwrapParenthesizedExpression: () => unwrapParenthesizedExpression,
updateErrorForNoInputFiles: () => updateErrorForNoInputFiles,
@@ -158292,6 +158987,7 @@ ${options.prefix}` : `
updateSharedExtendedConfigFileWatcher: () => updateSharedExtendedConfigFileWatcher,
updateSourceFile: () => updateSourceFile,
updateWatchingWildcardDirectories: () => updateWatchingWildcardDirectories,
+ usesWildcardTypes: () => usesWildcardTypes,
usingSingleLineStringWriter: () => usingSingleLineStringWriter,
utf16EncodeAsString: () => utf16EncodeAsString,
validateLocaleAndSetLanguage: () => validateLocaleAndSetLanguage,
@@ -158641,6 +159337,22 @@ ${options.prefix}` : `
}
installPackage(req) {
const { fileName, packageName, projectName, projectRootPath, id } = req;
+ const validationResult = ts_JsTyping_exports.validatePackageName(packageName);
+ if (validationResult !== ts_JsTyping_exports.NameValidationResult.Ok) {
+ const message = ts_JsTyping_exports.renderPackageNameValidationFailure(validationResult, packageName);
+ if (this.log.isEnabled()) {
+ this.log.writeLine(message);
+ }
+ const response = {
+ kind: ActionPackageInstalled,
+ projectName,
+ id,
+ success: false,
+ message
+ };
+ this.sendResponse(response);
+ return;
+ }
const cwd = forEachAncestorDirectory(getDirectoryPath(fileName), (directory) => {
if (this.installTypingHost.fileExists(combinePaths(directory, "package.json"))) {
return directory;
@@ -159263,9 +159975,11 @@ ${options.prefix}` : `
ScriptTarget12["ES2022"] = "es2022";
ScriptTarget12["ES2023"] = "es2023";
ScriptTarget12["ES2024"] = "es2024";
+ ScriptTarget12["ES2025"] = "es2025";
ScriptTarget12["ESNext"] = "esnext";
ScriptTarget12["JSON"] = "json";
ScriptTarget12["Latest"] = "esnext";
+ ScriptTarget12["LatestStandard"] = "es2025";
return ScriptTarget12;
})(ScriptTarget11 || {});
{}
@@ -160540,6 +161254,9 @@ ${options.prefix}` : `
this.projectService.updateTypingsForProject({ projectName: this.getProjectName(), kind: ActionInvalidate });
}
watchTypingLocations(files) {
+ if (this.currentDirectory === this.projectService.currentDirectory || !canWatchDirectoryOrFilePath(this.toPath(this.currentDirectory))) {
+ return;
+ }
if (!files) {
this.typingWatchers.isInvoked = false;
return;
@@ -160594,6 +161311,13 @@ ${options.prefix}` : `
this.typingWatchers.delete(path);
});
}
+ skipWatchingFailedLookups(path) {
+ const info = this.projectService.getScriptInfoForPath(path);
+ return info == null ? undefined : info.isDynamic;
+ }
+ skipWatchingTypeRoots() {
+ return isInferredProject(this) && this.currentDirectory === this.projectService.currentDirectory;
+ }
getCurrentProgram() {
return this.program;
}
@@ -161691,6 +162415,9 @@ ${options.prefix}` : `
protocolOptions[id] = mappedValues.get(propertyValue.toLowerCase());
}
});
+ if (isArray(protocolOptions.lib)) {
+ protocolOptions.lib = protocolOptions.lib.map((libName) => libMap.get(libName) ?? libName);
+ }
return protocolOptions;
}
function convertWatchOptions(protocolOptions, currentDirectory) {
diff --git a/examples/basic-app/app/islands/Counter.tsx b/examples/basic-app/app/islands/Counter.tsx
new file mode 100644
index 00000000..cc83ea11
--- /dev/null
+++ b/examples/basic-app/app/islands/Counter.tsx
@@ -0,0 +1,10 @@
+import { useState } from "react";
+
+export default function Counter({ start = 0 }: { start?: number }) {
+ const [count, setCount] = useState(start);
+ return (
+
+ );
+}
diff --git a/packages/compiler/src/island-bundle.ts b/packages/compiler/src/island-bundle.ts
index 964c379f..c6463334 100644
--- a/packages/compiler/src/island-bundle.ts
+++ b/packages/compiler/src/island-bundle.ts
@@ -1,7 +1,8 @@
import type { BunPlugin } from "bun";
import { createHash } from "node:crypto";
+import { mkdirSync, rmSync, writeFileSync } from "node:fs";
import { createRequire } from "node:module";
-import { join } from "node:path";
+import { basename, join } from "node:path";
export interface IslandInput {
name: string;
@@ -42,10 +43,15 @@ export function reactJsxPlugin(): BunPlugin {
return {
name: "wrnexus-island-jsx",
setup(build) {
- build.onLoad({ filter: /\.tsx$/ }, async (args) => ({
- contents: `/** @jsxImportSource react */\n${await Bun.file(args.path).text()}`,
- loader: "tsx",
- }));
+ build.onLoad({ filter: /\.tsx$/ }, async (args) => {
+ // Only first-party island sources need the pragma. Third-party .tsx
+ // under node_modules is left alone so Bun's own handling is untouched.
+ if (args.path.includes("node_modules")) return undefined;
+ return {
+ contents: `/** @jsxImportSource react */\n${await Bun.file(args.path).text()}`,
+ loader: "tsx" as const,
+ };
+ });
},
};
}
@@ -79,35 +85,57 @@ export async function buildIslands(input: {
}): Promise {
if (input.islands.length === 0) return { assets: [], sharedChunks: [] };
- const result = await Bun.build({
- entrypoints: input.islands.map((island) => island.sourcePath),
- outdir: input.outDir,
- target: "browser",
- format: "esm",
- splitting: true,
- minify: true,
- plugins: [reactJsxPlugin()],
- });
+ // Each island gets its own generated entry file named after the island.
+ // Passing the component sources directly would dedupe two islands that share
+ // a source file, and output order is not guaranteed to match input order —
+ // both of which silently mismatch island names to bundles.
+ //
+ // The entries live inside outDir so `react` resolves from the app that
+ // installed it, exactly as the island's own imports do.
+ const entryDir = join(input.outDir, ".entries");
+ mkdirSync(entryDir, { recursive: true });
- if (!result.success) {
- throw new AggregateError(result.logs, "Island bundling failed");
+ const islandNames = new Set(input.islands.map((island) => island.name));
+ for (const island of input.islands) {
+ writeFileSync(join(entryDir, `${island.name}.tsx`), generateIslandEntry(island), "utf8");
}
- const assets: IslandBuildResult["assets"] = [];
- const sharedChunks: string[] = [];
+ try {
+ const result = await Bun.build({
+ entrypoints: input.islands.map((island) => join(entryDir, `${island.name}.tsx`)),
+ outdir: input.outDir,
+ target: "browser",
+ format: "esm",
+ splitting: true,
+ minify: true,
+ plugins: [reactJsxPlugin()],
+ });
- for (const output of result.outputs) {
- if (output.kind === "entry-point") {
- const island = input.islands[assets.length]!;
- assets.push({
- name: island.name,
- hash: createHash("sha256").update(output.path).digest("hex").slice(0, 16),
- path: output.path,
- });
- } else if (output.kind === "chunk") {
- sharedChunks.push(output.path);
+ if (!result.success) {
+ throw new AggregateError(result.logs, "Island bundling failed");
}
- }
- return { assets, sharedChunks };
+ const assets: IslandBuildResult["assets"] = [];
+ const sharedChunks: string[] = [];
+
+ for (const output of result.outputs) {
+ if (output.kind === "entry-point") {
+ // Bun names an entry's output after its entry file, so the basename
+ // identifies the island unambiguously.
+ const stem = basename(output.path).replace(/\.js$/, "");
+ if (!islandNames.has(stem)) continue;
+ assets.push({
+ name: stem,
+ hash: createHash("sha256").update(output.path).digest("hex").slice(0, 16),
+ path: output.path,
+ });
+ } else if (output.kind === "chunk") {
+ sharedChunks.push(output.path);
+ }
+ }
+
+ return { assets, sharedChunks };
+ } finally {
+ rmSync(entryDir, { recursive: true, force: true });
+ }
}
diff --git a/packages/compiler/test/island-integration.test.ts b/packages/compiler/test/island-integration.test.ts
new file mode 100644
index 00000000..b13c3dd9
--- /dev/null
+++ b/packages/compiler/test/island-integration.test.ts
@@ -0,0 +1,83 @@
+import { afterAll, beforeAll, expect, test } from "bun:test";
+import { mkdtempSync, readFileSync, readdirSync, rmSync } from "node:fs";
+import { join, resolve } from "node:path";
+import { routeNeedsIslands } from "../src/analysis.ts";
+import { buildIslands, type IslandBuildResult } from "../src/island-bundle.ts";
+
+const COUNTER = resolve(import.meta.dir, "../../../examples/basic-app/app/islands/Counter.tsx");
+
+const created: string[] = [];
+afterAll(() => {
+ for (const dir of created) rmSync(dir, { recursive: true, force: true });
+});
+
+function outDir(label: string): string {
+ const dir = mkdtempSync(join(process.cwd(), `.island-int-${label}-`));
+ created.push(dir);
+ return dir;
+}
+
+// Every assertion that needs a real bundle shares this one build.
+//
+// Not just for speed: `bun test` interferes with Bun.build's module reads once
+// several build calls have run across test files in the same process, while the
+// same calls succeed repeatedly outside the runner. Production is unaffected —
+// the dev server's rebuild loop was verified separately — but tests must keep
+// their build count low to stay reliable in the full suite.
+let dir: string;
+let result: IslandBuildResult;
+let bundles: string[];
+
+beforeAll(async () => {
+ dir = outDir("shared");
+ result = await buildIslands({
+ islands: [
+ { name: "CounterA", sourcePath: COUNTER },
+ { name: "CounterB", sourcePath: COUNTER },
+ ],
+ outDir: dir,
+ });
+ bundles = readdirSync(dir)
+ .filter((file) => file.endsWith(".js"))
+ .map((file) => readFileSync(join(dir, file), "utf8"));
+});
+
+test("a route with no islands ships zero framework JavaScript", async () => {
+ const empty = outDir("nojs");
+ const none = await buildIslands({ islands: [], outDir: empty });
+
+ expect(none.assets).toHaveLength(0);
+ expect(none.sharedChunks).toHaveLength(0);
+ expect(readdirSync(empty)).toHaveLength(0);
+ expect(routeNeedsIslands([])).toBe(false);
+});
+
+test("a page with multiple islands ships React exactly once", () => {
+ // React's internals must appear in at most one emitted file — the shared
+ // chunk. If splitting regresses, every island inlines its own copy.
+ const withReactInternals = bundles.filter(
+ (source) => source.includes("REACT_ELEMENT_TYPE") || source.includes("react.development"),
+ );
+
+ expect(result.assets).toHaveLength(2);
+ expect(withReactInternals.length).toBeLessThanOrEqual(1);
+});
+
+test("two islands sharing one source get distinct, correctly named assets", () => {
+ // Passing component sources as entrypoints deduped them, so the second island
+ // silently lost its bundle and names could bind to the wrong output.
+ expect(result.assets.map((asset) => asset.name).sort()).toEqual(["CounterA", "CounterB"]);
+ expect(new Set(result.assets.map((asset) => asset.path)).size).toBe(2);
+});
+
+test("a real island builds against React and never pulls in the WRNexus renderer", () => {
+ const built = bundles.join("\n");
+
+ expect(built).not.toContain("wrnexus");
+ expect(built).not.toContain("react-dom/server");
+ expect(built).toContain("useState");
+});
+
+test("the generated entry directory is not left behind in the output", () => {
+ expect(readdirSync(dir)).not.toContain(".entries");
+});
diff --git a/packages/react/README.md b/packages/react/README.md
new file mode 100644
index 00000000..dcd8c82c
--- /dev/null
+++ b/packages/react/README.md
@@ -0,0 +1,9 @@
+# @wrnexus/react
+
+Opt-in React islands for WRNexusJS: mount npm React components inside server-rendered `.wrn` pages without adopting React as the framework's rendering model.
+
+Import a `.tsx` component in a `.wrn` script block and use it as an element. The compiler emits a `data-wrn-island` placeholder instead of a server render, and this package's runtime mounts it in the browser with `createRoot`. Islands are client-only, each mounts inside its own error boundary, and roots are disposed on client-side navigation.
+
+`react` and `react-dom` are optional peer dependencies, so apps that use no islands ship no React. A route with no islands still ships zero framework JavaScript.
+
+Use `useWrnStore(name, selector?)` to read a WRNexus store from inside an island and `useWrnActions(name)` to write to it. Writes belong in event handlers or effects, never during render.
diff --git a/scripts/build-editor-compiler.mjs b/scripts/build-editor-compiler.mjs
index 98ae3b41..6a28ff64 100644
--- a/scripts/build-editor-compiler.mjs
+++ b/scripts/build-editor-compiler.mjs
@@ -34,13 +34,28 @@ function loadTypeScript() {
const ts = loadTypeScript();
+// React island modules are not used by the editor: island-bundle.ts calls
+// Bun.build and island-codegen.ts imports @wrnexus/core, neither of which
+// exists in this Node-only bundle. They are unreachable from the editor entry,
+// so excluding them keeps Bun-only code out of the extension entirely.
+const EDITOR_EXCLUDED = ["island-bundle.ts", "island-codegen.ts"];
+function isEditorExcluded(path) {
+ return EDITOR_EXCLUDED.some((name) => path.endsWith(name));
+}
+
function walk(dir) {
const files = [];
for (const entry of readdirSync(dir)) {
const path = join(dir, entry);
const stat = statSync(path);
if (stat.isDirectory()) files.push(...walk(path));
- else if (stat.isFile() && path.endsWith(".ts") && !path.endsWith(".test.ts")) files.push(path);
+ else if (
+ stat.isFile() &&
+ path.endsWith(".ts") &&
+ !path.endsWith(".test.ts") &&
+ !isEditorExcluded(path)
+ )
+ files.push(path);
}
return files;
}
@@ -69,7 +84,6 @@ for (const file of sourceFiles) {
compilerOptions: {
target: ts.ScriptTarget.ES2022,
module: ts.ModuleKind.CommonJS,
- moduleResolution: ts.ModuleResolutionKind.Node10,
esModuleInterop: true,
skipLibCheck: true,
sourceMap: false,