@zzzen/pyright-internal 1.2.0-dev.20260621 → 1.2.0-dev.20260628

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.
Files changed (113) hide show
  1. package/dist/analyzer/codeFlowEngine.js +6 -0
  2. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  3. package/dist/analyzer/docStringUtils.d.ts +1 -0
  4. package/dist/analyzer/docStringUtils.js +78 -0
  5. package/dist/analyzer/docStringUtils.js.map +1 -1
  6. package/dist/analyzer/importResolver.js +69 -4
  7. package/dist/analyzer/importResolver.js.map +1 -1
  8. package/dist/analyzer/importStatementUtils.js +19 -1
  9. package/dist/analyzer/importStatementUtils.js.map +1 -1
  10. package/dist/analyzer/parseTreeUtils.js +8 -0
  11. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  12. package/dist/analyzer/patternMatching.js +44 -0
  13. package/dist/analyzer/patternMatching.js.map +1 -1
  14. package/dist/analyzer/program.js +6 -1
  15. package/dist/analyzer/program.js.map +1 -1
  16. package/dist/analyzer/pythonPathUtils.js +2 -2
  17. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  18. package/dist/analyzer/staticExpressions.js +91 -19
  19. package/dist/analyzer/staticExpressions.js.map +1 -1
  20. package/dist/analyzer/typeEvaluator.js +53 -61
  21. package/dist/analyzer/typeEvaluator.js.map +1 -1
  22. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
  23. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  24. package/dist/analyzer/typeGuards.js +52 -4
  25. package/dist/analyzer/typeGuards.js.map +1 -1
  26. package/dist/common/docStringService.d.ts +2 -0
  27. package/dist/common/docStringService.js +5 -1
  28. package/dist/common/docStringService.js.map +1 -1
  29. package/dist/common/fullAccessHost.d.ts +2 -1
  30. package/dist/common/fullAccessHost.js +43 -9
  31. package/dist/common/fullAccessHost.js.map +1 -1
  32. package/dist/common/host.d.ts +2 -2
  33. package/dist/common/host.js +1 -1
  34. package/dist/common/host.js.map +1 -1
  35. package/dist/common/uri/fileUri.d.ts +1 -0
  36. package/dist/common/uri/fileUri.js +20 -0
  37. package/dist/common/uri/fileUri.js.map +1 -1
  38. package/dist/common/uri/memoization.js +5 -1
  39. package/dist/common/uri/memoization.js.map +1 -1
  40. package/dist/common/uri/uriUtils.d.ts +2 -0
  41. package/dist/common/uri/uriUtils.js +22 -0
  42. package/dist/common/uri/uriUtils.js.map +1 -1
  43. package/dist/languageServerBase.js +6 -1
  44. package/dist/languageServerBase.js.map +1 -1
  45. package/dist/languageService/completionProvider.d.ts +6 -0
  46. package/dist/languageService/completionProvider.js +194 -46
  47. package/dist/languageService/completionProvider.js.map +1 -1
  48. package/dist/languageService/completionProviderUtils.d.ts +2 -0
  49. package/dist/languageService/completionProviderUtils.js.map +1 -1
  50. package/dist/languageService/documentSymbolCollector.d.ts +15 -1
  51. package/dist/languageService/documentSymbolCollector.js +64 -41
  52. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  53. package/dist/languageService/hoverProvider.js +22 -0
  54. package/dist/languageService/hoverProvider.js.map +1 -1
  55. package/dist/languageService/importStatementCandidates.d.ts +16 -0
  56. package/dist/languageService/importStatementCandidates.js +100 -0
  57. package/dist/languageService/importStatementCandidates.js.map +1 -0
  58. package/dist/languageService/referencesProvider.d.ts +16 -9
  59. package/dist/languageService/referencesProvider.js +188 -32
  60. package/dist/languageService/referencesProvider.js.map +1 -1
  61. package/dist/languageService/renameProvider.d.ts +7 -2
  62. package/dist/languageService/renameProvider.js +45 -17
  63. package/dist/languageService/renameProvider.js.map +1 -1
  64. package/dist/localization/localize.d.ts +6 -0
  65. package/dist/localization/localize.js +4 -0
  66. package/dist/localization/localize.js.map +1 -1
  67. package/dist/localization/package.nls.en-us.json +3 -0
  68. package/dist/parser/parser.js +9 -0
  69. package/dist/parser/parser.js.map +1 -1
  70. package/dist/readonlyAugmentedFileSystem.js +13 -6
  71. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  72. package/dist/tests/checker.test.js +4 -0
  73. package/dist/tests/checker.test.js.map +1 -1
  74. package/dist/tests/completions.test.js +118 -9
  75. package/dist/tests/completions.test.js.map +1 -1
  76. package/dist/tests/docStringReturnExtraction.test.d.ts +1 -0
  77. package/dist/tests/docStringReturnExtraction.test.js +125 -0
  78. package/dist/tests/docStringReturnExtraction.test.js.map +1 -0
  79. package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.d.ts +1 -0
  80. package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.js +35 -0
  81. package/dist/tests/fourslash/completions.call.unpackedGenericTypedDict.fourslash.js.map +1 -0
  82. package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.d.ts +1 -0
  83. package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.js +86 -0
  84. package/dist/tests/fourslash/completions.keywords.expressionContext.fourslash.js.map +1 -0
  85. package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.d.ts +1 -0
  86. package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.js +122 -0
  87. package/dist/tests/fourslash/diagnostics.missingModuleSource.compiledModule.fourslash.js.map +1 -0
  88. package/dist/tests/harness/testAccessHost.d.ts +1 -1
  89. package/dist/tests/harness/testAccessHost.js +1 -1
  90. package/dist/tests/harness/testAccessHost.js.map +1 -1
  91. package/dist/tests/importResolver.test.js +33 -0
  92. package/dist/tests/importResolver.test.js.map +1 -1
  93. package/dist/tests/importStatementUtils.test.js +92 -0
  94. package/dist/tests/importStatementUtils.test.js.map +1 -1
  95. package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -1
  96. package/dist/tests/lsp/languageServerTestUtils.js +1 -1
  97. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  98. package/dist/tests/parser.test.js +18 -0
  99. package/dist/tests/parser.test.js.map +1 -1
  100. package/dist/tests/pyrightFileSystem.test.js +25 -0
  101. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  102. package/dist/tests/signatureHelp.test.js +73 -0
  103. package/dist/tests/signatureHelp.test.js.map +1 -1
  104. package/dist/tests/typeEvaluator1.test.js +4 -0
  105. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  106. package/dist/tests/typeEvaluator2.test.js +6 -0
  107. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  108. package/dist/tests/typeEvaluator4.test.js +22 -0
  109. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  110. package/dist/tests/typeEvaluator8.test.js +23 -21
  111. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  112. package/dist/types.d.ts +1 -0
  113. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"pythonPathUtils.js","sourceRoot":"","sources":["../../../../../src/analyzer/pythonPathUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pythonPathUtils.js","sourceRoot":"","sources":["../../../../../src/analyzer/pythonPathUtils.ts"],"names":[],"mappings":"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"}
@@ -16,12 +16,26 @@ const pythonVersion_1 = require("../common/pythonVersion");
16
16
  // Returns undefined if the expression cannot be evaluated
17
17
  // statically as a bool value or true/false if it can.
18
18
  function evaluateStaticBoolExpression(node, execEnv, definedConstants, typingImportAliases, sysImportAliases) {
19
+ return _evaluateStaticBoolOrBoolLikeExpression(node, execEnv, definedConstants, typingImportAliases, sysImportAliases, _evaluateBoolConstant);
20
+ }
21
+ // Similar to evaluateStaticBoolExpression except that it handles other non-bool
22
+ // values that are statically falsy or truthy (like "None", "...", and
23
+ // numeric/string/container literals).
24
+ function evaluateStaticBoolLikeExpression(node, execEnv, definedConstants, typingImportAliases, sysImportAliases) {
25
+ return _evaluateStaticBoolOrBoolLikeExpression(node, execEnv, definedConstants, typingImportAliases, sysImportAliases, _evaluateBoolLikeLiteral);
26
+ }
27
+ // Shared implementation of the two functions above.
28
+ // The `evaluateLeafAsBool` callback evaluates leaf expressions.
29
+ function _evaluateStaticBoolOrBoolLikeExpression(node, execEnv, definedConstants, typingImportAliases, sysImportAliases, evaluateLeafAsBool) {
19
30
  if (node.nodeType === 4 /* ParseNodeType.AssignmentExpression */) {
20
- return evaluateStaticBoolExpression(node.d.rightExpr, execEnv, definedConstants, typingImportAliases, sysImportAliases);
31
+ return _evaluateStaticBoolOrBoolLikeExpression(node.d.rightExpr, execEnv, definedConstants, typingImportAliases, sysImportAliases, evaluateLeafAsBool);
21
32
  }
22
33
  if (node.nodeType === 55 /* ParseNodeType.UnaryOperation */) {
23
34
  if (node.d.operator === 38 /* OperatorType.Not */) {
24
- const value = evaluateStaticBoolLikeExpression(node.d.expr, execEnv, definedConstants, typingImportAliases, sysImportAliases);
35
+ const value = _evaluateStaticBoolOrBoolLikeExpression(node.d.expr, execEnv, definedConstants, typingImportAliases, sysImportAliases,
36
+ // `not x` always forces a truthiness context on its operand and yields real `bool`.
37
+ // So the operand is folded with the bool-like leaf even for strict callers.
38
+ _evaluateBoolLikeLiteral);
25
39
  if (value !== undefined) {
26
40
  return !value;
27
41
  }
@@ -30,8 +44,8 @@ function evaluateStaticBoolExpression(node, execEnv, definedConstants, typingImp
30
44
  else if (node.nodeType === 7 /* ParseNodeType.BinaryOperation */) {
31
45
  // Is it an OR or AND expression?
32
46
  if (node.d.operator === 37 /* OperatorType.Or */ || node.d.operator === 36 /* OperatorType.And */) {
33
- const leftValue = evaluateStaticBoolExpression(node.d.leftExpr, execEnv, definedConstants, typingImportAliases, sysImportAliases);
34
- const rightValue = evaluateStaticBoolExpression(node.d.rightExpr, execEnv, definedConstants, typingImportAliases, sysImportAliases);
47
+ const leftValue = _evaluateStaticBoolOrBoolLikeExpression(node.d.leftExpr, execEnv, definedConstants, typingImportAliases, sysImportAliases, evaluateLeafAsBool);
48
+ const rightValue = _evaluateStaticBoolOrBoolLikeExpression(node.d.rightExpr, execEnv, definedConstants, typingImportAliases, sysImportAliases, evaluateLeafAsBool);
35
49
  if (leftValue === undefined || rightValue === undefined) {
36
50
  return undefined;
37
51
  }
@@ -95,14 +109,6 @@ function evaluateStaticBoolExpression(node, execEnv, definedConstants, typingImp
95
109
  }
96
110
  }
97
111
  }
98
- else if (node.nodeType === 14 /* ParseNodeType.Constant */) {
99
- if (node.d.constType === 34 /* KeywordType.True */) {
100
- return true;
101
- }
102
- else if (node.d.constType === 15 /* KeywordType.False */) {
103
- return false;
104
- }
105
- }
106
112
  else if (node.nodeType === 38 /* ParseNodeType.Name */) {
107
113
  if (node.d.value === 'TYPE_CHECKING') {
108
114
  return true;
@@ -124,18 +130,84 @@ function evaluateStaticBoolExpression(node, execEnv, definedConstants, typingImp
124
130
  return !!constant;
125
131
  }
126
132
  }
127
- return undefined;
133
+ return evaluateLeafAsBool(node);
128
134
  }
129
- // Similar to evaluateStaticBoolExpression except that it handles
130
- // other non-bool values that are statically falsy or truthy
131
- // (like "None").
132
- function evaluateStaticBoolLikeExpression(node, execEnv, definedConstants, typingImportAliases, sysImportAliases) {
135
+ function _evaluateBoolConstant(node) {
133
136
  if (node.nodeType === 14 /* ParseNodeType.Constant */) {
134
- if (node.d.constType === 27 /* KeywordType.None */) {
137
+ if (node.d.constType === 34 /* KeywordType.True */) {
138
+ return true;
139
+ }
140
+ if (node.d.constType === 15 /* KeywordType.False */) {
135
141
  return false;
136
142
  }
137
143
  }
138
- return evaluateStaticBoolExpression(node, execEnv, definedConstants, typingImportAliases, sysImportAliases);
144
+ return undefined;
145
+ }
146
+ function _evaluateBoolLikeLiteral(node) {
147
+ switch (node.nodeType) {
148
+ case 14 /* ParseNodeType.Constant */:
149
+ if (node.d.constType === 34 /* KeywordType.True */) {
150
+ return true;
151
+ }
152
+ if (node.d.constType === 15 /* KeywordType.False */ || node.d.constType === 27 /* KeywordType.None */) {
153
+ return false;
154
+ }
155
+ return undefined;
156
+ case 21 /* ParseNodeType.Ellipsis */:
157
+ return true;
158
+ case 40 /* ParseNodeType.Number */:
159
+ return _evaluateNumberTruthiness(node);
160
+ case 48 /* ParseNodeType.StringList */:
161
+ return _evaluateStringListTruthiness(node);
162
+ case 34 /* ParseNodeType.List */:
163
+ case 45 /* ParseNodeType.Set */:
164
+ case 52 /* ParseNodeType.Tuple */:
165
+ return _evaluateSequenceTruthiness(node.d.items);
166
+ case 18 /* ParseNodeType.Dictionary */:
167
+ return _evaluateDictTruthiness(node.d.items);
168
+ default:
169
+ return undefined;
170
+ }
171
+ }
172
+ function _evaluateNumberTruthiness(node) {
173
+ // bool(v) is False iff v == 0:
174
+ // - zero (0, 0.0, 0j) is falsy;
175
+ // - everything else is truthy, including infinity and NaN.
176
+ if (typeof node.d.value === 'bigint') {
177
+ return node.d.value !== BigInt(0);
178
+ }
179
+ return node.d.value !== 0;
180
+ }
181
+ function _evaluateStringListTruthiness(node) {
182
+ // If any segment is an f-string, the concatenated value is runtime-dependent
183
+ // (e.g. f"{x}" may be empty or not).
184
+ if (node.d.strings.some((str) => str.nodeType === 30 /* ParseNodeType.FormatString */)) {
185
+ return undefined;
186
+ }
187
+ // Truthy iff any segment is non-empty.
188
+ return node.d.strings.some((str) => str.d.value.length > 0);
189
+ }
190
+ function _evaluateSequenceTruthiness(items) {
191
+ if (items.length === 0) {
192
+ return false;
193
+ }
194
+ // A concrete element (not an unpack "*x" or a comprehension) guarantees the sequence is non-empty.
195
+ if (items.some((item) => item.nodeType !== 56 /* ParseNodeType.Unpack */ && item.nodeType !== 11 /* ParseNodeType.Comprehension */)) {
196
+ return true;
197
+ }
198
+ // Only unpacks/comprehensions remain (e.g. "[*x]", "[i for i in y]").
199
+ return undefined;
200
+ }
201
+ function _evaluateDictTruthiness(items) {
202
+ if (items.length === 0) {
203
+ return false;
204
+ }
205
+ // A concrete key/value entry guarantees the dict is non-empty.
206
+ if (items.some((item) => item.nodeType === 20 /* ParseNodeType.DictionaryKeyEntry */)) {
207
+ return true;
208
+ }
209
+ // Only "**" expansions or comprehensions remain.
210
+ return undefined;
139
211
  }
140
212
  function _convertTupleToVersion(node) {
141
213
  if (node.d.items.length >= 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"staticExpressions.js","sourceRoot":"","sources":["../../../../../src/analyzer/staticExpressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"staticExpressions.js","sourceRoot":"","sources":["../../../../../src/analyzer/staticExpressions.ts"],"names":[],"mappings":"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"}
@@ -564,9 +564,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
564
564
  const anySpecialForm = types_1.AnyType.createSpecialForm();
565
565
  if ((0, types_1.isAny)(anySpecialForm)) {
566
566
  types_1.TypeBase.setSpecialForm(anySpecialForm, anyClass);
567
- if (isTypeFormSupported(node)) {
568
- types_1.TypeBase.setTypeForm(anySpecialForm, (0, typeUtils_1.convertToInstance)(anySpecialForm));
569
- }
567
+ types_1.TypeBase.setTypeForm(anySpecialForm, (0, typeUtils_1.convertToInstance)(anySpecialForm));
570
568
  }
571
569
  }
572
570
  }
@@ -695,7 +693,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
695
693
  // reported them when analyzing the contents of the string.
696
694
  expectingInstantiable = false;
697
695
  }
698
- typeResult = getTypeOfStringList(node, flags);
696
+ typeResult = getTypeOfStringList(node, flags, inferenceContext);
699
697
  break;
700
698
  }
701
699
  case 40 /* ParseNodeType.Number */: {
@@ -966,7 +964,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
966
964
  }
967
965
  return typeResult;
968
966
  }
969
- function getTypeOfStringList(node, flags) {
967
+ function getTypeOfStringList(node, flags, inferenceContext) {
970
968
  let typeResult;
971
969
  if ((flags & 8 /* EvalFlags.StrLiteralAsType */) !== 0 && (flags & 1073741824 /* EvalFlags.TypeFormArg */) === 0) {
972
970
  return getTypeOfStringListAsType(node, flags);
@@ -1031,9 +1029,16 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
1031
1029
  isIncomplete,
1032
1030
  };
1033
1031
  }
1034
- if (node.d.strings.length !== 1 ||
1035
- node.d.strings[0].nodeType !== 49 /* ParseNodeType.String */ ||
1036
- !isTypeFormSupported(node)) {
1032
+ if (node.d.strings.length !== 1 || node.d.strings[0].nodeType !== 49 /* ParseNodeType.String */) {
1033
+ return typeResult;
1034
+ }
1035
+ // Only attempt to interpret the string as a TypeForm forward reference when
1036
+ // there's a signal that a TypeForm value is wanted in this context. Doing it
1037
+ // unconditionally can trigger expensive (and recursion-prone) type lookups
1038
+ // for plain string literals in non-type contexts.
1039
+ const wantsTypeForm = (flags & 1073741824 /* EvalFlags.TypeFormArg */) !== 0 ||
1040
+ (inferenceContext !== undefined && expectedTypeWantsTypeForm(inferenceContext.expectedType));
1041
+ if (!wantsTypeForm) {
1037
1042
  return typeResult;
1038
1043
  }
1039
1044
  // For performance reasons, do not attempt to treat the string literal
@@ -1826,11 +1831,22 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
1826
1831
  types_1.FunctionType.addKeywordOnlyParamSeparator(newFunction);
1827
1832
  }
1828
1833
  tdEntries.forEach((tdEntry, name) => {
1829
- types_1.FunctionType.addParam(newFunction, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, tdEntry.valueType, types_1.FunctionParamFlags.TypeDeclared, name, tdEntry.isRequired ? undefined : tdEntry.valueType));
1834
+ // A TypedDict entry type may carry the TypedDict's own type parameters (e.g. an unpacked
1835
+ // generic TypedDict `**kwargs: Unpack[TD[int]]`), so specialize each entry against the
1836
+ // (possibly generic) TypedDict instance. Specializing an already-concrete type is a
1837
+ // no-op, so this is safe for non-generic TypedDicts.
1838
+ const specializedValueType = (0, typeUtils_1.partiallySpecializeType)(tdEntry.valueType, kwargsType,
1839
+ /* typeClassType */ undefined);
1840
+ types_1.FunctionType.addParam(newFunction, types_1.FunctionParam.create(0 /* ParamCategory.Simple */, specializedValueType, types_1.FunctionParamFlags.TypeDeclared, name, tdEntry.isRequired ? undefined : specializedValueType));
1830
1841
  });
1831
1842
  const extraItemsType = kwargsType.shared.typedDictEntries?.extraItems?.valueType;
1832
1843
  if (extraItemsType && !(0, types_1.isNever)(extraItemsType)) {
1833
- types_1.FunctionType.addParam(newFunction, types_1.FunctionParam.create(2 /* ParamCategory.KwargsDict */, extraItemsType, types_1.FunctionParamFlags.TypeDeclared, 'kwargs'));
1844
+ // Specialized for the same reason as the per-entry types above. This PEP 728
1845
+ // `extra_items` branch uses the identical mechanism and is intentionally not
1846
+ // separately tested.
1847
+ const specializedExtraItemsType = (0, typeUtils_1.partiallySpecializeType)(extraItemsType, kwargsType,
1848
+ /* typeClassType */ undefined);
1849
+ types_1.FunctionType.addParam(newFunction, types_1.FunctionParam.create(2 /* ParamCategory.KwargsDict */, specializedExtraItemsType, types_1.FunctionParamFlags.TypeDeclared, 'kwargs'));
1834
1850
  }
1835
1851
  return newFunction;
1836
1852
  }
@@ -3389,9 +3405,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
3389
3405
  return { type, isIncomplete };
3390
3406
  }
3391
3407
  function addTypeFormForSymbol(node, type, flags, includesVarDecl) {
3392
- if (!isTypeFormSupported(node)) {
3393
- return type;
3394
- }
3395
3408
  const isValid = isSymbolValidTypeExpression(type, includesVarDecl);
3396
3409
  // If the type already has type information associated with it, don't replace.
3397
3410
  if (type.props?.typeForm) {
@@ -5297,9 +5310,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
5297
5310
  ...aliasInfo,
5298
5311
  typeArgs: aliasTypeArgs,
5299
5312
  });
5300
- if (isTypeFormSupported(node)) {
5301
- type = types_1.TypeBase.cloneWithTypeForm(type, reportedError ? undefined : (0, typeUtils_1.convertToInstance)(type));
5302
- }
5313
+ type = types_1.TypeBase.cloneWithTypeForm(type, reportedError ? undefined : (0, typeUtils_1.convertToInstance)(type));
5303
5314
  if (baseType.props?.typeAliasInfo) {
5304
5315
  return { type, node };
5305
5316
  }
@@ -6183,7 +6194,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
6183
6194
  return { type: types_1.UnknownType.create() };
6184
6195
  }
6185
6196
  const typeFormResult = getTypeOfArgExpectingType(convertNodeToArg(node.d.args[0]), {
6186
- typeFormArg: isTypeFormSupported(node),
6197
+ typeFormArg: true,
6187
6198
  noNonTypeSpecialForms: true,
6188
6199
  typeExpression: true,
6189
6200
  });
@@ -9705,9 +9716,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
9705
9716
  (flags & 128 /* EvalFlags.InstantiableType */) !== 0
9706
9717
  ? prefetched.noneTypeClass
9707
9718
  : (0, typeUtils_1.convertToInstance)(prefetched.noneTypeClass);
9708
- if (isTypeFormSupported(node)) {
9709
- type = types_1.TypeBase.cloneWithTypeForm(type, (0, typeUtils_1.convertToInstance)(type));
9710
- }
9719
+ type = types_1.TypeBase.cloneWithTypeForm(type, (0, typeUtils_1.convertToInstance)(type));
9711
9720
  }
9712
9721
  }
9713
9722
  else if (node.d.constType === 34 /* KeywordType.True */ ||
@@ -11017,7 +11026,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
11017
11026
  if (paramSpec) {
11018
11027
  types_1.FunctionType.addParamSpecVariadics(functionType, (0, typeUtils_1.convertToInstance)(paramSpec));
11019
11028
  }
11020
- if (isTypeFormSupported(errorNode) && isValidTypeForm) {
11029
+ if (isValidTypeForm) {
11021
11030
  functionType = types_1.TypeBase.cloneWithTypeForm(functionType, (0, typeUtils_1.convertToInstance)(functionType));
11022
11031
  }
11023
11032
  return functionType;
@@ -11182,7 +11191,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
11182
11191
  if ((0, types_1.isUnion)(result) && prefetched?.unionTypeClass && (0, types_1.isInstantiableClass)(prefetched.unionTypeClass)) {
11183
11192
  result = types_1.TypeBase.cloneAsSpecialForm(result, types_1.ClassType.cloneAsInstance(prefetched.unionTypeClass));
11184
11193
  }
11185
- if (isTypeFormSupported(node) && isValidTypeForm) {
11194
+ if (isValidTypeForm) {
11186
11195
  result = types_1.TypeBase.cloneWithTypeForm(result, (0, typeUtils_1.convertToInstance)(result));
11187
11196
  }
11188
11197
  return result;
@@ -11228,9 +11237,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
11228
11237
  return (0, typeUtils_1.convertToInstance)(validateTypeArg(typeArg) ? typeArg.type : types_1.UnknownType.create());
11229
11238
  });
11230
11239
  let resultType = types_1.ClassType.specialize(classType, convertedTypeArgs);
11231
- if (isTypeFormSupported(errorNode)) {
11232
- resultType = types_1.TypeBase.cloneWithTypeForm(resultType, (0, typeUtils_1.convertToInstance)(resultType));
11233
- }
11240
+ resultType = types_1.TypeBase.cloneWithTypeForm(resultType, (0, typeUtils_1.convertToInstance)(resultType));
11234
11241
  return resultType;
11235
11242
  }
11236
11243
  // Creates a "TypeGuard" and "TypeIs" type.
@@ -11252,9 +11259,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
11252
11259
  return (0, typeUtils_1.convertToInstance)(validateTypeArg(typeArg) ? typeArg.type : types_1.UnknownType.create());
11253
11260
  });
11254
11261
  let resultType = types_1.ClassType.specialize(classType, convertedTypeArgs);
11255
- if (isTypeFormSupported(errorNode)) {
11256
- resultType = types_1.TypeBase.cloneWithTypeForm(resultType, (0, typeUtils_1.convertToInstance)(resultType));
11257
- }
11262
+ resultType = types_1.TypeBase.cloneWithTypeForm(resultType, (0, typeUtils_1.convertToInstance)(resultType));
11258
11263
  return resultType;
11259
11264
  }
11260
11265
  function createSelfType(classType, errorNode, typeArgs, flags) {
@@ -11687,7 +11692,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
11687
11692
  unionType = types_1.TypeBase.cloneWithTypeForm(unionType, undefined);
11688
11693
  }
11689
11694
  }
11690
- else if (isTypeFormSupported(errorNode)) {
11695
+ else {
11691
11696
  const typeFormType = (0, types_1.combineTypes)(types.map((t) => t.props.typeForm));
11692
11697
  unionType = types_1.TypeBase.cloneWithTypeForm(unionType, typeFormType);
11693
11698
  }
@@ -11953,16 +11958,12 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
11953
11958
  if (assignedName === 'LiteralString') {
11954
11959
  specialType.shared.baseClasses.push(prefetched?.strClass ?? types_1.AnyType.create());
11955
11960
  (0, typeUtils_1.computeMroLinearization)(specialType);
11956
- if (isTypeFormSupported(node)) {
11957
- specialType = types_1.TypeBase.cloneWithTypeForm(specialType, (0, typeUtils_1.convertToInstance)(specialType));
11958
- }
11961
+ specialType = types_1.TypeBase.cloneWithTypeForm(specialType, (0, typeUtils_1.convertToInstance)(specialType));
11959
11962
  }
11960
11963
  // Handle 'Never' and 'NoReturn' specially.
11961
11964
  if (assignedName === 'Never' || assignedName === 'NoReturn') {
11962
11965
  specialType = types_1.TypeBase.cloneAsSpecialForm(assignedName === 'Never' ? types_1.NeverType.createNever() : types_1.NeverType.createNoReturn(), specialType);
11963
- if (isTypeFormSupported(node)) {
11964
- specialType = types_1.TypeBase.cloneWithTypeForm(specialType, (0, typeUtils_1.convertToInstance)(specialType));
11965
- }
11966
+ specialType = types_1.TypeBase.cloneWithTypeForm(specialType, (0, typeUtils_1.convertToInstance)(specialType));
11966
11967
  }
11967
11968
  writeTypeCache(node, { type: specialType }, 0 /* EvalFlags.None */);
11968
11969
  return specialType;
@@ -15044,9 +15045,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
15044
15045
  }
15045
15046
  let resultType = aliasedName === 'Never' ? types_1.NeverType.createNever() : types_1.NeverType.createNoReturn();
15046
15047
  resultType = types_1.TypeBase.cloneAsSpecialForm(resultType, classType);
15047
- if (isTypeFormSupported(errorNode)) {
15048
- resultType = types_1.TypeBase.cloneWithTypeForm(resultType, (0, typeUtils_1.convertToInstance)(resultType));
15049
- }
15048
+ resultType = types_1.TypeBase.cloneWithTypeForm(resultType, (0, typeUtils_1.convertToInstance)(resultType));
15050
15049
  return { type: resultType };
15051
15050
  }
15052
15051
  case 'Optional': {
@@ -15059,9 +15058,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
15059
15058
  if ((0, types_1.isInstantiableClass)(typeType)) {
15060
15059
  typeType = (0, typeUtils_1.explodeGenericClass)(typeType);
15061
15060
  }
15062
- if (isTypeFormSupported(errorNode)) {
15063
- typeType = types_1.TypeBase.cloneWithTypeForm(typeType, (0, typeUtils_1.convertToInstance)(typeType));
15064
- }
15061
+ typeType = types_1.TypeBase.cloneWithTypeForm(typeType, (0, typeUtils_1.convertToInstance)(typeType));
15065
15062
  return { type: typeType };
15066
15063
  }
15067
15064
  case 'ClassVar': {
@@ -15170,9 +15167,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
15170
15167
  if ((0, types_1.isInstantiableClass)(typeType)) {
15171
15168
  typeType = (0, typeUtils_1.explodeGenericClass)(typeType);
15172
15169
  }
15173
- if (isTypeFormSupported(errorNode)) {
15174
- typeType = types_1.TypeBase.cloneWithTypeForm(typeType, (0, typeUtils_1.convertToInstance)(typeType));
15175
- }
15170
+ typeType = types_1.TypeBase.cloneWithTypeForm(typeType, (0, typeUtils_1.convertToInstance)(typeType));
15176
15171
  return { type: typeType };
15177
15172
  }
15178
15173
  }
@@ -15183,9 +15178,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
15183
15178
  /* paramLimit */ undefined,
15184
15179
  /* allowParamSpec */ undefined,
15185
15180
  /* isSpecialForm */ false);
15186
- if (isTypeFormSupported(errorNode)) {
15187
- specializedClass = types_1.TypeBase.cloneWithTypeForm(specializedClass, (0, typeUtils_1.convertToInstance)(specializedClass));
15188
- }
15181
+ specializedClass = types_1.TypeBase.cloneWithTypeForm(specializedClass, (0, typeUtils_1.convertToInstance)(specializedClass));
15189
15182
  return { type: specializedClass };
15190
15183
  }
15191
15184
  }
@@ -15377,9 +15370,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
15377
15370
  typeArgTypes = typeArgs.map((t) => (0, typeUtils_1.convertToInstance)(t.type));
15378
15371
  }
15379
15372
  let specializedClass = types_1.ClassType.specialize(classType, typeArgTypes, typeArgs !== undefined);
15380
- if (isTypeFormSupported(errorNode)) {
15381
- specializedClass = types_1.TypeBase.cloneWithTypeForm(specializedClass, isValidTypeForm ? (0, typeUtils_1.convertToInstance)(specializedClass) : undefined);
15382
- }
15373
+ specializedClass = types_1.TypeBase.cloneWithTypeForm(specializedClass, isValidTypeForm ? (0, typeUtils_1.convertToInstance)(specializedClass) : undefined);
15383
15374
  return { type: specializedClass };
15384
15375
  }
15385
15376
  // PEP 612 says that if the class has only one type parameter consisting
@@ -18290,6 +18281,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
18290
18281
  });
18291
18282
  return isAssignable;
18292
18283
  }
18284
+ function expectedTypeWantsTypeForm(expectedType) {
18285
+ return (0, typeUtils_1.someSubtypes)(expectedType, (subtype) => (0, types_1.isClassInstance)(subtype) && types_1.ClassType.isBuiltIn(subtype, 'TypeForm'));
18286
+ }
18293
18287
  // If the expected type is an explicit TypeForm type, see if the source
18294
18288
  // type has an implicit TypeForm type that can be assigned to it. If so,
18295
18289
  // convert to an explicit TypeForm type.
@@ -19208,9 +19202,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
19208
19202
  continue;
19209
19203
  }
19210
19204
  const nonDefaultSrcParamCount = srcParamDetails.params.filter((p) => !!p.param.name && !p.defaultType && p.param.category === 0 /* ParamCategory.Simple */).length;
19211
- diag?.createAddendum().addMessage(localize_1.LocAddendum.functionTooFewParams().format({
19212
- expected: nonDefaultSrcParamCount,
19213
- received: destPositionalCount,
19205
+ diag?.createAddendum().addMessage(localize_1.LocAddendum.functionTooManyParams().format({
19206
+ expected: destPositionalCount,
19207
+ received: nonDefaultSrcParamCount,
19214
19208
  }));
19215
19209
  canAssign = false;
19216
19210
  break;
@@ -19262,9 +19256,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
19262
19256
  }
19263
19257
  }
19264
19258
  if (srcPositionalCount < adjDestPositionalCount) {
19265
- diag?.addMessage(localize_1.LocAddendum.functionTooManyParams().format({
19266
- expected: srcPositionalCount,
19267
- received: destPositionalCount,
19259
+ diag?.addMessage(localize_1.LocAddendum.functionTooFewParams().format({
19260
+ expected: adjDestPositionalCount,
19261
+ received: srcPositionalCount,
19268
19262
  }));
19269
19263
  canAssign = false;
19270
19264
  }
@@ -20437,11 +20431,6 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
20437
20431
  }
20438
20432
  return { sourceType: simpleSrcType, destType: simpleDestType };
20439
20433
  }
20440
- function isTypeFormSupported(node) {
20441
- const fileInfo = AnalyzerNodeInfo.getFileInfo(node);
20442
- // For now, enable only if enableExperimentalFeatures is true.
20443
- return fileInfo.diagnosticRuleSet.enableExperimentalFeatures;
20444
- }
20445
20434
  function printType(type, options) {
20446
20435
  let flags = evaluatorOptions.printTypeFlags;
20447
20436
  if (options?.expandTypeAlias) {
@@ -20465,6 +20454,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions, wrapWithLogger) {
20465
20454
  if (options?.useFullyQualifiedNames) {
20466
20455
  flags |= 4096 /* TypePrinter.PrintTypeFlags.UseFullyQualifiedNames */;
20467
20456
  }
20457
+ if (options?.disablePep604) {
20458
+ flags &= ~8 /* TypePrinter.PrintTypeFlags.PEP604 */;
20459
+ }
20468
20460
  return TypePrinter.printType(type, flags, getEffectiveReturnType);
20469
20461
  }
20470
20462
  // Calls back into the parser to parse the contents of a string literal.