@zzzen/pyright-internal 1.2.0-dev.20250330 → 1.2.0-dev.20250413

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 (75) hide show
  1. package/dist/analyzer/binder.js +1 -0
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.js +19 -8
  4. package/dist/analyzer/checker.js.map +1 -1
  5. package/dist/analyzer/codeFlowEngine.js +1 -1
  6. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  7. package/dist/analyzer/constructors.js +2 -2
  8. package/dist/analyzer/constructors.js.map +1 -1
  9. package/dist/analyzer/dataClasses.js +4 -4
  10. package/dist/analyzer/dataClasses.js.map +1 -1
  11. package/dist/analyzer/enums.js +1 -1
  12. package/dist/analyzer/enums.js.map +1 -1
  13. package/dist/analyzer/operations.js +1 -1
  14. package/dist/analyzer/operations.js.map +1 -1
  15. package/dist/analyzer/parseTreeUtils.d.ts +1 -1
  16. package/dist/analyzer/parseTreeUtils.js +18 -3
  17. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  18. package/dist/analyzer/program.js +6 -1
  19. package/dist/analyzer/program.js.map +1 -1
  20. package/dist/analyzer/protocols.js +2 -2
  21. package/dist/analyzer/protocols.js.map +1 -1
  22. package/dist/analyzer/sourceFile.js +1 -0
  23. package/dist/analyzer/sourceFile.js.map +1 -1
  24. package/dist/analyzer/typeEvaluator.js +103 -79
  25. package/dist/analyzer/typeEvaluator.js.map +1 -1
  26. package/dist/analyzer/typeGuards.js +91 -52
  27. package/dist/analyzer/typeGuards.js.map +1 -1
  28. package/dist/analyzer/typeUtils.js +2 -2
  29. package/dist/analyzer/typeUtils.js.map +1 -1
  30. package/dist/analyzer/types.d.ts +1 -0
  31. package/dist/analyzer/types.js +4 -0
  32. package/dist/analyzer/types.js.map +1 -1
  33. package/dist/common/extensibility.d.ts +1 -0
  34. package/dist/common/extensibility.js.map +1 -1
  35. package/dist/languageService/completionProvider.js +1 -1
  36. package/dist/languageService/completionProvider.js.map +1 -1
  37. package/dist/languageService/completionProviderUtils.js +1 -1
  38. package/dist/languageService/completionProviderUtils.js.map +1 -1
  39. package/dist/languageService/hoverProvider.js +1 -1
  40. package/dist/languageService/hoverProvider.js.map +1 -1
  41. package/dist/languageService/tooltipUtils.js +2 -2
  42. package/dist/languageService/tooltipUtils.js.map +1 -1
  43. package/dist/localization/localize.d.ts +1 -0
  44. package/dist/localization/localize.js +1 -0
  45. package/dist/localization/localize.js.map +1 -1
  46. package/dist/localization/package.nls.cs.json +1 -0
  47. package/dist/localization/package.nls.de.json +1 -0
  48. package/dist/localization/package.nls.en-us.json +4 -0
  49. package/dist/localization/package.nls.es.json +1 -0
  50. package/dist/localization/package.nls.fr.json +1 -0
  51. package/dist/localization/package.nls.it.json +1 -0
  52. package/dist/localization/package.nls.ja.json +1 -0
  53. package/dist/localization/package.nls.ko.json +1 -0
  54. package/dist/localization/package.nls.pl.json +1 -0
  55. package/dist/localization/package.nls.pt-br.json +1 -0
  56. package/dist/localization/package.nls.qps-ploc.json +1 -0
  57. package/dist/localization/package.nls.ru.json +1 -0
  58. package/dist/localization/package.nls.tr.json +1 -0
  59. package/dist/localization/package.nls.zh-cn.json +1 -0
  60. package/dist/localization/package.nls.zh-tw.json +1 -0
  61. package/dist/parser/parser.d.ts +2 -0
  62. package/dist/parser/parser.js +4 -0
  63. package/dist/parser/parser.js.map +1 -1
  64. package/dist/parser/tokenizer.js +0 -2
  65. package/dist/parser/tokenizer.js.map +1 -1
  66. package/dist/tests/checker.test.js +1 -1
  67. package/dist/tests/tokenizer.test.js +5 -15
  68. package/dist/tests/tokenizer.test.js.map +1 -1
  69. package/dist/tests/typeEvaluator2.test.js +3 -3
  70. package/dist/tests/typeEvaluator6.test.js +1 -1
  71. package/dist/tests/typeEvaluator7.test.js +14 -1
  72. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  73. package/dist/tests/typeEvaluator8.test.js +6 -2
  74. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  75. package/package.json +1 -1
@@ -1241,7 +1241,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1241
1241
  let isCoroutine = true;
1242
1242
  (0, typeUtils_1.doForEachSubtype)(exprTypeResult.type, (subtype) => {
1243
1243
  subtype = this._evaluator.makeTopLevelTypeVarsConcrete(subtype);
1244
- if (!(0, types_1.isFunction)(subtype) && !(0, types_1.isOverloaded)(subtype)) {
1244
+ if (!(0, types_1.isFunctionOrOverloaded)(subtype)) {
1245
1245
  isExprFunction = false;
1246
1246
  }
1247
1247
  if (!(0, types_1.isClassInstance)(subtype) || !types_1.ClassType.isBuiltIn(subtype, ['Coroutine', 'CoroutineType'])) {
@@ -2831,6 +2831,12 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
2831
2831
  diag.addMessage(localize_1.LocAddendum.annotatedNotAllowed());
2832
2832
  isSupported = false;
2833
2833
  }
2834
+ else if (subtype.props?.specialForm &&
2835
+ (0, types_1.isInstantiableClass)(subtype.props.specialForm) &&
2836
+ types_1.ClassType.isBuiltIn(subtype.props.specialForm, 'Literal')) {
2837
+ diag.addMessage(localize_1.LocAddendum.literalNotAllowed());
2838
+ isSupported = false;
2839
+ }
2834
2840
  break;
2835
2841
  case 4 /* TypeCategory.Function */:
2836
2842
  if (!types_1.TypeBase.isInstantiable(subtype) || subtype.priv.isCallableWithTypeArgs) {
@@ -3930,7 +3936,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3930
3936
  return;
3931
3937
  }
3932
3938
  let newMemberType = newMethodResult.type;
3933
- if (!(0, types_1.isFunction)(newMemberType) && !(0, types_1.isOverloaded)(newMemberType)) {
3939
+ if (!(0, types_1.isFunctionOrOverloaded)(newMemberType)) {
3934
3940
  return;
3935
3941
  }
3936
3942
  if ((0, types_1.isOverloaded)(newMemberType)) {
@@ -3941,7 +3947,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3941
3947
  }
3942
3948
  }
3943
3949
  let initMemberType = initMethodResult.type;
3944
- if (!(0, types_1.isFunction)(initMemberType) && !(0, types_1.isOverloaded)(initMemberType)) {
3950
+ if (!(0, types_1.isFunctionOrOverloaded)(initMemberType)) {
3945
3951
  return;
3946
3952
  }
3947
3953
  if ((0, types_1.isOverloaded)(initMemberType)) {
@@ -4129,9 +4135,9 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4129
4135
  let diag;
4130
4136
  const overrideDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(overrideClassAndSymbol.symbol);
4131
4137
  const overriddenDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(overriddenClassAndSymbol.symbol);
4132
- if ((0, types_1.isFunction)(overriddenType) || (0, types_1.isOverloaded)(overriddenType)) {
4138
+ if ((0, types_1.isFunctionOrOverloaded)(overriddenType)) {
4133
4139
  const diagAddendum = new diagnostic_1.DiagnosticAddendum();
4134
- if ((0, types_1.isFunction)(overrideType) || (0, types_1.isOverloaded)(overrideType)) {
4140
+ if ((0, types_1.isFunctionOrOverloaded)(overrideType)) {
4135
4141
  if (!this._evaluator.validateOverrideMethod(overriddenType, overrideType,
4136
4142
  /* baseClass */ undefined, diagAddendum,
4137
4143
  /* enforceParamNameMatch */ true)) {
@@ -4606,15 +4612,20 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4606
4612
  return;
4607
4613
  }
4608
4614
  const baseClass = baseClassAndSymbol.classType;
4609
- const baseClassSelf = types_1.ClassType.cloneAsInstance((0, typeUtils_1.selfSpecializeClass)(baseClass, { useBoundTypeVars: true }));
4610
4615
  const childClassSelf = types_1.ClassType.cloneAsInstance((0, typeUtils_1.selfSpecializeClass)(childClassType, { useBoundTypeVars: true }));
4616
+ // The "Self" value for the base class depends on whether it's a
4617
+ // protocol or not. It's not clear from the typing spec whether
4618
+ // this is the correct behavior.
4619
+ const baseClassSelf = types_1.ClassType.isProtocolClass(baseClass)
4620
+ ? childClassSelf
4621
+ : types_1.ClassType.cloneAsInstance((0, typeUtils_1.selfSpecializeClass)(baseClass, { useBoundTypeVars: true }));
4611
4622
  let baseType = (0, typeUtils_1.partiallySpecializeType)(this._evaluator.getEffectiveTypeOfSymbol(baseClassAndSymbol.symbol), baseClass, this._evaluator.getTypeClassType(), baseClassSelf);
4612
4623
  overrideType = (0, typeUtils_1.partiallySpecializeType)(overrideType, childClassType, this._evaluator.getTypeClassType(), childClassSelf);
4613
4624
  if (childClassType.shared.typeVarScopeId) {
4614
4625
  overrideType = (0, typeUtils_1.makeTypeVarsBound)(overrideType, [childClassType.shared.typeVarScopeId]);
4615
4626
  baseType = (0, typeUtils_1.makeTypeVarsBound)(baseType, [childClassType.shared.typeVarScopeId]);
4616
4627
  }
4617
- if ((0, types_1.isFunction)(baseType) || (0, types_1.isOverloaded)(baseType)) {
4628
+ if ((0, types_1.isFunctionOrOverloaded)(baseType)) {
4618
4629
  const diagAddendum = new diagnostic_1.DiagnosticAddendum();
4619
4630
  // Determine whether this is an attempt to override a method marked @final.
4620
4631
  if (this._isFinalFunction(memberName, baseType)) {
@@ -4639,7 +4650,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4639
4650
  types_1.ClassType.isTypedDictClass(childClassType)) {
4640
4651
  return;
4641
4652
  }
4642
- if ((0, types_1.isFunction)(overrideType) || (0, types_1.isOverloaded)(overrideType)) {
4653
+ if ((0, types_1.isFunctionOrOverloaded)(overrideType)) {
4643
4654
  // Don't enforce parameter names for dundered methods. Many of them
4644
4655
  // are misnamed in typeshed stubs, so this would result in many
4645
4656
  // false positives.