@zzzen/pyright-internal 1.2.0-dev.20231119 → 1.2.0-dev.20231126
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.d.ts +1 -1
- package/dist/analyzer/analysis.js +5 -1
- package/dist/analyzer/analysis.js.map +1 -1
- package/dist/analyzer/analyzerFileInfo.d.ts +1 -1
- package/dist/analyzer/analyzerNodeInfo.d.ts +1 -1
- package/dist/analyzer/analyzerNodeInfo.js +1 -1
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.js +1 -1
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +198 -194
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/cacheManager.js +1 -1
- package/dist/analyzer/cacheManager.js.map +1 -1
- package/dist/analyzer/checker.js +257 -239
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +1 -1
- package/dist/analyzer/codeFlowEngine.js +26 -26
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.d.ts +1 -1
- package/dist/analyzer/codeFlowTypes.js +23 -23
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/codeFlowUtils.js +39 -37
- package/dist/analyzer/codeFlowUtils.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +40 -47
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructorTransform.js +8 -8
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.js +23 -25
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +67 -63
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +2 -2
- package/dist/analyzer/declaration.js +10 -10
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/declarationUtils.js +41 -41
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/decorators.js +51 -51
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/enums.js +27 -27
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/functionTransform.js +4 -4
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +1 -1
- package/dist/analyzer/importResolver.js +21 -17
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importResult.js +1 -1
- package/dist/analyzer/importResult.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +31 -27
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +36 -32
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.js +78 -78
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeReport.d.ts +1 -1
- package/dist/analyzer/packageTypeReport.js +2 -2
- package/dist/analyzer/packageTypeReport.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +90 -90
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.js +14 -14
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/parentDirectoryCache.d.ts +2 -2
- package/dist/analyzer/parseTreeCleaner.js +5 -1
- package/dist/analyzer/parseTreeCleaner.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -1
- package/dist/analyzer/parseTreeUtils.js +383 -379
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.js +161 -157
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.d.ts +1 -1
- package/dist/analyzer/patternMatching.js +52 -50
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -1
- package/dist/analyzer/program.js +18 -14
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +53 -44
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +14 -14
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.js +5 -1
- package/dist/analyzer/pythonPathUtils.js.map +1 -1
- package/dist/analyzer/regions.js +3 -3
- package/dist/analyzer/regions.js.map +1 -1
- package/dist/analyzer/scope.js +8 -8
- package/dist/analyzer/scope.js.map +1 -1
- package/dist/analyzer/scopeUtils.js +1 -1
- package/dist/analyzer/scopeUtils.js.map +1 -1
- package/dist/analyzer/service.js +5 -1
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.js +25 -21
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +2 -2
- package/dist/analyzer/sourceMapper.js +12 -8
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +40 -40
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/symbol.d.ts +1 -1
- package/dist/analyzer/symbol.js +26 -26
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/symbolUtils.js +1 -1
- package/dist/analyzer/symbolUtils.js.map +1 -1
- package/dist/analyzer/testWalker.js +5 -5
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/tracePrinter.d.ts +1 -1
- package/dist/analyzer/tracePrinter.js +35 -31
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.js +5 -1
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +13 -9
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +1233 -1153
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -1
- package/dist/analyzer/typeEvaluatorTypes.js +3 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +1 -1
- package/dist/analyzer/typeGuards.js +79 -65
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +1 -1
- package/dist/analyzer/typePrinter.js +80 -76
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +26 -22
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.js +123 -123
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.js +9 -9
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typeWalker.js +10 -10
- package/dist/analyzer/typedDicts.js +74 -70
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +16 -11
- package/dist/analyzer/types.js +179 -177
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +2 -2
- package/dist/backgroundAnalysisBase.js +5 -1
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.js +5 -1
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/commandController.js +7 -7
- package/dist/commands/commandController.js.map +1 -1
- package/dist/commands/commandResult.js +1 -1
- package/dist/commands/commandResult.js.map +1 -1
- package/dist/commands/commands.js +1 -1
- package/dist/commands/commands.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +196 -196
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/commands/quickActionCommand.js +1 -1
- package/dist/commands/quickActionCommand.js.map +1 -1
- package/dist/common/charCodes.js +1 -1
- package/dist/common/charCodes.js.map +1 -1
- package/dist/common/chokidarFileWatcherProvider.js +5 -1
- package/dist/common/chokidarFileWatcherProvider.js.map +1 -1
- package/dist/common/collectionUtils.d.ts +3 -3
- package/dist/common/collectionUtils.js +3 -3
- package/dist/common/collectionUtils.js.map +1 -1
- package/dist/common/commandLineOptions.d.ts +1 -1
- package/dist/common/commandLineOptions.js +5 -5
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -1
- package/dist/common/configOptions.js +11 -7
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/console.js +7 -3
- package/dist/common/console.js.map +1 -1
- package/dist/common/core.d.ts +2 -2
- package/dist/common/core.js +6 -6
- package/dist/common/core.js.map +1 -1
- package/dist/common/diagnostic.js +6 -6
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/common/diagnosticRules.js +1 -1
- package/dist/common/diagnosticRules.js.map +1 -1
- package/dist/common/diagnosticSink.js +12 -12
- package/dist/common/diagnosticSink.js.map +1 -1
- package/dist/common/editAction.d.ts +1 -1
- package/dist/common/editAction.js +2 -2
- package/dist/common/editAction.js.map +1 -1
- package/dist/common/envVarUtils.js +5 -1
- package/dist/common/envVarUtils.js.map +1 -1
- package/dist/common/extensibility.js +1 -1
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileBasedCancellationUtils.js +5 -1
- package/dist/common/fileBasedCancellationUtils.js.map +1 -1
- package/dist/common/fileSystem.d.ts +1 -0
- package/dist/common/fileSystem.js +2 -2
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/fileWatcher.d.ts +2 -2
- package/dist/common/fullAccessHost.js +10 -6
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/host.d.ts +1 -1
- package/dist/common/host.js +2 -2
- package/dist/common/host.js.map +1 -1
- package/dist/common/lspUtils.js +7 -7
- package/dist/common/lspUtils.js.map +1 -1
- package/dist/common/memUtils.d.ts +1 -1
- package/dist/common/pathUtils.js +12 -8
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/pythonVersion.js +1 -1
- package/dist/common/pythonVersion.js.map +1 -1
- package/dist/common/realFileSystem.js +5 -1
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProvider.d.ts +1 -1
- package/dist/common/serviceProvider.js +5 -1
- package/dist/common/serviceProvider.js.map +1 -1
- package/dist/common/serviceProviderExtensions.js +1 -1
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/common/stringUtils.js +5 -5
- package/dist/common/stringUtils.js.map +1 -1
- package/dist/common/textEditTracker.js +11 -7
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/textRange.js +3 -3
- package/dist/common/textRange.js.map +1 -1
- package/dist/languageServerBase.js +13 -13
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +3 -3
- package/dist/languageService/autoImporter.js +12 -8
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +27 -23
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/codeActionProvider.js +8 -8
- package/dist/languageService/codeActionProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +166 -162
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.js +9 -9
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/definitionProvider.js +14 -10
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js +7 -3
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +1 -1
- package/dist/languageService/documentSymbolCollector.js +21 -17
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.js +30 -26
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.js +1 -1
- package/dist/languageService/importSorter.js.map +1 -1
- package/dist/languageService/quickActions.js +10 -6
- package/dist/languageService/quickActions.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +1 -1
- package/dist/languageService/referencesProvider.js +24 -20
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +8 -4
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js +8 -4
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +20 -16
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.js +5 -1
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +7 -9
- package/dist/localization/localize.js +5 -4
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +0 -3
- package/dist/localization/package.nls.de.json +0 -3
- package/dist/localization/package.nls.en-us.json +4 -3
- package/dist/localization/package.nls.es.json +0 -3
- package/dist/localization/package.nls.fr.json +0 -3
- package/dist/localization/package.nls.it.json +0 -3
- package/dist/localization/package.nls.ja.json +0 -3
- package/dist/localization/package.nls.ko.json +0 -3
- package/dist/localization/package.nls.pl.json +0 -3
- package/dist/localization/package.nls.pt-br.json +0 -3
- package/dist/localization/package.nls.qps-ploc.json +0 -3
- package/dist/localization/package.nls.ru.json +0 -3
- package/dist/localization/package.nls.tr.json +0 -3
- package/dist/localization/package.nls.zh-cn.json +0 -3
- package/dist/localization/package.nls.zh-tw.json +0 -3
- package/dist/parser/characterStream.js +3 -3
- package/dist/parser/characterStream.js.map +1 -1
- package/dist/parser/characters.js +13 -9
- package/dist/parser/characters.js.map +1 -1
- package/dist/parser/parseNodes.d.ts +12 -12
- package/dist/parser/parseNodes.js +193 -193
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.js +563 -559
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/stringTokenUtils.js +47 -47
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizer.js +288 -288
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/parser/tokenizerTypes.js +35 -35
- package/dist/parser/tokenizerTypes.js.map +1 -1
- package/dist/parser/unicode.d.ts +3 -3
- package/dist/pyright.js +21 -17
- package/dist/pyright.js.map +1 -1
- package/dist/pyrightFileSystem.d.ts +1 -0
- package/dist/pyrightFileSystem.js +1 -1
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +1 -0
- package/dist/tests/chainedSourceFiles.test.js +5 -1
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/checker.test.js +5 -1
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/collectionUtils.test.js +5 -1
- package/dist/tests/collectionUtils.test.js.map +1 -1
- package/dist/tests/common.test.js +5 -1
- package/dist/tests/common.test.js.map +1 -1
- package/dist/tests/debug.test.js +8 -4
- package/dist/tests/debug.test.js.map +1 -1
- package/dist/tests/deferred.test.js +5 -1
- package/dist/tests/deferred.test.js.map +1 -1
- package/dist/tests/diagnosticOverrides.test.js +5 -1
- package/dist/tests/diagnosticOverrides.test.js.map +1 -1
- package/dist/tests/docStringUtils.test.js +5 -1
- package/dist/tests/docStringUtils.test.js.map +1 -1
- package/dist/tests/filesystem.test.js +5 -1
- package/dist/tests/filesystem.test.js.map +1 -1
- package/dist/tests/fourSlashParser.test.js +5 -1
- package/dist/tests/fourSlashParser.test.js.map +1 -1
- package/dist/tests/fourSlashRunner.test.js +5 -1
- package/dist/tests/fourSlashRunner.test.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashParser.js +13 -13
- package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
- package/dist/tests/harness/fourslash/fourSlashTypes.js +11 -7
- package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
- package/dist/tests/harness/fourslash/runner.d.ts +1 -1
- package/dist/tests/harness/fourslash/runner.js +5 -1
- package/dist/tests/harness/fourslash/runner.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js +5 -1
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.Consts.js +6 -2
- package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +17 -13
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/fourslash/testStateUtils.js +9 -5
- package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js +5 -1
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -1
- package/dist/tests/harness/testHost.js +5 -1
- package/dist/tests/harness/testHost.js.map +1 -1
- package/dist/tests/harness/utils.d.ts +13 -12
- package/dist/tests/harness/utils.js.map +1 -1
- package/dist/tests/harness/vfs/factory.js +6 -2
- package/dist/tests/harness/vfs/factory.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +4 -3
- package/dist/tests/harness/vfs/filesystem.js +11 -7
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/harness/vfs/pathValidation.js +30 -26
- package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +25 -25
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/ipythonMode.test.js +6 -6
- package/dist/tests/ipythonMode.test.js.map +1 -1
- package/dist/tests/localizer.test.js +5 -1
- package/dist/tests/localizer.test.js.map +1 -1
- package/dist/tests/logger.test.js +5 -1
- package/dist/tests/logger.test.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +10 -10
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/parser.test.js +13 -9
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/pathUtils.test.js +5 -1
- package/dist/tests/pathUtils.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js +5 -1
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js +5 -1
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/stringUtils.test.js +10 -6
- package/dist/tests/stringUtils.test.js.map +1 -1
- package/dist/tests/symbolNameUtils.test.js +5 -1
- package/dist/tests/symbolNameUtils.test.js.map +1 -1
- package/dist/tests/testState.test.js +5 -1
- package/dist/tests/testState.test.js.map +1 -1
- package/dist/tests/testUtils.js +11 -7
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/textRange.test.js +5 -1
- package/dist/tests/textRange.test.js.map +1 -1
- package/dist/tests/tokenizer.test.js +463 -459
- package/dist/tests/tokenizer.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +14 -2
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +11 -3
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +11 -3
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +10 -2
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +5 -1
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +44 -40
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/dist/tests/workspaceEditUtils.test.js +5 -1
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/dist/tests/zipfs.test.js +5 -1
- package/dist/tests/zipfs.test.js.map +1 -1
- package/dist/workspaceFactory.js +2 -2
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +2 -2
@@ -37,5 +37,5 @@ export interface IncompleteType {
|
|
37
37
|
isRecursionSentinel?: boolean;
|
38
38
|
}
|
39
39
|
export declare function isIncompleteType(cachedType: CachedType): cachedType is IncompleteType;
|
40
|
-
export
|
40
|
+
export type CachedType = Type | IncompleteType;
|
41
41
|
export declare function getCodeFlowEngine(evaluator: TypeEvaluator, speculativeTypeTracker: SpeculativeTypeTracker): CodeFlowEngine;
|
@@ -184,7 +184,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
184
184
|
let nodeForCacheLookup = flowNode.node;
|
185
185
|
const parentNode = flowNode.node.parent;
|
186
186
|
if (parentNode) {
|
187
|
-
if (parentNode.nodeType === 28 /* Function */ || parentNode.nodeType === 10 /* Class */) {
|
187
|
+
if (parentNode.nodeType === 28 /* ParseNodeType.Function */ || parentNode.nodeType === 10 /* ParseNodeType.Class */) {
|
188
188
|
nodeForCacheLookup = parentNode;
|
189
189
|
}
|
190
190
|
}
|
@@ -275,7 +275,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
275
275
|
// Don't treat unbound assignments to indexed expressions (i.e. "del x[0]")
|
276
276
|
// as true deletions. The most common use case for "del x[0]" is in a list,
|
277
277
|
// and the list class treats this as an element deletion, not an assignment.
|
278
|
-
if (reference.nodeType === 24 /* Index */) {
|
278
|
+
if (reference.nodeType === 24 /* ParseNodeType.Index */) {
|
279
279
|
// No need to explore further.
|
280
280
|
return setCacheEntry(curFlowNode, undefined, /* isIncomplete */ false);
|
281
281
|
}
|
@@ -286,7 +286,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
286
286
|
if ((0, typeUtils_1.isTypeAliasPlaceholder)(flowTypeResult.type)) {
|
287
287
|
flowTypeResult = undefined;
|
288
288
|
}
|
289
|
-
else if (reference.nodeType === 35 /* MemberAccess */ &&
|
289
|
+
else if (reference.nodeType === 35 /* ParseNodeType.MemberAccess */ &&
|
290
290
|
evaluator.isAsymmetricAccessorAssignment(targetNode)) {
|
291
291
|
flowTypeResult = undefined;
|
292
292
|
}
|
@@ -296,16 +296,16 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
296
296
|
// Is this a simple assignment to an index expression? If so, it could
|
297
297
|
// be assigning to a TypedDict, which requires narrowing of the expression's
|
298
298
|
// base type.
|
299
|
-
if (targetNode.nodeType === 24 /* Index */ &&
|
299
|
+
if (targetNode.nodeType === 24 /* ParseNodeType.Index */ &&
|
300
300
|
(0, parseTreeUtils_1.isMatchingExpression)(reference, targetNode.baseExpression)) {
|
301
|
-
if (((_b = targetNode.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 3 /* Assignment */ &&
|
301
|
+
if (((_b = targetNode.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 3 /* ParseNodeType.Assignment */ &&
|
302
302
|
targetNode.items.length === 1 &&
|
303
303
|
!targetNode.trailingComma &&
|
304
304
|
!targetNode.items[0].name &&
|
305
|
-
targetNode.items[0].argumentCategory === 0 /* Simple */ &&
|
306
|
-
targetNode.items[0].valueExpression.nodeType === 48 /* StringList */ &&
|
305
|
+
targetNode.items[0].argumentCategory === 0 /* ArgumentCategory.Simple */ &&
|
306
|
+
targetNode.items[0].valueExpression.nodeType === 48 /* ParseNodeType.StringList */ &&
|
307
307
|
targetNode.items[0].valueExpression.strings.length === 1 &&
|
308
|
-
targetNode.items[0].valueExpression.strings[0].nodeType === 49 /* String */) {
|
308
|
+
targetNode.items[0].valueExpression.strings[0].nodeType === 49 /* ParseNodeType.String */) {
|
309
309
|
const keyValue = targetNode.items[0].valueExpression.strings[0].value;
|
310
310
|
const narrowedResult = preventRecursion(assignmentFlowNode, () => {
|
311
311
|
const flowTypeResult = getTypeFromFlowNode(assignmentFlowNode.antecedent);
|
@@ -469,7 +469,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
469
469
|
const patternFlowNode = curFlowNode;
|
470
470
|
if (!reference || (0, parseTreeUtils_1.isMatchingExpression)(reference, patternFlowNode.subjectExpression)) {
|
471
471
|
const typeResult = evaluator.evaluateTypeForSubnode(patternFlowNode.statement, () => {
|
472
|
-
if (patternFlowNode.statement.nodeType === 64 /* Case */) {
|
472
|
+
if (patternFlowNode.statement.nodeType === 64 /* ParseNodeType.Case */) {
|
473
473
|
evaluator.evaluateTypesForCaseStatement(patternFlowNode.statement);
|
474
474
|
}
|
475
475
|
else {
|
@@ -488,7 +488,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
488
488
|
}
|
489
489
|
}
|
490
490
|
}
|
491
|
-
else if (patternFlowNode.statement.nodeType === 64 /* Case */) {
|
491
|
+
else if (patternFlowNode.statement.nodeType === 64 /* ParseNodeType.Case */) {
|
492
492
|
const caseStatement = patternFlowNode.statement;
|
493
493
|
// See if the reference is a subexpression within the subject expression.
|
494
494
|
const typeNarrowingCallback = (0, patternMatching_1.getPatternSubtypeNarrowingCallback)(evaluator, reference, patternFlowNode.subjectExpression);
|
@@ -518,7 +518,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
518
518
|
}
|
519
519
|
if (curFlowNode.flags & codeFlowTypes_1.FlowFlags.WildcardImport) {
|
520
520
|
const wildcardImportFlowNode = curFlowNode;
|
521
|
-
if (reference && reference.nodeType === 38 /* Name */) {
|
521
|
+
if (reference && reference.nodeType === 38 /* ParseNodeType.Name */) {
|
522
522
|
const nameValue = reference.value;
|
523
523
|
if (wildcardImportFlowNode.names.some((name) => name === nameValue)) {
|
524
524
|
return preventRecursion(curFlowNode, () => {
|
@@ -918,15 +918,15 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
918
918
|
// Handle a case statement with a class pattern.
|
919
919
|
if (curFlowNode.flags & codeFlowTypes_1.FlowFlags.NarrowForPattern) {
|
920
920
|
const narrowForPatternFlowNode = curFlowNode;
|
921
|
-
if (narrowForPatternFlowNode.statement.nodeType === 64 /* Case */) {
|
921
|
+
if (narrowForPatternFlowNode.statement.nodeType === 64 /* ParseNodeType.Case */) {
|
922
922
|
const subjectType = evaluator.getTypeOfExpression(narrowForPatternFlowNode.subjectExpression).type;
|
923
923
|
if (isCompatibleWithConstrainedTypeVar(subjectType, typeVar)) {
|
924
924
|
const patternNode = narrowForPatternFlowNode.statement.pattern;
|
925
|
-
if (patternNode.nodeType === 66 /* PatternAs */ &&
|
925
|
+
if (patternNode.nodeType === 66 /* ParseNodeType.PatternAs */ &&
|
926
926
|
patternNode.orPatterns.length === 1 &&
|
927
|
-
patternNode.orPatterns[0].nodeType === 68 /* PatternClass */) {
|
927
|
+
patternNode.orPatterns[0].nodeType === 68 /* ParseNodeType.PatternClass */) {
|
928
928
|
const classPatternNode = patternNode.orPatterns[0];
|
929
|
-
const classType = evaluator.getTypeOfExpression(classPatternNode.className, 16777218 /* CallBaseDefaults */).type;
|
929
|
+
const classType = evaluator.getTypeOfExpression(classPatternNode.className, 16777218 /* EvaluatorFlags.CallBaseDefaults */).type;
|
930
930
|
if ((0, types_1.isInstantiableClass)(classType)) {
|
931
931
|
const priorRemainingConstraints = narrowConstrainedTypeVarRecursive(narrowForPatternFlowNode.antecedent, typeVar);
|
932
932
|
return priorRemainingConstraints.filter((subtype) => types_1.ClassType.isSameGenericClass(subtype, classType));
|
@@ -942,8 +942,8 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
942
942
|
const conditionFlowNode = curFlowNode;
|
943
943
|
const testExpression = conditionFlowNode.expression;
|
944
944
|
const isPositiveTest = (curFlowNode.flags & codeFlowTypes_1.FlowFlags.TrueCondition) !== 0;
|
945
|
-
if (testExpression.nodeType === 9 /* Call */ &&
|
946
|
-
testExpression.leftExpression.nodeType === 38 /* Name */ &&
|
945
|
+
if (testExpression.nodeType === 9 /* ParseNodeType.Call */ &&
|
946
|
+
testExpression.leftExpression.nodeType === 38 /* ParseNodeType.Name */ &&
|
947
947
|
testExpression.leftExpression.value === 'isinstance' &&
|
948
948
|
testExpression.arguments.length === 2) {
|
949
949
|
const arg0Expr = testExpression.arguments[0].valueExpression;
|
@@ -954,9 +954,9 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
954
954
|
const priorRemainingConstraints = narrowConstrainedTypeVarRecursive(conditionFlowNode.antecedent, typeVar);
|
955
955
|
visitedFlowNodeMap.delete(curFlowNode.id);
|
956
956
|
const arg1Expr = testExpression.arguments[1].valueExpression;
|
957
|
-
const arg1Type = evaluator.getTypeOfExpression(arg1Expr, 8 /* EvaluateStringLiteralAsType */ |
|
958
|
-
32 /* DisallowParamSpec */ |
|
959
|
-
64 /* DisallowTypeVarTuple */).type;
|
957
|
+
const arg1Type = evaluator.getTypeOfExpression(arg1Expr, 8 /* EvaluatorFlags.EvaluateStringLiteralAsType */ |
|
958
|
+
32 /* EvaluatorFlags.DisallowParamSpec */ |
|
959
|
+
64 /* EvaluatorFlags.DisallowTypeVarTuple */).type;
|
960
960
|
if ((0, types_1.isInstantiableClass)(arg1Type)) {
|
961
961
|
return priorRemainingConstraints.filter((subtype) => {
|
962
962
|
if (types_1.ClassType.isSameGenericClass(subtype, arg1Type)) {
|
@@ -1040,7 +1040,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
1040
1040
|
}
|
1041
1041
|
// Don't attempt to evaluate a lambda call. We need to evaluate these in the
|
1042
1042
|
// context of its arguments.
|
1043
|
-
if (node.leftExpression.nodeType === 30 /* Lambda */) {
|
1043
|
+
if (node.leftExpression.nodeType === 30 /* ParseNodeType.Lambda */) {
|
1044
1044
|
return false;
|
1045
1045
|
}
|
1046
1046
|
// Initially set to false to avoid recursion.
|
@@ -1050,7 +1050,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
1050
1050
|
let noReturnTypeCount = 0;
|
1051
1051
|
let subtypeCount = 0;
|
1052
1052
|
// Evaluate the call base type.
|
1053
|
-
const callTypeResult = evaluator.getTypeOfExpression(node.leftExpression, 16777218 /* CallBaseDefaults */);
|
1053
|
+
const callTypeResult = evaluator.getTypeOfExpression(node.leftExpression, 16777218 /* EvaluatorFlags.CallBaseDefaults */);
|
1054
1054
|
const callType = callTypeResult.type;
|
1055
1055
|
(0, typeUtils_1.doForEachSubtype)(callType, (callSubtype) => {
|
1056
1056
|
var _a;
|
@@ -1077,7 +1077,7 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
1077
1077
|
callSubtype = callMethodType;
|
1078
1078
|
}
|
1079
1079
|
}
|
1080
|
-
const isCallAwaited = ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 6 /* Await */;
|
1080
|
+
const isCallAwaited = ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 6 /* ParseNodeType.Await */;
|
1081
1081
|
if ((0, types_1.isFunction)(callSubtype)) {
|
1082
1082
|
if (isFunctionNoReturn(callSubtype, isCallAwaited)) {
|
1083
1083
|
noReturnTypeCount++;
|
@@ -1151,14 +1151,14 @@ function getCodeFlowEngine(evaluator, speculativeTypeTracker) {
|
|
1151
1151
|
const functionStatements = functionType.details.declaration.node.suite.statements;
|
1152
1152
|
let foundRaiseNotImplemented = false;
|
1153
1153
|
for (const statement of functionStatements) {
|
1154
|
-
if (statement.nodeType !== 47 /* StatementList */ || statement.statements.length !== 1) {
|
1154
|
+
if (statement.nodeType !== 47 /* ParseNodeType.StatementList */ || statement.statements.length !== 1) {
|
1155
1155
|
break;
|
1156
1156
|
}
|
1157
1157
|
const simpleStatement = statement.statements[0];
|
1158
|
-
if (simpleStatement.nodeType === 48 /* StringList */) {
|
1158
|
+
if (simpleStatement.nodeType === 48 /* ParseNodeType.StringList */) {
|
1159
1159
|
continue;
|
1160
1160
|
}
|
1161
|
-
if (simpleStatement.nodeType === 43 /* Raise */ && simpleStatement.typeExpression) {
|
1161
|
+
if (simpleStatement.nodeType === 43 /* ParseNodeType.Raise */ && simpleStatement.typeExpression) {
|
1162
1162
|
// Check for a raising about 'NotImplementedError' or a subtype thereof.
|
1163
1163
|
const exceptionType = evaluator.getType(simpleStatement.typeExpression);
|
1164
1164
|
if (exceptionType &&
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"codeFlowEngine.js","sourceRoot":"","sources":["../../../src/analyzer/codeFlowEngine.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"codeFlowEngine.js","sourceRoot":"","sources":["../../../src/analyzer/codeFlowEngine.ts"],"names":[],"mappings":"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"}
|
@@ -19,7 +19,7 @@ export declare enum FlowFlags {
|
|
19
19
|
NarrowForPattern = 262144,
|
20
20
|
ExhaustedMatch = 524288
|
21
21
|
}
|
22
|
-
export
|
22
|
+
export type CodeFlowReferenceExpressionNode = NameNode | MemberAccessNode | IndexNode;
|
23
23
|
export declare function getUniqueFlowNodeId(): number;
|
24
24
|
export interface FlowNode {
|
25
25
|
flags: FlowFlags;
|
@@ -36,38 +36,38 @@ var FlowFlags;
|
|
36
36
|
FlowFlags[FlowFlags["FalseNeverCondition"] = 131072] = "FalseNeverCondition";
|
37
37
|
FlowFlags[FlowFlags["NarrowForPattern"] = 262144] = "NarrowForPattern";
|
38
38
|
FlowFlags[FlowFlags["ExhaustedMatch"] = 524288] = "ExhaustedMatch";
|
39
|
-
})(FlowFlags
|
39
|
+
})(FlowFlags || (exports.FlowFlags = FlowFlags = {}));
|
40
40
|
let _nextFlowNodeId = 1;
|
41
41
|
function getUniqueFlowNodeId() {
|
42
42
|
return _nextFlowNodeId++;
|
43
43
|
}
|
44
44
|
exports.getUniqueFlowNodeId = getUniqueFlowNodeId;
|
45
45
|
function isCodeFlowSupportedForReference(reference) {
|
46
|
-
if (reference.nodeType === 38 /* Name */) {
|
46
|
+
if (reference.nodeType === 38 /* ParseNodeType.Name */) {
|
47
47
|
return true;
|
48
48
|
}
|
49
|
-
if (reference.nodeType === 35 /* MemberAccess */) {
|
49
|
+
if (reference.nodeType === 35 /* ParseNodeType.MemberAccess */) {
|
50
50
|
return isCodeFlowSupportedForReference(reference.leftExpression);
|
51
51
|
}
|
52
|
-
if (reference.nodeType === 24 /* Index */) {
|
52
|
+
if (reference.nodeType === 24 /* ParseNodeType.Index */) {
|
53
53
|
// Allow index expressions that have a single subscript that is a
|
54
54
|
// literal integer or string value.
|
55
55
|
if (reference.items.length !== 1 ||
|
56
56
|
reference.trailingComma ||
|
57
57
|
reference.items[0].name !== undefined ||
|
58
|
-
reference.items[0].argumentCategory !== 0 /* Simple */) {
|
58
|
+
reference.items[0].argumentCategory !== 0 /* ArgumentCategory.Simple */) {
|
59
59
|
return false;
|
60
60
|
}
|
61
61
|
const subscriptNode = reference.items[0].valueExpression;
|
62
|
-
const isIntegerIndex = subscriptNode.nodeType === 40 /* Number */ && !subscriptNode.isImaginary && subscriptNode.isInteger;
|
63
|
-
const isNegativeIntegerIndex = subscriptNode.nodeType === 55 /* UnaryOperation */ &&
|
64
|
-
subscriptNode.operator === 33 /* Subtract */ &&
|
65
|
-
subscriptNode.expression.nodeType === 40 /* Number */ &&
|
62
|
+
const isIntegerIndex = subscriptNode.nodeType === 40 /* ParseNodeType.Number */ && !subscriptNode.isImaginary && subscriptNode.isInteger;
|
63
|
+
const isNegativeIntegerIndex = subscriptNode.nodeType === 55 /* ParseNodeType.UnaryOperation */ &&
|
64
|
+
subscriptNode.operator === 33 /* OperatorType.Subtract */ &&
|
65
|
+
subscriptNode.expression.nodeType === 40 /* ParseNodeType.Number */ &&
|
66
66
|
!subscriptNode.expression.isImaginary &&
|
67
67
|
subscriptNode.expression.isInteger;
|
68
|
-
const isStringIndex = subscriptNode.nodeType === 48 /* StringList */ &&
|
68
|
+
const isStringIndex = subscriptNode.nodeType === 48 /* ParseNodeType.StringList */ &&
|
69
69
|
subscriptNode.strings.length === 1 &&
|
70
|
-
subscriptNode.strings[0].nodeType === 49 /* String */;
|
70
|
+
subscriptNode.strings[0].nodeType === 49 /* ParseNodeType.String */;
|
71
71
|
if (!isIntegerIndex && !isNegativeIntegerIndex && !isStringIndex) {
|
72
72
|
return false;
|
73
73
|
}
|
@@ -78,28 +78,28 @@ function isCodeFlowSupportedForReference(reference) {
|
|
78
78
|
exports.isCodeFlowSupportedForReference = isCodeFlowSupportedForReference;
|
79
79
|
function createKeyForReference(reference) {
|
80
80
|
let key;
|
81
|
-
if (reference.nodeType === 38 /* Name */) {
|
81
|
+
if (reference.nodeType === 38 /* ParseNodeType.Name */) {
|
82
82
|
key = reference.value;
|
83
83
|
}
|
84
|
-
else if (reference.nodeType === 35 /* MemberAccess */) {
|
84
|
+
else if (reference.nodeType === 35 /* ParseNodeType.MemberAccess */) {
|
85
85
|
const leftKey = createKeyForReference(reference.leftExpression);
|
86
86
|
key = `${leftKey}.${reference.memberName.value}`;
|
87
87
|
}
|
88
|
-
else if (reference.nodeType === 24 /* Index */) {
|
88
|
+
else if (reference.nodeType === 24 /* ParseNodeType.Index */) {
|
89
89
|
const leftKey = createKeyForReference(reference.baseExpression);
|
90
90
|
(0, debug_1.assert)(reference.items.length === 1);
|
91
91
|
const expr = reference.items[0].valueExpression;
|
92
|
-
if (expr.nodeType === 40 /* Number */) {
|
92
|
+
if (expr.nodeType === 40 /* ParseNodeType.Number */) {
|
93
93
|
key = `${leftKey}[${expr.value.toString()}]`;
|
94
94
|
}
|
95
|
-
else if (expr.nodeType === 48 /* StringList */) {
|
95
|
+
else if (expr.nodeType === 48 /* ParseNodeType.StringList */) {
|
96
96
|
const valExpr = expr;
|
97
|
-
(0, debug_1.assert)(valExpr.strings.length === 1 && valExpr.strings[0].nodeType === 49 /* String */);
|
97
|
+
(0, debug_1.assert)(valExpr.strings.length === 1 && valExpr.strings[0].nodeType === 49 /* ParseNodeType.String */);
|
98
98
|
key = `${leftKey}["${valExpr.strings[0].value}"]`;
|
99
99
|
}
|
100
|
-
else if (expr.nodeType === 55 /* UnaryOperation */ &&
|
101
|
-
expr.operator === 33 /* Subtract */ &&
|
102
|
-
expr.expression.nodeType === 40 /* Number */) {
|
100
|
+
else if (expr.nodeType === 55 /* ParseNodeType.UnaryOperation */ &&
|
101
|
+
expr.operator === 33 /* OperatorType.Subtract */ &&
|
102
|
+
expr.expression.nodeType === 40 /* ParseNodeType.Number */) {
|
103
103
|
key = `${leftKey}[-${expr.expression.value.toString()}]`;
|
104
104
|
}
|
105
105
|
else {
|
@@ -113,16 +113,16 @@ function createKeyForReference(reference) {
|
|
113
113
|
}
|
114
114
|
exports.createKeyForReference = createKeyForReference;
|
115
115
|
function createKeysForReferenceSubexpressions(reference) {
|
116
|
-
if (reference.nodeType === 38 /* Name */) {
|
116
|
+
if (reference.nodeType === 38 /* ParseNodeType.Name */) {
|
117
117
|
return [createKeyForReference(reference)];
|
118
118
|
}
|
119
|
-
if (reference.nodeType === 35 /* MemberAccess */) {
|
119
|
+
if (reference.nodeType === 35 /* ParseNodeType.MemberAccess */) {
|
120
120
|
return [
|
121
121
|
...createKeysForReferenceSubexpressions(reference.leftExpression),
|
122
122
|
createKeyForReference(reference),
|
123
123
|
];
|
124
124
|
}
|
125
|
-
if (reference.nodeType === 24 /* Index */) {
|
125
|
+
if (reference.nodeType === 24 /* ParseNodeType.Index */) {
|
126
126
|
return [
|
127
127
|
...createKeysForReferenceSubexpressions(reference.baseExpression),
|
128
128
|
createKeyForReference(reference),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"codeFlowTypes.js","sourceRoot":"","sources":["../../../src/analyzer/codeFlowTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,2CAA+C;AAkB/C,IAAY,SAmBX;AAnBD,WAAY,SAAS;IACjB,uDAAoB,CAAA;IACpB,2CAAc,CAAA;IACd,uDAAoB,CAAA;IACpB,mDAAkB,CAAA;IAClB,sDAAmB,CAAA;IACnB,8CAAe,CAAA;IACf,8DAAuB,CAAA;IACvB,6DAAsB,CAAA;IACtB,+DAAuB,CAAA;IACvB,4CAAc,CAAA;IACd,gEAAwB,CAAA;IACxB,0DAAqB,CAAA;IACrB,yEAA4B,CAAA;IAC5B,yEAA4B,CAAA;IAC5B,yEAA4B,CAAA;IAC5B,4EAA6B,CAAA;IAC7B,sEAA0B,CAAA;IAC1B,kEAAwB,CAAA;AAC5B,CAAC,EAnBW,SAAS,
|
1
|
+
{"version":3,"file":"codeFlowTypes.js","sourceRoot":"","sources":["../../../src/analyzer/codeFlowTypes.ts"],"names":[],"mappings":"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"}
|