@zzzen/pyright-internal 1.2.0-dev.20240324 → 1.2.0-dev.20240407
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/dist/analyzer/analyzerFileInfo.d.ts +0 -1
- package/dist/analyzer/analyzerFileInfo.js.map +1 -1
- package/dist/analyzer/binder.js +15 -8
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/cacheManager.d.ts +12 -0
- package/dist/analyzer/cacheManager.js +63 -3
- package/dist/analyzer/cacheManager.js.map +1 -1
- package/dist/analyzer/checker.d.ts +2 -3
- package/dist/analyzer/checker.js +18 -13
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +14 -2
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.d.ts +1 -0
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +20 -3
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructorTransform.js +2 -2
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.d.ts +3 -2
- package/dist/analyzer/constructors.js +76 -54
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +7 -6
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.js +1 -1
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/enums.js +8 -3
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/functionTransform.js +1 -1
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/importResolver.js +19 -17
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.d.ts +6 -6
- package/dist/analyzer/importStatementUtils.js +42 -42
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +3 -1
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +7 -7
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +6 -5
- package/dist/analyzer/parseTreeUtils.js +12 -13
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +15 -4
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +5 -10
- package/dist/analyzer/program.js +35 -30
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/programTypes.d.ts +11 -0
- package/dist/analyzer/programTypes.js +11 -0
- package/dist/analyzer/programTypes.js.map +1 -0
- package/dist/analyzer/properties.js +10 -10
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +5 -5
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +3 -2
- package/dist/analyzer/service.js +24 -15
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +5 -3
- package/dist/analyzer/sourceFile.js +112 -75
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.js +4 -4
- package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
- package/dist/analyzer/sourceMapper.js +6 -6
- package/dist/analyzer/symbol.d.ts +4 -1
- package/dist/analyzer/symbol.js +10 -0
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/symbolUtils.d.ts +1 -0
- package/dist/analyzer/symbolUtils.js +11 -1
- package/dist/analyzer/symbolUtils.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +2 -2
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +1 -1
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +159 -73
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeGuards.js +16 -9
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +1 -1
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +2 -2
- package/dist/analyzer/typeUtils.js +33 -20
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +32 -20
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +5 -1
- package/dist/analyzer/types.js +20 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysis.d.ts +1 -0
- package/dist/backgroundAnalysis.js +6 -2
- package/dist/backgroundAnalysis.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +2 -1
- package/dist/backgroundAnalysisBase.js +6 -1
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +1 -0
- package/dist/backgroundThreadBase.js +19 -10
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/commandController.d.ts +2 -1
- package/dist/commands/commandController.js +3 -0
- package/dist/commands/commandController.js.map +1 -1
- package/dist/commands/createTypeStub.d.ts +1 -1
- package/dist/commands/createTypeStub.js +3 -3
- package/dist/commands/createTypeStub.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.d.ts +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +5 -5
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/commands/quickActionCommand.d.ts +1 -1
- package/dist/commands/quickActionCommand.js +2 -2
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/commands/restartServer.d.ts +1 -1
- package/dist/common/cancellationUtils.js +2 -2
- package/dist/common/cancellationUtils.js.map +1 -1
- package/dist/common/caseSensitivityDetector.d.ts +6 -0
- package/dist/common/caseSensitivityDetector.js +18 -0
- package/dist/common/caseSensitivityDetector.js.map +1 -0
- package/dist/common/commandLineOptions.d.ts +3 -2
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/commandUtils.js +1 -1
- package/dist/common/commandUtils.js.map +1 -1
- package/dist/common/configOptions.js +3 -3
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/envVarUtils.d.ts +1 -0
- package/dist/common/envVarUtils.js +42 -7
- package/dist/common/envVarUtils.js.map +1 -1
- package/dist/common/extensibility.d.ts +4 -3
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileBasedCancellationUtils.js +2 -2
- package/dist/common/fileBasedCancellationUtils.js.map +1 -1
- package/dist/common/fileSystem.d.ts +0 -1
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/fullAccessHost.js +4 -3
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/languageServerInterface.d.ts +62 -0
- package/dist/common/languageServerInterface.js +10 -0
- package/dist/common/languageServerInterface.js.map +1 -0
- package/dist/common/realFileSystem.d.ts +8 -4
- package/dist/common/realFileSystem.js +56 -17
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceKeys.d.ts +21 -0
- package/dist/common/serviceKeys.js +26 -0
- package/dist/common/serviceKeys.js.map +1 -0
- package/dist/common/serviceProviderExtensions.d.ts +3 -15
- package/dist/common/serviceProviderExtensions.js +23 -27
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/common/textEditTracker.d.ts +5 -5
- package/dist/common/textEditTracker.js +35 -35
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/uri/constantUri.d.ts +36 -0
- package/dist/common/uri/constantUri.js +112 -0
- package/dist/common/uri/constantUri.js.map +1 -0
- package/dist/common/uri/emptyUri.d.ts +3 -31
- package/dist/common/uri/emptyUri.js +3 -84
- package/dist/common/uri/emptyUri.js.map +1 -1
- package/dist/common/uri/fileUri.d.ts +1 -0
- package/dist/common/uri/fileUri.js +3 -2
- package/dist/common/uri/fileUri.js.map +1 -1
- package/dist/common/uri/uri.d.ts +11 -3
- package/dist/common/uri/uri.js +31 -20
- package/dist/common/uri/uri.js.map +1 -1
- package/dist/common/uri/uriUtils.d.ts +11 -5
- package/dist/common/uri/uriUtils.js +31 -53
- package/dist/common/uri/uriUtils.js.map +1 -1
- package/dist/common/workspaceEditUtils.js +4 -4
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +11 -59
- package/dist/languageServerBase.js +18 -8
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.d.ts +1 -1
- package/dist/languageService/analyzerServiceExecutor.js +4 -5
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +3 -3
- package/dist/languageService/autoImporter.js +2 -1
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +6 -6
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/codeActionProvider.js +43 -42
- package/dist/languageService/codeActionProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +2 -2
- package/dist/languageService/completionProvider.js +10 -11
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.js +3 -3
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js +2 -2
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +3 -3
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.d.ts +3 -2
- package/dist/languageService/documentSymbolProvider.js +4 -3
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.js +2 -2
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.d.ts +2 -2
- package/dist/languageService/importSorter.js +1 -1
- package/dist/languageService/importSorter.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +4 -4
- package/dist/languageService/referencesProvider.js +4 -4
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +4 -4
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.d.ts +5 -2
- package/dist/languageService/symbolIndexer.js +21 -11
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.js +2 -2
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +3 -0
- package/dist/localization/localize.js +22 -16
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +1 -0
- package/dist/localization/package.nls.de.json +1 -0
- package/dist/localization/package.nls.en-us.json +1 -0
- package/dist/localization/package.nls.es.json +1 -0
- package/dist/localization/package.nls.fr.json +1 -0
- package/dist/localization/package.nls.it.json +1 -0
- package/dist/localization/package.nls.ja.json +1 -0
- package/dist/localization/package.nls.ko.json +1 -0
- package/dist/localization/package.nls.pl.json +1 -0
- package/dist/localization/package.nls.pt-br.json +1 -0
- package/dist/localization/package.nls.qps-ploc.json +1 -0
- package/dist/localization/package.nls.ru.json +1 -0
- package/dist/localization/package.nls.tr.json +1 -0
- package/dist/localization/package.nls.zh-cn.json +1 -0
- package/dist/localization/package.nls.zh-tw.json +1 -0
- package/dist/nodeMain.d.ts +1 -1
- package/dist/nodeMain.js +2 -2
- package/dist/nodeMain.js.map +1 -1
- package/dist/parser/parser.d.ts +7 -4
- package/dist/parser/parser.js +7 -5
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyright.js +6 -6
- package/dist/pyright.js.map +1 -1
- package/dist/pyrightFileSystem.d.ts +3 -1
- package/dist/pyrightFileSystem.js +14 -9
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +0 -1
- package/dist/readonlyAugmentedFileSystem.js +0 -3
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.d.ts +4 -2
- package/dist/server.js +15 -11
- package/dist/server.js.map +1 -1
- package/dist/tests/cacheManager.test.js +35 -0
- package/dist/tests/cacheManager.test.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +18 -18
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/completions.test.js +4 -4
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/config.test.js +19 -14
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/documentSymbolCollector.test.js +2 -3
- package/dist/tests/documentSymbolCollector.test.js.map +1 -1
- package/dist/tests/envVarUtils.test.js +77 -2
- package/dist/tests/envVarUtils.test.js.map +1 -1
- package/dist/tests/filesystem.test.js +13 -13
- package/dist/tests/filesystem.test.js.map +1 -1
- package/dist/tests/fourSlashParser.test.js +10 -10
- package/dist/tests/fourSlashParser.test.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js +12 -10
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashTypes.d.ts +1 -0
- package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.d.ts +3 -2
- package/dist/tests/harness/fourslash/testLanguageService.js +2 -2
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +6 -6
- package/dist/tests/harness/fourslash/testState.js +42 -37
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js +1 -1
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -1
- package/dist/tests/harness/testHost.d.ts +7 -0
- package/dist/tests/harness/testHost.js +33 -14
- package/dist/tests/harness/testHost.js.map +1 -1
- package/dist/tests/harness/vfs/factory.d.ts +3 -4
- package/dist/tests/harness/vfs/factory.js +7 -6
- package/dist/tests/harness/vfs/factory.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +5 -3
- package/dist/tests/harness/vfs/filesystem.js +22 -15
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/importResolver.test.js +35 -34
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +9 -10
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/ipythonMode.test.js +1 -1
- package/dist/tests/ipythonMode.test.js.map +1 -1
- package/dist/tests/logger.test.js +1 -1
- package/dist/tests/logger.test.js.map +1 -1
- package/dist/tests/lsp/languageServer.js +6 -5
- package/dist/tests/lsp/languageServer.js.map +1 -1
- package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -1
- package/dist/tests/lsp/languageServerTestUtils.js +15 -10
- package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +1 -2
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/parser.test.js +14 -14
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/pyrightFileSystem.test.js +6 -5
- package/dist/tests/pyrightFileSystem.test.js.map +1 -1
- package/dist/tests/serialization.test.js +5 -5
- package/dist/tests/serialization.test.js.map +1 -1
- package/dist/tests/service.test.js +16 -25
- package/dist/tests/service.test.js.map +1 -1
- package/dist/tests/signatureHelp.test.js +1 -1
- package/dist/tests/signatureHelp.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js +8 -5
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js +4 -4
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/testState.test.js +5 -5
- package/dist/tests/testState.test.js.map +1 -1
- package/dist/tests/testStateUtils.js +8 -6
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/testUtils.d.ts +4 -8
- package/dist/tests/testUtils.js +9 -10
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/textEditUtil.test.js +3 -3
- package/dist/tests/textEditUtil.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +1 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +11 -5
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/dist/tests/uri.test.js +220 -199
- package/dist/tests/uri.test.js.map +1 -1
- package/dist/tests/workspaceEditUtils.test.js +7 -7
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/dist/tests/zipfs.test.js +7 -5
- package/dist/tests/zipfs.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +15 -6
- package/dist/workspaceFactory.js +16 -10
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +5 -5
@@ -878,12 +878,23 @@ function isLiteralType(type) {
|
|
878
878
|
return types_1.TypeBase.isInstance(type) && type.literalValue !== undefined;
|
879
879
|
}
|
880
880
|
exports.isLiteralType = isLiteralType;
|
881
|
-
function isLiteralTypeOrUnion(type) {
|
881
|
+
function isLiteralTypeOrUnion(type, allowNone = false) {
|
882
882
|
if ((0, types_1.isClassInstance)(type)) {
|
883
|
+
if (allowNone && isNoneInstance(type)) {
|
884
|
+
return true;
|
885
|
+
}
|
883
886
|
return type.literalValue !== undefined;
|
884
887
|
}
|
885
888
|
if ((0, types_1.isUnion)(type)) {
|
886
|
-
return !(0, types_1.findSubtype)(type, (subtype) =>
|
889
|
+
return !(0, types_1.findSubtype)(type, (subtype) => {
|
890
|
+
if (!(0, types_1.isClassInstance)(subtype)) {
|
891
|
+
return true;
|
892
|
+
}
|
893
|
+
if (isNoneInstance(subtype)) {
|
894
|
+
return !allowNone;
|
895
|
+
}
|
896
|
+
return subtype.literalValue === undefined;
|
897
|
+
});
|
887
898
|
}
|
888
899
|
return false;
|
889
900
|
}
|
@@ -989,10 +1000,10 @@ function isMaybeDescriptorInstance(type, requireSetter = false) {
|
|
989
1000
|
if (!(0, types_1.isClassInstance)(type)) {
|
990
1001
|
return false;
|
991
1002
|
}
|
992
|
-
if (!
|
1003
|
+
if (!types_1.ClassType.getSymbolTable(type).has('__get__')) {
|
993
1004
|
return false;
|
994
1005
|
}
|
995
|
-
if (requireSetter && !
|
1006
|
+
if (requireSetter && !types_1.ClassType.getSymbolTable(type).has('__set__')) {
|
996
1007
|
return false;
|
997
1008
|
}
|
998
1009
|
return true;
|
@@ -1216,14 +1227,14 @@ function getProtocolSymbolsRecursive(classType, symbolMap, classFlags = 16384 /*
|
|
1216
1227
|
getProtocolSymbolsRecursive(baseClass, symbolMap, classFlags, recursionCount + 1);
|
1217
1228
|
}
|
1218
1229
|
});
|
1219
|
-
|
1230
|
+
types_1.ClassType.getSymbolTable(classType).forEach((symbol, name) => {
|
1220
1231
|
if (!symbol.isIgnoredForProtocolMatch()) {
|
1221
1232
|
symbolMap.set(name, {
|
1222
1233
|
symbol,
|
1223
1234
|
classType,
|
1224
1235
|
isInstanceMember: symbol.isInstanceMember(),
|
1225
1236
|
isClassMember: symbol.isClassMember(),
|
1226
|
-
isClassVar:
|
1237
|
+
isClassVar: (0, symbolUtils_1.isEffectivelyClassVar)(symbol, /* isDataclass */ false),
|
1227
1238
|
isTypeDeclared: symbol.hasTypedDeclarations(),
|
1228
1239
|
skippedUndeclaredType: false,
|
1229
1240
|
});
|
@@ -1282,7 +1293,9 @@ function lookUpClassMember(classType, memberName, flags = 0 /* MemberAccessFlags
|
|
1282
1293
|
if (metaclass && (0, types_1.isClass)(metaclass) && !types_1.ClassType.isBuiltIn(metaclass, 'type')) {
|
1283
1294
|
const metaMemberItr = getClassMemberIterator(metaclass, memberName, 32 /* MemberAccessFlags.SkipClassMembers */);
|
1284
1295
|
const metaMember = (_a = metaMemberItr.next()) === null || _a === void 0 ? void 0 : _a.value;
|
1285
|
-
|
1296
|
+
// If the metaclass defines the member and we didn't hit an Unknown
|
1297
|
+
// class in the metaclass MRO, use the metaclass member.
|
1298
|
+
if (metaMember && !(0, types_1.isAnyOrUnknown)(metaMember.classType)) {
|
1286
1299
|
// Set the isClassMember to true because it's a class member from the
|
1287
1300
|
// perspective of the classType.
|
1288
1301
|
metaMember.isClassMember = true;
|
@@ -1344,7 +1357,7 @@ function* getClassMemberIterator(classType, memberName, flags = 0 /* MemberAcces
|
|
1344
1357
|
if (!(0, types_1.isInstantiableClass)(specializedMroClass)) {
|
1345
1358
|
continue;
|
1346
1359
|
}
|
1347
|
-
const memberFields =
|
1360
|
+
const memberFields = types_1.ClassType.getSymbolTable(specializedMroClass);
|
1348
1361
|
// Look at instance members first if requested.
|
1349
1362
|
if ((flags & 16 /* MemberAccessFlags.SkipInstanceMembers */) === 0) {
|
1350
1363
|
const symbol = memberFields.get(memberName);
|
@@ -1355,7 +1368,7 @@ function* getClassMemberIterator(classType, memberName, flags = 0 /* MemberAcces
|
|
1355
1368
|
symbol,
|
1356
1369
|
isInstanceMember: true,
|
1357
1370
|
isClassMember: symbol.isClassMember(),
|
1358
|
-
isClassVar: symbol.
|
1371
|
+
isClassVar: (0, symbolUtils_1.isEffectivelyClassVar)(symbol, types_1.ClassType.isDataClass(specializedMroClass)),
|
1359
1372
|
classType: specializedMroClass,
|
1360
1373
|
isTypeDeclared: hasDeclaredType,
|
1361
1374
|
skippedUndeclaredType,
|
@@ -1393,7 +1406,7 @@ function* getClassMemberIterator(classType, memberName, flags = 0 /* MemberAcces
|
|
1393
1406
|
symbol,
|
1394
1407
|
isInstanceMember,
|
1395
1408
|
isClassMember,
|
1396
|
-
isClassVar:
|
1409
|
+
isClassVar: (0, symbolUtils_1.isEffectivelyClassVar)(symbol, isDataclass),
|
1397
1410
|
classType: specializedMroClass,
|
1398
1411
|
isTypeDeclared: hasDeclaredType,
|
1399
1412
|
skippedUndeclaredType,
|
@@ -1475,14 +1488,14 @@ function getClassFieldsRecursive(classType) {
|
|
1475
1488
|
types_1.ClassType.getReverseMro(classType).forEach((mroClass) => {
|
1476
1489
|
const specializedMroClass = partiallySpecializeType(mroClass, classType);
|
1477
1490
|
if ((0, types_1.isClass)(specializedMroClass)) {
|
1478
|
-
|
1491
|
+
types_1.ClassType.getSymbolTable(specializedMroClass).forEach((symbol, name) => {
|
1479
1492
|
if (!symbol.isIgnoredForProtocolMatch() && symbol.hasTypedDeclarations()) {
|
1480
1493
|
memberMap.set(name, {
|
1481
1494
|
classType: specializedMroClass,
|
1482
1495
|
symbol,
|
1483
1496
|
isInstanceMember: symbol.isInstanceMember(),
|
1484
1497
|
isClassMember: symbol.isClassMember(),
|
1485
|
-
isClassVar: symbol.
|
1498
|
+
isClassVar: (0, symbolUtils_1.isEffectivelyClassVar)(symbol, types_1.ClassType.isDataClass(specializedMroClass)),
|
1486
1499
|
isTypeDeclared: true,
|
1487
1500
|
skippedUndeclaredType: false,
|
1488
1501
|
});
|
@@ -1500,8 +1513,11 @@ function getClassFieldsRecursive(classType) {
|
|
1500
1513
|
exports.getClassFieldsRecursive = getClassFieldsRecursive;
|
1501
1514
|
// Combines two lists of type var types, maintaining the combined order
|
1502
1515
|
// but removing any duplicates.
|
1503
|
-
function addTypeVarsToListIfUnique(list1, list2) {
|
1516
|
+
function addTypeVarsToListIfUnique(list1, list2, typeVarScopeId) {
|
1504
1517
|
for (const type2 of list2) {
|
1518
|
+
if (typeVarScopeId && type2.scopeId !== typeVarScopeId) {
|
1519
|
+
continue;
|
1520
|
+
}
|
1505
1521
|
if (!list1.find((type1) => (0, types_1.isTypeSame)(convertToInstance(type1), convertToInstance(type2)))) {
|
1506
1522
|
list1.push(type2);
|
1507
1523
|
}
|
@@ -2006,7 +2022,7 @@ function getMembersForClass(classType, symbolTable, includeInstanceVars) {
|
|
2006
2022
|
if ((0, types_1.isInstantiableClass)(mroClass)) {
|
2007
2023
|
// Add any new member variables from this class.
|
2008
2024
|
const isClassTypedDict = types_1.ClassType.isTypedDictClass(mroClass);
|
2009
|
-
|
2025
|
+
types_1.ClassType.getSymbolTable(mroClass).forEach((symbol, name) => {
|
2010
2026
|
if (symbol.isClassMember() || (includeInstanceVars && symbol.isInstanceMember())) {
|
2011
2027
|
if (!isClassTypedDict || !(0, symbolUtils_1.isTypedDictMemberAccessedThroughIndex)(symbol)) {
|
2012
2028
|
if (!symbol.isInitVar()) {
|
@@ -2031,7 +2047,7 @@ function getMembersForClass(classType, symbolTable, includeInstanceVars) {
|
|
2031
2047
|
if (metaclass && (0, types_1.isInstantiableClass)(metaclass)) {
|
2032
2048
|
for (const mroClass of metaclass.details.mro) {
|
2033
2049
|
if ((0, types_1.isInstantiableClass)(mroClass)) {
|
2034
|
-
|
2050
|
+
types_1.ClassType.getSymbolTable(mroClass).forEach((symbol, name) => {
|
2035
2051
|
const existingSymbol = symbolTable.get(name);
|
2036
2052
|
if (!existingSymbol) {
|
2037
2053
|
symbolTable.set(name, symbol);
|
@@ -3362,11 +3378,8 @@ class ApplySolvedTypeVarsTransformer extends TypeVarTransformer {
|
|
3362
3378
|
});
|
3363
3379
|
}
|
3364
3380
|
}
|
3365
|
-
if ((0, types_1.isTypeVar)(replacement) &&
|
3366
|
-
typeVar.isVariadicInUnion
|
3367
|
-
replacement.details.isVariadic &&
|
3368
|
-
!replacement.isVariadicInUnion) {
|
3369
|
-
return types_1.TypeVarType.cloneForUnpacked(replacement, /* isInUnion */ true);
|
3381
|
+
if ((0, types_1.isTypeVar)(replacement) && typeVar.isVariadicUnpacked && replacement.details.isVariadic) {
|
3382
|
+
return types_1.TypeVarType.cloneForUnpacked(replacement, typeVar.isVariadicInUnion);
|
3370
3383
|
}
|
3371
3384
|
return replacement;
|
3372
3385
|
}
|