@zzzen/pyright-internal 1.2.0-dev.20230319 → 1.2.0-dev.20230326

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 (45) hide show
  1. package/dist/analyzer/aliasDeclarationUtils.js +15 -0
  2. package/dist/analyzer/aliasDeclarationUtils.js.map +1 -1
  3. package/dist/analyzer/checker.js +8 -2
  4. package/dist/analyzer/checker.js.map +1 -1
  5. package/dist/analyzer/dataClasses.js +10 -0
  6. package/dist/analyzer/dataClasses.js.map +1 -1
  7. package/dist/analyzer/patternMatching.js +18 -3
  8. package/dist/analyzer/patternMatching.js.map +1 -1
  9. package/dist/analyzer/program.js +8 -13
  10. package/dist/analyzer/program.js.map +1 -1
  11. package/dist/analyzer/protocols.js +18 -3
  12. package/dist/analyzer/protocols.js.map +1 -1
  13. package/dist/analyzer/service.js +6 -17
  14. package/dist/analyzer/service.js.map +1 -1
  15. package/dist/analyzer/typeEvaluator.js +103 -32
  16. package/dist/analyzer/typeEvaluator.js.map +1 -1
  17. package/dist/analyzer/typeUtils.js +20 -1
  18. package/dist/analyzer/typeUtils.js.map +1 -1
  19. package/dist/analyzer/types.d.ts +1 -0
  20. package/dist/analyzer/types.js.map +1 -1
  21. package/dist/common/configOptions.js +1 -1
  22. package/dist/common/configOptions.js.map +1 -1
  23. package/dist/common/fileBasedCancellationUtils.js +4 -0
  24. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  25. package/dist/languageServerBase.js +2 -2
  26. package/dist/languageServerBase.js.map +1 -1
  27. package/dist/languageService/completionProvider.js +1 -1
  28. package/dist/languageService/completionProvider.js.map +1 -1
  29. package/dist/languageService/hoverProvider.js +1 -1
  30. package/dist/languageService/hoverProvider.js.map +1 -1
  31. package/dist/languageService/signatureHelpProvider.js +9 -7
  32. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  33. package/dist/tests/completions.test.js +40 -0
  34. package/dist/tests/completions.test.js.map +1 -1
  35. package/dist/tests/hoverProvider.test.js +50 -0
  36. package/dist/tests/hoverProvider.test.js.map +1 -1
  37. package/dist/tests/typeEvaluator1.test.js +4 -0
  38. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  39. package/dist/tests/typeEvaluator2.test.js +9 -1
  40. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  41. package/dist/tests/typeEvaluator3.test.js +5 -1
  42. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  43. package/dist/tests/typeEvaluator4.test.js +5 -1
  44. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  45. package/package.json +1 -1
@@ -54,6 +54,21 @@ function resolveAliasDeclaration(importLookup, declaration, resolveLocalNames, a
54
54
  : undefined;
55
55
  if (!symbol) {
56
56
  if (curDeclaration.submoduleFallback) {
57
+ if (curDeclaration.symbolName) {
58
+ // See if we are resolving a specific imported symbol name and the submodule
59
+ // fallback cannot be resolved. For example, `from a import b`. If b is both
60
+ // a symbol in `a/__init__.py` and a submodule `a/b.py` and we are not using
61
+ // type information from this library (e.g. a non-py.typed library source file
62
+ // when useLibraryCodeForTypes is disabled), b should be evaluated as Unknown,
63
+ // not as a module.
64
+ if (curDeclaration.submoduleFallback.type === 8 /* Alias */ &&
65
+ curDeclaration.submoduleFallback.path) {
66
+ const lookupResult = importLookup(curDeclaration.submoduleFallback.path);
67
+ if (!lookupResult) {
68
+ return undefined;
69
+ }
70
+ }
71
+ }
57
72
  return resolveAliasDeclaration(importLookup, curDeclaration.submoduleFallback, resolveLocalNames, allowExternallyHiddenAccess);
58
73
  }
59
74
  // If the symbol comes from a native library, we won't
@@ -1 +1 @@
1
- {"version":3,"file":"aliasDeclarationUtils.js","sourceRoot":"","sources":["../../../src/analyzer/aliasDeclarationUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aliasDeclarationUtils.js","sourceRoot":"","sources":["../../../src/analyzer/aliasDeclarationUtils.ts"],"names":[],"mappings":"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"}
@@ -1338,7 +1338,13 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1338
1338
  }
1339
1339
  }
1340
1340
  // Does the class have an operator overload for eq?
1341
- if ((0, typeUtils_1.lookUpClassMember)(types_1.ClassType.cloneAsInstantiable(leftType), '__eq__', 4 /* SkipObjectBaseClass */)) {
1341
+ const eqMethod = (0, typeUtils_1.lookUpClassMember)(types_1.ClassType.cloneAsInstantiable(leftType), '__eq__', 4 /* SkipObjectBaseClass */);
1342
+ if (eqMethod) {
1343
+ // If this is a synthesized method for a dataclass, we can assume
1344
+ // that other dataclass types will not be comparable.
1345
+ if (types_1.ClassType.isDataClass(leftType) && eqMethod.symbol.getSynthesizedType()) {
1346
+ return false;
1347
+ }
1342
1348
  return true;
1343
1349
  }
1344
1350
  return false;
@@ -3745,7 +3751,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3745
3751
  return;
3746
3752
  }
3747
3753
  const funcNode = overrideFunction.details.declaration.node;
3748
- this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.overrideDecoratorMissing().format({
3754
+ this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportImplicitOverride, diagnosticRules_1.DiagnosticRule.reportImplicitOverride, localize_1.Localizer.Diagnostic.overrideDecoratorMissing().format({
3749
3755
  name: funcNode.name.value,
3750
3756
  className: this._evaluator.printType((0, typeUtils_1.convertToInstance)(baseMember.classType)),
3751
3757
  }), funcNode.name);