typescript 4.8.0-dev.20220530 → 4.8.0-dev.20220602
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/tsc.js +135 -128
- package/lib/tsserver.js +174 -151
- package/lib/tsserverlibrary.js +174 -151
- package/lib/typescript.js +174 -151
- package/lib/typescriptServices.js +174 -151
- package/lib/typingsInstaller.js +154 -148
- package/package.json +1 -1
- package/test.js +9 -0
- package/test.ts +4 -0
package/lib/typingsInstaller.js
CHANGED
|
@@ -89,7 +89,7 @@ var ts;
|
|
|
89
89
|
// The following is baselined as a literal template type without intervention
|
|
90
90
|
/** The version of the TypeScript compiler release */
|
|
91
91
|
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
|
|
92
|
-
ts.version = ts.versionMajorMinor + ".0-dev.
|
|
92
|
+
ts.version = ts.versionMajorMinor + ".0-dev.20220602";
|
|
93
93
|
/* @internal */
|
|
94
94
|
var Comparison;
|
|
95
95
|
(function (Comparison) {
|
|
@@ -8894,6 +8894,7 @@ var ts;
|
|
|
8894
8894
|
Import_assertion_values_must_be_string_literal_expressions: diag(2837, ts.DiagnosticCategory.Error, "Import_assertion_values_must_be_string_literal_expressions_2837", "Import assertion values must be string literal expressions."),
|
|
8895
8895
|
All_declarations_of_0_must_have_identical_constraints: diag(2838, ts.DiagnosticCategory.Error, "All_declarations_of_0_must_have_identical_constraints_2838", "All declarations of '{0}' must have identical constraints."),
|
|
8896
8896
|
This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value: diag(2839, ts.DiagnosticCategory.Error, "This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839", "This condition will always return '{0}' since JavaScript compares objects by reference, not value."),
|
|
8897
|
+
An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_classes: diag(2840, ts.DiagnosticCategory.Error, "An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_clas_2840", "An interface cannot extend a primitive type like '{0}'; an interface can only extend named types and classes"),
|
|
8897
8898
|
Import_declaration_0_is_using_private_name_1: diag(4000, ts.DiagnosticCategory.Error, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."),
|
|
8898
8899
|
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, ts.DiagnosticCategory.Error, "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}'."),
|
|
8899
8900
|
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, ts.DiagnosticCategory.Error, "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}'."),
|
|
@@ -44163,8 +44164,8 @@ var ts;
|
|
|
44163
44164
|
var pathAndExtension = loadModuleFromFile(extensions, candidate, onlyRecordFailures, state) ||
|
|
44164
44165
|
loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageInfo && packageInfo.packageJsonContent, packageInfo && packageInfo.versionPaths);
|
|
44165
44166
|
if (!pathAndExtension && packageInfo
|
|
44166
|
-
|
|
44167
|
-
&& packageInfo.packageJsonContent.
|
|
44167
|
+
// eslint-disable-next-line no-null/no-null
|
|
44168
|
+
&& (packageInfo.packageJsonContent.exports === undefined || packageInfo.packageJsonContent.exports === null)
|
|
44168
44169
|
&& state.features & NodeResolutionFeatures.EsmMode) {
|
|
44169
44170
|
// EsmMode disables index lookup in `loadNodeModuleFromDirectoryWorker` generally, however non-relative package resolutions still assume
|
|
44170
44171
|
// a default `index.js` entrypoint if no `main` or `exports` are present
|
|
@@ -47829,7 +47830,10 @@ var ts;
|
|
|
47829
47830
|
TypeFacts[TypeFacts["NEUndefinedOrNull"] = 2097152] = "NEUndefinedOrNull";
|
|
47830
47831
|
TypeFacts[TypeFacts["Truthy"] = 4194304] = "Truthy";
|
|
47831
47832
|
TypeFacts[TypeFacts["Falsy"] = 8388608] = "Falsy";
|
|
47832
|
-
TypeFacts[TypeFacts["
|
|
47833
|
+
TypeFacts[TypeFacts["IsUndefined"] = 16777216] = "IsUndefined";
|
|
47834
|
+
TypeFacts[TypeFacts["IsNull"] = 33554432] = "IsNull";
|
|
47835
|
+
TypeFacts[TypeFacts["IsUndefinedOrNull"] = 50331648] = "IsUndefinedOrNull";
|
|
47836
|
+
TypeFacts[TypeFacts["All"] = 134217727] = "All";
|
|
47833
47837
|
// The following members encode facts about particular kinds of types for use in the getTypeFacts function.
|
|
47834
47838
|
// The presence of a particular fact means that the given test is true for some (and possibly all) values
|
|
47835
47839
|
// of that kind of type.
|
|
@@ -47871,14 +47875,16 @@ var ts;
|
|
|
47871
47875
|
TypeFacts[TypeFacts["ObjectFacts"] = 16736160] = "ObjectFacts";
|
|
47872
47876
|
TypeFacts[TypeFacts["FunctionStrictFacts"] = 7880640] = "FunctionStrictFacts";
|
|
47873
47877
|
TypeFacts[TypeFacts["FunctionFacts"] = 16728000] = "FunctionFacts";
|
|
47874
|
-
TypeFacts[TypeFacts["
|
|
47875
|
-
TypeFacts[TypeFacts["
|
|
47876
|
-
TypeFacts[TypeFacts["
|
|
47878
|
+
TypeFacts[TypeFacts["VoidFacts"] = 9830144] = "VoidFacts";
|
|
47879
|
+
TypeFacts[TypeFacts["UndefinedFacts"] = 26607360] = "UndefinedFacts";
|
|
47880
|
+
TypeFacts[TypeFacts["NullFacts"] = 42917664] = "NullFacts";
|
|
47881
|
+
TypeFacts[TypeFacts["EmptyObjectStrictFacts"] = 83427327] = "EmptyObjectStrictFacts";
|
|
47882
|
+
TypeFacts[TypeFacts["EmptyObjectFacts"] = 83886079] = "EmptyObjectFacts";
|
|
47883
|
+
TypeFacts[TypeFacts["UnknownFacts"] = 83886079] = "UnknownFacts";
|
|
47877
47884
|
TypeFacts[TypeFacts["AllTypeofNE"] = 556800] = "AllTypeofNE";
|
|
47878
|
-
TypeFacts[TypeFacts["EmptyObjectFacts"] = 16777215] = "EmptyObjectFacts";
|
|
47879
47885
|
// Masks
|
|
47880
47886
|
TypeFacts[TypeFacts["OrFactsMask"] = 8256] = "OrFactsMask";
|
|
47881
|
-
TypeFacts[TypeFacts["AndFactsMask"] =
|
|
47887
|
+
TypeFacts[TypeFacts["AndFactsMask"] = 134209471] = "AndFactsMask";
|
|
47882
47888
|
})(TypeFacts || (TypeFacts = {}));
|
|
47883
47889
|
var typeofEQFacts = new ts.Map(ts.getEntries({
|
|
47884
47890
|
string: 1 /* TypeofEQString */,
|
|
@@ -50042,7 +50048,12 @@ var ts;
|
|
|
50042
50048
|
function checkAndReportErrorForUsingTypeAsValue(errorLocation, name, meaning) {
|
|
50043
50049
|
if (meaning & (111551 /* Value */ & ~1024 /* NamespaceModule */)) {
|
|
50044
50050
|
if (isPrimitiveTypeName(name)) {
|
|
50045
|
-
|
|
50051
|
+
if (isExtendedByInterface(errorLocation)) {
|
|
50052
|
+
error(errorLocation, ts.Diagnostics.An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_classes, ts.unescapeLeadingUnderscores(name));
|
|
50053
|
+
}
|
|
50054
|
+
else {
|
|
50055
|
+
error(errorLocation, ts.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, ts.unescapeLeadingUnderscores(name));
|
|
50056
|
+
}
|
|
50046
50057
|
return true;
|
|
50047
50058
|
}
|
|
50048
50059
|
var symbol = resolveSymbol(resolveName(errorLocation, name, 788968 /* Type */ & ~111551 /* Value */, /*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined, /*isUse*/ false));
|
|
@@ -50062,6 +50073,16 @@ var ts;
|
|
|
50062
50073
|
}
|
|
50063
50074
|
return false;
|
|
50064
50075
|
}
|
|
50076
|
+
function isExtendedByInterface(node) {
|
|
50077
|
+
var grandparent = node.parent.parent;
|
|
50078
|
+
var parentOfGrandparent = grandparent.parent;
|
|
50079
|
+
if (grandparent && parentOfGrandparent) {
|
|
50080
|
+
var isExtending = ts.isHeritageClause(grandparent) && grandparent.token === 94 /* ExtendsKeyword */;
|
|
50081
|
+
var isInterface = ts.isInterfaceDeclaration(parentOfGrandparent);
|
|
50082
|
+
return isExtending && isInterface;
|
|
50083
|
+
}
|
|
50084
|
+
return false;
|
|
50085
|
+
}
|
|
50065
50086
|
function maybeMappedType(node, symbol) {
|
|
50066
50087
|
var container = ts.findAncestor(node.parent, function (n) {
|
|
50067
50088
|
return ts.isComputedPropertyName(n) || ts.isPropertySignature(n) ? false : ts.isTypeLiteralNode(n) || "quit";
|
|
@@ -52902,7 +52923,7 @@ var ts;
|
|
|
52902
52923
|
anyType : getNonMissingTypeOfSymbol(propertySymbol);
|
|
52903
52924
|
var saveEnclosingDeclaration = context.enclosingDeclaration;
|
|
52904
52925
|
context.enclosingDeclaration = undefined;
|
|
52905
|
-
if (context.tracker.trackSymbol &&
|
|
52926
|
+
if (context.tracker.trackSymbol && isLateBoundName(propertySymbol.escapedName)) {
|
|
52906
52927
|
if (propertySymbol.declarations) {
|
|
52907
52928
|
var decl = ts.first(propertySymbol.declarations);
|
|
52908
52929
|
if (hasLateBindableName(decl)) {
|
|
@@ -54586,7 +54607,7 @@ var ts;
|
|
|
54586
54607
|
? getBaseConstructorTypeOfClass(staticType)
|
|
54587
54608
|
: anyType;
|
|
54588
54609
|
var heritageClauses = __spreadArray(__spreadArray([], !ts.length(baseTypes) ? [] : [ts.factory.createHeritageClause(94 /* ExtendsKeyword */, ts.map(baseTypes, function (b) { return serializeBaseType(b, staticBaseType, localName); }))], true), !ts.length(implementsExpressions) ? [] : [ts.factory.createHeritageClause(117 /* ImplementsKeyword */, implementsExpressions)], true);
|
|
54589
|
-
var symbolProps =
|
|
54610
|
+
var symbolProps = getNonInheritedProperties(classType, baseTypes, getPropertiesOfType(classType));
|
|
54590
54611
|
var publicSymbolProps = ts.filter(symbolProps, function (s) {
|
|
54591
54612
|
// `valueDeclaration` could be undefined if inherited from
|
|
54592
54613
|
// a union/intersection base type, but inherited properties
|
|
@@ -55724,7 +55745,7 @@ var ts;
|
|
|
55724
55745
|
if (ts.getEffectiveTypeAnnotationNode(ts.walkUpBindingElementsAndPatterns(declaration))) {
|
|
55725
55746
|
// In strict null checking mode, if a default value of a non-undefined type is specified, remove
|
|
55726
55747
|
// undefined from the final type.
|
|
55727
|
-
return strictNullChecks && !(
|
|
55748
|
+
return strictNullChecks && !(getTypeFacts(checkDeclarationInitializer(declaration, 0 /* Normal */)) & 16777216 /* IsUndefined */) ? getNonUndefinedType(type) : type;
|
|
55728
55749
|
}
|
|
55729
55750
|
return widenTypeInferredFromInitializer(declaration, getUnionType([getNonUndefinedType(type), checkDeclarationInitializer(declaration, 0 /* Normal */)], 2 /* Subtype */));
|
|
55730
55751
|
}
|
|
@@ -58927,7 +58948,7 @@ var ts;
|
|
|
58927
58948
|
var objectType;
|
|
58928
58949
|
return !!(type.flags & 8388608 /* IndexedAccess */ && ts.getObjectFlags(objectType = type.objectType) & 32 /* Mapped */ &&
|
|
58929
58950
|
!isGenericMappedType(objectType) && isGenericIndexType(type.indexType) &&
|
|
58930
|
-
!objectType
|
|
58951
|
+
!(getMappedTypeModifiers(objectType) & 8 /* ExcludeOptional */) && !objectType.declaration.nameType);
|
|
58931
58952
|
}
|
|
58932
58953
|
/**
|
|
58933
58954
|
* For a type parameter, return the base constraint of the type parameter. For the string, number,
|
|
@@ -64219,7 +64240,7 @@ var ts;
|
|
|
64219
64240
|
var sourceSig = checkMode & 3 /* Callback */ ? undefined : getSingleCallSignature(getNonNullableType(sourceType));
|
|
64220
64241
|
var targetSig = checkMode & 3 /* Callback */ ? undefined : getSingleCallSignature(getNonNullableType(targetType));
|
|
64221
64242
|
var callbacks = sourceSig && targetSig && !getTypePredicateOfSignature(sourceSig) && !getTypePredicateOfSignature(targetSig) &&
|
|
64222
|
-
(
|
|
64243
|
+
(getTypeFacts(sourceType) & 50331648 /* IsUndefinedOrNull */) === (getTypeFacts(targetType) & 50331648 /* IsUndefinedOrNull */);
|
|
64223
64244
|
var related = callbacks ?
|
|
64224
64245
|
compareSignaturesRelated(targetSig, sourceSig, (checkMode & 8 /* StrictArity */) | (strictVariance ? 2 /* StrictCallback */ : 1 /* BivariantCallback */), reportErrors, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) :
|
|
64225
64246
|
!(checkMode & 3 /* Callback */) && !strictVariance && compareTypes(sourceType, targetType, /*reportErrors*/ false) || compareTypes(targetType, sourceType, reportErrors);
|
|
@@ -67437,30 +67458,8 @@ var ts;
|
|
|
67437
67458
|
var value = _a.value;
|
|
67438
67459
|
return value.base10Value === "0";
|
|
67439
67460
|
}
|
|
67440
|
-
function getFalsyFlagsOfTypes(types) {
|
|
67441
|
-
var result = 0;
|
|
67442
|
-
for (var _i = 0, types_14 = types; _i < types_14.length; _i++) {
|
|
67443
|
-
var t = types_14[_i];
|
|
67444
|
-
result |= getFalsyFlags(t);
|
|
67445
|
-
}
|
|
67446
|
-
return result;
|
|
67447
|
-
}
|
|
67448
|
-
// Returns the String, Number, Boolean, StringLiteral, NumberLiteral, BooleanLiteral, Void, Undefined, or Null
|
|
67449
|
-
// flags for the string, number, boolean, "", 0, false, void, undefined, or null types respectively. Returns
|
|
67450
|
-
// no flags for all other types (including non-falsy literal types).
|
|
67451
|
-
function getFalsyFlags(type) {
|
|
67452
|
-
var t = type.flags & 2097152 /* Intersection */ ? getBaseConstraintOrType(type) : type;
|
|
67453
|
-
return t.flags & 1048576 /* Union */ ? getFalsyFlagsOfTypes(t.types) :
|
|
67454
|
-
t.flags & 128 /* StringLiteral */ ? t.value === "" ? 128 /* StringLiteral */ : 0 :
|
|
67455
|
-
t.flags & 256 /* NumberLiteral */ ? t.value === 0 ? 256 /* NumberLiteral */ : 0 :
|
|
67456
|
-
t.flags & 2048 /* BigIntLiteral */ ? isZeroBigInt(t) ? 2048 /* BigIntLiteral */ : 0 :
|
|
67457
|
-
t.flags & 512 /* BooleanLiteral */ ? (t === falseType || t === regularFalseType) ? 512 /* BooleanLiteral */ : 0 :
|
|
67458
|
-
t.flags & 117724 /* PossiblyFalsy */;
|
|
67459
|
-
}
|
|
67460
67461
|
function removeDefinitelyFalsyTypes(type) {
|
|
67461
|
-
return
|
|
67462
|
-
filterType(type, function (t) { return !(getFalsyFlags(t) & 117632 /* DefinitelyFalsy */); }) :
|
|
67463
|
-
type;
|
|
67462
|
+
return filterType(type, function (t) { return !!(getTypeFacts(t) & 4194304 /* Truthy */); });
|
|
67464
67463
|
}
|
|
67465
67464
|
function extractDefinitelyFalsyTypes(type) {
|
|
67466
67465
|
return mapType(type, getDefinitelyFalsyPartOfType);
|
|
@@ -67503,14 +67502,7 @@ var ts;
|
|
|
67503
67502
|
getIntersectionType([type, emptyObjectType]);
|
|
67504
67503
|
}
|
|
67505
67504
|
function getNonNullableType(type) {
|
|
67506
|
-
|
|
67507
|
-
// First reduce away any constituents that are assignable to 'undefined' or 'null'. This not only eliminates
|
|
67508
|
-
// 'undefined' and 'null', but also higher-order types such as a type parameter 'U extends undefined | null'
|
|
67509
|
-
// that isn't eliminated by a NonNullable<T> instantiation.
|
|
67510
|
-
var reducedType = getTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);
|
|
67511
|
-
return maybeTypeOfKind(reducedType, 465829888 /* Instantiable */) ? getGlobalNonNullableTypeInstantiation(reducedType) : reducedType;
|
|
67512
|
-
}
|
|
67513
|
-
return type;
|
|
67505
|
+
return strictNullChecks ? getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type;
|
|
67514
67506
|
}
|
|
67515
67507
|
function addOptionalTypeMarker(type) {
|
|
67516
67508
|
return strictNullChecks ? getUnionType([type, optionalType]) : type;
|
|
@@ -68654,8 +68646,8 @@ var ts;
|
|
|
68654
68646
|
}
|
|
68655
68647
|
function getSingleTypeVariableFromIntersectionTypes(types) {
|
|
68656
68648
|
var typeVariable;
|
|
68657
|
-
for (var _i = 0,
|
|
68658
|
-
var type =
|
|
68649
|
+
for (var _i = 0, types_14 = types; _i < types_14.length; _i++) {
|
|
68650
|
+
var type = types_14[_i];
|
|
68659
68651
|
var t = type.flags & 2097152 /* Intersection */ && ts.find(type.types, function (t) { return !!getInferenceInfoForType(t); });
|
|
68660
68652
|
if (!t || typeVariable && t !== typeVariable) {
|
|
68661
68653
|
return undefined;
|
|
@@ -69408,8 +69400,8 @@ var ts;
|
|
|
69408
69400
|
}
|
|
69409
69401
|
}
|
|
69410
69402
|
};
|
|
69411
|
-
for (var _i = 0,
|
|
69412
|
-
var type =
|
|
69403
|
+
for (var _i = 0, types_15 = types; _i < types_15.length; _i++) {
|
|
69404
|
+
var type = types_15[_i];
|
|
69413
69405
|
var state_9 = _loop_24(type);
|
|
69414
69406
|
if (typeof state_9 === "object")
|
|
69415
69407
|
return state_9.value;
|
|
@@ -69524,14 +69516,16 @@ var ts;
|
|
|
69524
69516
|
return !!(resolved.callSignatures.length || resolved.constructSignatures.length ||
|
|
69525
69517
|
resolved.members.get("bind") && isTypeSubtypeOf(type, globalFunctionType));
|
|
69526
69518
|
}
|
|
69527
|
-
function getTypeFacts(type
|
|
69528
|
-
if (
|
|
69519
|
+
function getTypeFacts(type) {
|
|
69520
|
+
if (type.flags & (2097152 /* Intersection */ | 465829888 /* Instantiable */)) {
|
|
69521
|
+
type = getBaseConstraintOfType(type) || unknownType;
|
|
69522
|
+
}
|
|
69529
69523
|
var flags = type.flags;
|
|
69530
|
-
if (flags & 4 /* String */) {
|
|
69524
|
+
if (flags & (4 /* String */ | 268435456 /* StringMapping */)) {
|
|
69531
69525
|
return strictNullChecks ? 16317953 /* StringStrictFacts */ : 16776705 /* StringFacts */;
|
|
69532
69526
|
}
|
|
69533
|
-
if (flags & 128 /* StringLiteral */) {
|
|
69534
|
-
var isEmpty = type.value === "";
|
|
69527
|
+
if (flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */)) {
|
|
69528
|
+
var isEmpty = flags & 128 /* StringLiteral */ && type.value === "";
|
|
69535
69529
|
return strictNullChecks ?
|
|
69536
69530
|
isEmpty ? 12123649 /* EmptyStringStrictFacts */ : 7929345 /* NonEmptyStringStrictFacts */ :
|
|
69537
69531
|
isEmpty ? 12582401 /* EmptyStringFacts */ : 16776705 /* NonEmptyStringFacts */;
|
|
@@ -69563,20 +69557,20 @@ var ts;
|
|
|
69563
69557
|
(type === falseType || type === regularFalseType) ? 12580616 /* FalseFacts */ : 16774920 /* TrueFacts */;
|
|
69564
69558
|
}
|
|
69565
69559
|
if (flags & 524288 /* Object */) {
|
|
69566
|
-
if (ignoreObjects) {
|
|
69567
|
-
return 16768959 /* AndFactsMask */; // This is the identity element for computing type facts of intersection.
|
|
69568
|
-
}
|
|
69569
69560
|
return ts.getObjectFlags(type) & 16 /* Anonymous */ && isEmptyObjectType(type) ?
|
|
69570
|
-
strictNullChecks ?
|
|
69561
|
+
strictNullChecks ? 83427327 /* EmptyObjectStrictFacts */ : 83886079 /* EmptyObjectFacts */ :
|
|
69571
69562
|
isFunctionObjectType(type) ?
|
|
69572
69563
|
strictNullChecks ? 7880640 /* FunctionStrictFacts */ : 16728000 /* FunctionFacts */ :
|
|
69573
69564
|
strictNullChecks ? 7888800 /* ObjectStrictFacts */ : 16736160 /* ObjectFacts */;
|
|
69574
69565
|
}
|
|
69575
|
-
if (flags &
|
|
69576
|
-
return 9830144 /*
|
|
69566
|
+
if (flags & 16384 /* Void */) {
|
|
69567
|
+
return 9830144 /* VoidFacts */;
|
|
69568
|
+
}
|
|
69569
|
+
if (flags & 32768 /* Undefined */) {
|
|
69570
|
+
return 26607360 /* UndefinedFacts */;
|
|
69577
69571
|
}
|
|
69578
69572
|
if (flags & 65536 /* Null */) {
|
|
69579
|
-
return
|
|
69573
|
+
return 42917664 /* NullFacts */;
|
|
69580
69574
|
}
|
|
69581
69575
|
if (flags & 12288 /* ESSymbolLike */) {
|
|
69582
69576
|
return strictNullChecks ? 7925520 /* SymbolStrictFacts */ : 16772880 /* SymbolFacts */;
|
|
@@ -69587,38 +69581,39 @@ var ts;
|
|
|
69587
69581
|
if (flags & 131072 /* Never */) {
|
|
69588
69582
|
return 0 /* None */;
|
|
69589
69583
|
}
|
|
69590
|
-
if (flags & 465829888 /* Instantiable */) {
|
|
69591
|
-
return !isPatternLiteralType(type) ? getTypeFacts(getBaseConstraintOfType(type) || unknownType, ignoreObjects) :
|
|
69592
|
-
strictNullChecks ? 7929345 /* NonEmptyStringStrictFacts */ : 16776705 /* NonEmptyStringFacts */;
|
|
69593
|
-
}
|
|
69594
69584
|
if (flags & 1048576 /* Union */) {
|
|
69595
|
-
return ts.reduceLeft(type.types, function (facts, t) { return facts | getTypeFacts(t
|
|
69585
|
+
return ts.reduceLeft(type.types, function (facts, t) { return facts | getTypeFacts(t); }, 0 /* None */);
|
|
69596
69586
|
}
|
|
69597
69587
|
if (flags & 2097152 /* Intersection */) {
|
|
69598
|
-
|
|
69599
|
-
// presumably type tags. For example, in string & { __kind__: "name" } we ignore the object type.
|
|
69600
|
-
ignoreObjects || (ignoreObjects = maybeTypeOfKind(type, 131068 /* Primitive */));
|
|
69601
|
-
return getIntersectionTypeFacts(type, ignoreObjects);
|
|
69588
|
+
return getIntersectionTypeFacts(type);
|
|
69602
69589
|
}
|
|
69603
|
-
return
|
|
69590
|
+
return 83886079 /* UnknownFacts */;
|
|
69604
69591
|
}
|
|
69605
|
-
function getIntersectionTypeFacts(type
|
|
69592
|
+
function getIntersectionTypeFacts(type) {
|
|
69593
|
+
// When an intersection contains a primitive type we ignore object type constituents as they are
|
|
69594
|
+
// presumably type tags. For example, in string & { __kind__: "name" } we ignore the object type.
|
|
69595
|
+
var ignoreObjects = maybeTypeOfKind(type, 131068 /* Primitive */);
|
|
69606
69596
|
// When computing the type facts of an intersection type, certain type facts are computed as `and`
|
|
69607
69597
|
// and others are computed as `or`.
|
|
69608
69598
|
var oredFacts = 0 /* None */;
|
|
69609
|
-
var andedFacts =
|
|
69599
|
+
var andedFacts = 134217727 /* All */;
|
|
69610
69600
|
for (var _i = 0, _a = type.types; _i < _a.length; _i++) {
|
|
69611
69601
|
var t = _a[_i];
|
|
69612
|
-
|
|
69613
|
-
|
|
69614
|
-
|
|
69602
|
+
if (!(ignoreObjects && t.flags & 524288 /* Object */)) {
|
|
69603
|
+
var f = getTypeFacts(t);
|
|
69604
|
+
oredFacts |= f;
|
|
69605
|
+
andedFacts &= f;
|
|
69606
|
+
}
|
|
69615
69607
|
}
|
|
69616
|
-
return oredFacts & 8256 /* OrFactsMask */ | andedFacts &
|
|
69608
|
+
return oredFacts & 8256 /* OrFactsMask */ | andedFacts & 134209471 /* AndFactsMask */;
|
|
69617
69609
|
}
|
|
69618
69610
|
function getTypeWithFacts(type, include) {
|
|
69619
69611
|
return filterType(type, function (t) { return (getTypeFacts(t) & include) !== 0; });
|
|
69620
69612
|
}
|
|
69621
|
-
function
|
|
69613
|
+
// This function is similar to getTypeWithFacts, except that in strictNullChecks mode it replaces type
|
|
69614
|
+
// unknown with the union {} | null | undefined (and reduces that accordingly), and it intersects remaining
|
|
69615
|
+
// instantiable types with {}, {} | null, or {} | undefined in order to remove null and/or undefined.
|
|
69616
|
+
function getAdjustedTypeWithFacts(type, facts) {
|
|
69622
69617
|
var reduced = recombineUnknownType(getTypeWithFacts(strictNullChecks && type.flags & 2 /* Unknown */ ? unknownUnionType : type, facts));
|
|
69623
69618
|
if (strictNullChecks) {
|
|
69624
69619
|
switch (facts) {
|
|
@@ -69884,8 +69879,8 @@ var ts;
|
|
|
69884
69879
|
var types = origin && origin.flags & 1048576 /* Union */ ? origin.types : type.types;
|
|
69885
69880
|
var mappedTypes;
|
|
69886
69881
|
var changed = false;
|
|
69887
|
-
for (var _i = 0,
|
|
69888
|
-
var t =
|
|
69882
|
+
for (var _i = 0, types_16 = types; _i < types_16.length; _i++) {
|
|
69883
|
+
var t = types_16[_i];
|
|
69889
69884
|
var mapped = t.flags & 1048576 /* Union */ ? mapType(t, mapper, noReductions) : mapper(t);
|
|
69890
69885
|
changed || (changed = t !== mapped);
|
|
69891
69886
|
if (mapped) {
|
|
@@ -69971,8 +69966,8 @@ var ts;
|
|
|
69971
69966
|
}
|
|
69972
69967
|
function isEvolvingArrayTypeList(types) {
|
|
69973
69968
|
var hasEvolvingArrayType = false;
|
|
69974
|
-
for (var _i = 0,
|
|
69975
|
-
var t =
|
|
69969
|
+
for (var _i = 0, types_17 = types; _i < types_17.length; _i++) {
|
|
69970
|
+
var t = types_17[_i];
|
|
69976
69971
|
if (!(t.flags & 131072 /* Never */)) {
|
|
69977
69972
|
if (!(ts.getObjectFlags(t) & 256 /* EvolvingArray */)) {
|
|
69978
69973
|
return false;
|
|
@@ -70795,10 +70790,10 @@ var ts;
|
|
|
70795
70790
|
}
|
|
70796
70791
|
function narrowTypeByTruthiness(type, expr, assumeTrue) {
|
|
70797
70792
|
if (isMatchingReference(reference, expr)) {
|
|
70798
|
-
return
|
|
70793
|
+
return getAdjustedTypeWithFacts(type, assumeTrue ? 4194304 /* Truthy */ : 8388608 /* Falsy */);
|
|
70799
70794
|
}
|
|
70800
70795
|
if (strictNullChecks && assumeTrue && optionalChainContainsReference(expr, reference)) {
|
|
70801
|
-
type =
|
|
70796
|
+
type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);
|
|
70802
70797
|
}
|
|
70803
70798
|
var access = getDiscriminantPropertyAccess(expr, type);
|
|
70804
70799
|
if (access) {
|
|
@@ -70938,7 +70933,7 @@ var ts;
|
|
|
70938
70933
|
// Note that we include any and unknown in the exclusion test because their domain includes null and undefined.
|
|
70939
70934
|
var removeNullable = equalsOperator !== assumeTrue && everyType(valueType, function (t) { return !!(t.flags & nullableFlags); }) ||
|
|
70940
70935
|
equalsOperator === assumeTrue && everyType(valueType, function (t) { return !(t.flags & (3 /* AnyOrUnknown */ | nullableFlags)); });
|
|
70941
|
-
return removeNullable ?
|
|
70936
|
+
return removeNullable ? getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type;
|
|
70942
70937
|
}
|
|
70943
70938
|
function narrowTypeByEquality(type, operator, value, assumeTrue) {
|
|
70944
70939
|
if (type.flags & 1 /* Any */) {
|
|
@@ -70967,7 +70962,7 @@ var ts;
|
|
|
70967
70962
|
valueType.flags & 65536 /* Null */ ?
|
|
70968
70963
|
assumeTrue ? 131072 /* EQNull */ : 1048576 /* NENull */ :
|
|
70969
70964
|
assumeTrue ? 65536 /* EQUndefined */ : 524288 /* NEUndefined */;
|
|
70970
|
-
return
|
|
70965
|
+
return getAdjustedTypeWithFacts(type, facts);
|
|
70971
70966
|
}
|
|
70972
70967
|
if (assumeTrue) {
|
|
70973
70968
|
var filterFn = operator === 34 /* EqualsEqualsToken */ ?
|
|
@@ -70988,7 +70983,7 @@ var ts;
|
|
|
70988
70983
|
var target = getReferenceCandidate(typeOfExpr.expression);
|
|
70989
70984
|
if (!isMatchingReference(reference, target)) {
|
|
70990
70985
|
if (strictNullChecks && optionalChainContainsReference(target, reference) && assumeTrue === (literal.text !== "undefined")) {
|
|
70991
|
-
return
|
|
70986
|
+
return getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);
|
|
70992
70987
|
}
|
|
70993
70988
|
return type;
|
|
70994
70989
|
}
|
|
@@ -71192,7 +71187,7 @@ var ts;
|
|
|
71192
71187
|
var left = getReferenceCandidate(expr.left);
|
|
71193
71188
|
if (!isMatchingReference(reference, left)) {
|
|
71194
71189
|
if (assumeTrue && strictNullChecks && optionalChainContainsReference(left, reference)) {
|
|
71195
|
-
return
|
|
71190
|
+
return getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);
|
|
71196
71191
|
}
|
|
71197
71192
|
return type;
|
|
71198
71193
|
}
|
|
@@ -71280,7 +71275,7 @@ var ts;
|
|
|
71280
71275
|
}
|
|
71281
71276
|
if (strictNullChecks && assumeTrue && optionalChainContainsReference(predicateArgument, reference) &&
|
|
71282
71277
|
!(getTypeFacts(predicate.type) & 65536 /* EQUndefined */)) {
|
|
71283
|
-
type =
|
|
71278
|
+
type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);
|
|
71284
71279
|
}
|
|
71285
71280
|
var access = getDiscriminantPropertyAccess(predicateArgument, type);
|
|
71286
71281
|
if (access) {
|
|
@@ -71337,7 +71332,7 @@ var ts;
|
|
|
71337
71332
|
}
|
|
71338
71333
|
function narrowTypeByOptionality(type, expr, assumePresent) {
|
|
71339
71334
|
if (isMatchingReference(reference, expr)) {
|
|
71340
|
-
return
|
|
71335
|
+
return getAdjustedTypeWithFacts(type, assumePresent ? 2097152 /* NEUndefinedOrNull */ : 262144 /* EQUndefinedOrNull */);
|
|
71341
71336
|
}
|
|
71342
71337
|
var access = getDiscriminantPropertyAccess(expr, type);
|
|
71343
71338
|
if (access) {
|
|
@@ -71423,8 +71418,8 @@ var ts;
|
|
|
71423
71418
|
var annotationIncludesUndefined = strictNullChecks &&
|
|
71424
71419
|
declaration.kind === 164 /* Parameter */ &&
|
|
71425
71420
|
declaration.initializer &&
|
|
71426
|
-
|
|
71427
|
-
!(
|
|
71421
|
+
getTypeFacts(declaredType) & 16777216 /* IsUndefined */ &&
|
|
71422
|
+
!(getTypeFacts(checkExpression(declaration.initializer)) & 16777216 /* IsUndefined */);
|
|
71428
71423
|
popTypeResolution();
|
|
71429
71424
|
return annotationIncludesUndefined ? getTypeWithFacts(declaredType, 524288 /* NEUndefined */) : declaredType;
|
|
71430
71425
|
}
|
|
@@ -71752,7 +71747,7 @@ var ts;
|
|
|
71752
71747
|
return convertAutoToAny(flowType);
|
|
71753
71748
|
}
|
|
71754
71749
|
}
|
|
71755
|
-
else if (!assumeInitialized && !(
|
|
71750
|
+
else if (!assumeInitialized && !(getTypeFacts(type) & 16777216 /* IsUndefined */) && getTypeFacts(flowType) & 16777216 /* IsUndefined */) {
|
|
71756
71751
|
error(node, ts.Diagnostics.Variable_0_is_used_before_being_assigned, symbolToString(symbol));
|
|
71757
71752
|
// Return the declared type to reduce follow-on errors
|
|
71758
71753
|
return type;
|
|
@@ -73281,8 +73276,8 @@ var ts;
|
|
|
73281
73276
|
}
|
|
73282
73277
|
var signatureList;
|
|
73283
73278
|
var types = type.types;
|
|
73284
|
-
for (var _i = 0,
|
|
73285
|
-
var current =
|
|
73279
|
+
for (var _i = 0, types_18 = types; _i < types_18.length; _i++) {
|
|
73280
|
+
var current = types_18[_i];
|
|
73286
73281
|
var signature = getContextualCallSignature(current, node);
|
|
73287
73282
|
if (signature) {
|
|
73288
73283
|
if (!signatureList) {
|
|
@@ -74444,19 +74439,19 @@ var ts;
|
|
|
74444
74439
|
return checkNonNullType(checkExpression(node), node);
|
|
74445
74440
|
}
|
|
74446
74441
|
function isNullableType(type) {
|
|
74447
|
-
return !!((
|
|
74442
|
+
return !!(getTypeFacts(type) & 50331648 /* IsUndefinedOrNull */);
|
|
74448
74443
|
}
|
|
74449
74444
|
function getNonNullableTypeIfNeeded(type) {
|
|
74450
74445
|
return isNullableType(type) ? getNonNullableType(type) : type;
|
|
74451
74446
|
}
|
|
74452
|
-
function reportObjectPossiblyNullOrUndefinedError(node,
|
|
74453
|
-
error(node,
|
|
74447
|
+
function reportObjectPossiblyNullOrUndefinedError(node, facts) {
|
|
74448
|
+
error(node, facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ?
|
|
74454
74449
|
ts.Diagnostics.Object_is_possibly_null_or_undefined :
|
|
74455
74450
|
ts.Diagnostics.Object_is_possibly_undefined :
|
|
74456
74451
|
ts.Diagnostics.Object_is_possibly_null);
|
|
74457
74452
|
}
|
|
74458
|
-
function reportCannotInvokePossiblyNullOrUndefinedError(node,
|
|
74459
|
-
error(node,
|
|
74453
|
+
function reportCannotInvokePossiblyNullOrUndefinedError(node, facts) {
|
|
74454
|
+
error(node, facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ?
|
|
74460
74455
|
ts.Diagnostics.Cannot_invoke_an_object_which_is_possibly_null_or_undefined :
|
|
74461
74456
|
ts.Diagnostics.Cannot_invoke_an_object_which_is_possibly_undefined :
|
|
74462
74457
|
ts.Diagnostics.Cannot_invoke_an_object_which_is_possibly_null);
|
|
@@ -74466,9 +74461,9 @@ var ts;
|
|
|
74466
74461
|
error(node, ts.Diagnostics.Object_is_of_type_unknown);
|
|
74467
74462
|
return errorType;
|
|
74468
74463
|
}
|
|
74469
|
-
var
|
|
74470
|
-
if (
|
|
74471
|
-
reportError(node,
|
|
74464
|
+
var facts = getTypeFacts(type);
|
|
74465
|
+
if (facts & 50331648 /* IsUndefinedOrNull */) {
|
|
74466
|
+
reportError(node, facts);
|
|
74472
74467
|
var t = getNonNullableType(type);
|
|
74473
74468
|
return t.flags & (98304 /* Nullable */ | 131072 /* Never */) ? errorType : t;
|
|
74474
74469
|
}
|
|
@@ -74763,7 +74758,7 @@ var ts;
|
|
|
74763
74758
|
assumeUninitialized = true;
|
|
74764
74759
|
}
|
|
74765
74760
|
var flowType = getFlowTypeOfReference(node, propType, assumeUninitialized ? getOptionalType(propType) : propType);
|
|
74766
|
-
if (assumeUninitialized && !(
|
|
74761
|
+
if (assumeUninitialized && !(getTypeFacts(propType) & 16777216 /* IsUndefined */) && getTypeFacts(flowType) & 16777216 /* IsUndefined */) {
|
|
74767
74762
|
error(errorNode, ts.Diagnostics.Property_0_is_used_before_being_assigned, symbolToString(prop)); // TODO: GH#18217
|
|
74768
74763
|
// Return the declared type to reduce follow-on errors
|
|
74769
74764
|
return propType;
|
|
@@ -76679,8 +76674,8 @@ var ts;
|
|
|
76679
76674
|
if (apparentType.flags & 1048576 /* Union */) {
|
|
76680
76675
|
var types = apparentType.types;
|
|
76681
76676
|
var hasSignatures = false;
|
|
76682
|
-
for (var _i = 0,
|
|
76683
|
-
var constituent =
|
|
76677
|
+
for (var _i = 0, types_19 = types; _i < types_19.length; _i++) {
|
|
76678
|
+
var constituent = types_19[_i];
|
|
76684
76679
|
var signatures = getSignaturesOfType(constituent, kind);
|
|
76685
76680
|
if (signatures.length !== 0) {
|
|
76686
76681
|
hasSignatures = true;
|
|
@@ -78371,7 +78366,7 @@ var ts;
|
|
|
78371
78366
|
var type = getTypeOfSymbol(symbol);
|
|
78372
78367
|
if (strictNullChecks &&
|
|
78373
78368
|
!(type.flags & (3 /* AnyOrUnknown */ | 131072 /* Never */)) &&
|
|
78374
|
-
!(exactOptionalPropertyTypes ? symbol.flags & 16777216 /* Optional */ :
|
|
78369
|
+
!(exactOptionalPropertyTypes ? symbol.flags & 16777216 /* Optional */ : getTypeFacts(type) & 16777216 /* IsUndefined */)) {
|
|
78375
78370
|
error(expr, ts.Diagnostics.The_operand_of_a_delete_operator_must_be_optional);
|
|
78376
78371
|
}
|
|
78377
78372
|
}
|
|
@@ -78539,8 +78534,8 @@ var ts;
|
|
|
78539
78534
|
}
|
|
78540
78535
|
if (type.flags & 3145728 /* UnionOrIntersection */) {
|
|
78541
78536
|
var types = type.types;
|
|
78542
|
-
for (var _i = 0,
|
|
78543
|
-
var t =
|
|
78537
|
+
for (var _i = 0, types_20 = types; _i < types_20.length; _i++) {
|
|
78538
|
+
var t = types_20[_i];
|
|
78544
78539
|
if (maybeTypeOfKind(t, kind)) {
|
|
78545
78540
|
return true;
|
|
78546
78541
|
}
|
|
@@ -78767,7 +78762,7 @@ var ts;
|
|
|
78767
78762
|
// In strict null checking mode, if a default value of a non-undefined type is specified, remove
|
|
78768
78763
|
// undefined from the final type.
|
|
78769
78764
|
if (strictNullChecks &&
|
|
78770
|
-
!(
|
|
78765
|
+
!(getTypeFacts(checkExpression(prop.objectAssignmentInitializer)) & 16777216 /* IsUndefined */)) {
|
|
78771
78766
|
sourceType = getTypeWithFacts(sourceType, 524288 /* NEUndefined */);
|
|
78772
78767
|
}
|
|
78773
78768
|
checkBinaryLikeExpression(prop.name, prop.equalsToken, prop.objectAssignmentInitializer, checkMode);
|
|
@@ -78780,6 +78775,10 @@ var ts;
|
|
|
78780
78775
|
if (target.kind === 221 /* BinaryExpression */ && target.operatorToken.kind === 63 /* EqualsToken */) {
|
|
78781
78776
|
checkBinaryExpression(target, checkMode);
|
|
78782
78777
|
target = target.left;
|
|
78778
|
+
// A default value is specified, so remove undefined from the final type.
|
|
78779
|
+
if (strictNullChecks) {
|
|
78780
|
+
sourceType = getTypeWithFacts(sourceType, 524288 /* NEUndefined */);
|
|
78781
|
+
}
|
|
78783
78782
|
}
|
|
78784
78783
|
if (target.kind === 205 /* ObjectLiteralExpression */) {
|
|
78785
78784
|
return checkObjectLiteralAssignment(target, sourceType, rightIsThis);
|
|
@@ -79167,7 +79166,7 @@ var ts;
|
|
|
79167
79166
|
case 56 /* BarBarToken */:
|
|
79168
79167
|
case 75 /* BarBarEqualsToken */: {
|
|
79169
79168
|
var resultType_3 = getTypeFacts(leftType) & 8388608 /* Falsy */ ?
|
|
79170
|
-
getUnionType([removeDefinitelyFalsyTypes(leftType), rightType], 2 /* Subtype */) :
|
|
79169
|
+
getUnionType([getNonNullableType(removeDefinitelyFalsyTypes(leftType)), rightType], 2 /* Subtype */) :
|
|
79171
79170
|
leftType;
|
|
79172
79171
|
if (operator === 75 /* BarBarEqualsToken */) {
|
|
79173
79172
|
checkAssignmentOperator(rightType);
|
|
@@ -81708,8 +81707,8 @@ var ts;
|
|
|
81708
81707
|
}
|
|
81709
81708
|
function getEntityNameForDecoratorMetadataFromTypeList(types) {
|
|
81710
81709
|
var commonEntityName;
|
|
81711
|
-
for (var _i = 0,
|
|
81712
|
-
var typeNode =
|
|
81710
|
+
for (var _i = 0, types_21 = types; _i < types_21.length; _i++) {
|
|
81711
|
+
var typeNode = types_21[_i];
|
|
81713
81712
|
while (typeNode.kind === 191 /* ParenthesizedType */ || typeNode.kind === 197 /* NamedTupleMember */) {
|
|
81714
81713
|
typeNode = typeNode.type; // Skip parens if need be
|
|
81715
81714
|
}
|
|
@@ -82575,7 +82574,7 @@ var ts;
|
|
|
82575
82574
|
// For a binding pattern, validate the initializer and exit
|
|
82576
82575
|
if (ts.isBindingPattern(node.name)) {
|
|
82577
82576
|
var needCheckInitializer = node.initializer && node.parent.parent.kind !== 243 /* ForInStatement */;
|
|
82578
|
-
var needCheckWidenedType = node.name.elements.
|
|
82577
|
+
var needCheckWidenedType = !ts.some(node.name.elements, ts.not(ts.isOmittedExpression));
|
|
82579
82578
|
if (needCheckInitializer || needCheckWidenedType) {
|
|
82580
82579
|
// Don't validate for-in initializer as it is already an error
|
|
82581
82580
|
var widenedType = getWidenedTypeForVariableLikeDeclaration(node);
|
|
@@ -82728,7 +82727,7 @@ var ts;
|
|
|
82728
82727
|
return;
|
|
82729
82728
|
var type = checkTruthinessExpression(location);
|
|
82730
82729
|
var isPropertyExpressionCast = ts.isPropertyAccessExpression(location) && isTypeAssertion(location.expression);
|
|
82731
|
-
if (
|
|
82730
|
+
if (!(getTypeFacts(type) & 4194304 /* Truthy */) || isPropertyExpressionCast)
|
|
82732
82731
|
return;
|
|
82733
82732
|
// While it technically should be invalid for any known-truthy value
|
|
82734
82733
|
// to be tested, we de-scope to functions and Promises unreferenced in
|
|
@@ -84414,18 +84413,17 @@ var ts;
|
|
|
84414
84413
|
// but not by other kinds of members.
|
|
84415
84414
|
// Base class instance member variables and accessors can be overridden by
|
|
84416
84415
|
// derived class instance member variables and accessors, but not by other kinds of members.
|
|
84417
|
-
var _a, _b;
|
|
84416
|
+
var _a, _b, _c, _d;
|
|
84418
84417
|
// NOTE: assignability is checked in checkClassDeclaration
|
|
84419
84418
|
var baseProperties = getPropertiesOfType(baseType);
|
|
84420
|
-
|
|
84421
|
-
var baseProperty = baseProperties_1[_i];
|
|
84419
|
+
var _loop_33 = function (baseProperty) {
|
|
84422
84420
|
var base = getTargetSymbol(baseProperty);
|
|
84423
84421
|
if (base.flags & 4194304 /* Prototype */) {
|
|
84424
|
-
continue;
|
|
84422
|
+
return "continue";
|
|
84425
84423
|
}
|
|
84426
84424
|
var baseSymbol = getPropertyOfObjectType(type, base.escapedName);
|
|
84427
84425
|
if (!baseSymbol) {
|
|
84428
|
-
continue;
|
|
84426
|
+
return "continue";
|
|
84429
84427
|
}
|
|
84430
84428
|
var derived = getTargetSymbol(baseSymbol);
|
|
84431
84429
|
var baseDeclarationFlags = ts.getDeclarationModifierFlagsFromSymbol(base);
|
|
@@ -84443,14 +84441,14 @@ var ts;
|
|
|
84443
84441
|
// Searches other base types for a declaration that would satisfy the inherited abstract member.
|
|
84444
84442
|
// (The class may have more than one base type via declaration merging with an interface with the
|
|
84445
84443
|
// same name.)
|
|
84446
|
-
for (var
|
|
84447
|
-
var otherBaseType =
|
|
84444
|
+
for (var _e = 0, _f = getBaseTypes(type); _e < _f.length; _e++) {
|
|
84445
|
+
var otherBaseType = _f[_e];
|
|
84448
84446
|
if (otherBaseType === baseType)
|
|
84449
84447
|
continue;
|
|
84450
84448
|
var baseSymbol_1 = getPropertyOfObjectType(otherBaseType, base.escapedName);
|
|
84451
84449
|
var derivedElsewhere = baseSymbol_1 && getTargetSymbol(baseSymbol_1);
|
|
84452
84450
|
if (derivedElsewhere && derivedElsewhere !== base) {
|
|
84453
|
-
continue
|
|
84451
|
+
return "continue-basePropertyCheck";
|
|
84454
84452
|
}
|
|
84455
84453
|
}
|
|
84456
84454
|
if (derivedClassDecl.kind === 226 /* ClassExpression */) {
|
|
@@ -84465,20 +84463,19 @@ var ts;
|
|
|
84465
84463
|
// derived overrides base.
|
|
84466
84464
|
var derivedDeclarationFlags = ts.getDeclarationModifierFlagsFromSymbol(derived);
|
|
84467
84465
|
if (baseDeclarationFlags & 8 /* Private */ || derivedDeclarationFlags & 8 /* Private */) {
|
|
84468
|
-
|
|
84469
|
-
continue;
|
|
84466
|
+
return "continue";
|
|
84470
84467
|
}
|
|
84471
84468
|
var errorMessage = void 0;
|
|
84472
84469
|
var basePropertyFlags = base.flags & 98308 /* PropertyOrAccessor */;
|
|
84473
84470
|
var derivedPropertyFlags = derived.flags & 98308 /* PropertyOrAccessor */;
|
|
84474
84471
|
if (basePropertyFlags && derivedPropertyFlags) {
|
|
84475
84472
|
// property/accessor is overridden with property/accessor
|
|
84476
|
-
if (
|
|
84477
|
-
|
|
84473
|
+
if ((ts.getCheckFlags(base) & 6 /* Synthetic */
|
|
84474
|
+
? (_a = base.declarations) === null || _a === void 0 ? void 0 : _a.some(function (d) { return isPropertyAbstractOrInterface(d, baseDeclarationFlags); })
|
|
84475
|
+
: (_b = base.declarations) === null || _b === void 0 ? void 0 : _b.every(function (d) { return isPropertyAbstractOrInterface(d, baseDeclarationFlags); }))
|
|
84476
|
+
|| ts.getCheckFlags(base) & 262144 /* Mapped */
|
|
84478
84477
|
|| derived.valueDeclaration && ts.isBinaryExpression(derived.valueDeclaration)) {
|
|
84479
|
-
|
|
84480
|
-
// same when the derived property is from an assignment
|
|
84481
|
-
continue;
|
|
84478
|
+
return "continue";
|
|
84482
84479
|
}
|
|
84483
84480
|
var overriddenInstanceProperty = basePropertyFlags !== 4 /* Property */ && derivedPropertyFlags === 4 /* Property */;
|
|
84484
84481
|
var overriddenInstanceAccessor = basePropertyFlags === 4 /* Property */ && derivedPropertyFlags !== 4 /* Property */;
|
|
@@ -84489,12 +84486,12 @@ var ts;
|
|
|
84489
84486
|
error(ts.getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage_1, symbolToString(base), typeToString(baseType), typeToString(type));
|
|
84490
84487
|
}
|
|
84491
84488
|
else if (useDefineForClassFields) {
|
|
84492
|
-
var uninitialized = (
|
|
84489
|
+
var uninitialized = (_c = derived.declarations) === null || _c === void 0 ? void 0 : _c.find(function (d) { return d.kind === 167 /* PropertyDeclaration */ && !d.initializer; });
|
|
84493
84490
|
if (uninitialized
|
|
84494
84491
|
&& !(derived.flags & 33554432 /* Transient */)
|
|
84495
84492
|
&& !(baseDeclarationFlags & 128 /* Abstract */)
|
|
84496
84493
|
&& !(derivedDeclarationFlags & 128 /* Abstract */)
|
|
84497
|
-
&& !((
|
|
84494
|
+
&& !((_d = derived.declarations) === null || _d === void 0 ? void 0 : _d.some(function (d) { return !!(d.flags & 16777216 /* Ambient */); }))) {
|
|
84498
84495
|
var constructor = findConstructorDeclaration(ts.getClassLikeDeclarationOfSymbol(type.symbol));
|
|
84499
84496
|
var propName = uninitialized.name;
|
|
84500
84497
|
if (uninitialized.exclamationToken
|
|
@@ -84507,13 +84504,11 @@ var ts;
|
|
|
84507
84504
|
}
|
|
84508
84505
|
}
|
|
84509
84506
|
}
|
|
84510
|
-
|
|
84511
|
-
continue;
|
|
84507
|
+
return "continue";
|
|
84512
84508
|
}
|
|
84513
84509
|
else if (isPrototypeProperty(base)) {
|
|
84514
84510
|
if (isPrototypeProperty(derived) || derived.flags & 4 /* Property */) {
|
|
84515
|
-
|
|
84516
|
-
continue;
|
|
84511
|
+
return "continue";
|
|
84517
84512
|
}
|
|
84518
84513
|
else {
|
|
84519
84514
|
ts.Debug.assert(!!(derived.flags & 98304 /* Accessor */));
|
|
@@ -84528,9 +84523,20 @@ var ts;
|
|
|
84528
84523
|
}
|
|
84529
84524
|
error(ts.getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
|
84530
84525
|
}
|
|
84526
|
+
};
|
|
84527
|
+
basePropertyCheck: for (var _i = 0, baseProperties_1 = baseProperties; _i < baseProperties_1.length; _i++) {
|
|
84528
|
+
var baseProperty = baseProperties_1[_i];
|
|
84529
|
+
var state_10 = _loop_33(baseProperty);
|
|
84530
|
+
switch (state_10) {
|
|
84531
|
+
case "continue-basePropertyCheck": continue basePropertyCheck;
|
|
84532
|
+
}
|
|
84531
84533
|
}
|
|
84532
84534
|
}
|
|
84533
|
-
function
|
|
84535
|
+
function isPropertyAbstractOrInterface(declaration, baseDeclarationFlags) {
|
|
84536
|
+
return baseDeclarationFlags & 128 /* Abstract */ && (!ts.isPropertyDeclaration(declaration) || !declaration.initializer)
|
|
84537
|
+
|| ts.isInterfaceDeclaration(declaration.parent);
|
|
84538
|
+
}
|
|
84539
|
+
function getNonInheritedProperties(type, baseTypes, properties) {
|
|
84534
84540
|
if (!ts.length(baseTypes)) {
|
|
84535
84541
|
return properties;
|
|
84536
84542
|
}
|
|
@@ -84599,7 +84605,7 @@ var ts;
|
|
|
84599
84605
|
var propName = member.name;
|
|
84600
84606
|
if (ts.isIdentifier(propName) || ts.isPrivateIdentifier(propName) || ts.isComputedPropertyName(propName)) {
|
|
84601
84607
|
var type = getTypeOfSymbol(getSymbolOfNode(member));
|
|
84602
|
-
if (!(type.flags & 3 /* AnyOrUnknown */ ||
|
|
84608
|
+
if (!(type.flags & 3 /* AnyOrUnknown */ || getTypeFacts(type) & 16777216 /* IsUndefined */)) {
|
|
84603
84609
|
if (!constructor || !isPropertyInitializedInConstructor(propName, type, constructor)) {
|
|
84604
84610
|
error(member.name, ts.Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor, ts.declarationNameToString(propName));
|
|
84605
84611
|
}
|
|
@@ -84624,7 +84630,7 @@ var ts;
|
|
|
84624
84630
|
ts.setParent(reference, staticBlock);
|
|
84625
84631
|
reference.flowNode = staticBlock.returnFlowNode;
|
|
84626
84632
|
var flowType = getFlowTypeOfReference(reference, propType, getOptionalType(propType));
|
|
84627
|
-
if (!(
|
|
84633
|
+
if (!(getTypeFacts(flowType) & 16777216 /* IsUndefined */)) {
|
|
84628
84634
|
return true;
|
|
84629
84635
|
}
|
|
84630
84636
|
}
|
|
@@ -84639,7 +84645,7 @@ var ts;
|
|
|
84639
84645
|
ts.setParent(reference, constructor);
|
|
84640
84646
|
reference.flowNode = constructor.returnFlowNode;
|
|
84641
84647
|
var flowType = getFlowTypeOfReference(reference, propType, getOptionalType(propType));
|
|
84642
|
-
return !(
|
|
84648
|
+
return !(getTypeFacts(flowType) & 16777216 /* IsUndefined */);
|
|
84643
84649
|
}
|
|
84644
84650
|
function checkInterfaceDeclaration(node) {
|
|
84645
84651
|
// Grammar checking
|
|
@@ -92929,8 +92935,8 @@ var ts;
|
|
|
92929
92935
|
// Note when updating logic here also update getEntityNameForDecoratorMetadata
|
|
92930
92936
|
// so that aliases can be marked as referenced
|
|
92931
92937
|
var serializedUnion;
|
|
92932
|
-
for (var _i = 0,
|
|
92933
|
-
var typeNode =
|
|
92938
|
+
for (var _i = 0, types_22 = types; _i < types_22.length; _i++) {
|
|
92939
|
+
var typeNode = types_22[_i];
|
|
92934
92940
|
while (typeNode.kind === 191 /* ParenthesizedType */) {
|
|
92935
92941
|
typeNode = typeNode.type; // Skip parens if need be
|
|
92936
92942
|
}
|
|
@@ -113545,8 +113551,8 @@ var ts;
|
|
|
113545
113551
|
bundleFileInfo.sections.push({ pos: pos, end: writer.getTextPos(), kind: "reference" /* Reference */, data: directive.fileName });
|
|
113546
113552
|
writeLine();
|
|
113547
113553
|
}
|
|
113548
|
-
for (var _d = 0,
|
|
113549
|
-
var directive =
|
|
113554
|
+
for (var _d = 0, types_23 = types; _d < types_23.length; _d++) {
|
|
113555
|
+
var directive = types_23[_d];
|
|
113550
113556
|
var pos = writer.getTextPos();
|
|
113551
113557
|
var resolutionMode = directive.resolutionMode && directive.resolutionMode !== (currentSourceFile === null || currentSourceFile === void 0 ? void 0 : currentSourceFile.impliedNodeFormat)
|
|
113552
113558
|
? "resolution-mode=\"" + (directive.resolutionMode === ts.ModuleKind.ESNext ? "import" : "require") + "\""
|
|
@@ -122314,7 +122320,7 @@ var ts;
|
|
|
122314
122320
|
});
|
|
122315
122321
|
// Sort by paths closest to importing file Name directory
|
|
122316
122322
|
var sortedPaths = [];
|
|
122317
|
-
var
|
|
122323
|
+
var _loop_34 = function (directory) {
|
|
122318
122324
|
var directoryStart = ts.ensureTrailingDirectorySeparator(directory);
|
|
122319
122325
|
var pathsInDirectory;
|
|
122320
122326
|
allFileNames.forEach(function (_a, fileName) {
|
|
@@ -122338,9 +122344,9 @@ var ts;
|
|
|
122338
122344
|
};
|
|
122339
122345
|
var out_directory_1;
|
|
122340
122346
|
for (var directory = ts.getDirectoryPath(importingFileName); allFileNames.size !== 0;) {
|
|
122341
|
-
var
|
|
122347
|
+
var state_11 = _loop_34(directory);
|
|
122342
122348
|
directory = out_directory_1;
|
|
122343
|
-
if (
|
|
122349
|
+
if (state_11 === "break")
|
|
122344
122350
|
break;
|
|
122345
122351
|
}
|
|
122346
122352
|
if (allFileNames.size) {
|