@zzzen/pyright-internal 1.2.0-dev.20230604 → 1.2.0-dev.20230611

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 (78) hide show
  1. package/dist/analyzer/checker.js +42 -29
  2. package/dist/analyzer/checker.js.map +1 -1
  3. package/dist/analyzer/constraintSolver.js +13 -10
  4. package/dist/analyzer/constraintSolver.js.map +1 -1
  5. package/dist/analyzer/importResolver.d.ts +2 -0
  6. package/dist/analyzer/importResolver.js +57 -35
  7. package/dist/analyzer/importResolver.js.map +1 -1
  8. package/dist/analyzer/operations.js +2 -0
  9. package/dist/analyzer/operations.js.map +1 -1
  10. package/dist/analyzer/program.js +10 -8
  11. package/dist/analyzer/program.js.map +1 -1
  12. package/dist/analyzer/protocols.js +182 -183
  13. package/dist/analyzer/protocols.js.map +1 -1
  14. package/dist/analyzer/service.js +13 -0
  15. package/dist/analyzer/service.js.map +1 -1
  16. package/dist/analyzer/typeEvaluator.js +65 -64
  17. package/dist/analyzer/typeEvaluator.js.map +1 -1
  18. package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -0
  19. package/dist/analyzer/typeUtils.d.ts +11 -11
  20. package/dist/analyzer/typeUtils.js +106 -64
  21. package/dist/analyzer/typeUtils.js.map +1 -1
  22. package/dist/backgroundAnalysisBase.d.ts +1 -1
  23. package/dist/backgroundAnalysisBase.js +2 -2
  24. package/dist/backgroundAnalysisBase.js.map +1 -1
  25. package/dist/backgroundThreadBase.d.ts +12 -9
  26. package/dist/backgroundThreadBase.js +28 -20
  27. package/dist/backgroundThreadBase.js.map +1 -1
  28. package/dist/common/charCodes.d.ts +147 -0
  29. package/dist/common/charCodes.js +164 -0
  30. package/dist/common/charCodes.js.map +1 -0
  31. package/dist/common/fileSystem.d.ts +1 -0
  32. package/dist/common/fileSystem.js.map +1 -1
  33. package/dist/common/pathUtils.js.map +1 -1
  34. package/dist/common/realFileSystem.js +3 -0
  35. package/dist/common/realFileSystem.js.map +1 -1
  36. package/dist/languageServerBase.d.ts +3 -3
  37. package/dist/languageServerBase.js +2 -2
  38. package/dist/languageServerBase.js.map +1 -1
  39. package/dist/languageService/definitionProvider.d.ts +2 -0
  40. package/dist/languageService/definitionProvider.js +82 -74
  41. package/dist/languageService/definitionProvider.js.map +1 -1
  42. package/dist/languageService/hoverProvider.d.ts +16 -8
  43. package/dist/languageService/hoverProvider.js +53 -53
  44. package/dist/languageService/hoverProvider.js.map +1 -1
  45. package/dist/localization/localize.d.ts +6 -6
  46. package/dist/localization/localize.js +2 -3
  47. package/dist/localization/localize.js.map +1 -1
  48. package/dist/localization/package.nls.en-us.json +2 -3
  49. package/dist/parser/characterStream.js.map +1 -1
  50. package/dist/parser/characters.js.map +1 -1
  51. package/dist/parser/stringTokenUtils.js.map +1 -1
  52. package/dist/parser/tokenizer.js +10 -1
  53. package/dist/parser/tokenizer.js.map +1 -1
  54. package/dist/pyrightFileSystem.d.ts +1 -0
  55. package/dist/pyrightFileSystem.js +3 -0
  56. package/dist/pyrightFileSystem.js.map +1 -1
  57. package/dist/readonlyAugmentedFileSystem.d.ts +1 -0
  58. package/dist/readonlyAugmentedFileSystem.js +3 -0
  59. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  60. package/dist/tests/checker.test.js +1 -1
  61. package/dist/tests/harness/fourslash/testLanguageService.d.ts +1 -0
  62. package/dist/tests/harness/fourslash/testLanguageService.js +3 -0
  63. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  64. package/dist/tests/harness/fourslash/testState.js +2 -2
  65. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  66. package/dist/tests/harness/vfs/filesystem.d.ts +12 -1
  67. package/dist/tests/harness/vfs/filesystem.js +33 -6
  68. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  69. package/dist/tests/tokenizer.test.js +13 -2
  70. package/dist/tests/tokenizer.test.js.map +1 -1
  71. package/dist/tests/typeEvaluator1.test.js +5 -1
  72. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  73. package/dist/tests/typeEvaluator3.test.js +5 -1
  74. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  75. package/dist/workspaceFactory.d.ts +2 -0
  76. package/dist/workspaceFactory.js +11 -2
  77. package/dist/workspaceFactory.js.map +1 -1
  78. package/package.json +1 -2
@@ -109,170 +109,168 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
109
109
  if (!typesAreConsistent && !diag) {
110
110
  return;
111
111
  }
112
- if (symbol.isClassMember() && !symbol.isIgnoredForProtocolMatch() && !checkedSymbolSet.has(name)) {
113
- let isMemberFromMetaclass = false;
114
- let srcMemberInfo;
115
- // Special-case the `__class_getitem__` for normal protocol comparison.
116
- // This is a convention agreed upon by typeshed maintainers.
117
- if (!treatSourceAsInstantiable && name === '__class_getitem__') {
118
- return;
112
+ if (!symbol.isClassMember() || symbol.isIgnoredForProtocolMatch() || checkedSymbolSet.has(name)) {
113
+ return;
114
+ }
115
+ let isMemberFromMetaclass = false;
116
+ let srcMemberInfo;
117
+ // Special-case the `__class_getitem__` for normal protocol comparison.
118
+ // This is a convention agreed upon by typeshed maintainers.
119
+ if (!treatSourceAsInstantiable && name === '__class_getitem__') {
120
+ return;
121
+ }
122
+ // Special-case the `__slots__` entry for all protocol comparisons.
123
+ // This is a convention agreed upon by typeshed maintainers.
124
+ if (name === '__slots__') {
125
+ return;
126
+ }
127
+ // Note that we've already checked this symbol. It doesn't need to
128
+ // be checked again even if it is declared by a subclass.
129
+ checkedSymbolSet.add(name);
130
+ // Look in the metaclass first if we're treating the source as an instantiable class.
131
+ if (treatSourceAsInstantiable &&
132
+ srcType.details.effectiveMetaclass &&
133
+ (0, types_1.isInstantiableClass)(srcType.details.effectiveMetaclass)) {
134
+ srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType.details.effectiveMetaclass, name);
135
+ if (srcMemberInfo) {
136
+ srcClassTypeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(srcType.details.effectiveMetaclass));
137
+ isMemberFromMetaclass = true;
119
138
  }
120
- // Special-case the `__slots__` entry for all protocol comparisons.
121
- // This is a convention agreed upon by typeshed maintainers.
122
- if (name === '__slots__') {
123
- return;
139
+ }
140
+ if (!srcMemberInfo) {
141
+ srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType, name);
142
+ }
143
+ if (!srcMemberInfo) {
144
+ diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
145
+ typesAreConsistent = false;
146
+ return;
147
+ }
148
+ if (symbol.isClassVar() && !srcMemberInfo.symbol.isClassVar() && !srcMemberInfo.symbol.isClassMember()) {
149
+ diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberClassVar().format({ name }));
150
+ typesAreConsistent = false;
151
+ }
152
+ let destMemberType = (_a = evaluator.getDeclaredTypeOfSymbol(symbol)) === null || _a === void 0 ? void 0 : _a.type;
153
+ if (!destMemberType) {
154
+ return;
155
+ }
156
+ // Partially specialize the type of the symbol based on the MRO class.
157
+ // We can skip this if it's the dest class because it is already
158
+ // specialized.
159
+ if (!types_1.ClassType.isSameGenericClass(mroClass, destType)) {
160
+ destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, mroClass, srcType);
161
+ }
162
+ let srcMemberType;
163
+ if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
164
+ const symbolType = evaluator.getEffectiveTypeOfSymbol(srcMemberInfo.symbol);
165
+ // If this is a function, infer its return type prior to specializing it.
166
+ if ((0, types_1.isFunction)(symbolType)) {
167
+ evaluator.inferReturnTypeIfNecessary(symbolType);
124
168
  }
125
- // Note that we've already checked this symbol. It doesn't need to
126
- // be checked again even if it is declared by a subclass.
127
- checkedSymbolSet.add(name);
128
- // Look in the metaclass first if we're treating the source as an instantiable class.
129
- if (treatSourceAsInstantiable &&
130
- srcType.details.effectiveMetaclass &&
131
- (0, types_1.isInstantiableClass)(srcType.details.effectiveMetaclass)) {
132
- srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType.details.effectiveMetaclass, name);
133
- if (srcMemberInfo) {
134
- srcClassTypeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(srcType.details.effectiveMetaclass));
135
- isMemberFromMetaclass = true;
169
+ srcMemberType = (0, typeUtils_1.partiallySpecializeType)(symbolType, srcMemberInfo.classType, noLiteralSrcType);
170
+ }
171
+ else {
172
+ srcMemberType = types_1.UnknownType.create();
173
+ }
174
+ if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
175
+ if (isMemberFromMetaclass) {
176
+ const boundSrcFunction = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), srcMemberType,
177
+ /* memberClass */ undefined,
178
+ /* errorNode */ undefined, recursionCount,
179
+ /* treatConstructorAsClassMember */ false, srcType);
180
+ if (boundSrcFunction) {
181
+ srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
182
+ }
183
+ if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
184
+ const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType,
185
+ /* memberClass */ undefined,
186
+ /* errorNode */ undefined, recursionCount,
187
+ /* treatConstructorAsClassMember */ false, srcType);
188
+ if (boundDeclaredType) {
189
+ destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
190
+ }
136
191
  }
137
192
  }
138
- if (!srcMemberInfo) {
139
- srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType, name);
193
+ else if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
194
+ // Replace any "Self" TypeVar within the dest with the source type.
195
+ destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
196
+ const boundSrcFunction = evaluator.bindFunctionToClassOrObject(treatSourceAsInstantiable ? srcType : types_1.ClassType.cloneAsInstance(srcType), srcMemberType, srcMemberInfo.classType,
197
+ /* errorNode */ undefined, recursionCount);
198
+ if (boundSrcFunction) {
199
+ srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
200
+ }
201
+ if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
202
+ const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType, srcMemberInfo.classType,
203
+ /* errorNode */ undefined, recursionCount);
204
+ if (boundDeclaredType) {
205
+ destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
206
+ }
207
+ }
140
208
  }
141
- if (!srcMemberInfo) {
142
- diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
143
- typesAreConsistent = false;
209
+ }
210
+ else {
211
+ // Replace any "Self" TypeVar within the dest with the source type.
212
+ destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
213
+ }
214
+ const subDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
215
+ // Properties require special processing.
216
+ if ((0, types_1.isClassInstance)(destMemberType) && types_1.ClassType.isPropertyClass(destMemberType)) {
217
+ if ((0, types_1.isClassInstance)(srcMemberType) &&
218
+ types_1.ClassType.isPropertyClass(srcMemberType) &&
219
+ !treatSourceAsInstantiable) {
220
+ if (!(0, properties_1.assignProperty)(evaluator, types_1.ClassType.cloneAsInstantiable(destMemberType), types_1.ClassType.cloneAsInstantiable(srcMemberType), mroClass, srcType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext, selfTypeVarContext, recursionCount)) {
221
+ if (subDiag) {
222
+ subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
223
+ }
224
+ typesAreConsistent = false;
225
+ }
144
226
  }
145
227
  else {
146
- let destMemberType = (_a = evaluator.getDeclaredTypeOfSymbol(symbol)) === null || _a === void 0 ? void 0 : _a.type;
147
- if (destMemberType) {
148
- // Partially specialize the type of the symbol based on the MRO class.
149
- // We can skip this if it's the dest class because it is already
150
- // specialized.
151
- if (!types_1.ClassType.isSameGenericClass(mroClass, destType)) {
152
- destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, mroClass, srcType);
153
- }
154
- let srcMemberType;
155
- if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
156
- const symbolType = evaluator.getEffectiveTypeOfSymbol(srcMemberInfo.symbol);
157
- // If this is a function, infer its return type prior to specializing it.
158
- if ((0, types_1.isFunction)(symbolType)) {
159
- evaluator.inferReturnTypeIfNecessary(symbolType);
160
- }
161
- srcMemberType = (0, typeUtils_1.partiallySpecializeType)(symbolType, srcMemberInfo.classType, noLiteralSrcType);
162
- }
163
- else {
164
- srcMemberType = types_1.UnknownType.create();
228
+ // Extract the property type from the property class.
229
+ const getterType = evaluator.getGetterTypeFromProperty(destMemberType,
230
+ /* inferTypeIfNeeded */ true);
231
+ if (!getterType ||
232
+ !evaluator.assignType(getterType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext,
233
+ /* srcTypeVarContext */ undefined, assignTypeFlags, recursionCount)) {
234
+ if (subDiag) {
235
+ subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
165
236
  }
166
- if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
167
- if (isMemberFromMetaclass) {
168
- const boundSrcFunction = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), srcMemberType,
169
- /* memberClass */ undefined,
170
- /* errorNode */ undefined, recursionCount,
171
- /* treatConstructorAsClassMember */ false, srcType);
172
- if (boundSrcFunction) {
173
- srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
174
- }
175
- if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
176
- const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType,
177
- /* memberClass */ undefined,
178
- /* errorNode */ undefined, recursionCount,
179
- /* treatConstructorAsClassMember */ false, srcType);
180
- if (boundDeclaredType) {
181
- destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
182
- }
183
- }
184
- }
185
- else if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
186
- // Replace any "Self" TypeVar within the dest with the source type.
187
- destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
188
- const boundSrcFunction = evaluator.bindFunctionToClassOrObject(treatSourceAsInstantiable ? srcType : types_1.ClassType.cloneAsInstance(srcType), srcMemberType, srcMemberInfo.classType,
189
- /* errorNode */ undefined, recursionCount);
190
- if (boundSrcFunction) {
191
- srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
192
- }
193
- if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
194
- const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType, srcMemberInfo.classType,
195
- /* errorNode */ undefined, recursionCount);
196
- if (boundDeclaredType) {
197
- destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
198
- }
199
- }
200
- }
201
- }
202
- else {
203
- // Replace any "Self" TypeVar within the dest with the source type.
204
- destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
205
- }
206
- const subDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
207
- // Properties require special processing.
208
- if ((0, types_1.isClassInstance)(destMemberType) && types_1.ClassType.isPropertyClass(destMemberType)) {
209
- if ((0, types_1.isClassInstance)(srcMemberType) &&
210
- types_1.ClassType.isPropertyClass(srcMemberType) &&
211
- !treatSourceAsInstantiable) {
212
- if (!(0, properties_1.assignProperty)(evaluator, types_1.ClassType.cloneAsInstantiable(destMemberType), types_1.ClassType.cloneAsInstantiable(srcMemberType), mroClass, srcType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext, selfTypeVarContext, recursionCount)) {
213
- if (subDiag) {
214
- subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
215
- }
216
- typesAreConsistent = false;
217
- }
218
- }
219
- else {
220
- // Extract the property type from the property class.
221
- const getterType = evaluator.getGetterTypeFromProperty(destMemberType,
222
- /* inferTypeIfNeeded */ true);
223
- if (!getterType ||
224
- !evaluator.assignType(getterType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext,
225
- /* srcTypeVarContext */ undefined, assignTypeFlags, recursionCount)) {
226
- if (subDiag) {
227
- subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
228
- }
229
- typesAreConsistent = false;
230
- }
231
- }
232
- }
233
- else {
234
- // Class and instance variables that are mutable need to
235
- // enforce invariance.
236
- const primaryDecl = symbol.getDeclarations()[0];
237
- const isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* Variable */ && !primaryDecl.isFinal;
238
- if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext,
239
- /* srcTypeVarContext */ undefined, isInvariant ? assignTypeFlags | 1 /* EnforceInvariance */ : assignTypeFlags, recursionCount)) {
240
- if (subDiag) {
241
- if (isInvariant) {
242
- subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsInvariant().format({ name }));
243
- }
244
- subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
245
- }
246
- typesAreConsistent = false;
247
- }
248
- }
249
- const isDestFinal = symbol
250
- .getTypedDeclarations()
251
- .some((decl) => decl.type === 1 /* Variable */ && !!decl.isFinal);
252
- const isSrcFinal = srcMemberInfo.symbol
253
- .getTypedDeclarations()
254
- .some((decl) => decl.type === 1 /* Variable */ && !!decl.isFinal);
255
- if (isDestFinal !== isSrcFinal) {
256
- if (isDestFinal) {
257
- if (subDiag) {
258
- subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsFinalInProtocol().format({ name }));
259
- }
260
- }
261
- else {
262
- if (subDiag) {
263
- subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsNotFinalInProtocol().format({ name }));
264
- }
265
- }
266
- typesAreConsistent = false;
237
+ typesAreConsistent = false;
238
+ }
239
+ }
240
+ }
241
+ else {
242
+ // Class and instance variables that are mutable need to enforce invariance.
243
+ const primaryDecl = symbol.getDeclarations()[0];
244
+ const isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* Variable */ && !primaryDecl.isFinal;
245
+ if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext,
246
+ /* srcTypeVarContext */ undefined, isInvariant ? assignTypeFlags | 1 /* EnforceInvariance */ : assignTypeFlags, recursionCount)) {
247
+ if (subDiag) {
248
+ if (isInvariant) {
249
+ subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsInvariant().format({ name }));
267
250
  }
251
+ subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
268
252
  }
269
- if (symbol.isClassVar() &&
270
- !srcMemberInfo.symbol.isClassVar() &&
271
- !srcMemberInfo.symbol.isClassMember()) {
272
- diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberClassVar().format({ name }));
273
- typesAreConsistent = false;
253
+ typesAreConsistent = false;
254
+ }
255
+ }
256
+ const isDestFinal = symbol
257
+ .getTypedDeclarations()
258
+ .some((decl) => decl.type === 1 /* Variable */ && !!decl.isFinal);
259
+ const isSrcFinal = srcMemberInfo.symbol
260
+ .getTypedDeclarations()
261
+ .some((decl) => decl.type === 1 /* Variable */ && !!decl.isFinal);
262
+ if (isDestFinal !== isSrcFinal) {
263
+ if (isDestFinal) {
264
+ if (subDiag) {
265
+ subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsFinalInProtocol().format({ name }));
274
266
  }
275
267
  }
268
+ else {
269
+ if (subDiag) {
270
+ subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsNotFinalInProtocol().format({ name }));
271
+ }
272
+ }
273
+ typesAreConsistent = false;
276
274
  }
277
275
  });
278
276
  });
@@ -318,40 +316,41 @@ function assignModuleToProtocol(evaluator, destType, srcType, diag, typeVarConte
318
316
  }
319
317
  mroClass.details.fields.forEach((symbol, name) => {
320
318
  var _a;
321
- if (symbol.isClassMember() && !symbol.isIgnoredForProtocolMatch() && !checkedSymbolSet.has(name)) {
322
- // Note that we've already checked this symbol. It doesn't need to
323
- // be checked again even if it is declared by a subclass.
324
- checkedSymbolSet.add(name);
325
- const memberSymbol = srcType.fields.get(name);
326
- if (!memberSymbol) {
327
- diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
328
- typesAreConsistent = false;
329
- }
330
- else {
331
- let destMemberType = (_a = evaluator.getDeclaredTypeOfSymbol(symbol)) === null || _a === void 0 ? void 0 : _a.type;
332
- if (destMemberType) {
333
- destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, destType);
334
- const srcMemberType = evaluator.getEffectiveTypeOfSymbol(memberSymbol);
335
- if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
336
- if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
337
- const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(destType), destMemberType, destType,
338
- /* errorNode */ undefined, recursionCount);
339
- if (boundDeclaredType) {
340
- destMemberType = boundDeclaredType;
341
- }
342
- }
343
- }
344
- const subDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
345
- if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext,
346
- /* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount)) {
347
- if (subDiag) {
348
- subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
349
- }
350
- typesAreConsistent = false;
351
- }
319
+ if (!symbol.isClassMember() || symbol.isIgnoredForProtocolMatch() || checkedSymbolSet.has(name)) {
320
+ return;
321
+ }
322
+ // Note that we've already checked this symbol. It doesn't need to
323
+ // be checked again even if it is declared by a subclass.
324
+ checkedSymbolSet.add(name);
325
+ const memberSymbol = srcType.fields.get(name);
326
+ if (!memberSymbol) {
327
+ diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
328
+ typesAreConsistent = false;
329
+ return;
330
+ }
331
+ let destMemberType = (_a = evaluator.getDeclaredTypeOfSymbol(symbol)) === null || _a === void 0 ? void 0 : _a.type;
332
+ if (!destMemberType) {
333
+ return;
334
+ }
335
+ destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, destType);
336
+ const srcMemberType = evaluator.getEffectiveTypeOfSymbol(memberSymbol);
337
+ if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
338
+ if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
339
+ const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(destType), destMemberType, destType,
340
+ /* errorNode */ undefined, recursionCount);
341
+ if (boundDeclaredType) {
342
+ destMemberType = boundDeclaredType;
352
343
  }
353
344
  }
354
345
  }
346
+ const subDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
347
+ if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext,
348
+ /* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount)) {
349
+ if (subDiag) {
350
+ subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
351
+ }
352
+ typesAreConsistent = false;
353
+ }
355
354
  });
356
355
  });
357
356
  // If the dest protocol has type parameters, make sure the source type arguments match.
@@ -1 +1 @@
1
- {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../src/analyzer/protocols.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../src/analyzer/protocols.ts"],"names":[],"mappings":"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"}
@@ -507,6 +507,19 @@ class AnalyzerService {
507
507
  reportDuplicateSetting('typeshedPath', configOptions.typeshedPath);
508
508
  }
509
509
  }
510
+ // If the caller specified that "typeshedPath" is the root of the project,
511
+ // then we're presumably running in the typeshed project itself. Auto-exclude
512
+ // stdlib packages that don't match the current Python version.
513
+ if (configOptions.typeshedPath &&
514
+ (0, pathUtils_1.comparePaths)(configOptions.typeshedPath, projectRoot) === 0 &&
515
+ configOptions.defaultPythonVersion !== undefined) {
516
+ const excludeList = this.getImportResolver().getTypeshedStdlibExcludeList(configOptions.typeshedPath, configOptions.defaultPythonVersion);
517
+ this._console.info(`Excluding typeshed stdlib stubs according to VERSIONS file:`);
518
+ excludeList.forEach((exclude) => {
519
+ this._console.info(` ${exclude}`);
520
+ configOptions.exclude.push((0, pathUtils_1.getFileSpec)(this.fs, commandLineOptions.executionRoot, exclude));
521
+ });
522
+ }
510
523
  configOptions.verboseOutput = (_a = commandLineOptions.verboseOutput) !== null && _a !== void 0 ? _a : configOptions.verboseOutput;
511
524
  configOptions.checkOnlyOpenFiles = !!commandLineOptions.checkOnlyOpenFiles;
512
525
  configOptions.autoImportCompletions = !!commandLineOptions.autoImportCompletions;