@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
@@ -29,6 +29,7 @@ function formatControlFlowGraph(flowNode) {
|
|
29
29
|
})(BoxCharacter || (BoxCharacter = {}));
|
30
30
|
let Connection;
|
31
31
|
(function (Connection) {
|
32
|
+
Connection[Connection["None"] = 0] = "None";
|
32
33
|
Connection[Connection["Up"] = 1] = "Up";
|
33
34
|
Connection[Connection["Down"] = 2] = "Down";
|
34
35
|
Connection[Connection["Left"] = 4] = "Left";
|
@@ -264,26 +265,26 @@ function formatControlFlowGraph(flowNode) {
|
|
264
265
|
const children = getChildren(node);
|
265
266
|
for (let i = 0; i < children.length; i++) {
|
266
267
|
const child = children[i];
|
267
|
-
let connector = 8 /* Right */;
|
268
|
+
let connector = 8 /* Connection.Right */;
|
268
269
|
if (child.lane === node.lane)
|
269
|
-
connector |= 4 /* Left */;
|
270
|
+
connector |= 4 /* Connection.Left */;
|
270
271
|
if (i > 0)
|
271
|
-
connector |= 1 /* Up */;
|
272
|
+
connector |= 1 /* Connection.Up */;
|
272
273
|
if (i < children.length - 1)
|
273
|
-
connector |= 2 /* Down */;
|
274
|
+
connector |= 2 /* Connection.Down */;
|
274
275
|
connectors[node.level][child.lane] |= connector;
|
275
276
|
}
|
276
277
|
if (children.length === 0) {
|
277
|
-
connectors[node.level][node.lane] |= 16 /* NoChildren */;
|
278
|
+
connectors[node.level][node.lane] |= 16 /* Connection.NoChildren */;
|
278
279
|
}
|
279
280
|
const parents = getParents(node);
|
280
281
|
for (let i = 0; i < parents.length; i++) {
|
281
282
|
const parent = parents[i];
|
282
|
-
let connector = 4 /* Left */;
|
283
|
+
let connector = 4 /* Connection.Left */;
|
283
284
|
if (i > 0)
|
284
|
-
connector |= 1 /* Up */;
|
285
|
+
connector |= 1 /* Connection.Up */;
|
285
286
|
if (i < parents.length - 1)
|
286
|
-
connector |= 2 /* Down */;
|
287
|
+
connector |= 2 /* Connection.Down */;
|
287
288
|
connectors[node.level - 1][parent.lane] |= connector;
|
288
289
|
}
|
289
290
|
}
|
@@ -294,11 +295,12 @@ function formatControlFlowGraph(flowNode) {
|
|
294
295
|
const above = lane > 0 ? connectors[column][lane - 1] : 0;
|
295
296
|
let connector = connectors[column][lane];
|
296
297
|
if (!connector) {
|
297
|
-
|
298
|
-
|
298
|
+
connector = 0 /* Connection.None */;
|
299
|
+
if (left & 8 /* Connection.Right */) {
|
300
|
+
connector |= 12 /* Connection.LeftRight */;
|
299
301
|
}
|
300
|
-
if (above & 2 /* Down */) {
|
301
|
-
connector |= 3 /* UpDown */;
|
302
|
+
if (above & 2 /* Connection.Down */) {
|
303
|
+
connector |= 3 /* Connection.UpDown */;
|
302
304
|
}
|
303
305
|
connectors[column][lane] = connector;
|
304
306
|
}
|
@@ -307,7 +309,7 @@ function formatControlFlowGraph(flowNode) {
|
|
307
309
|
for (let column = 0; column < columnCount; column++) {
|
308
310
|
for (let lane = 0; lane < lanes.length; lane++) {
|
309
311
|
const connector = connectors[column][lane];
|
310
|
-
const fill = connector & 4 /* Left */ ? "\u2500" /* lr */ : ' ';
|
312
|
+
const fill = connector & 4 /* Connection.Left */ ? "\u2500" /* BoxCharacter.lr */ : ' ';
|
311
313
|
const node = grid[column][lane];
|
312
314
|
if (!node) {
|
313
315
|
if (column < columnCount - 1) {
|
@@ -322,8 +324,8 @@ function formatControlFlowGraph(flowNode) {
|
|
322
324
|
}
|
323
325
|
}
|
324
326
|
writeLane(lane, getBoxCharacter(connector));
|
325
|
-
writeLane(lane, connector & 8 /* Right */ && column < columnCount - 1 && !grid[column + 1][lane]
|
326
|
-
? "\u2500" /* lr */
|
327
|
+
writeLane(lane, connector & 8 /* Connection.Right */ && column < columnCount - 1 && !grid[column + 1][lane]
|
328
|
+
? "\u2500" /* BoxCharacter.lr */
|
327
329
|
: ' ');
|
328
330
|
}
|
329
331
|
}
|
@@ -334,28 +336,28 @@ function formatControlFlowGraph(flowNode) {
|
|
334
336
|
}
|
335
337
|
function getBoxCharacter(connector) {
|
336
338
|
switch (connector) {
|
337
|
-
case 3 /* UpDown */:
|
338
|
-
return "\u2502" /* ud */;
|
339
|
-
case 12 /* LeftRight */:
|
340
|
-
return "\u2500" /* lr */;
|
341
|
-
case 5 /* UpLeft */:
|
342
|
-
return "\u256F" /* ul */;
|
343
|
-
case 9 /* UpRight */:
|
344
|
-
return "\u2570" /* ur */;
|
345
|
-
case 6 /* DownLeft */:
|
346
|
-
return "\u256E" /* dl */;
|
347
|
-
case 10 /* DownRight */:
|
348
|
-
return "\u256D" /* dr */;
|
349
|
-
case 7 /* UpDownLeft */:
|
350
|
-
return "\u2524" /* udl */;
|
351
|
-
case 11 /* UpDownRight */:
|
352
|
-
return "\u251C" /* udr */;
|
353
|
-
case 13 /* UpLeftRight */:
|
354
|
-
return "\u2534" /* ulr */;
|
355
|
-
case 14 /* DownLeftRight */:
|
356
|
-
return "\u252C" /* dlr */;
|
357
|
-
case 15 /* UpDownLeftRight */:
|
358
|
-
return "\u256B" /* udlr */;
|
339
|
+
case 3 /* Connection.UpDown */:
|
340
|
+
return "\u2502" /* BoxCharacter.ud */;
|
341
|
+
case 12 /* Connection.LeftRight */:
|
342
|
+
return "\u2500" /* BoxCharacter.lr */;
|
343
|
+
case 5 /* Connection.UpLeft */:
|
344
|
+
return "\u256F" /* BoxCharacter.ul */;
|
345
|
+
case 9 /* Connection.UpRight */:
|
346
|
+
return "\u2570" /* BoxCharacter.ur */;
|
347
|
+
case 6 /* Connection.DownLeft */:
|
348
|
+
return "\u256E" /* BoxCharacter.dl */;
|
349
|
+
case 10 /* Connection.DownRight */:
|
350
|
+
return "\u256D" /* BoxCharacter.dr */;
|
351
|
+
case 7 /* Connection.UpDownLeft */:
|
352
|
+
return "\u2524" /* BoxCharacter.udl */;
|
353
|
+
case 11 /* Connection.UpDownRight */:
|
354
|
+
return "\u251C" /* BoxCharacter.udr */;
|
355
|
+
case 13 /* Connection.UpLeftRight */:
|
356
|
+
return "\u2534" /* BoxCharacter.ulr */;
|
357
|
+
case 14 /* Connection.DownLeftRight */:
|
358
|
+
return "\u252C" /* BoxCharacter.dlr */;
|
359
|
+
case 15 /* Connection.UpDownLeftRight */:
|
360
|
+
return "\u256B" /* BoxCharacter.udlr */;
|
359
361
|
}
|
360
362
|
return ' ';
|
361
363
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"codeFlowUtils.js","sourceRoot":"","sources":["../../../src/analyzer/codeFlowUtils.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"codeFlowUtils.js","sourceRoot":"","sources":["../../../src/analyzer/codeFlowUtils.ts"],"names":[],"mappings":"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"}
|
@@ -30,7 +30,7 @@ const logTypeVarContextUpdates = false;
|
|
30
30
|
// to produce the narrowest type that meets all of the requirements. If the type var context
|
31
31
|
// has been "locked", it simply validates that the srcType is compatible (with no attempt
|
32
32
|
// to widen or narrow).
|
33
|
-
function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext, flags = 0 /* Default */, recursionCount = 0) {
|
33
|
+
function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext, flags = 0 /* AssignTypeFlags.Default */, recursionCount = 0) {
|
34
34
|
if (logTypeVarContextUpdates) {
|
35
35
|
const indent = ' '.repeat(recursionCount * 2);
|
36
36
|
console.log(`${indent}`);
|
@@ -43,8 +43,8 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
43
43
|
logTypeVarContext(evaluator, typeVarContext, indent);
|
44
44
|
}
|
45
45
|
let isTypeVarInScope = true;
|
46
|
-
const isInvariant = (flags & 1 /* EnforceInvariance */) !== 0;
|
47
|
-
const isContravariant = (flags & 2 /* ReverseTypeVarMatching */) !== 0;
|
46
|
+
const isInvariant = (flags & 1 /* AssignTypeFlags.EnforceInvariance */) !== 0;
|
47
|
+
const isContravariant = (flags & 2 /* AssignTypeFlags.ReverseTypeVarMatching */) !== 0;
|
48
48
|
// If the TypeVar doesn't have a scope ID, then it's being used
|
49
49
|
// outside of a valid TypeVar scope. This will be reported as a
|
50
50
|
// separate error. Just ignore this case to avoid redundant errors.
|
@@ -71,7 +71,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
71
71
|
}
|
72
72
|
// If we're in "ignore type var scope" mode, don't generate
|
73
73
|
// an error in this path.
|
74
|
-
if ((flags & 512 /* IgnoreTypeVarScope */) !== 0) {
|
74
|
+
if ((flags & 512 /* AssignTypeFlags.IgnoreTypeVarScope */) !== 0) {
|
75
75
|
return true;
|
76
76
|
}
|
77
77
|
isTypeVarInScope = false;
|
@@ -82,7 +82,12 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
82
82
|
return false;
|
83
83
|
}
|
84
84
|
}
|
85
|
-
|
85
|
+
// An in-scope placeholder TypeVar can always be assigned to itself,
|
86
|
+
// but we won't record this in the typeVarContext.
|
87
|
+
if ((0, types_1.isTypeSame)(destType, srcType) && destType.isInScopePlaceholder) {
|
88
|
+
return true;
|
89
|
+
}
|
90
|
+
if ((flags & 8 /* AssignTypeFlags.SkipSolveTypeVars */) !== 0) {
|
86
91
|
return evaluator.assignType(evaluator.makeTopLevelTypeVarsConcrete(destType), evaluator.makeTopLevelTypeVarsConcrete(srcType), diag,
|
87
92
|
/* destTypeVarContext */ undefined,
|
88
93
|
/* srcTypeVarContext */ undefined, flags, recursionCount);
|
@@ -113,13 +118,6 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
113
118
|
!destType.details.isVariadic) {
|
114
119
|
srcType = types_1.TypeVarType.cloneForUnpacked(srcType, /* isInUnion */ true);
|
115
120
|
}
|
116
|
-
// If we're attempting to assign `type` to Type[T], transform `type` into `Type[Any]`.
|
117
|
-
if (types_1.TypeBase.isInstantiable(destType) &&
|
118
|
-
(0, types_1.isClassInstance)(srcType) &&
|
119
|
-
types_1.ClassType.isBuiltIn(srcType, 'type') &&
|
120
|
-
!srcType.typeArguments) {
|
121
|
-
srcType = types_1.AnyType.create();
|
122
|
-
}
|
123
121
|
// Handle the constrained case. This case needs to be handled specially
|
124
122
|
// because type narrowing isn't used in this case. For example, if the
|
125
123
|
// source type is "Literal[1]" and the constraint list includes the type
|
@@ -140,7 +138,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
140
138
|
let adjSrcType = srcType;
|
141
139
|
// If the source is a class that is missing type arguments, fill
|
142
140
|
// in missing type arguments with Unknown.
|
143
|
-
if ((flags & 2048 /* AllowUnspecifiedTypeArguments */) === 0) {
|
141
|
+
if ((flags & 2048 /* AssignTypeFlags.AllowUnspecifiedTypeArguments */) === 0) {
|
144
142
|
if ((0, types_1.isClass)(adjSrcType) && adjSrcType.includeSubclasses) {
|
145
143
|
adjSrcType = (0, typeUtils_1.specializeWithDefaultTypeArgs)(adjSrcType);
|
146
144
|
}
|
@@ -167,7 +165,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
167
165
|
diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.typeAssignmentMismatch().format(evaluator.printSrcDestTypes(adjSrcType, destType)));
|
168
166
|
return false;
|
169
167
|
}
|
170
|
-
if ((flags & 1024 /* PopulatingExpectedType */) !== 0) {
|
168
|
+
if ((flags & 1024 /* AssignTypeFlags.PopulatingExpectedType */) !== 0) {
|
171
169
|
// If we're populating the expected type and the srcType is
|
172
170
|
// Unknown, ignore it.
|
173
171
|
if ((0, types_1.isUnknown)(adjSrcType)) {
|
@@ -197,7 +195,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
197
195
|
else if (!(0, types_1.isTypeSame)(curWideTypeBound, adjSrcType, {}, recursionCount)) {
|
198
196
|
if (evaluator.assignType(curWideTypeBound, evaluator.makeTopLevelTypeVarsConcrete(adjSrcType), diagAddendum,
|
199
197
|
/* destTypeVarContext */ undefined,
|
200
|
-
/* srcTypeVarContext */ undefined, flags & 512 /* IgnoreTypeVarScope */, recursionCount)) {
|
198
|
+
/* srcTypeVarContext */ undefined, flags & 512 /* AssignTypeFlags.IgnoreTypeVarScope */, recursionCount)) {
|
201
199
|
// The srcType is narrower than the current wideTypeBound, so replace it.
|
202
200
|
// If it's Any, don't replace it because Any is the narrowest type already.
|
203
201
|
if (!(0, types_1.isAny)(curWideTypeBound)) {
|
@@ -206,7 +204,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
206
204
|
}
|
207
205
|
else if (!evaluator.assignType(adjSrcType, curWideTypeBound, diagAddendum,
|
208
206
|
/* destTypeVarContext */ undefined,
|
209
|
-
/* srcTypeVarContext */ undefined, flags & 512 /* IgnoreTypeVarScope */, recursionCount)) {
|
207
|
+
/* srcTypeVarContext */ undefined, flags & 512 /* AssignTypeFlags.IgnoreTypeVarScope */, recursionCount)) {
|
210
208
|
if (diag && diagAddendum) {
|
211
209
|
diag.addMessage(localize_1.Localizer.DiagnosticAddendum.typeAssignmentMismatch().format(evaluator.printSrcDestTypes(curWideTypeBound, adjSrcType)));
|
212
210
|
diag.addAddendum(diagAddendum);
|
@@ -219,7 +217,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
219
217
|
if (!evaluator.assignType(newWideTypeBound, curNarrowTypeBound,
|
220
218
|
/* diag */ undefined,
|
221
219
|
/* destTypeVarContext */ undefined,
|
222
|
-
/* srcTypeVarContext */ undefined, flags & 512 /* IgnoreTypeVarScope */, recursionCount)) {
|
220
|
+
/* srcTypeVarContext */ undefined, flags & 512 /* AssignTypeFlags.IgnoreTypeVarScope */, recursionCount)) {
|
223
221
|
if (diag && diagAddendum) {
|
224
222
|
diag.addMessage(localize_1.Localizer.DiagnosticAddendum.typeAssignmentMismatch().format(evaluator.printSrcDestTypes(curNarrowTypeBound, newWideTypeBound)));
|
225
223
|
diag.addAddendum(diagAddendum);
|
@@ -234,8 +232,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
234
232
|
newNarrowTypeBound = adjSrcType;
|
235
233
|
}
|
236
234
|
else if (!(0, types_1.isTypeSame)(curNarrowTypeBound, adjSrcType, {}, recursionCount)) {
|
237
|
-
if (evaluator.assignType(curNarrowTypeBound, adjSrcType, diagAddendum,
|
238
|
-
/* destTypeVarContext */ undefined,
|
235
|
+
if (evaluator.assignType(curNarrowTypeBound, adjSrcType, diagAddendum, typeVarContext,
|
239
236
|
/* srcTypeVarContext */ undefined, flags, recursionCount)) {
|
240
237
|
// No need to widen. Stick with the existing type unless it's unknown
|
241
238
|
// or partly unknown, in which case we'll replace it with a known type
|
@@ -243,9 +240,8 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
243
240
|
if ((0, typeUtils_1.isPartlyUnknown)(curNarrowTypeBound) &&
|
244
241
|
!(0, types_1.isUnknown)(adjSrcType) &&
|
245
242
|
evaluator.assignType(adjSrcType, curNarrowTypeBound,
|
246
|
-
/* diag */ undefined,
|
247
|
-
/*
|
248
|
-
/* srcTypeVarContext */ undefined, flags & 512 /* IgnoreTypeVarScope */, recursionCount)) {
|
243
|
+
/* diag */ undefined, typeVarContext,
|
244
|
+
/* srcTypeVarContext */ undefined, flags & 512 /* AssignTypeFlags.IgnoreTypeVarScope */, recursionCount)) {
|
249
245
|
newNarrowTypeBound = adjSrcType;
|
250
246
|
}
|
251
247
|
else {
|
@@ -254,8 +250,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
254
250
|
}
|
255
251
|
else if ((0, types_1.isTypeVar)(curNarrowTypeBound) &&
|
256
252
|
!(0, types_1.isTypeVar)(adjSrcType) &&
|
257
|
-
evaluator.assignType(evaluator.makeTopLevelTypeVarsConcrete(curNarrowTypeBound), adjSrcType, diagAddendum,
|
258
|
-
/* destTypeVarContext */ undefined,
|
253
|
+
evaluator.assignType(evaluator.makeTopLevelTypeVarsConcrete(curNarrowTypeBound), adjSrcType, diagAddendum, typeVarContext,
|
259
254
|
/* srcTypeVarContext */ undefined, flags, recursionCount)) {
|
260
255
|
// If the existing narrow type bound was a TypeVar that is not
|
261
256
|
// part of the current context we can replace it with the new
|
@@ -269,9 +264,8 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
269
264
|
return false;
|
270
265
|
}
|
271
266
|
if (evaluator.assignType(adjSrcType, curNarrowTypeBound,
|
272
|
-
/* diag */ undefined,
|
273
|
-
/*
|
274
|
-
/* srcTypeVarContext */ undefined, flags & 512 /* IgnoreTypeVarScope */, recursionCount)) {
|
267
|
+
/* diag */ undefined, typeVarContext,
|
268
|
+
/* srcTypeVarContext */ undefined, flags & 512 /* AssignTypeFlags.IgnoreTypeVarScope */, recursionCount)) {
|
275
269
|
newNarrowTypeBound = adjSrcType;
|
276
270
|
}
|
277
271
|
else if ((0, types_1.isVariadicTypeVar)(destType)) {
|
@@ -321,9 +315,8 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
321
315
|
const adjWideTypeBound = makeConcrete
|
322
316
|
? evaluator.makeTopLevelTypeVarsConcrete(curWideTypeBound, /* makeParamSpecsConcrete */ true)
|
323
317
|
: curWideTypeBound;
|
324
|
-
if (!evaluator.assignType(adjWideTypeBound, newNarrowTypeBound, diag === null || diag === void 0 ? void 0 : diag.createAddendum(),
|
325
|
-
/*
|
326
|
-
/* srcTypeVarContext */ undefined, 512 /* IgnoreTypeVarScope */, recursionCount)) {
|
318
|
+
if (!evaluator.assignType(adjWideTypeBound, newNarrowTypeBound, diag === null || diag === void 0 ? void 0 : diag.createAddendum(), typeVarContext,
|
319
|
+
/* srcTypeVarContext */ undefined, 512 /* AssignTypeFlags.IgnoreTypeVarScope */, recursionCount)) {
|
327
320
|
if (diag && diagAddendum) {
|
328
321
|
diag.addMessage(localize_1.Localizer.DiagnosticAddendum.typeAssignmentMismatch().format(evaluator.printSrcDestTypes(newNarrowTypeBound, adjWideTypeBound)));
|
329
322
|
}
|
@@ -348,7 +341,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
348
341
|
? typeVarContext
|
349
342
|
: new typeVarContext_1.TypeVarContext(destType.scopeId);
|
350
343
|
if (!evaluator.assignType(destType.details.boundType, evaluator.makeTopLevelTypeVarsConcrete(updatedType), diag === null || diag === void 0 ? void 0 : diag.createAddendum(), effectiveTypeVarContext,
|
351
|
-
/* srcTypeVarContext */ undefined, flags & 512 /* IgnoreTypeVarScope */, recursionCount)) {
|
344
|
+
/* srcTypeVarContext */ undefined, flags & 512 /* AssignTypeFlags.IgnoreTypeVarScope */, recursionCount)) {
|
352
345
|
// Avoid adding a message that will confuse users if the TypeVar was
|
353
346
|
// synthesized for internal purposes.
|
354
347
|
if (!destType.details.isSynthesized) {
|
@@ -362,7 +355,7 @@ function assignTypeToTypeVar(evaluator, destType, srcType, diag, typeVarContext,
|
|
362
355
|
}
|
363
356
|
}
|
364
357
|
if (!typeVarContext.isLocked() && isTypeVarInScope) {
|
365
|
-
updateTypeVarType(evaluator, typeVarContext, destType, newNarrowTypeBound, newWideTypeBound, (flags & (1024 /* PopulatingExpectedType */ | 128 /* RetainLiteralsForTypeVar */)) !== 0);
|
358
|
+
updateTypeVarType(evaluator, typeVarContext, destType, newNarrowTypeBound, newWideTypeBound, (flags & (1024 /* AssignTypeFlags.PopulatingExpectedType */ | 128 /* AssignTypeFlags.RetainLiteralsForTypeVar */)) !== 0);
|
366
359
|
}
|
367
360
|
if (logTypeVarContextUpdates) {
|
368
361
|
const indent = ' '.repeat(recursionCount * 2);
|
@@ -404,7 +397,7 @@ function assignTypeToConstrainedTypeVar(evaluator, destType, srcType, diag, type
|
|
404
397
|
if ((0, types_1.isTypeVar)(srcType)) {
|
405
398
|
if (evaluator.assignType(destType, concreteSrcType,
|
406
399
|
/* diag */ undefined, new typeVarContext_1.TypeVarContext(destType.scopeId),
|
407
|
-
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount)) {
|
400
|
+
/* srcTypeVarContext */ undefined, 0 /* AssignTypeFlags.Default */, recursionCount)) {
|
408
401
|
constrainedType = srcType;
|
409
402
|
// If the source and dest are both instantiables (type[T]), then
|
410
403
|
// we need to convert to an instance (T).
|
@@ -433,14 +426,14 @@ function assignTypeToConstrainedTypeVar(evaluator, destType, srcType, diag, type
|
|
433
426
|
if (evaluator.assignType(adjustedConstraint, srcSubtype,
|
434
427
|
/* diag */ undefined,
|
435
428
|
/* destTypeVarContext */ undefined,
|
436
|
-
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount)) {
|
429
|
+
/* srcTypeVarContext */ undefined, 0 /* AssignTypeFlags.Default */, recursionCount)) {
|
437
430
|
if (!constrainedSubtype ||
|
438
431
|
evaluator.assignType(types_1.TypeBase.isInstantiable(destType)
|
439
432
|
? (0, typeUtils_1.convertToInstantiable)(constrainedSubtype)
|
440
433
|
: constrainedSubtype, adjustedConstraint,
|
441
434
|
/* diag */ undefined,
|
442
435
|
/* destTypeVarContext */ undefined,
|
443
|
-
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount)) {
|
436
|
+
/* srcTypeVarContext */ undefined, 0 /* AssignTypeFlags.Default */, recursionCount)) {
|
444
437
|
constrainedSubtype = (0, typeUtils_1.addConditionToType)(constraint, (0, typeUtils_1.getTypeCondition)(srcSubtype));
|
445
438
|
constraintIndexUsed = i;
|
446
439
|
}
|
@@ -450,7 +443,7 @@ function assignTypeToConstrainedTypeVar(evaluator, destType, srcType, diag, type
|
|
450
443
|
// We found a source subtype that is not compatible with the dest.
|
451
444
|
// This is OK if we're handling the contravariant case because only
|
452
445
|
// one subtype needs to be assignable in that case.
|
453
|
-
if ((flags & 2 /* ReverseTypeVarMatching */) === 0) {
|
446
|
+
if ((flags & 2 /* AssignTypeFlags.ReverseTypeVarMatching */) === 0) {
|
454
447
|
isCompatible = false;
|
455
448
|
}
|
456
449
|
}
|
@@ -478,7 +471,7 @@ function assignTypeToConstrainedTypeVar(evaluator, destType, srcType, diag, type
|
|
478
471
|
return evaluator.assignType(adjustedConstraint, concreteSrcType,
|
479
472
|
/* diag */ undefined,
|
480
473
|
/* destTypeVarContext */ undefined,
|
481
|
-
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount);
|
474
|
+
/* srcTypeVarContext */ undefined, 0 /* AssignTypeFlags.Default */, recursionCount);
|
482
475
|
});
|
483
476
|
}
|
484
477
|
}
|
@@ -496,14 +489,14 @@ function assignTypeToConstrainedTypeVar(evaluator, destType, srcType, diag, type
|
|
496
489
|
if (!evaluator.assignType(curNarrowTypeBound, constrainedType,
|
497
490
|
/* diag */ undefined,
|
498
491
|
/* destTypeVarContext */ undefined,
|
499
|
-
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount)) {
|
492
|
+
/* srcTypeVarContext */ undefined, 0 /* AssignTypeFlags.Default */, recursionCount)) {
|
500
493
|
// Handle the case where one of the constrained types is a wider
|
501
494
|
// version of another constrained type that was previously assigned
|
502
495
|
// to the type variable.
|
503
496
|
if (evaluator.assignType(constrainedType, curNarrowTypeBound,
|
504
497
|
/* diag */ undefined,
|
505
498
|
/* destTypeVarContext */ undefined,
|
506
|
-
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount)) {
|
499
|
+
/* srcTypeVarContext */ undefined, 0 /* AssignTypeFlags.Default */, recursionCount)) {
|
507
500
|
if (!typeVarContext.isLocked() && isTypeVarInScope) {
|
508
501
|
updateTypeVarType(evaluator, typeVarContext, destType, constrainedType, curWideTypeBound);
|
509
502
|
}
|
@@ -559,7 +552,7 @@ function assignTypeToParamSpec(evaluator, destType, srcType, diag, typeVarContex
|
|
559
552
|
};
|
560
553
|
return param;
|
561
554
|
});
|
562
|
-
const newFunction = types_1.FunctionType.createInstance('', '', '', srcType.details.flags | 65536 /* ParamSpecValue */);
|
555
|
+
const newFunction = types_1.FunctionType.createInstance('', '', '', srcType.details.flags | 65536 /* FunctionTypeFlags.ParamSpecValue */);
|
563
556
|
parameters.forEach((param) => {
|
564
557
|
types_1.FunctionType.addParameter(newFunction, param);
|
565
558
|
});
|
@@ -579,13 +572,13 @@ function assignTypeToParamSpec(evaluator, destType, srcType, diag, typeVarContex
|
|
579
572
|
if (evaluator.assignType(existingFunction, newFunction,
|
580
573
|
/* diag */ undefined,
|
581
574
|
/* destTypeVarContext */ undefined,
|
582
|
-
/* srcTypeVarContext */ undefined, 32 /* SkipFunctionReturnTypeCheck */, recursionCount)) {
|
575
|
+
/* srcTypeVarContext */ undefined, 32 /* AssignTypeFlags.SkipFunctionReturnTypeCheck */, recursionCount)) {
|
583
576
|
updateContextWithNewFunction = true;
|
584
577
|
}
|
585
578
|
else if (evaluator.assignType(newFunction, existingFunction,
|
586
579
|
/* diag */ undefined,
|
587
580
|
/* destTypeVarContext */ undefined,
|
588
|
-
/* srcTypeVarContext */ undefined, 32 /* SkipFunctionReturnTypeCheck */, recursionCount)) {
|
581
|
+
/* srcTypeVarContext */ undefined, 32 /* AssignTypeFlags.SkipFunctionReturnTypeCheck */, recursionCount)) {
|
589
582
|
// The existing function is already narrower than the new function, so
|
590
583
|
// no need to narrow it further.
|
591
584
|
return;
|
@@ -642,7 +635,7 @@ function populateTypeVarContextBasedOnExpectedType(evaluator, type, expectedType
|
|
642
635
|
if (!expectedTypeArgs) {
|
643
636
|
return evaluator.assignType(type, expectedType,
|
644
637
|
/* diag */ undefined, typeVarContext,
|
645
|
-
/* srcTypeVarContext */ undefined, 1024 /* PopulatingExpectedType */);
|
638
|
+
/* srcTypeVarContext */ undefined, 1024 /* AssignTypeFlags.PopulatingExpectedType */);
|
646
639
|
}
|
647
640
|
evaluator.inferTypeParameterVarianceForClass(type);
|
648
641
|
// If the expected type is the same as the target type (commonly the case),
|
@@ -659,7 +652,7 @@ function populateTypeVarContextBasedOnExpectedType(evaluator, type, expectedType
|
|
659
652
|
}
|
660
653
|
if (typeArgValue) {
|
661
654
|
const variance = types_1.TypeVarType.getVariance(entry.typeVar);
|
662
|
-
updateTypeVarType(evaluator, typeVarContext, entry.typeVar, variance === 3 /* Covariant */ ? undefined : typeArgValue, variance === 4 /* Contravariant */ ? undefined : typeArgValue);
|
655
|
+
updateTypeVarType(evaluator, typeVarContext, entry.typeVar, variance === 3 /* Variance.Covariant */ ? undefined : typeArgValue, variance === 4 /* Variance.Contravariant */ ? undefined : typeArgValue);
|
663
656
|
if (entry.tupleTypes) {
|
664
657
|
typeVarContext.setTupleTypeVar(entry.typeVar, entry.tupleTypes.map((tupleEntry) => {
|
665
658
|
let tupleType = tupleEntry.type;
|
@@ -682,7 +675,7 @@ function populateTypeVarContextBasedOnExpectedType(evaluator, type, expectedType
|
|
682
675
|
typeVar.details.isParamSpec = true;
|
683
676
|
}
|
684
677
|
// Use invariance here so we set the narrow and wide values on the TypeVar.
|
685
|
-
typeVar.details.declaredVariance = 2 /* Invariant */;
|
678
|
+
typeVar.details.declaredVariance = 2 /* Variance.Invariant */;
|
686
679
|
typeVar.scopeId = expectedTypeScopeId;
|
687
680
|
return typeVar;
|
688
681
|
});
|
@@ -703,7 +696,7 @@ function populateTypeVarContextBasedOnExpectedType(evaluator, type, expectedType
|
|
703
696
|
const syntheticTypeVarContext = new typeVarContext_1.TypeVarContext(expectedTypeScopeId);
|
704
697
|
if (evaluator.assignType(genericExpectedType, specializedType,
|
705
698
|
/* diag */ undefined, syntheticTypeVarContext,
|
706
|
-
/* srcTypeVarContext */ undefined, 1024 /* PopulatingExpectedType */)) {
|
699
|
+
/* srcTypeVarContext */ undefined, 1024 /* AssignTypeFlags.PopulatingExpectedType */)) {
|
707
700
|
let isResultValid = true;
|
708
701
|
synthExpectedTypeArgs.forEach((typeVar, index) => {
|
709
702
|
let synthTypeVar = syntheticTypeVarContext.getPrimarySignature().getTypeVarType(typeVar);
|
@@ -756,7 +749,7 @@ function populateTypeVarContextBasedOnExpectedType(evaluator, type, expectedType
|
|
756
749
|
isResultValid = false;
|
757
750
|
typeArgValue = types_1.UnknownType.create();
|
758
751
|
}
|
759
|
-
updateTypeVarType(evaluator, typeVarContext, targetTypeVar, variance === 3 /* Covariant */ ? undefined : typeArgValue, variance === 4 /* Contravariant */ ? undefined : typeArgValue);
|
752
|
+
updateTypeVarType(evaluator, typeVarContext, targetTypeVar, variance === 3 /* Variance.Covariant */ ? undefined : typeArgValue, variance === 4 /* Variance.Contravariant */ ? undefined : typeArgValue);
|
760
753
|
}
|
761
754
|
else {
|
762
755
|
isResultValid = false;
|