@zzzen/pyright-internal 1.2.0-dev.20230312 → 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 (143) hide show
  1. package/dist/analyzer/aliasDeclarationUtils.js +15 -0
  2. package/dist/analyzer/aliasDeclarationUtils.js.map +1 -1
  3. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -1
  4. package/dist/analyzer/backgroundAnalysisProgram.js +1 -1
  5. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  6. package/dist/analyzer/cacheManager.d.ts +4 -0
  7. package/dist/analyzer/cacheManager.js +13 -0
  8. package/dist/analyzer/cacheManager.js.map +1 -1
  9. package/dist/analyzer/checker.d.ts +2 -1
  10. package/dist/analyzer/checker.js +77 -27
  11. package/dist/analyzer/checker.js.map +1 -1
  12. package/dist/analyzer/codeFlowEngine.js +17 -11
  13. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  14. package/dist/analyzer/dataClasses.js +10 -0
  15. package/dist/analyzer/dataClasses.js.map +1 -1
  16. package/dist/analyzer/patternMatching.js +18 -3
  17. package/dist/analyzer/patternMatching.js.map +1 -1
  18. package/dist/analyzer/program.d.ts +1 -1
  19. package/dist/analyzer/program.js +24 -28
  20. package/dist/analyzer/program.js.map +1 -1
  21. package/dist/analyzer/properties.js +0 -1
  22. package/dist/analyzer/properties.js.map +1 -1
  23. package/dist/analyzer/protocols.js +18 -3
  24. package/dist/analyzer/protocols.js.map +1 -1
  25. package/dist/analyzer/service.d.ts +2 -1
  26. package/dist/analyzer/service.js +15 -20
  27. package/dist/analyzer/service.js.map +1 -1
  28. package/dist/analyzer/sourceFile.d.ts +2 -2
  29. package/dist/analyzer/sourceFile.js +2 -2
  30. package/dist/analyzer/sourceFile.js.map +1 -1
  31. package/dist/analyzer/sourceFileInfoUtils.d.ts +1 -0
  32. package/dist/analyzer/sourceFileInfoUtils.js +17 -1
  33. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  34. package/dist/analyzer/typeEvaluator.js +149 -84
  35. package/dist/analyzer/typeEvaluator.js.map +1 -1
  36. package/dist/analyzer/typeEvaluatorTypes.d.ts +0 -2
  37. package/dist/analyzer/typeEvaluatorTypes.js +0 -3
  38. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  39. package/dist/analyzer/typeStubWriter.js +2 -0
  40. package/dist/analyzer/typeStubWriter.js.map +1 -1
  41. package/dist/analyzer/typeUtils.js +40 -1
  42. package/dist/analyzer/typeUtils.js.map +1 -1
  43. package/dist/analyzer/typedDicts.js +27 -0
  44. package/dist/analyzer/typedDicts.js.map +1 -1
  45. package/dist/analyzer/types.d.ts +5 -1
  46. package/dist/analyzer/types.js +3 -1
  47. package/dist/analyzer/types.js.map +1 -1
  48. package/dist/commands/dumpFileDebugInfoCommand.js +4 -4
  49. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  50. package/dist/commands/quickActionCommand.js +2 -2
  51. package/dist/commands/quickActionCommand.js.map +1 -1
  52. package/dist/common/configOptions.d.ts +1 -0
  53. package/dist/common/configOptions.js +5 -1
  54. package/dist/common/configOptions.js.map +1 -1
  55. package/dist/common/console.d.ts +1 -0
  56. package/dist/common/console.js +19 -1
  57. package/dist/common/console.js.map +1 -1
  58. package/dist/common/diagnosticRules.d.ts +2 -1
  59. package/dist/common/diagnosticRules.js +1 -0
  60. package/dist/common/diagnosticRules.js.map +1 -1
  61. package/dist/common/extensibility.d.ts +2 -2
  62. package/dist/common/extensibility.js.map +1 -1
  63. package/dist/common/extensions.js +3 -1
  64. package/dist/common/extensions.js.map +1 -1
  65. package/dist/common/fileBasedCancellationUtils.js +4 -0
  66. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  67. package/dist/languageServerBase.d.ts +21 -46
  68. package/dist/languageServerBase.js +110 -152
  69. package/dist/languageServerBase.js.map +1 -1
  70. package/dist/languageService/analyzerServiceExecutor.d.ts +4 -3
  71. package/dist/languageService/analyzerServiceExecutor.js +9 -7
  72. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  73. package/dist/languageService/codeActionProvider.d.ts +2 -2
  74. package/dist/languageService/codeActionProvider.js +4 -4
  75. package/dist/languageService/codeActionProvider.js.map +1 -1
  76. package/dist/languageService/completionProvider.js +4 -6
  77. package/dist/languageService/completionProvider.js.map +1 -1
  78. package/dist/languageService/definitionProvider.js +1 -1
  79. package/dist/languageService/definitionProvider.js.map +1 -1
  80. package/dist/languageService/documentSymbolCollector.d.ts +2 -1
  81. package/dist/languageService/documentSymbolCollector.js +23 -2
  82. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  83. package/dist/languageService/hoverProvider.d.ts +2 -1
  84. package/dist/languageService/hoverProvider.js +21 -5
  85. package/dist/languageService/hoverProvider.js.map +1 -1
  86. package/dist/languageService/referencesProvider.d.ts +3 -2
  87. package/dist/languageService/referencesProvider.js +4 -4
  88. package/dist/languageService/referencesProvider.js.map +1 -1
  89. package/dist/languageService/signatureHelpProvider.js +9 -7
  90. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  91. package/dist/localization/localize.d.ts +14 -6
  92. package/dist/localization/localize.js +5 -4
  93. package/dist/localization/localize.js.map +1 -1
  94. package/dist/localization/package.nls.en-us.json +7 -6
  95. package/dist/parser/parser.js +4 -2
  96. package/dist/parser/parser.js.map +1 -1
  97. package/dist/server.d.ts +3 -2
  98. package/dist/server.js +1 -4
  99. package/dist/server.js.map +1 -1
  100. package/dist/tests/cacheManager.test.d.ts +1 -0
  101. package/dist/tests/cacheManager.test.js +69 -0
  102. package/dist/tests/cacheManager.test.js.map +1 -0
  103. package/dist/tests/checker.test.js +2 -2
  104. package/dist/tests/completions.test.js +42 -2
  105. package/dist/tests/completions.test.js.map +1 -1
  106. package/dist/tests/fourslash/missingTypeStub.command.trycatchImport.fourslash.d.ts +7 -0
  107. package/dist/tests/fourslash/missingTypeStub.command.trycatchImport.fourslash.js +45 -0
  108. package/dist/tests/fourslash/missingTypeStub.command.trycatchImport.fourslash.js.map +1 -0
  109. package/dist/tests/harness/fourslash/testLanguageService.d.ts +7 -6
  110. package/dist/tests/harness/fourslash/testLanguageService.js +14 -13
  111. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  112. package/dist/tests/harness/fourslash/testState.d.ts +5 -4
  113. package/dist/tests/harness/fourslash/testState.js +14 -13
  114. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  115. package/dist/tests/hoverProvider.test.js +50 -0
  116. package/dist/tests/hoverProvider.test.js.map +1 -1
  117. package/dist/tests/moveSymbol.misc.test.js +1 -1
  118. package/dist/tests/moveSymbol.misc.test.js.map +1 -1
  119. package/dist/tests/service.test.js +4 -4
  120. package/dist/tests/service.test.js.map +1 -1
  121. package/dist/tests/signatureHelp.test.js +2 -2
  122. package/dist/tests/signatureHelp.test.js.map +1 -1
  123. package/dist/tests/sourceFile.test.js +3 -3
  124. package/dist/tests/sourceFile.test.js.map +1 -1
  125. package/dist/tests/typeEvaluator1.test.js +4 -0
  126. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  127. package/dist/tests/typeEvaluator2.test.js +10 -2
  128. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  129. package/dist/tests/typeEvaluator3.test.js +6 -2
  130. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  131. package/dist/tests/typeEvaluator4.test.js +6 -2
  132. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  133. package/dist/tests/typeEvaluator5.test.js +12 -0
  134. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  135. package/dist/tests/workspaceEditUtils.test.js +2 -2
  136. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  137. package/dist/workspaceFactory.d.ts +72 -0
  138. package/dist/workspaceFactory.js +421 -0
  139. package/dist/workspaceFactory.js.map +1 -0
  140. package/package.json +4 -4
  141. package/dist/workspaceMap.d.ts +0 -14
  142. package/dist/workspaceMap.js +0 -172
  143. package/dist/workspaceMap.js.map +0 -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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"}
@@ -25,7 +25,7 @@ export declare class BackgroundAnalysisProgram {
25
25
  get program(): Program;
26
26
  get host(): import("../common/host").Host;
27
27
  get backgroundAnalysis(): BackgroundAnalysisBase | undefined;
28
- contains(filePath: string): boolean;
28
+ hasSourceFile(filePath: string): boolean;
29
29
  setConfigOptions(configOptions: ConfigOptions): void;
30
30
  setImportResolver(importResolver: ImportResolver): void;
31
31
  setTrackedFiles(filePaths: string[]): void;
@@ -37,7 +37,7 @@ class BackgroundAnalysisProgram {
37
37
  get backgroundAnalysis() {
38
38
  return this._backgroundAnalysis;
39
39
  }
40
- contains(filePath) {
40
+ hasSourceFile(filePath) {
41
41
  return !!this._program.getSourceFile(filePath);
42
42
  }
43
43
  setConfigOptions(configOptions) {
@@ -1 +1 @@
1
- {"version":3,"file":"backgroundAnalysisProgram.js","sourceRoot":"","sources":["../../../src/analyzer/backgroundAnalysisProgram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backgroundAnalysisProgram.js","sourceRoot":"","sources":["../../../src/analyzer/backgroundAnalysisProgram.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,13 @@ export interface CacheOwner {
4
4
  emptyCache(): void;
5
5
  }
6
6
  export declare class CacheManager {
7
+ private _pausedCount;
7
8
  private readonly _cacheOwners;
8
9
  registerCacheOwner(provider: CacheOwner): void;
9
10
  unregisterCacheOwner(provider: CacheOwner): void;
11
+ pauseTracking(): {
12
+ dispose(): void;
13
+ };
10
14
  getCacheUsage(): number;
11
15
  emptyCache(console?: ConsoleInterface): void;
12
16
  getUsedHeapRatio(console?: ConsoleInterface): number;
@@ -14,6 +14,7 @@ const debug_1 = require("../common/debug");
14
14
  const memUtils_1 = require("../common/memUtils");
15
15
  class CacheManager {
16
16
  constructor() {
17
+ this._pausedCount = 0;
17
18
  this._cacheOwners = [];
18
19
  }
19
20
  registerCacheOwner(provider) {
@@ -28,7 +29,19 @@ class CacheManager {
28
29
  this._cacheOwners.splice(index, 1);
29
30
  }
30
31
  }
32
+ pauseTracking() {
33
+ const local = this;
34
+ local._pausedCount++;
35
+ return {
36
+ dispose() {
37
+ local._pausedCount--;
38
+ },
39
+ };
40
+ }
31
41
  getCacheUsage() {
42
+ if (this._pausedCount > 0) {
43
+ return -1;
44
+ }
32
45
  let totalUsage = 0;
33
46
  this._cacheOwners.forEach((p) => {
34
47
  totalUsage += p.getCacheUsage();
@@ -1 +1 @@
1
- {"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../../src/analyzer/cacheManager.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAGH,2CAAuC;AACvC,iDAAuD;AAWvD,MAAa,YAAY;IAAzB;QACqB,iBAAY,GAAiB,EAAE,CAAC;IA8DrD,CAAC;IA5DG,kBAAkB,CAAC,QAAoB;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,oBAAoB,CAAC,QAAoB;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,IAAA,YAAI,EAAC,oCAAoC,CAAC,CAAC;SAC9C;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACtC;IACL,CAAC;IAED,aAAa;QACT,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,UAAU,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,OAA0B;QACjC,IAAI,OAAO,EAAE;YACT,MAAM,SAAS,GAAG,IAAA,4BAAiB,GAAE,CAAC;YAEtC,OAAO,CAAC,IAAI,CACR,oDAAoD,IAAI,CAAC,YAAY,CACjE,SAAS,CAAC,cAAc,CAC3B,WAAW,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAC9D,CAAC;SACL;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,CAAC,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gDAAgD;IAChD,gBAAgB,CAAC,OAA0B;QACvC,MAAM,SAAS,GAAG,IAAA,4BAAiB,GAAE,CAAC;QAEtC,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,IAAI,CACR,cAAc;gBACV,mBAAmB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI;gBACnE,kBAAkB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI;gBACjE,uBAAuB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI;gBAC3E,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI;gBAC7E,mBAAmB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CACxE,CAAC;SACL;QAED,OAAO,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,eAAe,CAAC;IAChE,CAAC;IAEO,YAAY,CAAC,KAAa;QAC9B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;CACJ;AA/DD,oCA+DC"}
1
+ {"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../../src/analyzer/cacheManager.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAGH,2CAAuC;AACvC,iDAAuD;AAWvD,MAAa,YAAY;IAAzB;QACY,iBAAY,GAAG,CAAC,CAAC;QACR,iBAAY,GAAiB,EAAE,CAAC;IA4ErD,CAAC;IA1EG,kBAAkB,CAAC,QAAoB;QACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,oBAAoB,CAAC,QAAoB;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,IAAA,YAAI,EAAC,oCAAoC,CAAC,CAAC;SAC9C;aAAM;YACH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACtC;IACL,CAAC;IAED,aAAa;QACT,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,OAAO;YACH,OAAO;gBACH,KAAK,CAAC,YAAY,EAAE,CAAC;YACzB,CAAC;SACJ,CAAC;IACN,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,OAAO,CAAC,CAAC,CAAC;SACb;QAED,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,UAAU,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,OAA0B;QACjC,IAAI,OAAO,EAAE;YACT,MAAM,SAAS,GAAG,IAAA,4BAAiB,GAAE,CAAC;YAEtC,OAAO,CAAC,IAAI,CACR,oDAAoD,IAAI,CAAC,YAAY,CACjE,SAAS,CAAC,cAAc,CAC3B,WAAW,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAC9D,CAAC;SACL;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,CAAC,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gDAAgD;IAChD,gBAAgB,CAAC,OAA0B;QACvC,MAAM,SAAS,GAAG,IAAA,4BAAiB,GAAE,CAAC;QAEtC,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,IAAI,CACR,cAAc;gBACV,mBAAmB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI;gBACnE,kBAAkB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI;gBACjE,uBAAuB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI;gBAC3E,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI;gBAC7E,mBAAmB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CACxE,CAAC;SACL;QAED,OAAO,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,eAAe,CAAC;IAChE,CAAC;IAEO,YAAY,CAAC,KAAa;QAC9B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;CACJ;AA9ED,oCA8EC"}
@@ -123,7 +123,8 @@ export declare class Checker extends ParseTreeWalker {
123
123
  private _validateMultipleInheritanceCompatibility;
124
124
  private _validateMultipleInheritanceOverride;
125
125
  private _validateBaseClassOverrides;
126
- private _validateOverrideDecorator;
126
+ private _validateOverrideDecoratorPresent;
127
+ private _validateOverrideDecoratorNotPresent;
127
128
  private _validateBaseClassOverride;
128
129
  private _validateMethod;
129
130
  private _validateSuperCallForMethod;
@@ -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;
@@ -2561,19 +2567,55 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
2561
2567
  }
2562
2568
  let errorMessage;
2563
2569
  let deprecatedMessage;
2570
+ function getDeprecatedMessageForOverloadedCall(evaluator, type) {
2571
+ // Determine if the node is part of a call expression. If so,
2572
+ // we can determine which overload(s) were used to satisfy
2573
+ // the call expression and determine whether any of them
2574
+ // are deprecated.
2575
+ const callNode = ParseTreeUtils.getCallForName(node);
2576
+ if (callNode) {
2577
+ const callTypeResult = evaluator.getTypeResult(callNode);
2578
+ if (callTypeResult &&
2579
+ callTypeResult.overloadsUsedForCall &&
2580
+ callTypeResult.overloadsUsedForCall.length > 0) {
2581
+ callTypeResult.overloadsUsedForCall.forEach((overload) => {
2582
+ if (overload.details.deprecatedMessage !== undefined) {
2583
+ if (node.value === overload.details.name) {
2584
+ deprecatedMessage = overload.details.deprecatedMessage;
2585
+ errorMessage = localize_1.Localizer.Diagnostic.deprecatedFunction().format({
2586
+ name: overload.details.name,
2587
+ });
2588
+ }
2589
+ else if ((0, types_1.isInstantiableClass)(type) && overload.details.name === '__init__') {
2590
+ deprecatedMessage = overload.details.deprecatedMessage;
2591
+ errorMessage = localize_1.Localizer.Diagnostic.deprecatedConstructor().format({
2592
+ name: type.details.name,
2593
+ });
2594
+ }
2595
+ }
2596
+ });
2597
+ }
2598
+ }
2599
+ }
2564
2600
  (0, typeUtils_1.doForEachSubtype)(type, (subtype) => {
2565
2601
  if ((0, types_1.isClass)(subtype)) {
2566
2602
  if (!subtype.includeSubclasses &&
2567
2603
  subtype.details.deprecatedMessage !== undefined &&
2568
2604
  node.value === subtype.details.name) {
2569
2605
  deprecatedMessage = subtype.details.deprecatedMessage;
2570
- errorMessage = localize_1.Localizer.Diagnostic.deprecatedClass();
2606
+ errorMessage = localize_1.Localizer.Diagnostic.deprecatedClass().format({ name: subtype.details.name });
2607
+ }
2608
+ else {
2609
+ // See if this is part of a call to a constructor.
2610
+ getDeprecatedMessageForOverloadedCall(this._evaluator, subtype);
2571
2611
  }
2572
2612
  }
2573
2613
  else if ((0, types_1.isFunction)(subtype)) {
2574
2614
  if (subtype.details.deprecatedMessage !== undefined && node.value === subtype.details.name) {
2575
2615
  deprecatedMessage = subtype.details.deprecatedMessage;
2576
- errorMessage = localize_1.Localizer.Diagnostic.deprecatedFunction();
2616
+ errorMessage = localize_1.Localizer.Diagnostic.deprecatedFunction().format({
2617
+ name: subtype.details.name || '<anonymous>',
2618
+ });
2577
2619
  }
2578
2620
  }
2579
2621
  else if ((0, types_1.isOverloadedFunction)(subtype)) {
@@ -2581,21 +2623,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
2581
2623
  // we can determine which overload(s) were used to satisfy
2582
2624
  // the call expression and determine whether any of them
2583
2625
  // are deprecated.
2584
- const callNode = ParseTreeUtils.getCallForName(node);
2585
- if (callNode) {
2586
- const callTypeResult = this._evaluator.getTypeResult(callNode);
2587
- if (callTypeResult &&
2588
- callTypeResult.overloadsUsedForCall &&
2589
- callTypeResult.overloadsUsedForCall.length > 0) {
2590
- callTypeResult.overloadsUsedForCall.forEach((overload) => {
2591
- if (overload.details.deprecatedMessage !== undefined &&
2592
- node.value === overload.details.name) {
2593
- deprecatedMessage = overload.details.deprecatedMessage;
2594
- errorMessage = localize_1.Localizer.Diagnostic.deprecatedFunction();
2595
- }
2596
- });
2597
- }
2598
- }
2626
+ getDeprecatedMessageForOverloadedCall(this._evaluator, subtype);
2599
2627
  }
2600
2628
  });
2601
2629
  if (errorMessage) {
@@ -3679,7 +3707,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3679
3707
  if ((0, types_1.isAnyOrUnknown)(typeOfSymbol)) {
3680
3708
  return;
3681
3709
  }
3682
- let foundOverride = false;
3710
+ let firstOverride;
3683
3711
  for (const baseClass of classType.details.baseClasses) {
3684
3712
  if (!(0, types_1.isClass)(baseClass)) {
3685
3713
  continue;
@@ -3694,20 +3722,44 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3694
3722
  if (!baseClassAndSymbol) {
3695
3723
  continue;
3696
3724
  }
3697
- foundOverride = true;
3725
+ firstOverride = firstOverride !== null && firstOverride !== void 0 ? firstOverride : baseClassAndSymbol;
3698
3726
  this._validateBaseClassOverride(baseClassAndSymbol, symbol, typeOfSymbol, classType, name);
3699
3727
  }
3700
- if (!foundOverride) {
3728
+ if (!firstOverride) {
3701
3729
  // If this is a method decorated with @override, validate that there
3702
3730
  // is a base class method of the same name.
3703
- this._validateOverrideDecorator(typeOfSymbol);
3731
+ this._validateOverrideDecoratorNotPresent(typeOfSymbol);
3732
+ }
3733
+ else {
3734
+ this._validateOverrideDecoratorPresent(typeOfSymbol, firstOverride);
3704
3735
  }
3705
3736
  });
3706
3737
  }
3738
+ _validateOverrideDecoratorPresent(overrideType, baseMember) {
3739
+ // Skip this check if disabled.
3740
+ if (this._fileInfo.diagnosticRuleSet.reportImplicitOverride === 'none') {
3741
+ return;
3742
+ }
3743
+ let overrideFunction;
3744
+ if ((0, types_1.isFunction)(overrideType)) {
3745
+ overrideFunction = overrideType;
3746
+ }
3747
+ else if ((0, types_1.isOverloadedFunction)(overrideType)) {
3748
+ overrideFunction = types_1.OverloadedFunctionType.getImplementation(overrideType);
3749
+ }
3750
+ if (!(overrideFunction === null || overrideFunction === void 0 ? void 0 : overrideFunction.details.declaration) || types_1.FunctionType.isOverridden(overrideFunction)) {
3751
+ return;
3752
+ }
3753
+ const funcNode = overrideFunction.details.declaration.node;
3754
+ this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportImplicitOverride, diagnosticRules_1.DiagnosticRule.reportImplicitOverride, localize_1.Localizer.Diagnostic.overrideDecoratorMissing().format({
3755
+ name: funcNode.name.value,
3756
+ className: this._evaluator.printType((0, typeUtils_1.convertToInstance)(baseMember.classType)),
3757
+ }), funcNode.name);
3758
+ }
3707
3759
  // Determines whether the type is a function or overloaded function with an @override
3708
3760
  // decorator. In this case, an error is reported because no base class has declared
3709
3761
  // a method of the same name.
3710
- _validateOverrideDecorator(overrideType) {
3762
+ _validateOverrideDecoratorNotPresent(overrideType) {
3711
3763
  let overrideFunction;
3712
3764
  if ((0, types_1.isFunction)(overrideType)) {
3713
3765
  overrideFunction = overrideType;
@@ -3715,13 +3767,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
3715
3767
  else if ((0, types_1.isOverloadedFunction)(overrideType)) {
3716
3768
  overrideFunction = types_1.OverloadedFunctionType.getImplementation(overrideType);
3717
3769
  }
3718
- if (!overrideFunction ||
3719
- !types_1.FunctionType.isOverridden(overrideFunction) ||
3720
- !overrideFunction.details.declaration) {
3770
+ if (!(overrideFunction === null || overrideFunction === void 0 ? void 0 : overrideFunction.details.declaration) || !types_1.FunctionType.isOverridden(overrideFunction)) {
3721
3771
  return;
3722
3772
  }
3723
3773
  const funcNode = overrideFunction.details.declaration.node;
3724
- this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.overrideNotFound().format({ name: funcNode.name.value }), funcNode.name);
3774
+ this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.overriddenMethodNotFound().format({ name: funcNode.name.value }), funcNode.name);
3725
3775
  }
3726
3776
  _validateBaseClassOverride(baseClassAndSymbol, overrideSymbol, overrideType, childClassType, memberName) {
3727
3777
  if (!(0, types_1.isInstantiableClass)(baseClassAndSymbol.classType)) {