@zzzen/pyright-internal 1.1.254 → 1.2.0-dev.2022-07-02
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/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/analyzer/analyzerFileInfo.d.ts +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -0
- package/dist/analyzer/backgroundAnalysisProgram.js +3 -0
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +9 -2
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +19 -26
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowUtils.js +33 -0
- package/dist/analyzer/codeFlowUtils.js.map +1 -1
- package/dist/analyzer/dataClasses.js +6 -4
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.js +11 -1
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/importResult.js +7 -0
- package/dist/analyzer/importResult.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +10 -1
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +1 -1
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/packageTypeReport.js +10 -1
- package/dist/analyzer/packageTypeReport.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.js +11 -2
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/program.d.ts +2 -1
- package/dist/analyzer/program.js +27 -23
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.js +3 -1
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/scope.js +22 -1
- package/dist/analyzer/scope.js.map +1 -1
- package/dist/analyzer/service.d.ts +20 -8
- package/dist/analyzer/service.js +39 -19
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.js +1 -1
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.d.ts +2 -0
- package/dist/analyzer/sourceFileInfoUtils.js +15 -0
- package/dist/analyzer/sourceFileInfoUtils.js.map +1 -0
- package/dist/analyzer/symbol.d.ts +3 -1
- package/dist/analyzer/symbol.js +39 -1
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +10 -2
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +86 -32
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +0 -1
- package/dist/analyzer/typeEvaluatorTypes.js +65 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +2 -0
- package/dist/analyzer/typeGuards.js +113 -69
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +23 -1
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.js +119 -28
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +2 -1
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +1 -0
- package/dist/analyzer/types.js +195 -1
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +1 -1
- package/dist/commands/commands.js +9 -0
- package/dist/commands/commands.js.map +1 -1
- package/dist/common/commandLineOptions.js +8 -1
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/core.js +7 -1
- package/dist/common/core.js.map +1 -1
- package/dist/common/diagnostic.js +9 -1
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/common/host.js +7 -1
- package/dist/common/host.js.map +1 -1
- package/dist/common/pathUtils.d.ts +1 -0
- package/dist/common/pathUtils.js +34 -1
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/stringUtils.d.ts +1 -0
- package/dist/common/stringUtils.js +8 -1
- package/dist/common/stringUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +10 -3
- package/dist/languageServerBase.js +40 -14
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.js +3 -0
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/autoImporter.js +2 -1
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +2 -2
- package/dist/languageService/completionProvider.js +3 -5
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/parser/parseNodes.d.ts +3 -0
- package/dist/parser/parseNodes.js +110 -2
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.d.ts +0 -1
- package/dist/parser/parser.js +26 -12
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/stringTokenUtils.js +8 -1
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizerTypes.js +155 -1
- package/dist/parser/tokenizerTypes.js.map +1 -1
- package/dist/pyright.js +6 -1
- package/dist/pyright.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +12 -9
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/checker.test.js +4 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/config.test.js +14 -13
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/debug.test.js +6 -0
- package/dist/tests/debug.test.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.js +53 -0
- package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.js.map +1 -0
- package/dist/tests/fourslash/fourslash.d.ts +16 -0
- package/dist/tests/fourslash/hover.class.docString.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/hover.class.docString.fourslash.js +24 -0
- package/dist/tests/fourslash/hover.class.docString.fourslash.js.map +1 -0
- package/dist/tests/harness/fourslash/fourSlashParser.js +6 -0
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashTypes.js +19 -1
- package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js +9 -1
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.Consts.d.ts +1 -0
- package/dist/tests/harness/fourslash/testState.Consts.js +1 -0
- package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +4 -3
- package/dist/tests/harness/fourslash/testState.js +27 -11
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/vfs/pathValidation.js +25 -1
- package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
- package/dist/tests/pathUtils.test.js +17 -0
- package/dist/tests/pathUtils.test.js.map +1 -1
- package/dist/tests/testUtils.js +1 -1
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +9 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +9 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +4 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/workspaceMap.d.ts +2 -1
- package/dist/workspaceMap.js +25 -3
- package/dist/workspaceMap.js.map +1 -1
- package/package.json +45 -44
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"typeDocStringUtils.js","sourceRoot":"","sources":["../../../src/analyzer/typeDocStringUtils.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"typeDocStringUtils.js","sourceRoot":"","sources":["../../../src/analyzer/typeDocStringUtils.ts"],"names":[],"mappings":"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"}
|
@@ -73,6 +73,38 @@ const TypePrinter = __importStar(require("./typePrinter"));
|
|
73
73
|
const types_1 = require("./types");
|
74
74
|
const typeUtils_1 = require("./typeUtils");
|
75
75
|
const typeVarContext_1 = require("./typeVarContext");
|
76
|
+
var MemberAccessFlags;
|
77
|
+
(function (MemberAccessFlags) {
|
78
|
+
MemberAccessFlags[MemberAccessFlags["None"] = 0] = "None";
|
79
|
+
// By default, member accesses are assumed to access the attributes
|
80
|
+
// of a class instance. By setting this flag, only attributes of
|
81
|
+
// the class are considered.
|
82
|
+
MemberAccessFlags[MemberAccessFlags["AccessClassMembersOnly"] = 1] = "AccessClassMembersOnly";
|
83
|
+
// By default, members of base classes are also searched.
|
84
|
+
// Set this flag to consider only the specified class' members.
|
85
|
+
MemberAccessFlags[MemberAccessFlags["SkipBaseClasses"] = 2] = "SkipBaseClasses";
|
86
|
+
// Do not include the "object" base class in the search.
|
87
|
+
MemberAccessFlags[MemberAccessFlags["SkipObjectBaseClass"] = 4] = "SkipObjectBaseClass";
|
88
|
+
// Consider writes to symbols flagged as ClassVars as an error.
|
89
|
+
MemberAccessFlags[MemberAccessFlags["DisallowClassVarWrites"] = 8] = "DisallowClassVarWrites";
|
90
|
+
// Normally __new__ is treated as a static method, but when
|
91
|
+
// it is invoked implicitly through a constructor call, it
|
92
|
+
// acts like a class method instead.
|
93
|
+
MemberAccessFlags[MemberAccessFlags["TreatConstructorAsClassMethod"] = 16] = "TreatConstructorAsClassMethod";
|
94
|
+
// By default, class member lookups start with the class itself
|
95
|
+
// and fall back on the metaclass if it's not found. This option
|
96
|
+
// skips the first check.
|
97
|
+
MemberAccessFlags[MemberAccessFlags["ConsiderMetaclassOnly"] = 32] = "ConsiderMetaclassOnly";
|
98
|
+
// If an attribute cannot be found when looking for instance
|
99
|
+
// members, normally an attribute access override method
|
100
|
+
// (__getattr__, etc.) may provide the missing attribute type.
|
101
|
+
// This disables this check.
|
102
|
+
MemberAccessFlags[MemberAccessFlags["SkipAttributeAccessOverride"] = 64] = "SkipAttributeAccessOverride";
|
103
|
+
// Do not include the class itself, only base classes.
|
104
|
+
MemberAccessFlags[MemberAccessFlags["SkipOriginalClass"] = 128] = "SkipOriginalClass";
|
105
|
+
// Do not include the "type" base class in the search.
|
106
|
+
MemberAccessFlags[MemberAccessFlags["SkipTypeBaseClass"] = 256] = "SkipTypeBaseClass";
|
107
|
+
})(MemberAccessFlags || (MemberAccessFlags = {}));
|
76
108
|
// Maps binary operators to the magic methods that implement them.
|
77
109
|
// The boolean indicates whether the operators "chain" together.
|
78
110
|
const binaryOperatorMap = {
|
@@ -2468,7 +2500,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
2468
2500
|
}
|
2469
2501
|
function setSymbolAccessed(fileInfo, symbol, node) {
|
2470
2502
|
if (!speculativeTypeTracker.isSpeculative(node)) {
|
2471
|
-
fileInfo.
|
2503
|
+
fileInfo.accessedSymbolSet.add(symbol.id);
|
2472
2504
|
}
|
2473
2505
|
}
|
2474
2506
|
function getReturnTypeFromGenerator(type) {
|
@@ -4773,7 +4805,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
4773
4805
|
}
|
4774
4806
|
const assertedType = (0, typeUtils_1.convertToInstance)(getTypeOfArgumentExpectingType(node.arguments[1]).type);
|
4775
4807
|
if (!(0, types_1.isTypeSame)(assertedType, arg0TypeResult.type)) {
|
4776
|
-
|
4808
|
+
addDiagnostic(AnalyzerNodeInfo.getFileInfo(node).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.assertTypeTypeMismatch().format({
|
4777
4809
|
expected: printType(assertedType),
|
4778
4810
|
received: printType(arg0TypeResult.type),
|
4779
4811
|
}), node.arguments[0].valueExpression);
|
@@ -5157,7 +5189,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
5157
5189
|
}
|
5158
5190
|
function validateOverloadedFunctionArguments(errorNode, argList, type, typeVarContext, skipUnknownArgCheck, expectedType) {
|
5159
5191
|
let filteredMatchResults = [];
|
5160
|
-
let contextFreeArgTypes
|
5192
|
+
let contextFreeArgTypes;
|
5161
5193
|
// Start by evaluating the types of the arguments without any expected
|
5162
5194
|
// type. Also, filter the list of overloads based on the number of
|
5163
5195
|
// positional and named arguments that are present. We do all of this
|
@@ -5177,21 +5209,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
5177
5209
|
overloadIndex++;
|
5178
5210
|
}
|
5179
5211
|
});
|
5180
|
-
// Also evaluate the types of each argument expression without regard to
|
5181
|
-
// the expectedType. We'll use this to determine whether we need to do
|
5182
|
-
// union expansion.
|
5183
|
-
contextFreeArgTypes = argList.map((arg) => {
|
5184
|
-
if (arg.type) {
|
5185
|
-
return arg.type;
|
5186
|
-
}
|
5187
|
-
if (arg.valueExpression) {
|
5188
|
-
const valueExpressionNode = arg.valueExpression;
|
5189
|
-
return useSpeculativeMode(valueExpressionNode, () => {
|
5190
|
-
return getTypeOfExpression(valueExpressionNode).type;
|
5191
|
-
});
|
5192
|
-
}
|
5193
|
-
return types_1.AnyType.create();
|
5194
|
-
});
|
5195
5212
|
});
|
5196
5213
|
filteredMatchResults = sortOverloadsByBestMatch(filteredMatchResults);
|
5197
5214
|
// If there are no possible arg/param matches among the overloads,
|
@@ -5239,6 +5256,25 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
5239
5256
|
}
|
5240
5257
|
// We didn't find an overload match. Try to expand the next union
|
5241
5258
|
// argument type into individual types and retry with the expanded types.
|
5259
|
+
if (!contextFreeArgTypes) {
|
5260
|
+
useSpeculativeMode(errorNode, () => {
|
5261
|
+
// Evaluate the types of each argument expression without regard to
|
5262
|
+
// the expectedType. We'll use this to determine whether we need to do
|
5263
|
+
// union expansion.
|
5264
|
+
contextFreeArgTypes = argList.map((arg) => {
|
5265
|
+
if (arg.type) {
|
5266
|
+
return arg.type;
|
5267
|
+
}
|
5268
|
+
if (arg.valueExpression) {
|
5269
|
+
const valueExpressionNode = arg.valueExpression;
|
5270
|
+
return useSpeculativeMode(valueExpressionNode, () => {
|
5271
|
+
return getTypeOfExpression(valueExpressionNode).type;
|
5272
|
+
});
|
5273
|
+
}
|
5274
|
+
return types_1.AnyType.create();
|
5275
|
+
});
|
5276
|
+
});
|
5277
|
+
}
|
5242
5278
|
expandedArgTypes = expandArgumentUnionTypes(contextFreeArgTypes, expandedArgTypes);
|
5243
5279
|
// Check for combinatoric explosion and break out of loop.
|
5244
5280
|
if (!expandedArgTypes || expandedArgTypes.length > maxOverloadUnionExpansionCount) {
|
@@ -13081,7 +13117,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
13081
13117
|
else if (node.parent &&
|
13082
13118
|
node.parent.nodeType === 35 /* MemberAccess */ &&
|
13083
13119
|
node === node.parent.memberName) {
|
13084
|
-
let baseType =
|
13120
|
+
let baseType = getTypeOfExpression(node.parent.leftExpression, 2 /* DoNotSpecialize */).type;
|
13085
13121
|
if (baseType) {
|
13086
13122
|
baseType = makeTopLevelTypeVarsConcrete(baseType);
|
13087
13123
|
const memberName = node.parent.memberName.value;
|
@@ -14322,14 +14358,17 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
14322
14358
|
const assignmentDiag = new diagnostic_1.DiagnosticAddendum();
|
14323
14359
|
if (!destTypeParam || destTypeParam.details.variance === 1 /* Covariant */) {
|
14324
14360
|
if (!assignType(destTypeArg, srcTypeArg, assignmentDiag, destTypeVarContext, srcTypeVarContext, flags | 128 /* RetainLiteralsForTypeVar */, recursionCount)) {
|
14325
|
-
if (
|
14326
|
-
if (
|
14361
|
+
if (diag) {
|
14362
|
+
if (destTypeParam) {
|
14327
14363
|
const childDiag = diag.createAddendum();
|
14328
14364
|
childDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.typeVarIsCovariant().format({
|
14329
14365
|
name: types_1.TypeVarType.getReadableName(destTypeParam),
|
14330
14366
|
}));
|
14331
14367
|
childDiag.addAddendum(assignmentDiag);
|
14332
14368
|
}
|
14369
|
+
else {
|
14370
|
+
diag.addAddendum(assignmentDiag);
|
14371
|
+
}
|
14333
14372
|
}
|
14334
14373
|
return false;
|
14335
14374
|
}
|
@@ -14992,10 +15031,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
14992
15031
|
if (isSubtypeSubsumed || subtypeIndex === innerSubtypeIndex || (0, types_1.isAnyOrUnknown)(innerSubtype)) {
|
14993
15032
|
return;
|
14994
15033
|
}
|
14995
|
-
if (
|
14996
|
-
/* diag */ undefined,
|
14997
|
-
/* destTypeVarContext */ undefined,
|
14998
|
-
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount)) {
|
15034
|
+
if (isProperSubtype(innerSubtype, concreteSubtype, recursionCount)) {
|
14999
15035
|
isSubtypeSubsumed = true;
|
15000
15036
|
}
|
15001
15037
|
});
|
@@ -15015,6 +15051,20 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
15015
15051
|
}
|
15016
15052
|
return true;
|
15017
15053
|
}
|
15054
|
+
// Determines whether the srcType is a subtype of destType but the converse
|
15055
|
+
// is not true. It's important that we check both directions to avoid
|
15056
|
+
// matches for types like `tuple[Any]` and `tuple[int]` from being considered
|
15057
|
+
// proper subtypes of each other.
|
15058
|
+
function isProperSubtype(destType, srcType, recursionCount) {
|
15059
|
+
return (assignType(destType, srcType,
|
15060
|
+
/* diag */ undefined,
|
15061
|
+
/* destTypeVarContext */ undefined,
|
15062
|
+
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount) &&
|
15063
|
+
!assignType(srcType, destType,
|
15064
|
+
/* diag */ undefined,
|
15065
|
+
/* destTypeVarContext */ undefined,
|
15066
|
+
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount));
|
15067
|
+
}
|
15018
15068
|
function assignToUnionType(destType, srcType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount) {
|
15019
15069
|
// If we need to enforce invariance, the source needs to be compatible
|
15020
15070
|
// with all subtypes in the dest, unless those subtypes are subclasses
|
@@ -16281,7 +16331,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
16281
16331
|
}
|
16282
16332
|
function getAbstractMethods(classType) {
|
16283
16333
|
const symbolTable = new Map();
|
16284
|
-
|
16334
|
+
types_1.ClassType.getReverseMro(classType).forEach((mroClass) => {
|
16285
16335
|
if ((0, types_1.isInstantiableClass)(mroClass)) {
|
16286
16336
|
// See if this class is introducing a new abstract method that has not been
|
16287
16337
|
// introduced previously or if it is overriding an abstract method with
|
@@ -16290,7 +16340,11 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
16290
16340
|
// We do a quick-and-dirty evaluation of methods based on
|
16291
16341
|
// decorators to determine which ones are abstract. This allows
|
16292
16342
|
// us to avoid evaluating the full function types.
|
16293
|
-
|
16343
|
+
// Handle named tuple fields as though they are class members here.
|
16344
|
+
// We model them as instance variables, but they're actually implemented
|
16345
|
+
// using class variable descriptors, and these overwrite a class variable
|
16346
|
+
// abstract method.
|
16347
|
+
if (symbol.isClassMember() || symbol.isNamedTupleMemberMember()) {
|
16294
16348
|
let isAbstract;
|
16295
16349
|
const decl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(symbol);
|
16296
16350
|
if (decl && decl.type === 3 /* Function */) {
|
@@ -16304,14 +16358,16 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
16304
16358
|
// "overrides" it with an instance variable.
|
16305
16359
|
isAbstract = false;
|
16306
16360
|
}
|
16307
|
-
if (
|
16361
|
+
if (isAbstract) {
|
16308
16362
|
symbolTable.set(symbolName, {
|
16309
16363
|
symbol,
|
16310
16364
|
symbolName,
|
16311
|
-
isAbstract,
|
16312
16365
|
classType: mroClass,
|
16313
16366
|
});
|
16314
16367
|
}
|
16368
|
+
else {
|
16369
|
+
symbolTable.delete(symbolName);
|
16370
|
+
}
|
16315
16371
|
}
|
16316
16372
|
});
|
16317
16373
|
}
|
@@ -16319,9 +16375,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
16319
16375
|
// Create a final list of methods that are abstract.
|
16320
16376
|
const methodList = [];
|
16321
16377
|
symbolTable.forEach((method) => {
|
16322
|
-
|
16323
|
-
methodList.push(method);
|
16324
|
-
}
|
16378
|
+
methodList.push(method);
|
16325
16379
|
});
|
16326
16380
|
return methodList;
|
16327
16381
|
}
|