@zzzen/pyright-internal 1.2.0-dev.20250216 → 1.2.0-dev.20250302

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 (96) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +4 -4
  2. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  3. package/dist/analyzer/cacheManager.d.ts +5 -2
  4. package/dist/analyzer/cacheManager.js +1 -0
  5. package/dist/analyzer/cacheManager.js.map +1 -1
  6. package/dist/analyzer/checker.js +170 -163
  7. package/dist/analyzer/checker.js.map +1 -1
  8. package/dist/analyzer/constructorTransform.js +1 -1
  9. package/dist/analyzer/constructorTransform.js.map +1 -1
  10. package/dist/analyzer/constructors.js +1 -1
  11. package/dist/analyzer/constructors.js.map +1 -1
  12. package/dist/analyzer/parameterUtils.js +1 -1
  13. package/dist/analyzer/parameterUtils.js.map +1 -1
  14. package/dist/analyzer/parseTreeUtils.d.ts +2 -1
  15. package/dist/analyzer/parseTreeUtils.js +12 -0
  16. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  17. package/dist/analyzer/program.d.ts +0 -1
  18. package/dist/analyzer/program.js +13 -29
  19. package/dist/analyzer/program.js.map +1 -1
  20. package/dist/analyzer/service.d.ts +3 -3
  21. package/dist/analyzer/service.js.map +1 -1
  22. package/dist/analyzer/sourceFile.d.ts +1 -1
  23. package/dist/analyzer/sourceFile.js +1 -1
  24. package/dist/analyzer/sourceFile.js.map +1 -1
  25. package/dist/analyzer/tracePrinter.d.ts +1 -1
  26. package/dist/analyzer/tracePrinter.js +3 -2
  27. package/dist/analyzer/tracePrinter.js.map +1 -1
  28. package/dist/analyzer/tuples.js +3 -2
  29. package/dist/analyzer/tuples.js.map +1 -1
  30. package/dist/analyzer/typeEvaluator.js +144 -94
  31. package/dist/analyzer/typeEvaluator.js.map +1 -1
  32. package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -1
  33. package/dist/analyzer/typePrinter.d.ts +2 -0
  34. package/dist/analyzer/typePrinter.js +20 -0
  35. package/dist/analyzer/typePrinter.js.map +1 -1
  36. package/dist/analyzer/typeUtils.js +3 -3
  37. package/dist/analyzer/typeUtils.js.map +1 -1
  38. package/dist/analyzer/typeWalker.js +1 -1
  39. package/dist/analyzer/typeWalker.js.map +1 -1
  40. package/dist/analyzer/typedDicts.js +6 -7
  41. package/dist/analyzer/typedDicts.js.map +1 -1
  42. package/dist/analyzer/types.d.ts +4 -1
  43. package/dist/analyzer/types.js +20 -4
  44. package/dist/analyzer/types.js.map +1 -1
  45. package/dist/backgroundAnalysisBase.d.ts +26 -4
  46. package/dist/backgroundAnalysisBase.js +23 -15
  47. package/dist/backgroundAnalysisBase.js.map +1 -1
  48. package/dist/common/cancellationUtils.d.ts +4 -1
  49. package/dist/common/cancellationUtils.js +27 -2
  50. package/dist/common/cancellationUtils.js.map +1 -1
  51. package/dist/common/core.d.ts +1 -0
  52. package/dist/common/core.js +10 -0
  53. package/dist/common/core.js.map +1 -1
  54. package/dist/common/fileBasedCancellationUtils.js +4 -0
  55. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  56. package/dist/common/languageServerInterface.d.ts +3 -3
  57. package/dist/languageServerBase.d.ts +3 -3
  58. package/dist/languageServerBase.js.map +1 -1
  59. package/dist/localization/localize.d.ts +4 -0
  60. package/dist/localization/localize.js +2 -0
  61. package/dist/localization/localize.js.map +1 -1
  62. package/dist/localization/package.nls.cs.json +2 -0
  63. package/dist/localization/package.nls.de.json +2 -0
  64. package/dist/localization/package.nls.en-us.json +5 -0
  65. package/dist/localization/package.nls.es.json +2 -0
  66. package/dist/localization/package.nls.fr.json +2 -0
  67. package/dist/localization/package.nls.it.json +2 -0
  68. package/dist/localization/package.nls.ja.json +2 -0
  69. package/dist/localization/package.nls.ko.json +2 -0
  70. package/dist/localization/package.nls.pl.json +2 -0
  71. package/dist/localization/package.nls.pt-br.json +2 -0
  72. package/dist/localization/package.nls.qps-ploc.json +2 -0
  73. package/dist/localization/package.nls.ru.json +2 -0
  74. package/dist/localization/package.nls.tr.json +2 -0
  75. package/dist/localization/package.nls.zh-cn.json +2 -0
  76. package/dist/localization/package.nls.zh-tw.json +2 -0
  77. package/dist/parser/tokenizer.js +3 -2
  78. package/dist/parser/tokenizer.js.map +1 -1
  79. package/dist/server.d.ts +2 -2
  80. package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js +2 -2
  81. package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js.map +1 -1
  82. package/dist/tests/fourslash/completions.wildcardimports.fourslash.js +2 -2
  83. package/dist/tests/fourslash/completions.wildcardimports.fourslash.js.map +1 -1
  84. package/dist/tests/fourslash/hover.wildcardimports.fourslash.js +2 -2
  85. package/dist/tests/fourslash/hover.wildcardimports.fourslash.js.map +1 -1
  86. package/dist/tests/fourslash/signature.docstrings.wildcardimports.fourslash.js +2 -2
  87. package/dist/tests/fourslash/signature.docstrings.wildcardimports.fourslash.js.map +1 -1
  88. package/dist/tests/harness/fourslash/testLanguageService.d.ts +2 -2
  89. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  90. package/dist/tests/serialization.test.js +7 -0
  91. package/dist/tests/serialization.test.js.map +1 -1
  92. package/dist/tests/typeEvaluator4.test.js +2 -2
  93. package/dist/tests/typeEvaluator5.test.js +1 -1
  94. package/dist/tests/typeEvaluator6.test.js +1 -1
  95. package/dist/tests/typeEvaluator8.test.js +1 -1
  96. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { CancellationToken } from 'vscode-languageserver';
2
- import { BackgroundAnalysisBase } from '../backgroundAnalysisBase';
2
+ import { IBackgroundAnalysis } from '../backgroundAnalysisBase';
3
3
  import { ConfigOptions } from '../common/configOptions';
4
4
  import { Diagnostic } from '../common/diagnostic';
5
5
  import { ServiceProvider } from '../common/serviceProvider';
@@ -27,13 +27,13 @@ export declare class BackgroundAnalysisProgram {
27
27
  private _disposed;
28
28
  private _onAnalysisCompletion;
29
29
  private _preEditAnalysis;
30
- constructor(serviceId: string, _serviceProvider: ServiceProvider, _configOptions: ConfigOptions, _importResolver: ImportResolver, _backgroundAnalysis?: BackgroundAnalysisBase | undefined, _maxAnalysisTime?: MaxAnalysisTime | undefined, _disableChecker?: boolean | undefined);
30
+ constructor(serviceId: string, _serviceProvider: ServiceProvider, _configOptions: ConfigOptions, _importResolver: ImportResolver, _backgroundAnalysis?: IBackgroundAnalysis | undefined, _maxAnalysisTime?: MaxAnalysisTime | undefined, _disableChecker?: boolean | undefined);
31
31
  get serviceProvider(): ServiceProvider;
32
32
  get configOptions(): ConfigOptions;
33
33
  get importResolver(): ImportResolver;
34
34
  get program(): Program;
35
35
  get host(): import("../common/host").Host;
36
- get backgroundAnalysis(): BackgroundAnalysisBase | undefined;
36
+ get backgroundAnalysis(): IBackgroundAnalysis | undefined;
37
37
  hasSourceFile(fileUri: Uri): boolean;
38
38
  setConfigOptions(configOptions: ConfigOptions): void;
39
39
  setImportResolver(importResolver: ImportResolver): void;
@@ -61,4 +61,4 @@ export declare class BackgroundAnalysisProgram {
61
61
  private _ensurePartialStubPackages;
62
62
  private _reportDiagnosticsForRemovedFiles;
63
63
  }
64
- export type BackgroundAnalysisProgramFactory = (serviceId: string, serviceProvider: ServiceProvider, configOptions: ConfigOptions, importResolver: ImportResolver, backgroundAnalysis?: BackgroundAnalysisBase, maxAnalysisTime?: MaxAnalysisTime) => BackgroundAnalysisProgram;
64
+ export type BackgroundAnalysisProgramFactory = (serviceId: string, serviceProvider: ServiceProvider, configOptions: ConfigOptions, importResolver: ImportResolver, backgroundAnalysis?: IBackgroundAnalysis, maxAnalysisTime?: MaxAnalysisTime) => BackgroundAnalysisProgram;
@@ -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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"}
@@ -1,5 +1,4 @@
1
1
  import { Worker } from 'worker_threads';
2
- import { BackgroundRequest } from '../backgroundAnalysisBase';
3
2
  import { ConsoleInterface } from '../common/console';
4
3
  export interface CacheOwner {
5
4
  getCacheUsage(): number;
@@ -15,7 +14,11 @@ export declare class CacheManager {
15
14
  constructor(_maxWorkers?: number);
16
15
  registerCacheOwner(provider: CacheOwner): void;
17
16
  addWorker(index: number, worker: Worker): void;
18
- handleCachedUsageBufferMessage(msg: BackgroundRequest): void;
17
+ handleCachedUsageBufferMessage(msg: {
18
+ requestType: string;
19
+ data: string | null;
20
+ sharedUsageBuffer?: SharedArrayBuffer;
21
+ }): void;
19
22
  unregisterCacheOwner(provider: CacheOwner): void;
20
23
  pauseTracking(): {
21
24
  dispose(): void;
@@ -19,6 +19,7 @@ class CacheManager {
19
19
  this._cacheOwners = [];
20
20
  this._sharedUsagePosition = 0;
21
21
  this._lastHeapStats = Date.now();
22
+ // Empty
22
23
  }
23
24
  registerCacheOwner(provider) {
24
25
  this._cacheOwners.push(provider);
@@ -1 +1 @@
1
- {"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../../../../src/analyzer/cacheManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../../../../src/analyzer/cacheManager.ts"],"names":[],"mappings":"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"}
@@ -4579,55 +4579,62 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4579
4579
  }
4580
4580
  }
4581
4581
  }
4582
+ // Don't check certain magic functions or private symbols.
4583
+ // Also, skip this check if the class is a TypedDict. The methods for a TypedDict
4584
+ // are synthesized, and they can result in many overloads. We assume they
4585
+ // are correct and will not produce any errors.
4586
+ if (this._isMethodExemptFromLsp(memberName) ||
4587
+ SymbolNameUtils.isPrivateName(memberName) ||
4588
+ types_1.ClassType.isTypedDictClass(childClassType)) {
4589
+ return;
4590
+ }
4582
4591
  if ((0, types_1.isFunction)(overrideType) || (0, types_1.isOverloaded)(overrideType)) {
4583
4592
  // Don't enforce parameter names for dundered methods. Many of them
4584
4593
  // are misnamed in typeshed stubs, so this would result in many
4585
4594
  // false positives.
4586
4595
  const enforceParamNameMatch = !SymbolNameUtils.isDunderName(memberName);
4587
- // Don't check certain magic functions or private symbols.
4588
- // Also, skip this check if the class is a TypedDict. The methods for a TypedDict
4589
- // are synthesized, and they can result in many overloads. We assume they
4590
- // are correct and will not produce any errors.
4591
- if (!this._isMethodExemptFromLsp(memberName) &&
4592
- !SymbolNameUtils.isPrivateName(memberName) &&
4593
- !types_1.ClassType.isTypedDictClass(childClassType)) {
4594
- if (!this._evaluator.validateOverrideMethod(baseType, overrideType, childClassType, diagAddendum, enforceParamNameMatch)) {
4595
- const decl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(overrideSymbol);
4596
- if (decl) {
4597
- const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleMethodOverride, localize_1.LocMessage.incompatibleMethodOverride().format({
4598
- name: memberName,
4599
- className: baseClass.shared.name,
4600
- }) + diagAddendum.getString(), (0, declarationUtils_1.getNameNodeForDeclaration)(decl) ?? decl.node);
4601
- const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
4602
- if (diag && origDecl) {
4603
- diag.addRelatedInfo(localize_1.LocAddendum.overriddenMethod(), origDecl.uri, origDecl.range);
4604
- }
4605
- }
4606
- }
4596
+ if (this._evaluator.validateOverrideMethod(baseType, overrideType, childClassType, diagAddendum, enforceParamNameMatch)) {
4597
+ return;
4598
+ }
4599
+ const decl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(overrideSymbol);
4600
+ if (!decl) {
4601
+ return;
4602
+ }
4603
+ const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleMethodOverride, localize_1.LocMessage.incompatibleMethodOverride().format({
4604
+ name: memberName,
4605
+ className: baseClass.shared.name,
4606
+ }) + diagAddendum.getString(), (0, declarationUtils_1.getNameNodeForDeclaration)(decl) ?? decl.node);
4607
+ const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
4608
+ if (diag && origDecl) {
4609
+ diag.addRelatedInfo(localize_1.LocAddendum.overriddenMethod(), origDecl.uri, origDecl.range);
4607
4610
  }
4611
+ return;
4608
4612
  }
4609
- else if (!(0, types_1.isAnyOrUnknown)(overrideType)) {
4613
+ if (!(0, types_1.isAnyOrUnknown)(overrideType)) {
4610
4614
  // Special-case overrides of methods in '_TypedDict', since
4611
4615
  // TypedDict attributes aren't manifest as attributes but rather
4612
4616
  // as named keys.
4613
- if (!types_1.ClassType.isBuiltIn(baseClass, '_TypedDict')) {
4614
- const decls = overrideSymbol.getDeclarations();
4615
- if (decls.length > 0) {
4616
- const lastDecl = decls[decls.length - 1];
4617
- const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleMethodOverride, localize_1.LocMessage.methodOverridden().format({
4618
- name: memberName,
4619
- className: baseClass.shared.name,
4620
- type: this._evaluator.printType(overrideType),
4621
- }), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4622
- const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
4623
- if (diag && origDecl) {
4624
- diag.addRelatedInfo(localize_1.LocAddendum.overriddenMethod(), origDecl.uri, origDecl.range);
4625
- }
4626
- }
4617
+ if (types_1.ClassType.isBuiltIn(baseClass, '_TypedDict')) {
4618
+ return;
4619
+ }
4620
+ const decls = overrideSymbol.getDeclarations();
4621
+ if (decls.length === 0) {
4622
+ return;
4623
+ }
4624
+ const lastDecl = decls[decls.length - 1];
4625
+ const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleMethodOverride, localize_1.LocMessage.methodOverridden().format({
4626
+ name: memberName,
4627
+ className: baseClass.shared.name,
4628
+ type: this._evaluator.printType(overrideType),
4629
+ }), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4630
+ const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
4631
+ if (diag && origDecl) {
4632
+ diag.addRelatedInfo(localize_1.LocAddendum.overriddenMethod(), origDecl.uri, origDecl.range);
4627
4633
  }
4628
4634
  }
4635
+ return;
4629
4636
  }
4630
- else if ((0, typeUtils_1.isProperty)(baseType)) {
4637
+ if ((0, typeUtils_1.isProperty)(baseType)) {
4631
4638
  // Handle properties specially.
4632
4639
  if (!(0, typeUtils_1.isProperty)(overrideType)) {
4633
4640
  const decls = overrideSymbol.getDeclarations();
@@ -4642,136 +4649,136 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
4642
4649
  else {
4643
4650
  this._validatePropertyOverride(baseClass, childClassType, baseType, overrideType, overrideSymbol, memberName);
4644
4651
  }
4652
+ return;
4645
4653
  }
4646
- else {
4647
- // This check can be expensive, so don't perform it if the corresponding
4648
- // rule is disabled.
4649
- if (this._fileInfo.diagnosticRuleSet.reportIncompatibleVariableOverride !== 'none') {
4650
- const decls = overrideSymbol.getDeclarations();
4651
- if (decls.length > 0) {
4652
- const lastDecl = decls[decls.length - 1];
4653
- const primaryDecl = decls[0];
4654
- // Verify that the override type is assignable to (same or narrower than)
4655
- // the declared type of the base symbol.
4656
- let isInvariant = primaryDecl?.type === 1 /* DeclarationType.Variable */ && !primaryDecl.isFinal;
4657
- // If the entry is a member of a frozen dataclass, it is immutable,
4658
- // so it does not need to be invariant.
4659
- if (types_1.ClassType.isDataClassFrozen(baseClass) && baseClass.shared.dataClassEntries) {
4660
- const dataclassEntry = baseClass.shared.dataClassEntries.find((entry) => entry.name === memberName);
4661
- if (dataclassEntry) {
4662
- isInvariant = false;
4663
- }
4664
- }
4665
- let overriddenTDEntry;
4666
- let overrideTDEntry;
4667
- if (!overrideSymbol.isIgnoredForProtocolMatch()) {
4668
- if (baseClass.shared.typedDictEntries) {
4669
- overriddenTDEntry =
4670
- baseClass.shared.typedDictEntries.knownItems.get(memberName) ??
4671
- baseClass.shared.typedDictEntries.extraItems ??
4672
- (0, typedDicts_1.getEffectiveExtraItemsEntryType)(this._evaluator, baseClass);
4673
- if (overriddenTDEntry?.isReadOnly) {
4674
- isInvariant = false;
4675
- }
4676
- }
4677
- if (childClassType.shared.typedDictEntries) {
4678
- overrideTDEntry =
4679
- childClassType.shared.typedDictEntries.knownItems.get(memberName) ??
4680
- childClassType.shared.typedDictEntries.extraItems ??
4681
- (0, typedDicts_1.getEffectiveExtraItemsEntryType)(this._evaluator, childClassType);
4682
- }
4683
- }
4684
- let diagAddendum = new diagnostic_1.DiagnosticAddendum();
4685
- if (!this._evaluator.assignType(baseType, overrideType, diagAddendum,
4686
- /* constraints */ undefined, isInvariant ? 1 /* AssignTypeFlags.Invariant */ : 0 /* AssignTypeFlags.Default */)) {
4687
- if (isInvariant) {
4688
- diagAddendum = new diagnostic_1.DiagnosticAddendum();
4689
- diagAddendum.addMessage(localize_1.LocAddendum.overrideIsInvariant());
4690
- diagAddendum.createAddendum().addMessage(localize_1.LocAddendum.overrideInvariantMismatch().format({
4691
- overrideType: this._evaluator.printType(overrideType),
4692
- baseType: this._evaluator.printType(baseType),
4693
- }));
4694
- }
4695
- const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.symbolOverridden().format({
4696
- name: memberName,
4697
- className: baseClass.shared.name,
4698
- }) + diagAddendum.getString(), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4699
- const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
4700
- if (diag && origDecl) {
4701
- diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), origDecl.uri, origDecl.range);
4702
- }
4703
- }
4704
- else if (overriddenTDEntry && overrideTDEntry) {
4705
- // Make sure the required/not-required attribute is compatible.
4706
- let isRequiredCompatible = true;
4707
- if (overriddenTDEntry.isReadOnly) {
4708
- // If the read-only flag is set, a not-required field can be overridden
4709
- // by a required field, but not vice versa.
4710
- isRequiredCompatible = overrideTDEntry.isRequired || !overriddenTDEntry.isRequired;
4711
- }
4712
- else {
4713
- isRequiredCompatible = overrideTDEntry.isRequired === overriddenTDEntry.isRequired;
4714
- }
4715
- if (!isRequiredCompatible) {
4716
- const message = overrideTDEntry.isRequired
4717
- ? localize_1.LocMessage.typedDictFieldRequiredRedefinition
4718
- : localize_1.LocMessage.typedDictFieldNotRequiredRedefinition;
4719
- this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, message().format({ name: memberName }), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4720
- }
4721
- // Make sure that the derived class isn't marking a previously writable
4722
- // entry as read-only.
4723
- if (!overriddenTDEntry.isReadOnly && overrideTDEntry.isReadOnly) {
4724
- this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.typedDictFieldReadOnlyRedefinition().format({
4725
- name: memberName,
4726
- }), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4727
- }
4728
- }
4729
- // Verify that there is not a Final mismatch.
4730
- const isBaseVarFinal = this._evaluator.isFinalVariable(baseClassAndSymbol.symbol);
4731
- const overrideFinalVarDecl = decls.find((d) => this._evaluator.isFinalVariableDeclaration(d));
4732
- if (!isBaseVarFinal && overrideFinalVarDecl) {
4733
- const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.variableFinalOverride().format({
4734
- name: memberName,
4735
- className: baseClass.shared.name,
4736
- }), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4737
- if (diag) {
4738
- diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), overrideFinalVarDecl.uri, overrideFinalVarDecl.range);
4739
- }
4740
- }
4741
- // Verify that a class variable isn't overriding an instance
4742
- // variable or vice versa.
4743
- const isBaseClassVar = baseClassAndSymbol.symbol.isClassVar();
4744
- let isClassVar = overrideSymbol.isClassVar();
4745
- if (isBaseClassVar && !isClassVar) {
4746
- // If the subclass doesn't redeclare the type but simply assigns
4747
- // it without declaring its type, we won't consider it an instance
4748
- // variable.
4749
- if (!overrideSymbol.hasTypedDeclarations()) {
4750
- isClassVar = true;
4751
- }
4752
- // If the subclass is declaring an inner class, we'll consider that
4753
- // to be a ClassVar.
4754
- if (overrideSymbol.getTypedDeclarations().every((decl) => decl.type === 6 /* DeclarationType.Class */)) {
4755
- isClassVar = true;
4756
- }
4757
- }
4758
- // Allow TypedDict members to have the same name as class variables in the
4759
- // base class because TypedDict members are not really instance members.
4760
- const ignoreTypedDictOverride = types_1.ClassType.isTypedDictClass(childClassType) && !isClassVar;
4761
- if (isBaseClassVar !== isClassVar && !ignoreTypedDictOverride) {
4762
- const unformattedMessage = overrideSymbol.isClassVar()
4763
- ? localize_1.LocMessage.classVarOverridesInstanceVar()
4764
- : localize_1.LocMessage.instanceVarOverridesClassVar();
4765
- const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, unformattedMessage.format({
4766
- name: memberName,
4767
- className: baseClass.shared.name,
4768
- }), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4769
- const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
4770
- if (diag && origDecl) {
4771
- diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), origDecl.uri, origDecl.range);
4772
- }
4654
+ // This check can be expensive, so don't perform it if the corresponding
4655
+ // rule is disabled.
4656
+ if (this._fileInfo.diagnosticRuleSet.reportIncompatibleVariableOverride !== 'none') {
4657
+ const decls = overrideSymbol.getDeclarations();
4658
+ if (decls.length === 0) {
4659
+ return;
4660
+ }
4661
+ const lastDecl = decls[decls.length - 1];
4662
+ const primaryDecl = decls[0];
4663
+ // Verify that the override type is assignable to (same or narrower than)
4664
+ // the declared type of the base symbol.
4665
+ let isInvariant = primaryDecl?.type === 1 /* DeclarationType.Variable */ && !primaryDecl.isFinal;
4666
+ // If the entry is a member of a frozen dataclass, it is immutable,
4667
+ // so it does not need to be invariant.
4668
+ if (types_1.ClassType.isDataClassFrozen(baseClass) && baseClass.shared.dataClassEntries) {
4669
+ const dataclassEntry = baseClass.shared.dataClassEntries.find((entry) => entry.name === memberName);
4670
+ if (dataclassEntry) {
4671
+ isInvariant = false;
4672
+ }
4673
+ }
4674
+ let overriddenTDEntry;
4675
+ let overrideTDEntry;
4676
+ if (!overrideSymbol.isIgnoredForProtocolMatch()) {
4677
+ if (baseClass.shared.typedDictEntries) {
4678
+ overriddenTDEntry =
4679
+ baseClass.shared.typedDictEntries.knownItems.get(memberName) ??
4680
+ baseClass.shared.typedDictEntries.extraItems ??
4681
+ (0, typedDicts_1.getEffectiveExtraItemsEntryType)(this._evaluator, baseClass);
4682
+ if (overriddenTDEntry?.isReadOnly) {
4683
+ isInvariant = false;
4773
4684
  }
4774
4685
  }
4686
+ if (childClassType.shared.typedDictEntries) {
4687
+ overrideTDEntry =
4688
+ childClassType.shared.typedDictEntries.knownItems.get(memberName) ??
4689
+ childClassType.shared.typedDictEntries.extraItems ??
4690
+ (0, typedDicts_1.getEffectiveExtraItemsEntryType)(this._evaluator, childClassType);
4691
+ }
4692
+ }
4693
+ let diagAddendum = new diagnostic_1.DiagnosticAddendum();
4694
+ if (!this._evaluator.assignType(baseType, overrideType, diagAddendum,
4695
+ /* constraints */ undefined, isInvariant ? 1 /* AssignTypeFlags.Invariant */ : 0 /* AssignTypeFlags.Default */)) {
4696
+ if (isInvariant) {
4697
+ diagAddendum = new diagnostic_1.DiagnosticAddendum();
4698
+ diagAddendum.addMessage(localize_1.LocAddendum.overrideIsInvariant());
4699
+ diagAddendum.createAddendum().addMessage(localize_1.LocAddendum.overrideInvariantMismatch().format({
4700
+ overrideType: this._evaluator.printType(overrideType),
4701
+ baseType: this._evaluator.printType(baseType),
4702
+ }));
4703
+ }
4704
+ const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.symbolOverridden().format({
4705
+ name: memberName,
4706
+ className: baseClass.shared.name,
4707
+ }) + diagAddendum.getString(), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4708
+ const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
4709
+ if (diag && origDecl) {
4710
+ diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), origDecl.uri, origDecl.range);
4711
+ }
4712
+ }
4713
+ else if (overriddenTDEntry && overrideTDEntry) {
4714
+ // Make sure the required/not-required attribute is compatible.
4715
+ let isRequiredCompatible = true;
4716
+ if (overriddenTDEntry.isReadOnly) {
4717
+ // If the read-only flag is set, a not-required field can be overridden
4718
+ // by a required field, but not vice versa.
4719
+ isRequiredCompatible = overrideTDEntry.isRequired || !overriddenTDEntry.isRequired;
4720
+ }
4721
+ else {
4722
+ isRequiredCompatible = overrideTDEntry.isRequired === overriddenTDEntry.isRequired;
4723
+ }
4724
+ if (!isRequiredCompatible) {
4725
+ const message = overrideTDEntry.isRequired
4726
+ ? localize_1.LocMessage.typedDictFieldRequiredRedefinition
4727
+ : localize_1.LocMessage.typedDictFieldNotRequiredRedefinition;
4728
+ this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, message().format({ name: memberName }), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4729
+ }
4730
+ // Make sure that the derived class isn't marking a previously writable
4731
+ // entry as read-only.
4732
+ if (!overriddenTDEntry.isReadOnly && overrideTDEntry.isReadOnly) {
4733
+ this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.typedDictFieldReadOnlyRedefinition().format({
4734
+ name: memberName,
4735
+ }), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4736
+ }
4737
+ }
4738
+ // Verify that there is not a Final mismatch.
4739
+ const isBaseVarFinal = this._evaluator.isFinalVariable(baseClassAndSymbol.symbol);
4740
+ const overrideFinalVarDecl = decls.find((d) => this._evaluator.isFinalVariableDeclaration(d));
4741
+ if (!isBaseVarFinal && overrideFinalVarDecl) {
4742
+ const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.LocMessage.variableFinalOverride().format({
4743
+ name: memberName,
4744
+ className: baseClass.shared.name,
4745
+ }), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4746
+ if (diag) {
4747
+ diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), overrideFinalVarDecl.uri, overrideFinalVarDecl.range);
4748
+ }
4749
+ }
4750
+ // Verify that a class variable isn't overriding an instance
4751
+ // variable or vice versa.
4752
+ const isBaseClassVar = baseClassAndSymbol.symbol.isClassVar();
4753
+ let isClassVar = overrideSymbol.isClassVar();
4754
+ if (isBaseClassVar && !isClassVar) {
4755
+ // If the subclass doesn't redeclare the type but simply assigns
4756
+ // it without declaring its type, we won't consider it an instance
4757
+ // variable.
4758
+ if (!overrideSymbol.hasTypedDeclarations()) {
4759
+ isClassVar = true;
4760
+ }
4761
+ // If the subclass is declaring an inner class, we'll consider that
4762
+ // to be a ClassVar.
4763
+ if (overrideSymbol.getTypedDeclarations().every((decl) => decl.type === 6 /* DeclarationType.Class */)) {
4764
+ isClassVar = true;
4765
+ }
4766
+ }
4767
+ // Allow TypedDict members to have the same name as class variables in the
4768
+ // base class because TypedDict members are not really instance members.
4769
+ const ignoreTypedDictOverride = types_1.ClassType.isTypedDictClass(childClassType) && !isClassVar;
4770
+ if (isBaseClassVar !== isClassVar && !ignoreTypedDictOverride) {
4771
+ const unformattedMessage = overrideSymbol.isClassVar()
4772
+ ? localize_1.LocMessage.classVarOverridesInstanceVar()
4773
+ : localize_1.LocMessage.instanceVarOverridesClassVar();
4774
+ const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, unformattedMessage.format({
4775
+ name: memberName,
4776
+ className: baseClass.shared.name,
4777
+ }), (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl) ?? lastDecl.node);
4778
+ const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
4779
+ if (diag && origDecl) {
4780
+ diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), origDecl.uri, origDecl.range);
4781
+ }
4775
4782
  }
4776
4783
  }
4777
4784
  }