@zzzen/pyright-internal 1.2.0-dev.20240307 → 1.2.0-dev.20240317

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 (106) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -1
  2. package/dist/analyzer/backgroundAnalysisProgram.js +1 -1
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/checker.d.ts +1 -0
  5. package/dist/analyzer/checker.js +58 -55
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/codeFlowEngine.d.ts +3 -4
  8. package/dist/analyzer/codeFlowEngine.js +20 -13
  9. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  10. package/dist/analyzer/importStatementUtils.d.ts +2 -1
  11. package/dist/analyzer/importStatementUtils.js +6 -1
  12. package/dist/analyzer/importStatementUtils.js.map +1 -1
  13. package/dist/analyzer/operations.js +25 -10
  14. package/dist/analyzer/operations.js.map +1 -1
  15. package/dist/analyzer/parseTreeUtils.d.ts +2 -0
  16. package/dist/analyzer/parseTreeUtils.js +31 -5
  17. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  18. package/dist/analyzer/patternMatching.js +16 -12
  19. package/dist/analyzer/patternMatching.js.map +1 -1
  20. package/dist/analyzer/service.d.ts +6 -1
  21. package/dist/analyzer/service.js +8 -5
  22. package/dist/analyzer/service.js.map +1 -1
  23. package/dist/analyzer/typeDocStringUtils.js +3 -3
  24. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  25. package/dist/analyzer/typeEvaluator.js +242 -101
  26. package/dist/analyzer/typeEvaluator.js.map +1 -1
  27. package/dist/analyzer/typeEvaluatorTypes.d.ts +6 -1
  28. package/dist/analyzer/typeGuards.js +15 -16
  29. package/dist/analyzer/typeGuards.js.map +1 -1
  30. package/dist/analyzer/typeUtils.d.ts +1 -1
  31. package/dist/analyzer/typeUtils.js +13 -14
  32. package/dist/analyzer/typeUtils.js.map +1 -1
  33. package/dist/analyzer/types.d.ts +2 -1
  34. package/dist/analyzer/types.js +1 -0
  35. package/dist/analyzer/types.js.map +1 -1
  36. package/dist/backgroundThreadBase.d.ts +4 -1
  37. package/dist/backgroundThreadBase.js +14 -1
  38. package/dist/backgroundThreadBase.js.map +1 -1
  39. package/dist/commands/dumpFileDebugInfoCommand.js +0 -1
  40. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  41. package/dist/common/configOptions.d.ts +1 -0
  42. package/dist/common/configOptions.js +5 -0
  43. package/dist/common/configOptions.js.map +1 -1
  44. package/dist/common/diagnosticRules.d.ts +1 -0
  45. package/dist/common/diagnosticRules.js +1 -0
  46. package/dist/common/diagnosticRules.js.map +1 -1
  47. package/dist/common/logTracker.d.ts +5 -5
  48. package/dist/common/logTracker.js +7 -6
  49. package/dist/common/logTracker.js.map +1 -1
  50. package/dist/languageServerBase.d.ts +2 -2
  51. package/dist/languageServerBase.js +1 -8
  52. package/dist/languageServerBase.js.map +1 -1
  53. package/dist/languageService/completionProvider.d.ts +4 -1
  54. package/dist/languageService/completionProvider.js +19 -19
  55. package/dist/languageService/completionProvider.js.map +1 -1
  56. package/dist/localization/localize.d.ts +4 -0
  57. package/dist/localization/localize.js +1 -8
  58. package/dist/localization/localize.js.map +1 -1
  59. package/dist/localization/package.nls.cs.json +19 -9
  60. package/dist/localization/package.nls.de.json +19 -9
  61. package/dist/localization/package.nls.en-us.json +1 -0
  62. package/dist/localization/package.nls.es.json +19 -9
  63. package/dist/localization/package.nls.fr.json +21 -11
  64. package/dist/localization/package.nls.it.json +16 -6
  65. package/dist/localization/package.nls.ja.json +19 -9
  66. package/dist/localization/package.nls.ko.json +19 -9
  67. package/dist/localization/package.nls.pl.json +19 -9
  68. package/dist/localization/package.nls.pt-br.json +19 -9
  69. package/dist/localization/package.nls.qps-ploc.json +19 -9
  70. package/dist/localization/package.nls.ru.json +18 -8
  71. package/dist/localization/package.nls.tr.json +19 -9
  72. package/dist/localization/package.nls.zh-cn.json +16 -6
  73. package/dist/localization/package.nls.zh-tw.json +19 -9
  74. package/dist/parser/parser.js +1 -1
  75. package/dist/parser/parser.js.map +1 -1
  76. package/dist/parser/stringTokenUtils.js +12 -12
  77. package/dist/parser/stringTokenUtils.js.map +1 -1
  78. package/dist/parser/tokenizer.d.ts +0 -1
  79. package/dist/parser/tokenizer.js +41 -41
  80. package/dist/parser/tokenizer.js.map +1 -1
  81. package/dist/parser/tokenizerTypes.d.ts +1 -2
  82. package/dist/parser/tokenizerTypes.js +0 -1
  83. package/dist/parser/tokenizerTypes.js.map +1 -1
  84. package/dist/tests/fourslash/completions.override2.fourslash.js +1 -1
  85. package/dist/tests/fourslash/completions.override2.fourslash.js.map +1 -1
  86. package/dist/tests/fourslash/hover.builtinDocstrings.builtinInheritedByBuiltin.fourslash.d.ts +1 -0
  87. package/dist/tests/fourslash/hover.builtinDocstrings.builtinInheritedByBuiltin.fourslash.js +22 -0
  88. package/dist/tests/fourslash/hover.builtinDocstrings.builtinInheritedByBuiltin.fourslash.js.map +1 -0
  89. package/dist/tests/fourslash/hover.builtinDocstrings.builtinInheritedByUserCode.fourslash.d.ts +1 -0
  90. package/dist/tests/fourslash/hover.builtinDocstrings.builtinInheritedByUserCode.fourslash.js +20 -0
  91. package/dist/tests/fourslash/hover.builtinDocstrings.builtinInheritedByUserCode.fourslash.js.map +1 -0
  92. package/dist/tests/harness/fourslash/testLanguageService.d.ts +2 -1
  93. package/dist/tests/harness/fourslash/testLanguageService.js +2 -2
  94. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  95. package/dist/tests/importStatementUtils.test.js +27 -2
  96. package/dist/tests/importStatementUtils.test.js.map +1 -1
  97. package/dist/tests/tokenizer.test.js +22 -0
  98. package/dist/tests/tokenizer.test.js.map +1 -1
  99. package/dist/tests/typeEvaluator1.test.js +4 -0
  100. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  101. package/dist/tests/typeEvaluator2.test.js +1 -1
  102. package/dist/tests/typeEvaluator3.test.js +1 -1
  103. package/dist/tests/typeEvaluator4.test.js +2 -2
  104. package/dist/tests/typeEvaluator5.test.js +9 -7
  105. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  106. package/package.json +1 -1
@@ -49,7 +49,7 @@ export declare class BackgroundAnalysisProgram {
49
49
  setCompletionCallback(callback?: AnalysisCompleteCallback): void;
50
50
  startAnalysis(token: CancellationToken): boolean;
51
51
  analyzeFile(fileUri: Uri, token: CancellationToken): Promise<boolean>;
52
- libraryUpdated(): void;
52
+ libraryUpdated(): boolean;
53
53
  getDiagnosticsForRange(fileUri: Uri, range: Range, token: CancellationToken): Promise<Diagnostic[]>;
54
54
  writeTypeStub(targetImportUri: Uri, targetIsSingleFile: boolean, stubUri: Uri, token: CancellationToken): Promise<any>;
55
55
  invalidateAndForceReanalysis(reason: InvalidatedReason): void;
@@ -132,7 +132,7 @@ class BackgroundAnalysisProgram {
132
132
  return this._program.analyzeFile(fileUri, token);
133
133
  }
134
134
  libraryUpdated() {
135
- // empty
135
+ return false;
136
136
  }
137
137
  async getDiagnosticsForRange(fileUri, range, token) {
138
138
  if (this._backgroundAnalysis) {
@@ -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":";AAAA;;;;;;;GAOG;;;AASH,+CAA6C;AAG7C,yCAAsE;AAEtE,uCAAsE;AAEtE,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,qEAAU,CAAA;IACV,yFAAoB,CAAA;IACpB,2FAAqB,CAAA;IACrB,iHAAgC,CAAA;AACpC,CAAC,EALW,iBAAiB,iCAAjB,iBAAiB,QAK5B;AAED,MAAa,yBAAyB;IAMlC,YACuB,SAAiB,EACnB,gBAAiC,EAC1C,cAA6B,EAC7B,eAA+B,EAC/B,mBAA4C,EACnC,gBAAkC,EAClC,eAAyB;QANvB,cAAS,GAAT,SAAS,CAAQ;QACnB,qBAAgB,GAAhB,gBAAgB,CAAiB;QAC1C,mBAAc,GAAd,cAAc,CAAe;QAC7B,oBAAe,GAAf,eAAe,CAAgB;QAC/B,wBAAmB,GAAnB,mBAAmB,CAAyB;QACnC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,oBAAe,GAAf,eAAe,CAAU;QAXtC,cAAS,GAAG,KAAK,CAAC;QAatB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAO,CACvB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,gBAAgB,EACrB,SAAS,EACT,IAAI,CAAC,eAAe,EACpB,SAAS,CACZ,CAAC;IACN,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,OAAY;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,gBAAgB,CAAC,aAA4B;;QACzC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,MAAA,IAAI,CAAC,mBAAmB,0CAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,iBAAiB,CAAC,cAA8B;;QAC5C,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,MAAA,IAAI,CAAC,mBAAmB,0CAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAE5D,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;IACrG,CAAC;IAED,eAAe,CAAC,QAAe;;QAC3B,MAAA,IAAI,CAAC,mBAAmB,0CAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,iCAAiC,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,2BAA2B,CAAC,WAAqB;;QAC7C,MAAA,IAAI,CAAC,mBAAmB,0CAAE,2BAA2B,CAAC,WAAW,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa,CAAC,OAAY,EAAE,OAAsB,EAAE,QAAgB,EAAE,OAAwB;;QAC1F,MAAA,IAAI,CAAC,mBAAmB,0CAAE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,aAAa,CAAC,OAAY;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB,CAAC,OAAY,EAAE,UAA2B;;QACtD,MAAA,IAAI,CAAC,mBAAmB,0CAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,sBAAsB,CAAC,GAAQ,EAAE,OAAsB,EAAE,QAAgB,EAAE,OAAwB;;QAC/F,MAAA,IAAI,CAAC,mBAAmB,0CAAE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,aAAa,CAAC,OAAY,EAAE,SAAmB;;QAC3C,MAAA,IAAI,CAAC,mBAAmB,0CAAE,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,iCAAiC,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,cAAc,CAAC,OAAY;;QACvB,MAAA,IAAI,CAAC,mBAAmB,0CAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,iBAAiB,CAAC,qBAA8B;;QAC5C,MAAA,IAAI,CAAC,mBAAmB,0CAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC3D,CAAC;IAED,cAAc,CAAC,QAAe,EAAE,qBAA8B;;QAC1D,MAAA,IAAI,CAAC,mBAAmB,0CAAE,cAAc,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAClE,CAAC;IAED,qBAAqB,CAAC,QAAmC;;QACrD,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QACtC,MAAA,IAAI,CAAC,mBAAmB,0CAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,aAAa,CAAC,KAAwB;QAClC,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAA,yBAAc,EACjB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAC/B,KAAK,CACR,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAY,EAAE,KAAwB;QACpD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC/D;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,cAAc;QACV,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,OAAY,EAAE,KAAY,EAAE,KAAwB;QAC7E,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACjF;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,aAAa,CACf,eAAoB,EACpB,kBAA2B,EAC3B,OAAY,EACZ,KAAwB;QAExB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;SACtG;QAED,IAAA,yBAAc,EACV,IAAI,CAAC,QAAQ;QACb,aAAa,CAAC,SAAS,EACvB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAC/B,KAAK,CACR,CAAC;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5F,CAAC;IAED,4BAA4B,CAAC,MAAyB;;QAClD,MAAA,IAAI,CAAC,mBAAmB,0CAAE,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAE/D,qDAAqD;QACrD,kBAAkB;QAClB,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QAEvC,gDAAgD;QAChD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,OAAO;;QACH,MAAA,IAAI,CAAC,mBAAmB,0CAAE,OAAO,EAAE,CAAC;IACxC,CAAC;IAED,OAAO;;QACH,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO;SACV;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,MAAA,IAAI,CAAC,mBAAmB,0CAAE,QAAQ,EAAE,CAAC;IACzC,CAAC;IAED,aAAa;QACT,wCAAwC;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QAErC,uCAAuC;QACvC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,YAAY;QACR,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;IAEO,0BAA0B,CAAC,OAA6B;;QAC5D,MAAA,IAAI,CAAC,mBAAmB,0CAAE,yBAAyB,CAAC,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAQ,EAAE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAEO,iCAAiC,CAAC,SAA4B;QAClE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO;SACV;QAED,+DAA+D;QAC/D,8DAA8D;QAC9D,qDAAqD;QACrD,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YACzD,IAAI,CAAC,qBAAqB,CAAC;gBACvB,WAAW,EAAE,SAAS;gBACtB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;gBAC5C,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE;gBAC9D,qBAAqB,EAAE,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE;gBAC9D,kBAAkB,EAAE,KAAK;gBACzB,wBAAwB,EAAE,KAAK;gBAC/B,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;SACN;IACL,CAAC;CACJ;AAlPD,8DAkPC"}
@@ -93,6 +93,7 @@ export declare class Checker extends ParseTreeWalker {
93
93
  private _isLegalOverloadImplementation;
94
94
  private _walkStatementsAndReportUnreachable;
95
95
  private _validateStubStatement;
96
+ private _validateExceptionTypeRecursive;
96
97
  private _validateExceptionType;
97
98
  private _reportUnusedDunderAllSymbols;
98
99
  private _validateSymbolTables;
@@ -1094,7 +1094,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1094
1094
  // Handle both absolute and relative imports.
1095
1095
  const moduleName = moduleNameNode.leadingDots === 0
1096
1096
  ? this._importResolver.getModuleNameForImport(uri, execEnv).moduleName
1097
- : (0, importStatementUtils_1.getRelativeModuleName)(this._importResolver.fileSystem, this._fileInfo.fileUri, uri);
1097
+ : (0, importStatementUtils_1.getRelativeModuleName)(this._importResolver.fileSystem, this._fileInfo.fileUri, uri, this._importResolver.getConfigOptions());
1098
1098
  if (!moduleName) {
1099
1099
  return undefined;
1100
1100
  }
@@ -1121,7 +1121,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1121
1121
  }
1122
1122
  let isTypeBool = true;
1123
1123
  const diag = new diagnostic_1.DiagnosticAddendum();
1124
- this._evaluator.mapSubtypesExpandTypeVars(operandType, /* conditionFilter */ undefined, (expandedSubtype) => {
1124
+ this._evaluator.mapSubtypesExpandTypeVars(operandType, /* options */ undefined, (expandedSubtype) => {
1125
1125
  if ((0, types_1.isAnyOrUnknown)(expandedSubtype)) {
1126
1126
  return undefined;
1127
1127
  }
@@ -1556,7 +1556,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1556
1556
  // other types, and ParamSpecs. There are legitimate uses for singleton
1557
1557
  // instances in these particular cases.
1558
1558
  let isExempt = nameType.details.constraints.length > 0 ||
1559
- !!nameType.details.defaultType ||
1559
+ nameType.details.isDefaultExplicit ||
1560
1560
  (exemptBoundTypeVar && subscriptIndex !== undefined) ||
1561
1561
  (0, types_1.isParamSpec)(nameType);
1562
1562
  if (!isExempt && baseExpression && subscriptIndex !== undefined) {
@@ -1604,7 +1604,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1604
1604
  if (constructorClass && nameType.scopeId === constructorClass.details.typeVarScopeId) {
1605
1605
  const existingEntry = classTypeVarUsage.get(nameType.details.name);
1606
1606
  const isParamTypeWithEllipsisUsage = ((_d = curParamNode === null || curParamNode === void 0 ? void 0 : curParamNode.defaultValue) === null || _d === void 0 ? void 0 : _d.nodeType) === 18 /* ParseNodeType.Ellipsis */;
1607
- const isExempt = !!nameType.details.defaultType;
1607
+ const isExempt = !!nameType.details.isDefaultExplicit;
1608
1608
  if (!existingEntry) {
1609
1609
  classTypeVarUsage.set(nameType.details.name, {
1610
1610
  typeVar: nameType,
@@ -1935,57 +1935,48 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
1935
1935
  }
1936
1936
  }
1937
1937
  }
1938
- _validateExceptionType(exceptionType, errorNode) {
1939
- var _a, _b;
1940
- const baseExceptionType = this._evaluator.getBuiltInType(errorNode, 'BaseException');
1938
+ _validateExceptionTypeRecursive(exceptionType, diag, baseExceptionType, allowTuple) {
1941
1939
  const derivesFromBaseException = (classType) => {
1942
1940
  if (!baseExceptionType || !(0, types_1.isInstantiableClass)(baseExceptionType)) {
1943
1941
  return true;
1944
1942
  }
1945
1943
  return (0, typeUtils_1.derivesFromClassRecursive)(classType, baseExceptionType, /* ignoreUnknown */ false);
1946
1944
  };
1947
- const diagAddendum = new diagnostic_1.DiagnosticAddendum();
1948
- let resultingExceptionType;
1949
- if ((0, types_1.isAnyOrUnknown)(exceptionType)) {
1950
- resultingExceptionType = exceptionType;
1951
- }
1952
- else {
1953
- if ((0, types_1.isInstantiableClass)(exceptionType)) {
1954
- if (!derivesFromBaseException(exceptionType)) {
1955
- diagAddendum.addMessage(localize_1.LocMessage.exceptionTypeIncorrect().format({
1956
- type: this._evaluator.printType(exceptionType),
1957
- }));
1958
- }
1959
- resultingExceptionType = types_1.ClassType.cloneAsInstance(exceptionType);
1945
+ (0, typeUtils_1.doForEachSubtype)(exceptionType, (exceptionSubtype) => {
1946
+ if ((0, types_1.isAnyOrUnknown)(exceptionSubtype)) {
1947
+ return;
1960
1948
  }
1961
- else if ((0, types_1.isClassInstance)(exceptionType)) {
1962
- const iterableType = (_b = (_a = this._evaluator.getTypeOfIterator({ type: exceptionType }, /* isAsync */ false, errorNode)) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : types_1.UnknownType.create();
1963
- resultingExceptionType = (0, typeUtils_1.mapSubtypes)(iterableType, (subtype) => {
1964
- subtype = this._evaluator.makeTopLevelTypeVarsConcrete(subtype);
1965
- if ((0, types_1.isAnyOrUnknown)(subtype) || (0, types_1.isNever)(subtype)) {
1966
- return subtype;
1967
- }
1968
- if ((0, types_1.isInstantiableClass)(subtype)) {
1969
- if (!derivesFromBaseException(subtype)) {
1970
- diagAddendum.addMessage(localize_1.LocMessage.exceptionTypeIncorrect().format({
1971
- type: this._evaluator.printType(exceptionType),
1972
- }));
1973
- }
1974
- return types_1.ClassType.cloneAsInstance(subtype);
1949
+ if ((0, types_1.isClass)(exceptionSubtype)) {
1950
+ if (types_1.TypeBase.isInstantiable(exceptionSubtype)) {
1951
+ if (!derivesFromBaseException(exceptionSubtype)) {
1952
+ diag.addMessage(localize_1.LocMessage.exceptionTypeIncorrect().format({
1953
+ type: this._evaluator.printType(exceptionSubtype),
1954
+ }));
1975
1955
  }
1976
- diagAddendum.addMessage(localize_1.LocMessage.exceptionTypeIncorrect().format({
1977
- type: this._evaluator.printType(exceptionType),
1978
- }));
1979
- return types_1.UnknownType.create();
1980
- });
1956
+ return;
1957
+ }
1958
+ if (allowTuple && exceptionSubtype.tupleTypeArguments) {
1959
+ exceptionSubtype.tupleTypeArguments.forEach((typeArg) => {
1960
+ this._validateExceptionTypeRecursive(typeArg.type, diag, baseExceptionType,
1961
+ /* allowTuple */ false);
1962
+ });
1963
+ return;
1964
+ }
1965
+ diag.addMessage(localize_1.LocMessage.exceptionTypeIncorrect().format({
1966
+ type: this._evaluator.printType(exceptionSubtype),
1967
+ }));
1981
1968
  }
1982
- }
1969
+ });
1970
+ }
1971
+ _validateExceptionType(exceptionType, errorNode) {
1972
+ const baseExceptionType = this._evaluator.getBuiltInType(errorNode, 'BaseException');
1973
+ const diagAddendum = new diagnostic_1.DiagnosticAddendum();
1974
+ this._validateExceptionTypeRecursive(exceptionType, diagAddendum, baseExceptionType, /* allowTuple */ true);
1983
1975
  if (!diagAddendum.isEmpty()) {
1984
1976
  this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.exceptionTypeNotClass().format({
1985
1977
  type: this._evaluator.printType(exceptionType),
1986
1978
  }), errorNode);
1987
1979
  }
1988
- return resultingExceptionType || types_1.UnknownType.create();
1989
1980
  }
1990
1981
  _reportUnusedDunderAllSymbols(nodes) {
1991
1982
  // If this rule is disabled, don't bother doing the work.
@@ -2122,23 +2113,33 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
2122
2113
  let sawFinal = false;
2123
2114
  let sawAssignment = false;
2124
2115
  decls.forEach((decl) => {
2116
+ var _a;
2125
2117
  if (this._evaluator.isFinalVariableDeclaration(decl)) {
2126
2118
  if (sawFinal) {
2127
2119
  this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.finalRedeclaration().format({ name }), decl.node);
2128
2120
  }
2129
2121
  sawFinal = true;
2130
2122
  }
2131
- if (decl.type === 1 /* DeclarationType.Variable */ && decl.inferredTypeSource) {
2132
- if (sawAssignment) {
2133
- // We check for assignment of Final instance and class variables
2134
- // the type evaluator because we need to take into account whether
2135
- // the assignment is within an `__init__` method, so ignore class
2136
- // scopes here.
2137
- if (scopeType !== 2 /* ScopeType.Class */) {
2138
- this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.finalReassigned().format({ name }), decl.node);
2123
+ let reportRedeclaration = false;
2124
+ if (decl.type === 1 /* DeclarationType.Variable */) {
2125
+ if (decl.inferredTypeSource) {
2126
+ if (sawAssignment) {
2127
+ // We check for assignment of Final instance and class variables
2128
+ // the type evaluator because we need to take into account whether
2129
+ // the assignment is within an `__init__` method, so ignore class
2130
+ // scopes here.
2131
+ if (scopeType !== 2 /* ScopeType.Class */) {
2132
+ reportRedeclaration = true;
2133
+ }
2139
2134
  }
2135
+ sawAssignment = true;
2140
2136
  }
2141
- sawAssignment = true;
2137
+ }
2138
+ else {
2139
+ reportRedeclaration = true;
2140
+ }
2141
+ if (reportRedeclaration) {
2142
+ this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.finalReassigned().format({ name }), (_a = (0, declarationUtils_1.getNameNodeForDeclaration)(decl)) !== null && _a !== void 0 ? _a : decl.node);
2142
2143
  }
2143
2144
  });
2144
2145
  // If it's not a stub file, an assignment must be provided.
@@ -4337,9 +4338,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4337
4338
  return;
4338
4339
  }
4339
4340
  // If the symbol has no declaration, and the type is inferred,
4340
- // skip this check.
4341
- if (!symbol.hasTypedDeclarations() && !this._evaluator.isFinalVariable(symbol)) {
4342
- return;
4341
+ // skip the type validation but still check for other issues like
4342
+ // Final overrides and class/instance variable mismatches.
4343
+ let validateType = true;
4344
+ if (!symbol.hasTypedDeclarations()) {
4345
+ validateType = false;
4343
4346
  }
4344
4347
  // Get the symbol type defined in this class.
4345
4348
  const typeOfSymbol = this._evaluator.getEffectiveTypeOfSymbol(symbol);
@@ -4364,7 +4367,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4364
4367
  continue;
4365
4368
  }
4366
4369
  firstOverride = firstOverride !== null && firstOverride !== void 0 ? firstOverride : baseClassAndSymbol;
4367
- this._validateBaseClassOverride(baseClassAndSymbol, symbol, typeOfSymbol, classType, name);
4370
+ this._validateBaseClassOverride(baseClassAndSymbol, symbol, validateType ? typeOfSymbol : types_1.AnyType.create(), classType, name);
4368
4371
  }
4369
4372
  if (!firstOverride) {
4370
4373
  // If this is a method decorated with @override, validate that there
@@ -4547,7 +4550,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4547
4550
  // Handle properties specially.
4548
4551
  if (!(0, typeUtils_1.isProperty)(overrideType)) {
4549
4552
  const decls = overrideSymbol.getDeclarations();
4550
- if (decls.length > 0) {
4553
+ if (decls.length > 0 && overrideSymbol.isClassMember()) {
4551
4554
  const lastDecl = decls[decls.length - 1];
4552
4555
  this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleMethodOverride, localize_1.LocMessage.propertyOverridden().format({
4553
4556
  name: memberName,