@zzzen/pyright-internal 1.2.0-dev.20240128 → 1.2.0-dev.20240225
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/analysis.js +4 -1
- package/dist/analyzer/analysis.js.map +1 -1
- package/dist/analyzer/analyzerFileInfo.js.map +1 -1
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +1 -0
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/cacheManager.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -2
- package/dist/analyzer/checker.js +251 -121
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/circularDependency.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +29 -3
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/codeFlowUtils.js.map +1 -1
- package/dist/analyzer/commentUtils.js.map +1 -1
- package/dist/analyzer/constraintSolver.d.ts +2 -2
- package/dist/analyzer/constraintSolver.js +28 -6
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +6 -6
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/decorators.js +6 -6
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/deprecatedSymbols.js.map +1 -1
- package/dist/analyzer/docStringConversion.js.map +1 -1
- package/dist/analyzer/docStringUtils.js.map +1 -1
- package/dist/analyzer/enums.d.ts +4 -1
- package/dist/analyzer/enums.js +30 -16
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/importResolver.js +12 -4
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importResult.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +2 -0
- 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/operations.js +6 -0
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeReport.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +1 -0
- package/dist/analyzer/parameterUtils.js +16 -2
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/parentDirectoryCache.js.map +1 -1
- package/dist/analyzer/parseTreeCleaner.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -0
- package/dist/analyzer/parseTreeUtils.js +4 -3
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.js +90 -61
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -1
- package/dist/analyzer/program.js +2 -2
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +2 -2
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pyTypedUtils.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.js.map +1 -1
- package/dist/analyzer/scope.js.map +1 -1
- package/dist/analyzer/scopeUtils.js.map +1 -1
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.js +4 -4
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfo.js +1 -1
- package/dist/analyzer/sourceFileInfo.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/sourceMapperUtils.js.map +1 -1
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/symbolNameUtils.js.map +1 -1
- package/dist/analyzer/symbolUtils.js.map +1 -1
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +433 -334
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeEvaluatorWithTracker.js.map +1 -1
- package/dist/analyzer/typeGuards.js +10 -5
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +1 -1
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +0 -1
- package/dist/analyzer/typeUtils.js +22 -8
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +2 -2
- package/dist/analyzer/typeVarContext.js +10 -4
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +6 -3
- package/dist/analyzer/typedDicts.js +292 -65
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +38 -26
- package/dist/analyzer/types.js +99 -72
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysis.js.map +1 -1
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/commandController.js.map +1 -1
- package/dist/commands/commandResult.js.map +1 -1
- package/dist/commands/commands.js.map +1 -1
- package/dist/commands/createTypeStub.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +18 -18
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/commands/restartServer.js.map +1 -1
- package/dist/common/cancellationUtils.d.ts +6 -1
- package/dist/common/cancellationUtils.js +18 -4
- package/dist/common/cancellationUtils.js.map +1 -1
- package/dist/common/charCodes.js.map +1 -1
- package/dist/common/chokidarFileWatcherProvider.js.map +1 -1
- package/dist/common/collectionUtils.js.map +1 -1
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/commandUtils.js.map +1 -1
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/console.js.map +1 -1
- package/dist/common/core.js.map +1 -1
- package/dist/common/crypto.js.map +1 -1
- package/dist/common/debug.js.map +1 -1
- package/dist/common/deferred.js.map +1 -1
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/common/diagnosticRules.js.map +1 -1
- package/dist/common/diagnosticSink.js.map +1 -1
- package/dist/common/editAction.js.map +1 -1
- package/dist/common/envVarUtils.d.ts +2 -1
- package/dist/common/envVarUtils.js +5 -1
- package/dist/common/envVarUtils.js.map +1 -1
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/extensions.js.map +1 -1
- package/dist/common/fileBasedCancellationUtils.js.map +1 -1
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/fileWatcher.js.map +1 -1
- package/dist/common/fullAccessHost.js +1 -1
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/host.js.map +1 -1
- package/dist/common/logTracker.js.map +1 -1
- package/dist/common/lspUtils.js.map +1 -1
- package/dist/common/memUtils.js.map +1 -1
- package/dist/common/pathConsts.js.map +1 -1
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/positionUtils.js.map +1 -1
- package/dist/common/progressReporter.js.map +1 -1
- package/dist/common/pythonVersion.js.map +1 -1
- package/dist/common/realFileSystem.js +1 -1
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProvider.js.map +1 -1
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/common/stringUtils.js.map +1 -1
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/textRange.js.map +1 -1
- package/dist/common/textRangeCollection.js.map +1 -1
- package/dist/common/timing.js.map +1 -1
- package/dist/common/uri/baseUri.d.ts +2 -0
- package/dist/common/uri/baseUri.js +7 -7
- package/dist/common/uri/baseUri.js.map +1 -1
- package/dist/common/uri/emptyUri.d.ts +2 -0
- package/dist/common/uri/emptyUri.js +6 -0
- package/dist/common/uri/emptyUri.js.map +1 -1
- package/dist/common/uri/fileUri.d.ts +6 -4
- package/dist/common/uri/fileUri.js +18 -9
- package/dist/common/uri/fileUri.js.map +1 -1
- package/dist/common/uri/memoization.js.map +1 -1
- package/dist/common/uri/uri.d.ts +8 -0
- package/dist/common/uri/uri.js +16 -7
- package/dist/common/uri/uri.js.map +1 -1
- package/dist/common/uri/uriUtils.js.map +1 -1
- package/dist/common/uri/webUri.d.ts +3 -1
- package/dist/common/uri/webUri.js +21 -8
- package/dist/common/uri/webUri.js.map +1 -1
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +1 -0
- package/dist/languageService/autoImporter.js +3 -1
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/codeActionProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +11 -3
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.js +1 -1
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.js.map +1 -1
- package/dist/languageService/navigationUtils.js.map +1 -1
- package/dist/languageService/quickActions.js.map +1 -1
- package/dist/languageService/referencesProvider.js +11 -1
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +45 -3
- package/dist/localization/localize.js +16 -3
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +15 -9
- package/dist/localization/package.nls.de.json +17 -11
- package/dist/localization/package.nls.en-us.json +25 -12
- package/dist/localization/package.nls.es.json +16 -10
- package/dist/localization/package.nls.fr.json +16 -10
- package/dist/localization/package.nls.it.json +16 -10
- package/dist/localization/package.nls.ja.json +17 -11
- package/dist/localization/package.nls.ko.json +14 -8
- package/dist/localization/package.nls.pl.json +14 -8
- package/dist/localization/package.nls.pt-br.json +17 -11
- package/dist/localization/package.nls.qps-ploc.json +12 -6
- package/dist/localization/package.nls.ru.json +17 -11
- package/dist/localization/package.nls.tr.json +16 -10
- package/dist/localization/package.nls.zh-cn.json +17 -11
- package/dist/localization/package.nls.zh-tw.json +17 -11
- package/dist/nodeMain.js.map +1 -1
- package/dist/nodeServer.js.map +1 -1
- package/dist/parser/characterStream.js.map +1 -1
- package/dist/parser/characters.js.map +1 -1
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/parser/tokenizerTypes.js.map +1 -1
- package/dist/parser/unicode.js.map +1 -1
- package/dist/pprof/profiler.js.map +1 -1
- package/dist/pyright.js.map +1 -1
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.d.ts +2 -1
- package/dist/server.js +9 -7
- package/dist/server.js.map +1 -1
- package/dist/tests/cacheManager.test.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/checker.test.js +0 -4
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/classDeclaration.test.js.map +1 -1
- package/dist/tests/collectionUtils.test.js.map +1 -1
- package/dist/tests/common.test.js.map +1 -1
- package/dist/tests/completions.test.js +23 -0
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/config.test.js +1 -2
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/debug.test.js.map +1 -1
- package/dist/tests/deferred.test.js.map +1 -1
- package/dist/tests/diagnosticOverrides.test.js.map +1 -1
- package/dist/tests/diagnostics.test.js.map +1 -1
- package/dist/tests/docStringConversion.test.js.map +1 -1
- package/dist/tests/docStringUtils.test.js.map +1 -1
- package/dist/tests/documentSymbolCollector.test.js.map +1 -1
- package/dist/tests/envVarUtils.test.d.ts +1 -0
- package/dist/tests/envVarUtils.test.js +130 -0
- package/dist/tests/envVarUtils.test.js.map +1 -0
- package/dist/tests/filesystem.test.js.map +1 -1
- package/dist/tests/fourSlashParser.test.js.map +1 -1
- package/dist/tests/fourSlashRunner.test.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.Lib.Found.Type.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.Lib.Found.duplication.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.Lib.NotFound.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.disabled.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.duplicates.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.fromImport.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.plainText.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.submodule.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.topLevel.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.builtinOverride.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.call.stringLiteral.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.call.typedDict.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.classVariable.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.comment.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.declNames.class.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.declNames.exception.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.declNames.for.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.declNames.importAlias.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.declNames.lambda.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.declNames.method.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.declNames.overload.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.declNames.topLevelOverload.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.dictionary.keys.complex.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.dictionary.keys.simple.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.dictionary.keys.symbols.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.dunderNew.Inheritance.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.dunderNew.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.enums.members.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.errorNodes.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.excluded.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.fstring.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.fuzzyMatching.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.importDunderNames.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.importInterimFile.fourslash.disabled.js.map +1 -1
- package/dist/tests/fourslash/completions.importPrivateNoPytyped.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.importPytyped.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.importPytypedLocal.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.importSubmodule.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.importsDuplicates.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.inList.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.included.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.inherited.function.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.inherited.overload.docFromScrWithStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.inherited.overload.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.inherited.property.docFromSrc.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.inherited.property.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.keywords.pythonVersion.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.libStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.literals.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.localCode.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.moduleContext.UnknownMemberOnInstance.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.moduleContext.UnknownStaticFunctionOnClass.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.moduleContext.libCodeNoStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.overloads.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.override.default.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.override.default.importStub.js.map +1 -1
- package/dist/tests/fourslash/completions.override.default.imported.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.override.default.stub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.override.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.override.property.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.override.property.stub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.override.staticAndClassmethod.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.override.stub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.override2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.parameters.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.params.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.parentFolder.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.parentFolders.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.plainText.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.private.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.property.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.propertyDocStrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.self.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.stringLiteral.escape.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.stringLiteral.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.triggers.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.typeAlias.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.typeshed.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.vardecls.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.variableDocStrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.wildcardimports.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.with.fourslash.js.map +1 -1
- package/dist/tests/fourslash/diagnostics.missingModuleSource.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.builtinClass.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.classes.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.definitionFilter.preferSource.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.definitionFilter.preferSource.onlyStubs.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.definitionFilter.preferStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.definitionFilter.preferStub.onlySource.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.fields.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.functions.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.methods.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.modules.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.namespaceImport.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.namespaceImportWithInit.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.overloads.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.parameters.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceAndStub.function.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceAndStub.innerClass.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceAndStub.innerClassMethod.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceAndStub.outerClass.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceAndStub.outerClassMethod.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceAndStub.outerClassPropertyReadOnly.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceAndStub.outerClassPropertyReadWrite.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceOnly.class.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceOnly.function1.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceOnly.function2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceOnly.relativeImport1.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.sourceOnly.relativeImport2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.stubOnly.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.stubPackages.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.typedDict.keys.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.variables.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.wildcardimports.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findTypeDefinitions.builtinClass.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findTypeDefinitions.classes.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findTypeDefinitions.unions.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.classPropertyReadWrite.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.importalias.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.invokedFromLibrary.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.module.nested.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.modules.duplicated.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.modules.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.modules.shadow.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.openFiles.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.parameter.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.sourceAndStub.class.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.sourceAndStub.classMethod.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.sourceAndStub.classPropertyReadOnly.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.sourceAndStub.classPropertyReadWrite.fourslash.skip.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.sourceAndStub.function.fourslash.js.map +1 -1
- package/dist/tests/fourslash/findallreferences.variable.fourslash.js.map +1 -1
- package/dist/tests/fourslash/fourslash.js.map +1 -1
- package/dist/tests/fourslash/highlightreferences.attributes.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.async.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.class.docString.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.classNoInit.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.stringFormat.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docstring.alias.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docstring.links.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docstring.overloads.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docstring.parameter.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.docstring.split.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.formatted.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.import.django.view.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.import.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inferred.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.overload.docFromSrcWithStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.overload.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.property.docFromSrcWithStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.inherited.property.docFromStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.libStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.optionalAliasParameter.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.overloadedFunction.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.plainText.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.slots.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.typedDict.key.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.unpackedTypedDict.key.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.variable.docString.fourslash.js.map +1 -1
- package/dist/tests/fourslash/hover.wildcardimports.fourslash.js.map +1 -1
- package/dist/tests/fourslash/import.multipart.fourslash.js.map +1 -1
- package/dist/tests/fourslash/import.publicSymbols.fourslash.js.map +1 -1
- package/dist/tests/fourslash/import.pytyped.dunderAll.fourslash.js.map +1 -1
- package/dist/tests/fourslash/import.pytyped.privateSymbols.fourslash.js.map +1 -1
- package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js.map +1 -1
- package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js.map +1 -1
- package/dist/tests/fourslash/import.wildcard.fourslash.js.map +1 -1
- package/dist/tests/fourslash/importnotresolved.fourslash.js.map +1 -1
- package/dist/tests/fourslash/missingModuleSource.disablingInStrictMode.fourslash.js.map +1 -1
- package/dist/tests/fourslash/missingModuleSource.fourslash.js.map +1 -1
- package/dist/tests/fourslash/missingTypeStub.codeAction.fourslash.js.map +1 -1
- package/dist/tests/fourslash/missingTypeStub.command.multipart.fourslash.js.map +1 -1
- package/dist/tests/fourslash/missingTypeStub.command.singlefile.fourslash.js.map +1 -1
- package/dist/tests/fourslash/missingTypeStub.command.singlepart.fourslash.js.map +1 -1
- package/dist/tests/fourslash/missingTypeStub.command.trycatchImport.fourslash.js.map +1 -1
- package/dist/tests/fourslash/missingTypeStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/missingTypeStub.invokeCodeAction.fourslash.js.map +1 -1
- package/dist/tests/fourslash/noerrors.fourslash.js.map +1 -1
- package/dist/tests/fourslash/orderImports1.command.fourslash.js.map +1 -1
- package/dist/tests/fourslash/orderImports2.command.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.externallyHidden.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.externallyHidden.params.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.function.untitledFile.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.init.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.library.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.library.sourceAndStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.multipleDecl.fourslash.d.ts +1 -1
- package/dist/tests/fourslash/rename.multipleDecl.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.parens.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.sourceAndStub.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.string.excluded.fourslash.js.map +1 -1
- package/dist/tests/fourslash/rename.string.fourslash.js.map +1 -1
- package/dist/tests/fourslash/shadowedImports.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedVariable.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction1.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.aliasedFunction2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/showcallhierarchy.outgoingCalls.function.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.builtinDocstrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.complicated.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.cornercases.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.docstrings.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.docstrings.wildcardimports.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.dunderNew.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.overload.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.simple.fourslash.js.map +1 -1
- package/dist/tests/fourslash/typeVerifier.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
- package/dist/tests/harness/fourslash/runner.js +1 -1
- package/dist/tests/harness/fourslash/runner.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +0 -13
- package/dist/tests/harness/fourslash/testState.js +11 -0
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -1
- package/dist/tests/harness/testAccessHost.js.map +1 -1
- package/dist/tests/harness/testHost.js.map +1 -1
- package/dist/tests/harness/utils.js.map +1 -1
- package/dist/tests/harness/vfs/factory.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
- package/dist/tests/hoverProvider.test.js.map +1 -1
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +8 -0
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/ipythonMode.test.js.map +1 -1
- package/dist/tests/languageServer.test.d.ts +1 -0
- package/dist/tests/languageServer.test.js +137 -0
- package/dist/tests/languageServer.test.js.map +1 -0
- package/dist/tests/localizer.test.js.map +1 -1
- package/dist/tests/logger.test.js.map +1 -1
- package/dist/tests/lsp/customLsp.d.ts +112 -0
- package/dist/tests/lsp/customLsp.js +67 -0
- package/dist/tests/lsp/customLsp.js.map +1 -0
- package/dist/tests/lsp/languageServer.d.ts +1 -0
- package/dist/tests/lsp/languageServer.js +326 -0
- package/dist/tests/lsp/languageServer.js.map +1 -0
- package/dist/tests/lsp/languageServerTestUtils.d.ts +100 -0
- package/dist/tests/lsp/languageServerTestUtils.js +803 -0
- package/dist/tests/lsp/languageServerTestUtils.js.map +1 -0
- package/dist/tests/lsp/main.d.ts +1 -0
- package/dist/tests/lsp/main.js +12 -0
- package/dist/tests/lsp/main.js.map +1 -0
- package/dist/tests/lsp/webpack.testserver.config.d.ts +4 -0
- package/dist/tests/lsp/webpack.testserver.config.js +64 -0
- package/dist/tests/lsp/webpack.testserver.config.js.map +1 -0
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/pathUtils.test.js.map +1 -1
- package/dist/tests/positionUtils.test.js.map +1 -1
- package/dist/tests/pyrightFileSystem.test.js.map +1 -1
- package/dist/tests/serialization.test.js.map +1 -1
- package/dist/tests/service.test.js.map +1 -1
- package/dist/tests/signatureHelp.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/stringUtils.test.js.map +1 -1
- package/dist/tests/symbolNameUtils.test.js.map +1 -1
- package/dist/tests/testState.test.js.map +1 -1
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/textEditUtil.test.js.map +1 -1
- package/dist/tests/textRange.test.js.map +1 -1
- package/dist/tests/tokenizer.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +21 -5
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +8 -4
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +5 -9
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +1 -1
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +43 -1
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/dist/tests/uri.test.js +74 -26
- package/dist/tests/uri.test.js.map +1 -1
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/dist/tests/zipfs.test.js.map +1 -1
- package/dist/workspaceFactory.js +2 -1
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +23 -15
- package/dist/analyzer/regions.d.ts +0 -11
- package/dist/analyzer/regions.js +0 -62
- package/dist/analyzer/regions.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../../../../src/analyzer/cacheManager.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAGH,2CAAuC;AACvC,iDAAuD;AAWvD,MAAa,YAAY;IAAzB;QACY,iBAAY,GAAG,CAAC,CAAC;QACR,iBAAY,GAAiB,EAAE,CAAC;IA4ErD,CAAC;IA1EG,kBAAkB,CAAC,QAAoB;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,oBAAoB,CAAC,QAAoB;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,IAAA,YAAI,EAAC,oCAAoC,CAAC,CAAC;SAC9C;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACtC;IACL,CAAC;IAED,aAAa;QACT,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,OAAO;YACH,OAAO;gBACH,KAAK,CAAC,YAAY,EAAE,CAAC;YACzB,CAAC;SACJ,CAAC;IACN,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,OAAO,CAAC,CAAC,CAAC;SACb;QAED,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,UAAU,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,OAA0B;QACjC,IAAI,OAAO,EAAE;YACT,MAAM,SAAS,GAAG,IAAA,4BAAiB,GAAE,CAAC;YAEtC,OAAO,CAAC,IAAI,CACR,oDAAoD,IAAI,CAAC,YAAY,CACjE,SAAS,CAAC,cAAc,CAC3B,WAAW,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAC9D,CAAC;SACL;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,CAAC,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gDAAgD;IAChD,gBAAgB,CAAC,OAA0B;QACvC,MAAM,SAAS,GAAG,IAAA,4BAAiB,GAAE,CAAC;QAEtC,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,IAAI,CACR,cAAc;gBACV,mBAAmB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI;gBACnE,kBAAkB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI;gBACjE,uBAAuB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI;gBAC3E,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI;gBAC7E,mBAAmB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CACxE,CAAC;SACL;QAED,OAAO,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,eAAe,CAAC;IAChE,CAAC;IAEO,YAAY,CAAC,KAAa;QAC9B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;CACJ;AA9ED,oCA8EC;AAED,WAAiB,YAAY;IACzB,SAAgB,EAAE,CAAC,GAAQ;QACvB,OAAO,CACH,GAAG,CAAC,kBAAkB,KAAK,SAAS;YACpC,GAAG,CAAC,oBAAoB,KAAK,SAAS;YACtC,GAAG,CAAC,aAAa,KAAK,SAAS;YAC/B,GAAG,CAAC,aAAa,KAAK,SAAS;YAC/B,GAAG,CAAC,UAAU,KAAK,SAAS;YAC5B,GAAG,CAAC,gBAAgB,KAAK,SAAS,CACrC,CAAC;IACN,CAAC;IATe,eAAE,KASjB,CAAA;AACL,CAAC,EAXgB,YAAY,4BAAZ,YAAY,QAW5B"}
|
@@ -134,6 +134,7 @@ export declare class Checker extends ParseTreeWalker {
|
|
134
134
|
private _validateMultipleInheritanceCompatibility;
|
135
135
|
private _validateMultipleInheritanceOverride;
|
136
136
|
private _validateOverloadDecoratorConsistency;
|
137
|
+
private _validateTypedDictOverrides;
|
137
138
|
private _validateBaseClassOverrides;
|
138
139
|
private _validateOverrideDecoratorPresent;
|
139
140
|
private _isMethodExemptFromLsp;
|
@@ -145,6 +146,4 @@ export declare class Checker extends ParseTreeWalker {
|
|
145
146
|
private _validateYieldType;
|
146
147
|
private _reportUnusedExceptStatements;
|
147
148
|
private _reportDuplicateImports;
|
148
|
-
private _checkRegions;
|
149
|
-
private _addDiagnosticForRegionComment;
|
150
149
|
}
|
package/dist/analyzer/checker.js
CHANGED
@@ -62,7 +62,6 @@ const ParseTreeUtils = __importStar(require("./parseTreeUtils"));
|
|
62
62
|
const parseTreeWalker_1 = require("./parseTreeWalker");
|
63
63
|
const patternMatching_1 = require("./patternMatching");
|
64
64
|
const protocols_1 = require("./protocols");
|
65
|
-
const regions_1 = require("./regions");
|
66
65
|
const scopeUtils_1 = require("./scopeUtils");
|
67
66
|
const sourceFile_1 = require("./sourceFile");
|
68
67
|
const sourceMapper_1 = require("./sourceMapper");
|
@@ -73,6 +72,7 @@ const typeEvaluator_1 = require("./typeEvaluator");
|
|
73
72
|
const typeGuards_1 = require("./typeGuards");
|
74
73
|
const typeUtils_1 = require("./typeUtils");
|
75
74
|
const typeVarContext_1 = require("./typeVarContext");
|
75
|
+
const typedDicts_1 = require("./typedDicts");
|
76
76
|
const types_1 = require("./types");
|
77
77
|
// When enabled, this debug flag causes the code complexity of
|
78
78
|
// functions to be emitted.
|
@@ -116,7 +116,6 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
116
116
|
// defined in this module for things like unaccessed variables.
|
117
117
|
this._validateSymbolTables();
|
118
118
|
this._reportDuplicateImports();
|
119
|
-
this._checkRegions();
|
120
119
|
}
|
121
120
|
walk(node) {
|
122
121
|
if (!AnalyzerNodeInfo.isCodeUnreachable(node)) {
|
@@ -181,6 +180,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
181
180
|
this._validateSlotsClassVarConflict(classTypeResult.classType);
|
182
181
|
}
|
183
182
|
this._validateBaseClassOverrides(classTypeResult.classType);
|
183
|
+
this._validateTypedDictOverrides(classTypeResult.classType);
|
184
184
|
this._validateOverloadDecoratorConsistency(classTypeResult.classType);
|
185
185
|
this._validateMultipleInheritanceBaseClasses(classTypeResult.classType, node.name);
|
186
186
|
this._validateMultipleInheritanceCompatibility(classTypeResult.classType, node.name);
|
@@ -288,7 +288,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
288
288
|
const kwargsType = types_1.FunctionType.getEffectiveParameterType(functionTypeResult.functionType, kwargsIndex);
|
289
289
|
if ((0, types_1.isClass)(kwargsType) && kwargsType.details.typedDictEntries) {
|
290
290
|
const overlappingEntries = new Set();
|
291
|
-
kwargsType.details.typedDictEntries.forEach((_, name) => {
|
291
|
+
kwargsType.details.typedDictEntries.knownItems.forEach((_, name) => {
|
292
292
|
if (keywordNames.has(name)) {
|
293
293
|
overlappingEntries.add(name);
|
294
294
|
}
|
@@ -383,7 +383,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
383
383
|
}
|
384
384
|
// Verify common dunder signatures.
|
385
385
|
this._validateDunderSignatures(node, functionTypeResult.functionType, containingClassNode !== undefined);
|
386
|
-
// Verify TypeGuard functions.
|
386
|
+
// Verify TypeGuard and TypeIs functions.
|
387
387
|
this._validateTypeGuardFunction(node, functionTypeResult.functionType, containingClassNode !== undefined);
|
388
388
|
this._validateFunctionTypeVarUsage(node, functionTypeResult);
|
389
389
|
this._validateGeneratorReturnType(node, functionTypeResult.functionType);
|
@@ -767,11 +767,12 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
767
767
|
const baseType = this._evaluator.getType(node.baseExpression);
|
768
768
|
if (baseType) {
|
769
769
|
(0, typeUtils_1.doForEachSubtype)(baseType, (subtype) => {
|
770
|
+
const tupleType = (0, typeUtils_1.getSpecializedTupleType)(subtype);
|
770
771
|
if ((0, types_1.isClassInstance)(subtype) &&
|
771
|
-
|
772
|
-
!(0, typeUtils_1.isUnboundedTupleClass)(
|
773
|
-
!this._evaluator.isTypeSubsumedByOtherType(
|
774
|
-
const tupleLength =
|
772
|
+
(tupleType === null || tupleType === void 0 ? void 0 : tupleType.tupleTypeArguments) &&
|
773
|
+
!(0, typeUtils_1.isUnboundedTupleClass)(tupleType) &&
|
774
|
+
!this._evaluator.isTypeSubsumedByOtherType(tupleType, baseType, /* allowAnyToSubsume */ false)) {
|
775
|
+
const tupleLength = tupleType.tupleTypeArguments.length;
|
775
776
|
if (node.items.length === 1 &&
|
776
777
|
!node.trailingComma &&
|
777
778
|
node.items[0].argumentCategory === 0 /* ArgumentCategory.Simple */ &&
|
@@ -2053,14 +2054,21 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2053
2054
|
// verify that there is an implementation.
|
2054
2055
|
if (!this._fileInfo.isStubFile && overloadedFunctions.length > 0) {
|
2055
2056
|
let implementationFunction;
|
2056
|
-
|
2057
|
+
let exemptMissingImplementation = false;
|
2058
|
+
if ((0, types_1.isOverloadedFunction)(type)) {
|
2057
2059
|
implementationFunction = types_1.OverloadedFunctionType.getImplementation(type);
|
2060
|
+
// If the implementation has no name, it was synthesized probably by a
|
2061
|
+
// decorator that used a callable with a ParamSpec that captured the
|
2062
|
+
// overloaded signature. We'll exempt it from this check.
|
2063
|
+
const overloads = types_1.OverloadedFunctionType.getOverloads(type);
|
2064
|
+
if (overloads.length > 0 && overloads[0].details.name === '') {
|
2065
|
+
exemptMissingImplementation = true;
|
2066
|
+
}
|
2058
2067
|
}
|
2059
2068
|
else if ((0, types_1.isFunction)(type) && !types_1.FunctionType.isOverloaded(type)) {
|
2060
2069
|
implementationFunction = type;
|
2061
2070
|
}
|
2062
2071
|
if (!implementationFunction) {
|
2063
|
-
let exemptMissingImplementation = false;
|
2064
2072
|
const containingClassNode = ParseTreeUtils.getEnclosingClassOrFunction(primaryDecl.node);
|
2065
2073
|
if (containingClassNode && containingClassNode.nodeType === 10 /* ParseNodeType.Class */) {
|
2066
2074
|
const classType = this._evaluator.getTypeOfClass(containingClassNode);
|
@@ -2782,7 +2790,15 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2782
2790
|
case 0 /* TypeCategory.Unbound */:
|
2783
2791
|
break;
|
2784
2792
|
case 6 /* TypeCategory.Class */:
|
2785
|
-
if ((
|
2793
|
+
if (types_1.ClassType.isBuiltIn(subtype, 'TypedDict')) {
|
2794
|
+
diag.addMessage(localize_1.LocAddendum.typedDictNotAllowed());
|
2795
|
+
isSupported = false;
|
2796
|
+
}
|
2797
|
+
else if (types_1.ClassType.isBuiltIn(subtype, 'NamedTuple')) {
|
2798
|
+
diag.addMessage(localize_1.LocAddendum.namedTupleNotAllowed());
|
2799
|
+
isSupported = false;
|
2800
|
+
}
|
2801
|
+
else if ((0, typeUtils_1.isNoneInstance)(subtype)) {
|
2786
2802
|
diag.addMessage(localize_1.LocAddendum.noneNotAllowed());
|
2787
2803
|
isSupported = false;
|
2788
2804
|
}
|
@@ -2809,6 +2825,12 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2809
2825
|
diag.addMessage(localize_1.LocAddendum.newTypeClassNotAllowed());
|
2810
2826
|
isSupported = false;
|
2811
2827
|
}
|
2828
|
+
else if (subtype.specialForm &&
|
2829
|
+
(0, types_1.isInstantiableClass)(subtype.specialForm) &&
|
2830
|
+
types_1.ClassType.isBuiltIn(subtype.specialForm, 'Annotated')) {
|
2831
|
+
diag.addMessage(localize_1.LocAddendum.annotatedNotAllowed());
|
2832
|
+
isSupported = false;
|
2833
|
+
}
|
2812
2834
|
break;
|
2813
2835
|
case 4 /* TypeCategory.Function */:
|
2814
2836
|
if (!types_1.TypeBase.isInstantiable(subtype) || subtype.isCallableWithTypeArgs) {
|
@@ -3027,7 +3049,9 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3027
3049
|
const type = this._evaluator.getType(node);
|
3028
3050
|
if (type) {
|
3029
3051
|
if ((0, types_1.isUnbound)(type)) {
|
3030
|
-
this._evaluator.
|
3052
|
+
if (this._evaluator.isNodeReachable(node)) {
|
3053
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportUnboundVariable, localize_1.LocMessage.symbolIsUnbound().format({ name: node.value }), node);
|
3054
|
+
}
|
3031
3055
|
}
|
3032
3056
|
else if ((0, types_1.isPossiblyUnbound)(type)) {
|
3033
3057
|
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportPossiblyUnboundVariable, localize_1.LocMessage.symbolIsPossiblyUnbound().format({ name: node.value }), node);
|
@@ -3248,6 +3272,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3248
3272
|
});
|
3249
3273
|
}
|
3250
3274
|
_validateTypeGuardFunction(node, functionType, isMethod) {
|
3275
|
+
var _a;
|
3251
3276
|
const returnType = functionType.details.declaredReturnType;
|
3252
3277
|
if (!returnType) {
|
3253
3278
|
return;
|
@@ -3255,7 +3280,9 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3255
3280
|
if (!(0, types_1.isClassInstance)(returnType) || !returnType.typeArguments || returnType.typeArguments.length < 1) {
|
3256
3281
|
return;
|
3257
3282
|
}
|
3258
|
-
|
3283
|
+
const isTypeGuard = types_1.ClassType.isBuiltIn(returnType, 'TypeGuard');
|
3284
|
+
const isTypeIs = types_1.ClassType.isBuiltIn(returnType, 'TypeIs');
|
3285
|
+
if (!isTypeGuard && !isTypeIs) {
|
3259
3286
|
return;
|
3260
3287
|
}
|
3261
3288
|
// Make sure there's at least one input parameter provided.
|
@@ -3270,6 +3297,25 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3270
3297
|
if (paramCount < 1) {
|
3271
3298
|
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.typeGuardParamCount(), node.name);
|
3272
3299
|
}
|
3300
|
+
if (isTypeIs) {
|
3301
|
+
const typeGuardType = returnType.typeArguments[0];
|
3302
|
+
// Determine the type of the first parameter.
|
3303
|
+
const paramIndex = isMethod && !types_1.FunctionType.isStaticMethod(functionType) ? 1 : 0;
|
3304
|
+
if (paramIndex >= functionType.details.parameters.length) {
|
3305
|
+
return;
|
3306
|
+
}
|
3307
|
+
const paramType = types_1.FunctionType.getEffectiveParameterType(functionType, paramIndex);
|
3308
|
+
// Verify that the typeGuardType is a narrower type than the paramType.
|
3309
|
+
if (!this._evaluator.assignType(paramType, typeGuardType)) {
|
3310
|
+
const returnAnnotation = node.returnTypeAnnotation || ((_a = node.functionAnnotationComment) === null || _a === void 0 ? void 0 : _a.returnTypeAnnotation);
|
3311
|
+
if (returnAnnotation) {
|
3312
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.typeIsReturnType().format({
|
3313
|
+
type: this._evaluator.printType(paramType),
|
3314
|
+
returnType: this._evaluator.printType(typeGuardType),
|
3315
|
+
}), returnAnnotation);
|
3316
|
+
}
|
3317
|
+
}
|
3318
|
+
}
|
3273
3319
|
}
|
3274
3320
|
_validateDunderSignatures(node, functionType, isMethod) {
|
3275
3321
|
var _a;
|
@@ -3379,15 +3425,27 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3379
3425
|
_validateFinalMemberOverrides(classType) {
|
3380
3426
|
classType.details.fields.forEach((localSymbol, name) => {
|
3381
3427
|
const parentSymbol = (0, typeUtils_1.lookUpClassMember)(classType, name, 1 /* MemberAccessFlags.SkipOriginalClass */);
|
3382
|
-
if (parentSymbol &&
|
3383
|
-
|
3384
|
-
this._evaluator.isFinalVariable(parentSymbol.symbol)
|
3385
|
-
|
3386
|
-
|
3387
|
-
|
3388
|
-
|
3389
|
-
|
3390
|
-
}
|
3428
|
+
if (parentSymbol && (0, types_1.isInstantiableClass)(parentSymbol.classType) && !SymbolNameUtils.isPrivateName(name)) {
|
3429
|
+
// Did the parent class explicitly declare the variable as final?
|
3430
|
+
if (this._evaluator.isFinalVariable(parentSymbol.symbol)) {
|
3431
|
+
const decl = localSymbol.getDeclarations()[0];
|
3432
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.finalRedeclarationBySubclass().format({
|
3433
|
+
name,
|
3434
|
+
className: parentSymbol.classType.details.name,
|
3435
|
+
}), decl.node);
|
3436
|
+
}
|
3437
|
+
else if (types_1.ClassType.isReadOnlyInstanceVariables(parentSymbol.classType) &&
|
3438
|
+
!SymbolNameUtils.isDunderName(name)) {
|
3439
|
+
// If the parent class is a named tuple, all instance variables
|
3440
|
+
// (other than dundered ones) are implicitly final.
|
3441
|
+
const decl = localSymbol.getDeclarations()[0];
|
3442
|
+
if (decl.type === 1 /* DeclarationType.Variable */) {
|
3443
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.namedTupleEntryRedeclared().format({
|
3444
|
+
name,
|
3445
|
+
className: parentSymbol.classType.details.name,
|
3446
|
+
}), decl.node);
|
3447
|
+
}
|
3448
|
+
}
|
3391
3449
|
}
|
3392
3450
|
});
|
3393
3451
|
}
|
@@ -3401,8 +3459,20 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3401
3459
|
const declaredValueType = (0, enums_1.getEnumDeclaredValueType)(this._evaluator, classType, /* declaredTypesOnly */ true);
|
3402
3460
|
// Is there a custom "__new__" and/or "__init__" method? If so, we'll
|
3403
3461
|
// verify that the signature of these calls is compatible with the values.
|
3404
|
-
|
3405
|
-
|
3462
|
+
let newMemberTypeResult = (0, constructors_1.getBoundNewMethod)(this._evaluator, node.name, classType, 4 /* MemberAccessFlags.SkipObjectBaseClass */);
|
3463
|
+
// If this __new__ comes from a built-in class like Enum, we'll ignore it.
|
3464
|
+
if (newMemberTypeResult === null || newMemberTypeResult === void 0 ? void 0 : newMemberTypeResult.classType) {
|
3465
|
+
if ((0, types_1.isClass)(newMemberTypeResult.classType) && types_1.ClassType.isBuiltIn(newMemberTypeResult.classType)) {
|
3466
|
+
newMemberTypeResult = undefined;
|
3467
|
+
}
|
3468
|
+
}
|
3469
|
+
let initMemberTypeResult = (0, constructors_1.getBoundInitMethod)(this._evaluator, node.name, types_1.ClassType.cloneAsInstance(classType), 4 /* MemberAccessFlags.SkipObjectBaseClass */);
|
3470
|
+
// If this __init__ comes from a built-in class like Enum, we'll ignore it.
|
3471
|
+
if (initMemberTypeResult === null || initMemberTypeResult === void 0 ? void 0 : initMemberTypeResult.classType) {
|
3472
|
+
if ((0, types_1.isClass)(initMemberTypeResult.classType) && types_1.ClassType.isBuiltIn(initMemberTypeResult.classType)) {
|
3473
|
+
initMemberTypeResult = undefined;
|
3474
|
+
}
|
3475
|
+
}
|
3406
3476
|
classType.details.fields.forEach((symbol, name) => {
|
3407
3477
|
var _a;
|
3408
3478
|
// Enum members don't have type annotations.
|
@@ -3591,7 +3661,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3591
3661
|
// variables. We need to make sure these are initialized.
|
3592
3662
|
const abstractSymbols = new Map();
|
3593
3663
|
if (types_1.ClassType.isFinal(classType)) {
|
3594
|
-
(0, typeUtils_1.getProtocolSymbolsRecursive)(classType, abstractSymbols,
|
3664
|
+
(0, typeUtils_1.getProtocolSymbolsRecursive)(classType, abstractSymbols, 2048 /* ClassTypeFlags.SupportsAbstractMethods */);
|
3595
3665
|
}
|
3596
3666
|
classType.details.fields.forEach((localSymbol, name) => {
|
3597
3667
|
abstractSymbols.delete(name);
|
@@ -3994,6 +4064,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3994
4064
|
}
|
3995
4065
|
}
|
3996
4066
|
_validateMultipleInheritanceOverride(overriddenClassAndSymbol, overrideClassAndSymbol, childClassType, memberName, errorNode) {
|
4067
|
+
var _a, _b, _c, _d;
|
3997
4068
|
if (!(0, types_1.isClass)(overriddenClassAndSymbol.classType) || !(0, types_1.isClass)(overrideClassAndSymbol.classType)) {
|
3998
4069
|
return;
|
3999
4070
|
}
|
@@ -4061,67 +4132,62 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4061
4132
|
// This check can be expensive, so don't perform it if the corresponding
|
4062
4133
|
// rule is disabled.
|
4063
4134
|
if (this._fileInfo.diagnosticRuleSet.reportIncompatibleVariableOverride !== 'none') {
|
4064
|
-
|
4065
|
-
|
4066
|
-
|
4067
|
-
|
4068
|
-
|
4069
|
-
|
4070
|
-
const
|
4071
|
-
|
4072
|
-
|
4073
|
-
// so it does not need to be invariant.
|
4074
|
-
if (types_1.ClassType.isFrozenDataClass(overriddenClassAndSymbol.classType) &&
|
4075
|
-
overriddenClassAndSymbol.classType.details.dataClassEntries) {
|
4076
|
-
const dataclassEntry = overriddenClassAndSymbol.classType.details.dataClassEntries.find((entry) => entry.name === memberName);
|
4077
|
-
if (dataclassEntry) {
|
4078
|
-
isInvariant = false;
|
4079
|
-
}
|
4135
|
+
const primaryDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(overriddenClassAndSymbol.symbol);
|
4136
|
+
let isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* DeclarationType.Variable */ && !primaryDecl.isFinal;
|
4137
|
+
// If the entry is a member of a frozen dataclass, it is immutable,
|
4138
|
+
// so it does not need to be invariant.
|
4139
|
+
if (types_1.ClassType.isFrozenDataClass(overriddenClassAndSymbol.classType) &&
|
4140
|
+
overriddenClassAndSymbol.classType.details.dataClassEntries) {
|
4141
|
+
const dataclassEntry = overriddenClassAndSymbol.classType.details.dataClassEntries.find((entry) => entry.name === memberName);
|
4142
|
+
if (dataclassEntry) {
|
4143
|
+
isInvariant = false;
|
4080
4144
|
}
|
4081
|
-
|
4082
|
-
|
4083
|
-
|
4084
|
-
|
4085
|
-
|
4086
|
-
|
4145
|
+
}
|
4146
|
+
let overriddenTDEntry;
|
4147
|
+
if (overriddenClassAndSymbol.classType.details.typedDictEntries) {
|
4148
|
+
overriddenTDEntry =
|
4149
|
+
(_b = (_a = overriddenClassAndSymbol.classType.details.typedDictEntries.knownItems.get(memberName)) !== null && _a !== void 0 ? _a : overriddenClassAndSymbol.classType.details.typedDictEntries.extraItems) !== null && _b !== void 0 ? _b : (0, typedDicts_1.getEffectiveExtraItemsEntryType)(this._evaluator, overriddenClassAndSymbol.classType);
|
4150
|
+
if (overriddenTDEntry === null || overriddenTDEntry === void 0 ? void 0 : overriddenTDEntry.isReadOnly) {
|
4151
|
+
isInvariant = false;
|
4087
4152
|
}
|
4088
|
-
|
4089
|
-
|
4090
|
-
|
4153
|
+
}
|
4154
|
+
let overrideTDEntry;
|
4155
|
+
if (overrideClassAndSymbol.classType.details.typedDictEntries) {
|
4156
|
+
overrideTDEntry =
|
4157
|
+
(_d = (_c = overrideClassAndSymbol.classType.details.typedDictEntries.knownItems.get(memberName)) !== null && _c !== void 0 ? _c : overrideClassAndSymbol.classType.details.typedDictEntries.extraItems) !== null && _d !== void 0 ? _d : (0, typedDicts_1.getEffectiveExtraItemsEntryType)(this._evaluator, overrideClassAndSymbol.classType);
|
4158
|
+
}
|
4159
|
+
if (!this._evaluator.assignType(overriddenType, childOverrideType !== null && childOverrideType !== void 0 ? childOverrideType : overrideType,
|
4160
|
+
/* diag */ undefined,
|
4161
|
+
/* destTypeVarContext */ undefined,
|
4162
|
+
/* srcTypeVarContext */ undefined, isInvariant ? 1 /* AssignTypeFlags.EnforceInvariance */ : 0 /* AssignTypeFlags.Default */)) {
|
4163
|
+
diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.baseClassVariableTypeIncompatible().format({
|
4164
|
+
classType: childClassType.details.name,
|
4165
|
+
name: memberName,
|
4166
|
+
}), errorNode);
|
4167
|
+
}
|
4168
|
+
else if (overriddenTDEntry && overrideTDEntry) {
|
4169
|
+
let isRequiredCompatible;
|
4170
|
+
let isReadOnlyCompatible = true;
|
4171
|
+
// If both classes are TypedDicts and they both define this field,
|
4172
|
+
// make sure the attributes are compatible.
|
4173
|
+
if (overriddenTDEntry.isReadOnly) {
|
4174
|
+
isRequiredCompatible = overrideTDEntry.isRequired || !overriddenTDEntry.isRequired;
|
4091
4175
|
}
|
4092
|
-
|
4093
|
-
|
4094
|
-
|
4095
|
-
|
4096
|
-
|
4097
|
-
|
4176
|
+
else {
|
4177
|
+
isReadOnlyCompatible = !overrideTDEntry.isReadOnly;
|
4178
|
+
isRequiredCompatible = overrideTDEntry.isRequired === overriddenTDEntry.isRequired;
|
4179
|
+
}
|
4180
|
+
if (!isRequiredCompatible) {
|
4181
|
+
const message = overrideTDEntry.isRequired
|
4182
|
+
? localize_1.LocMessage.typedDictFieldRequiredRedefinition
|
4183
|
+
: localize_1.LocMessage.typedDictFieldNotRequiredRedefinition;
|
4184
|
+
diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, message().format({ name: memberName }), errorNode);
|
4185
|
+
}
|
4186
|
+
else if (!isReadOnlyCompatible) {
|
4187
|
+
diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.typedDictFieldReadOnlyRedefinition().format({
|
4098
4188
|
name: memberName,
|
4099
4189
|
}), errorNode);
|
4100
4190
|
}
|
4101
|
-
else if (overriddenTDEntry && overrideTDEntry) {
|
4102
|
-
let isRequiredCompatible;
|
4103
|
-
let isReadOnlyCompatible = true;
|
4104
|
-
// If both classes are TypedDicts and they both define this field,
|
4105
|
-
// make sure the attributes are compatible.
|
4106
|
-
if (overriddenTDEntry.isReadOnly) {
|
4107
|
-
isRequiredCompatible = overrideTDEntry.isRequired || !overriddenTDEntry.isRequired;
|
4108
|
-
}
|
4109
|
-
else {
|
4110
|
-
isReadOnlyCompatible = !overrideTDEntry.isReadOnly;
|
4111
|
-
isRequiredCompatible = overrideTDEntry.isRequired === overriddenTDEntry.isRequired;
|
4112
|
-
}
|
4113
|
-
if (!isRequiredCompatible) {
|
4114
|
-
const message = overrideTDEntry.isRequired
|
4115
|
-
? localize_1.LocMessage.typedDictFieldRequiredRedefinition
|
4116
|
-
: localize_1.LocMessage.typedDictFieldNotRequiredRedefinition;
|
4117
|
-
diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, message().format({ name: memberName }), errorNode);
|
4118
|
-
}
|
4119
|
-
else if (!isReadOnlyCompatible) {
|
4120
|
-
diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.typedDictFieldReadOnlyRedefinition().format({
|
4121
|
-
name: memberName,
|
4122
|
-
}), errorNode);
|
4123
|
-
}
|
4124
|
-
}
|
4125
4191
|
}
|
4126
4192
|
}
|
4127
4193
|
}
|
@@ -4181,6 +4247,84 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4181
4247
|
}
|
4182
4248
|
});
|
4183
4249
|
}
|
4250
|
+
// For a TypedDict class that derives from another TypedDict class
|
4251
|
+
// that is closed, verify that any new keys are compatible with the
|
4252
|
+
// base class.
|
4253
|
+
_validateTypedDictOverrides(classType) {
|
4254
|
+
if (!types_1.ClassType.isTypedDictClass(classType)) {
|
4255
|
+
return;
|
4256
|
+
}
|
4257
|
+
const typedDictEntries = (0, typedDicts_1.getTypedDictMembersForClass)(this._evaluator, classType, /* allowNarrowed */ false);
|
4258
|
+
for (const baseClass of classType.details.baseClasses) {
|
4259
|
+
const diag = new diagnostic_1.DiagnosticAddendum();
|
4260
|
+
if (!(0, types_1.isClass)(baseClass) ||
|
4261
|
+
!types_1.ClassType.isTypedDictClass(baseClass) ||
|
4262
|
+
!types_1.ClassType.isTypedDictEffectivelyClosed(baseClass)) {
|
4263
|
+
continue;
|
4264
|
+
}
|
4265
|
+
const baseTypedDictEntries = (0, typedDicts_1.getTypedDictMembersForClass)(this._evaluator, baseClass,
|
4266
|
+
/* allowNarrowed */ false);
|
4267
|
+
const typeVarContext = (0, typeUtils_1.buildTypeVarContextFromSpecializedClass)(baseClass);
|
4268
|
+
const baseExtraItemsType = baseTypedDictEntries.extraItems
|
4269
|
+
? (0, typeUtils_1.applySolvedTypeVars)(baseTypedDictEntries.extraItems.valueType, typeVarContext)
|
4270
|
+
: types_1.UnknownType.create();
|
4271
|
+
for (const [name, entry] of typedDictEntries.knownItems) {
|
4272
|
+
const baseEntry = baseTypedDictEntries.knownItems.get(name);
|
4273
|
+
if (!baseEntry) {
|
4274
|
+
if (!baseTypedDictEntries.extraItems || (0, types_1.isNever)(baseTypedDictEntries.extraItems.valueType)) {
|
4275
|
+
diag.addMessage(localize_1.LocAddendum.typedDictClosedExtraNotAllowed().format({
|
4276
|
+
name,
|
4277
|
+
}));
|
4278
|
+
}
|
4279
|
+
else if (!this._evaluator.assignType(baseExtraItemsType, entry.valueType,
|
4280
|
+
/* diag */ undefined,
|
4281
|
+
/* destTypeVarContext */ undefined,
|
4282
|
+
/* srcTypeVarContext */ undefined, !baseTypedDictEntries.extraItems.isReadOnly
|
4283
|
+
? 1 /* AssignTypeFlags.EnforceInvariance */
|
4284
|
+
: 0 /* AssignTypeFlags.Default */)) {
|
4285
|
+
diag.addMessage(localize_1.LocAddendum.typedDictClosedExtraTypeMismatch().format({
|
4286
|
+
name,
|
4287
|
+
type: this._evaluator.printType(entry.valueType),
|
4288
|
+
}));
|
4289
|
+
}
|
4290
|
+
else if (!baseTypedDictEntries.extraItems.isReadOnly && entry.isRequired) {
|
4291
|
+
diag.addMessage(localize_1.LocAddendum.typedDictClosedFieldNotRequired().format({
|
4292
|
+
name,
|
4293
|
+
}));
|
4294
|
+
}
|
4295
|
+
}
|
4296
|
+
}
|
4297
|
+
if (typedDictEntries.extraItems && baseTypedDictEntries.extraItems) {
|
4298
|
+
if (!this._evaluator.assignType(baseExtraItemsType, typedDictEntries.extraItems.valueType,
|
4299
|
+
/* diag */ undefined,
|
4300
|
+
/* destTypeVarContext */ undefined,
|
4301
|
+
/* srcTypeVarContext */ undefined, !baseTypedDictEntries.extraItems.isReadOnly
|
4302
|
+
? 1 /* AssignTypeFlags.EnforceInvariance */
|
4303
|
+
: 0 /* AssignTypeFlags.Default */)) {
|
4304
|
+
diag.addMessage(localize_1.LocAddendum.typedDictClosedExtraTypeMismatch().format({
|
4305
|
+
name: '__extra_items__',
|
4306
|
+
type: this._evaluator.printType(typedDictEntries.extraItems.valueType),
|
4307
|
+
}));
|
4308
|
+
}
|
4309
|
+
}
|
4310
|
+
if (!diag.isEmpty() && classType.details.declaration) {
|
4311
|
+
const declNode = (0, declarationUtils_1.getNameNodeForDeclaration)(classType.details.declaration);
|
4312
|
+
if (declNode) {
|
4313
|
+
if (baseTypedDictEntries.extraItems) {
|
4314
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.typedDictClosedExtras().format({
|
4315
|
+
name: baseClass.details.name,
|
4316
|
+
type: this._evaluator.printType(baseExtraItemsType),
|
4317
|
+
}) + diag.getString(), declNode);
|
4318
|
+
}
|
4319
|
+
else {
|
4320
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.typedDictClosedNoExtras().format({
|
4321
|
+
name: baseClass.details.name,
|
4322
|
+
}) + diag.getString(), declNode);
|
4323
|
+
}
|
4324
|
+
}
|
4325
|
+
}
|
4326
|
+
}
|
4327
|
+
}
|
4184
4328
|
// Validates that any overridden methods or variables contain the same
|
4185
4329
|
// types as the original method. Also marks the class as abstract if one
|
4186
4330
|
// or more abstract methods are not overridden.
|
@@ -4300,7 +4444,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4300
4444
|
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.overriddenMethodNotFound().format({ name: funcNode.name.value }), funcNode.name);
|
4301
4445
|
}
|
4302
4446
|
_validateBaseClassOverride(baseClassAndSymbol, overrideSymbol, overrideType, childClassType, memberName) {
|
4303
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
4447
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
4304
4448
|
if (!(0, types_1.isInstantiableClass)(baseClassAndSymbol.classType)) {
|
4305
4449
|
return;
|
4306
4450
|
}
|
@@ -4492,15 +4636,28 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4492
4636
|
}
|
4493
4637
|
}
|
4494
4638
|
let overriddenTDEntry;
|
4495
|
-
if (baseClass.details.typedDictEntries) {
|
4496
|
-
overriddenTDEntry = baseClass.details.typedDictEntries.get(memberName);
|
4497
|
-
if (overriddenTDEntry === null || overriddenTDEntry === void 0 ? void 0 : overriddenTDEntry.isReadOnly) {
|
4498
|
-
isInvariant = false;
|
4499
|
-
}
|
4500
|
-
}
|
4501
4639
|
let overrideTDEntry;
|
4502
|
-
if (
|
4503
|
-
|
4640
|
+
if (!overrideSymbol.isIgnoredForProtocolMatch()) {
|
4641
|
+
if (baseClass.details.typedDictEntries) {
|
4642
|
+
overriddenTDEntry =
|
4643
|
+
(_e = (_d = baseClass.details.typedDictEntries.knownItems.get(memberName)) !== null && _d !== void 0 ? _d : baseClass.details.typedDictEntries.extraItems) !== null && _e !== void 0 ? _e : (0, typedDicts_1.getEffectiveExtraItemsEntryType)(this._evaluator, baseClass);
|
4644
|
+
if (overriddenTDEntry === null || overriddenTDEntry === void 0 ? void 0 : overriddenTDEntry.isReadOnly) {
|
4645
|
+
isInvariant = false;
|
4646
|
+
}
|
4647
|
+
}
|
4648
|
+
if (childClassType.details.typedDictEntries) {
|
4649
|
+
// Exempt __extra_items__ here. We'll check this separately
|
4650
|
+
// in _validateTypedDictOverrides. If we don't skip it here,
|
4651
|
+
// redundant errors will be produced.
|
4652
|
+
if (types_1.ClassType.isTypedDictMarkedClosed(childClassType) && memberName === '__extra_items__') {
|
4653
|
+
overrideTDEntry = overriddenTDEntry;
|
4654
|
+
overrideType = baseType;
|
4655
|
+
}
|
4656
|
+
else {
|
4657
|
+
overrideTDEntry =
|
4658
|
+
(_g = (_f = childClassType.details.typedDictEntries.knownItems.get(memberName)) !== null && _f !== void 0 ? _f : childClassType.details.typedDictEntries.extraItems) !== null && _g !== void 0 ? _g : (0, typedDicts_1.getEffectiveExtraItemsEntryType)(this._evaluator, childClassType);
|
4659
|
+
}
|
4660
|
+
}
|
4504
4661
|
}
|
4505
4662
|
let diagAddendum = new diagnostic_1.DiagnosticAddendum();
|
4506
4663
|
if (!this._evaluator.assignType(baseType, overrideType, diagAddendum,
|
@@ -4517,7 +4674,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4517
4674
|
const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.symbolOverridden().format({
|
4518
4675
|
name: memberName,
|
4519
4676
|
className: baseClass.details.name,
|
4520
|
-
}) + diagAddendum.getString(), (
|
4677
|
+
}) + diagAddendum.getString(), (_h = (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl)) !== null && _h !== void 0 ? _h : lastDecl.node);
|
4521
4678
|
const origDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(baseClassAndSymbol.symbol);
|
4522
4679
|
if (diag && origDecl) {
|
4523
4680
|
diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), origDecl.uri, origDecl.range);
|
@@ -4538,14 +4695,14 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4538
4695
|
const message = overrideTDEntry.isRequired
|
4539
4696
|
? localize_1.LocMessage.typedDictFieldRequiredRedefinition
|
4540
4697
|
: localize_1.LocMessage.typedDictFieldNotRequiredRedefinition;
|
4541
|
-
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, message().format({ name: memberName }), (
|
4698
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, message().format({ name: memberName }), (_j = (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl)) !== null && _j !== void 0 ? _j : lastDecl.node);
|
4542
4699
|
}
|
4543
4700
|
// Make sure that the derived class isn't marking a previously writable
|
4544
4701
|
// entry as read-only.
|
4545
4702
|
if (!overriddenTDEntry.isReadOnly && overrideTDEntry.isReadOnly) {
|
4546
4703
|
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.typedDictFieldReadOnlyRedefinition().format({
|
4547
4704
|
name: memberName,
|
4548
|
-
}), (
|
4705
|
+
}), (_k = (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl)) !== null && _k !== void 0 ? _k : lastDecl.node);
|
4549
4706
|
}
|
4550
4707
|
}
|
4551
4708
|
// Verify that there is not a Final mismatch.
|
@@ -4555,7 +4712,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4555
4712
|
const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.variableFinalOverride().format({
|
4556
4713
|
name: memberName,
|
4557
4714
|
className: baseClass.details.name,
|
4558
|
-
}), (
|
4715
|
+
}), (_l = (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl)) !== null && _l !== void 0 ? _l : lastDecl.node);
|
4559
4716
|
if (diag) {
|
4560
4717
|
diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), overrideFinalVarDecl.uri, overrideFinalVarDecl.range);
|
4561
4718
|
}
|
@@ -4584,7 +4741,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4584
4741
|
const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, unformattedMessage.format({
|
4585
4742
|
name: memberName,
|
4586
4743
|
className: baseClass.details.name,
|
4587
|
-
}), (
|
4744
|
+
}), (_m = (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl)) !== null && _m !== void 0 ? _m : lastDecl.node);
|
4588
4745
|
const origDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(baseClassAndSymbol.symbol);
|
4589
4746
|
if (diag && origDecl) {
|
4590
4747
|
diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), origDecl.uri, origDecl.range);
|
@@ -4958,33 +5115,6 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4958
5115
|
}
|
4959
5116
|
});
|
4960
5117
|
}
|
4961
|
-
_checkRegions() {
|
4962
|
-
const regionComments = (0, regions_1.getRegionComments)(this._parseResults);
|
4963
|
-
const regionStack = [];
|
4964
|
-
regionComments.forEach((regionComment) => {
|
4965
|
-
if (regionComment.type === 0 /* RegionCommentType.Region */) {
|
4966
|
-
regionStack.push(regionComment);
|
4967
|
-
}
|
4968
|
-
else {
|
4969
|
-
if (regionStack.length > 0) {
|
4970
|
-
regionStack.pop();
|
4971
|
-
}
|
4972
|
-
else {
|
4973
|
-
this._addDiagnosticForRegionComment(regionComment, localize_1.LocMessage.unmatchedEndregionComment());
|
4974
|
-
}
|
4975
|
-
}
|
4976
|
-
});
|
4977
|
-
regionStack.forEach((regionComment) => {
|
4978
|
-
this._addDiagnosticForRegionComment(regionComment, localize_1.LocMessage.unmatchedRegionComment());
|
4979
|
-
});
|
4980
|
-
}
|
4981
|
-
_addDiagnosticForRegionComment(regionComment, message) {
|
4982
|
-
return this._evaluator.addDiagnosticForTextRange(this._fileInfo, 'error', '', message, {
|
4983
|
-
// extend range to include # character
|
4984
|
-
start: regionComment.comment.start - 1,
|
4985
|
-
length: regionComment.comment.length + 1,
|
4986
|
-
});
|
4987
|
-
}
|
4988
5118
|
}
|
4989
5119
|
exports.Checker = Checker;
|
4990
5120
|
//# sourceMappingURL=checker.js.map
|