@zzzen/pyright-internal 1.2.0-dev.20231008 → 1.2.0-dev.20231015

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 (118) hide show
  1. package/dist/analyzer/checker.js +27 -24
  2. package/dist/analyzer/checker.js.map +1 -1
  3. package/dist/analyzer/codeFlowEngine.js +2 -2
  4. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  5. package/dist/analyzer/constraintSolver.js +208 -151
  6. package/dist/analyzer/constraintSolver.js.map +1 -1
  7. package/dist/analyzer/decorators.js +3 -1
  8. package/dist/analyzer/decorators.js.map +1 -1
  9. package/dist/analyzer/parseTreeUtils.d.ts +1 -1
  10. package/dist/analyzer/program.js +7 -1
  11. package/dist/analyzer/program.js.map +1 -1
  12. package/dist/analyzer/properties.d.ts +2 -2
  13. package/dist/analyzer/properties.js +4 -2
  14. package/dist/analyzer/properties.js.map +1 -1
  15. package/dist/analyzer/protocols.js +95 -148
  16. package/dist/analyzer/protocols.js.map +1 -1
  17. package/dist/analyzer/service.js +13 -13
  18. package/dist/analyzer/service.js.map +1 -1
  19. package/dist/analyzer/sourceFile.d.ts +3 -2
  20. package/dist/analyzer/sourceFile.js +21 -7
  21. package/dist/analyzer/sourceFile.js.map +1 -1
  22. package/dist/analyzer/sourceFileInfo.d.ts +4 -4
  23. package/dist/analyzer/sourceFileInfo.js +2 -0
  24. package/dist/analyzer/sourceFileInfo.js.map +1 -1
  25. package/dist/analyzer/staticExpressions.js +2 -1
  26. package/dist/analyzer/staticExpressions.js.map +1 -1
  27. package/dist/analyzer/typeEvaluator.js +24 -22
  28. package/dist/analyzer/typeEvaluator.js.map +1 -1
  29. package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -2
  30. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  31. package/dist/analyzer/typeGuards.js +73 -13
  32. package/dist/analyzer/typeGuards.js.map +1 -1
  33. package/dist/analyzer/typeUtils.d.ts +4 -1
  34. package/dist/analyzer/typeUtils.js +81 -7
  35. package/dist/analyzer/typeUtils.js.map +1 -1
  36. package/dist/analyzer/typeVarContext.d.ts +4 -1
  37. package/dist/analyzer/typeVarContext.js +7 -2
  38. package/dist/analyzer/typeVarContext.js.map +1 -1
  39. package/dist/analyzer/types.d.ts +4 -2
  40. package/dist/analyzer/types.js +22 -14
  41. package/dist/analyzer/types.js.map +1 -1
  42. package/dist/backgroundThreadBase.js +5 -1
  43. package/dist/backgroundThreadBase.js.map +1 -1
  44. package/dist/common/configOptions.d.ts +2 -1
  45. package/dist/common/configOptions.js +9 -5
  46. package/dist/common/configOptions.js.map +1 -1
  47. package/dist/common/extensibility.d.ts +0 -2
  48. package/dist/common/extensibility.js.map +1 -1
  49. package/dist/common/fileSystem.d.ts +9 -4
  50. package/dist/common/fileSystem.js +8 -1
  51. package/dist/common/fileSystem.js.map +1 -1
  52. package/dist/common/pathUtils.d.ts +5 -4
  53. package/dist/common/pathUtils.js +13 -7
  54. package/dist/common/pathUtils.js.map +1 -1
  55. package/dist/common/realFileSystem.d.ts +7 -1
  56. package/dist/common/realFileSystem.js +24 -21
  57. package/dist/common/realFileSystem.js.map +1 -1
  58. package/dist/common/serviceProviderExtensions.d.ts +2 -1
  59. package/dist/common/serviceProviderExtensions.js +4 -0
  60. package/dist/common/serviceProviderExtensions.js.map +1 -1
  61. package/dist/languageServerBase.d.ts +4 -2
  62. package/dist/languageServerBase.js +3 -3
  63. package/dist/languageServerBase.js.map +1 -1
  64. package/dist/languageService/autoImporter.d.ts +1 -1
  65. package/dist/languageService/completionProvider.d.ts +2 -2
  66. package/dist/languageService/completionProvider.js +20 -23
  67. package/dist/languageService/completionProvider.js.map +1 -1
  68. package/dist/languageService/navigationUtils.d.ts +1 -1
  69. package/dist/languageService/navigationUtils.js +2 -2
  70. package/dist/languageService/navigationUtils.js.map +1 -1
  71. package/dist/languageService/referencesProvider.d.ts +9 -2
  72. package/dist/languageService/referencesProvider.js +18 -12
  73. package/dist/languageService/referencesProvider.js.map +1 -1
  74. package/dist/localization/package.nls.cs.json +1 -0
  75. package/dist/localization/package.nls.de.json +1 -0
  76. package/dist/localization/package.nls.es.json +1 -0
  77. package/dist/localization/package.nls.fr.json +1 -0
  78. package/dist/localization/package.nls.it.json +1 -0
  79. package/dist/localization/package.nls.ja.json +1 -0
  80. package/dist/localization/package.nls.ko.json +1 -0
  81. package/dist/localization/package.nls.pl.json +1 -0
  82. package/dist/localization/package.nls.pt-br.json +1 -0
  83. package/dist/localization/package.nls.qps-ploc.json +1 -0
  84. package/dist/localization/package.nls.ru.json +1 -0
  85. package/dist/localization/package.nls.tr.json +1 -0
  86. package/dist/localization/package.nls.zh-cn.json +1 -0
  87. package/dist/localization/package.nls.zh-tw.json +1 -0
  88. package/dist/pyright.js +2 -1
  89. package/dist/pyright.js.map +1 -1
  90. package/dist/pyrightFileSystem.d.ts +0 -1
  91. package/dist/pyrightFileSystem.js +0 -3
  92. package/dist/pyrightFileSystem.js.map +1 -1
  93. package/dist/readonlyAugmentedFileSystem.d.ts +1 -4
  94. package/dist/readonlyAugmentedFileSystem.js +0 -10
  95. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  96. package/dist/server.js +2 -1
  97. package/dist/server.js.map +1 -1
  98. package/dist/tests/config.test.js +5 -3
  99. package/dist/tests/config.test.js.map +1 -1
  100. package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js +56 -10
  101. package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js.map +1 -1
  102. package/dist/tests/harness/fourslash/testState.d.ts +5 -2
  103. package/dist/tests/harness/fourslash/testState.js +13 -14
  104. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  105. package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
  106. package/dist/tests/importResolver.test.js +0 -9
  107. package/dist/tests/importResolver.test.js.map +1 -1
  108. package/dist/tests/pathUtils.test.js +2 -2
  109. package/dist/tests/pathUtils.test.js.map +1 -1
  110. package/dist/tests/typeEvaluator1.test.js +4 -0
  111. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  112. package/dist/tests/typeEvaluator2.test.js +4 -0
  113. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  114. package/dist/tests/typeEvaluator3.test.js +5 -1
  115. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  116. package/dist/tests/typeEvaluator4.test.js +10 -2
  117. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  118. package/package.json +1 -1
@@ -10,6 +10,7 @@
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.assignModuleToProtocol = exports.assignClassToProtocol = void 0;
13
+ const debug_1 = require("../common/debug");
13
14
  const localize_1 = require("../localization/localize");
14
15
  const constraintSolver_1 = require("./constraintSolver");
15
16
  const properties_1 = require("./properties");
@@ -71,6 +72,12 @@ function assignClassToProtocol(evaluator, destType, srcType, diag, destTypeVarCo
71
72
  return isCompatible;
72
73
  }
73
74
  exports.assignClassToProtocol = assignClassToProtocol;
75
+ function assignModuleToProtocol(evaluator, destType, srcType, diag, destTypeVarContext, flags, recursionCount) {
76
+ return assignClassToProtocolInternal(evaluator, destType, srcType, diag, destTypeVarContext,
77
+ /* srcTypeVarContext */ undefined, flags,
78
+ /* treatSourceAsInstantiable */ false, recursionCount);
79
+ }
80
+ exports.assignModuleToProtocol = assignModuleToProtocol;
74
81
  // Looks up the protocol compatibility in the cache. If it's not found,
75
82
  // return undefined.
76
83
  function getProtocolCompatibility(destType, srcType, flags, treatSourceAsInstantiable) {
@@ -118,7 +125,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
118
125
  // If the source is a TypedDict, use the _TypedDict placeholder class
119
126
  // instead. We don't want to use the TypedDict members for protocol
120
127
  // comparison.
121
- if (types_1.ClassType.isTypedDictClass(srcType)) {
128
+ if ((0, types_1.isClass)(srcType) && types_1.ClassType.isTypedDictClass(srcType)) {
122
129
  const typedDictClassType = evaluator.getTypedDictClassType();
123
130
  if (typedDictClassType && (0, types_1.isInstantiableClass)(typedDictClassType)) {
124
131
  srcType = typedDictClassType;
@@ -139,18 +146,19 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
139
146
  if (!typesAreConsistent && !diag) {
140
147
  return;
141
148
  }
142
- mroClass.details.fields.forEach((symbol, name) => {
149
+ mroClass.details.fields.forEach((destSymbol, name) => {
143
150
  var _a;
144
151
  // If we've already determined that the types are not consistent and the caller
145
152
  // hasn't requested detailed diagnostic output, we can shortcut the remainder.
146
153
  if (!typesAreConsistent && !diag) {
147
154
  return;
148
155
  }
149
- if (!symbol.isClassMember() || symbol.isIgnoredForProtocolMatch() || checkedSymbolSet.has(name)) {
156
+ if (!destSymbol.isClassMember() || destSymbol.isIgnoredForProtocolMatch() || checkedSymbolSet.has(name)) {
150
157
  return;
151
158
  }
152
159
  let isMemberFromMetaclass = false;
153
160
  let srcMemberInfo;
161
+ let srcSymbol;
154
162
  // Special-case the `__class_getitem__` for normal protocol comparison.
155
163
  // This is a convention agreed upon by typeshed maintainers.
156
164
  if (!treatSourceAsInstantiable && name === '__class_getitem__') {
@@ -164,88 +172,96 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
164
172
  // Note that we've already checked this symbol. It doesn't need to
165
173
  // be checked again even if it is declared by a subclass.
166
174
  checkedSymbolSet.add(name);
167
- // Look in the metaclass first if we're treating the source as an instantiable class.
168
- if (treatSourceAsInstantiable &&
169
- srcType.details.effectiveMetaclass &&
170
- (0, types_1.isInstantiableClass)(srcType.details.effectiveMetaclass)) {
171
- srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType.details.effectiveMetaclass, name);
172
- if (srcMemberInfo) {
173
- isMemberFromMetaclass = true;
174
- }
175
- }
176
- if (!srcMemberInfo) {
177
- srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType, name);
178
- }
179
- if (!srcMemberInfo) {
180
- diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
181
- typesAreConsistent = false;
182
- return;
183
- }
184
- if (symbol.isClassVar() && !srcMemberInfo.symbol.isClassVar() && !srcMemberInfo.symbol.isClassMember()) {
185
- diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberClassVar().format({ name }));
186
- typesAreConsistent = false;
187
- }
188
- let destMemberType = (_a = evaluator.getDeclaredTypeOfSymbol(symbol)) === null || _a === void 0 ? void 0 : _a.type;
175
+ let destMemberType = (_a = evaluator.getDeclaredTypeOfSymbol(destSymbol)) === null || _a === void 0 ? void 0 : _a.type;
189
176
  if (!destMemberType) {
190
177
  return;
191
178
  }
192
- // Partially specialize the type of the symbol based on the MRO class.
193
- // We can skip this if it's the dest class because it is already
194
- // specialized.
195
- if (!types_1.ClassType.isSameGenericClass(mroClass, destType)) {
196
- destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, mroClass, srcType);
197
- }
198
179
  let srcMemberType;
199
- if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
200
- const symbolType = evaluator.getEffectiveTypeOfSymbol(srcMemberInfo.symbol);
201
- // If this is a function, infer its return type prior to specializing it.
202
- if ((0, types_1.isFunction)(symbolType)) {
203
- evaluator.inferReturnTypeIfNecessary(symbolType);
180
+ if ((0, types_1.isClass)(srcType)) {
181
+ // Look in the metaclass first if we're treating the source as an instantiable class.
182
+ if (treatSourceAsInstantiable &&
183
+ srcType.details.effectiveMetaclass &&
184
+ (0, types_1.isInstantiableClass)(srcType.details.effectiveMetaclass)) {
185
+ srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType.details.effectiveMetaclass, name);
186
+ if (srcMemberInfo) {
187
+ isMemberFromMetaclass = true;
188
+ }
189
+ }
190
+ if (!srcMemberInfo) {
191
+ srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType, name);
192
+ }
193
+ if (!srcMemberInfo) {
194
+ diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
195
+ typesAreConsistent = false;
196
+ return;
197
+ }
198
+ srcSymbol = srcMemberInfo.symbol;
199
+ if (destSymbol.isClassVar() &&
200
+ !srcMemberInfo.symbol.isClassVar() &&
201
+ !srcMemberInfo.symbol.isClassMember()) {
202
+ diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberClassVar().format({ name }));
203
+ typesAreConsistent = false;
204
+ }
205
+ // Partially specialize the type of the symbol based on the MRO class.
206
+ // We can skip this if it's the dest class because it is already
207
+ // specialized.
208
+ if (!types_1.ClassType.isSameGenericClass(mroClass, destType)) {
209
+ destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, mroClass, srcType);
210
+ }
211
+ if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
212
+ const symbolType = evaluator.getEffectiveTypeOfSymbol(srcMemberInfo.symbol);
213
+ // If this is a function, infer its return type prior to specializing it.
214
+ if ((0, types_1.isFunction)(symbolType)) {
215
+ evaluator.inferReturnTypeIfNecessary(symbolType);
216
+ }
217
+ srcMemberType = (0, typeUtils_1.partiallySpecializeType)(symbolType, srcMemberInfo.classType, noLiteralSrcType);
218
+ }
219
+ else {
220
+ srcMemberType = types_1.UnknownType.create();
221
+ }
222
+ // If the source is a method, bind it.
223
+ if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
224
+ if (isMemberFromMetaclass || (0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
225
+ const boundSrcFunction = evaluator.bindFunctionToClassOrObject(treatSourceAsInstantiable && !isMemberFromMetaclass
226
+ ? srcType
227
+ : types_1.ClassType.cloneAsInstance(srcType), srcMemberType, isMemberFromMetaclass ? undefined : srcMemberInfo.classType,
228
+ /* errorNode */ undefined, recursionCount,
229
+ /* treatConstructorAsClassMember */ undefined, isMemberFromMetaclass ? srcType : undefined);
230
+ if (boundSrcFunction) {
231
+ srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
232
+ }
233
+ }
204
234
  }
205
- srcMemberType = (0, typeUtils_1.partiallySpecializeType)(symbolType, srcMemberInfo.classType, noLiteralSrcType);
206
235
  }
207
236
  else {
208
- srcMemberType = types_1.UnknownType.create();
237
+ srcSymbol = srcType.fields.get(name);
238
+ if (!srcSymbol) {
239
+ diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
240
+ typesAreConsistent = false;
241
+ return;
242
+ }
243
+ srcMemberType = evaluator.getEffectiveTypeOfSymbol(srcSymbol);
209
244
  }
210
- if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
211
- if (isMemberFromMetaclass) {
212
- const boundSrcFunction = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), srcMemberType,
213
- /* memberClass */ undefined,
214
- /* errorNode */ undefined, recursionCount,
215
- /* treatConstructorAsClassMember */ false, srcType);
216
- if (boundSrcFunction) {
217
- srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
218
- }
219
- if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
220
- const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType,
221
- /* memberClass */ undefined,
245
+ // Replace any "Self" TypeVar within the dest with the source type.
246
+ destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
247
+ // If the dest is a method, bind it.
248
+ if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
249
+ let boundDeclaredType;
250
+ if ((0, types_1.isClass)(srcType)) {
251
+ (0, debug_1.assert)(srcMemberInfo);
252
+ if (isMemberFromMetaclass || (0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
253
+ boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType, isMemberFromMetaclass ? undefined : srcMemberInfo.classType,
222
254
  /* errorNode */ undefined, recursionCount,
223
- /* treatConstructorAsClassMember */ false, srcType);
224
- if (boundDeclaredType) {
225
- destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
226
- }
255
+ /* treatConstructorAsClassMember */ undefined, isMemberFromMetaclass ? srcType : undefined);
227
256
  }
228
257
  }
229
- else if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
230
- // Replace any "Self" TypeVar within the dest with the source type.
231
- destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
232
- const boundSrcFunction = evaluator.bindFunctionToClassOrObject(treatSourceAsInstantiable ? srcType : types_1.ClassType.cloneAsInstance(srcType), srcMemberType, srcMemberInfo.classType,
258
+ else {
259
+ boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(destType), destMemberType, destType,
233
260
  /* errorNode */ undefined, recursionCount);
234
- if (boundSrcFunction) {
235
- srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
236
- }
237
- if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
238
- const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType, srcMemberInfo.classType,
239
- /* errorNode */ undefined, recursionCount);
240
- if (boundDeclaredType) {
241
- destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
242
- }
243
- }
244
261
  }
245
- }
246
- else {
247
- // Replace any "Self" TypeVar within the dest with the source type.
248
- destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
262
+ if (boundDeclaredType) {
263
+ destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
264
+ }
249
265
  }
250
266
  const subDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
251
267
  // Properties require special processing.
@@ -276,7 +292,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
276
292
  }
277
293
  else {
278
294
  // Class and instance variables that are mutable need to enforce invariance.
279
- const primaryDecl = symbol.getDeclarations()[0];
295
+ const primaryDecl = destSymbol.getDeclarations()[0];
280
296
  const isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* Variable */ && !primaryDecl.isFinal;
281
297
  // Temporarily add the TypeVar scope ID for this method to handle method-scoped TypeVars.
282
298
  const protocolTypeVarContextClone = protocolTypeVarContext.clone();
@@ -295,10 +311,10 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
295
311
  protocolTypeVarContext.copyFromClone(protocolTypeVarContextClone);
296
312
  }
297
313
  }
298
- const isDestFinal = symbol
314
+ const isDestFinal = destSymbol
299
315
  .getTypedDeclarations()
300
316
  .some((decl) => decl.type === 1 /* Variable */ && !!decl.isFinal);
301
- const isSrcFinal = srcMemberInfo.symbol
317
+ const isSrcFinal = srcSymbol
302
318
  .getTypedDeclarations()
303
319
  .some((decl) => decl.type === 1 /* Variable */ && !!decl.isFinal);
304
320
  if (isDestFinal !== isSrcFinal) {
@@ -314,12 +330,13 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
314
330
  }
315
331
  typesAreConsistent = false;
316
332
  }
317
- const destPrimaryDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(symbol);
318
- const srcPrimaryDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(srcMemberInfo.symbol);
333
+ const destPrimaryDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(destSymbol);
334
+ const srcPrimaryDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(srcSymbol);
319
335
  if ((destPrimaryDecl === null || destPrimaryDecl === void 0 ? void 0 : destPrimaryDecl.type) === 1 /* Variable */ &&
320
336
  (srcPrimaryDecl === null || srcPrimaryDecl === void 0 ? void 0 : srcPrimaryDecl.type) === 1 /* Variable */) {
321
337
  const isDestConst = !!destPrimaryDecl.isConstant;
322
- const isSrcConst = ((0, types_1.isClass)(srcMemberInfo.classType) &&
338
+ const isSrcConst = (srcMemberInfo &&
339
+ (0, types_1.isClass)(srcMemberInfo.classType) &&
323
340
  types_1.ClassType.isReadOnlyInstanceVariables(srcMemberInfo.classType)) ||
324
341
  !!srcPrimaryDecl.isConstant;
325
342
  if (!isDestConst && isSrcConst) {
@@ -354,76 +371,6 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
354
371
  }
355
372
  return typesAreConsistent;
356
373
  }
357
- function assignModuleToProtocol(evaluator, destType, srcType, diag, destTypeVarContext, flags, recursionCount) {
358
- if (recursionCount > types_1.maxTypeRecursionCount) {
359
- return true;
360
- }
361
- recursionCount++;
362
- let typesAreConsistent = true;
363
- const checkedSymbolSet = new Set();
364
- const protocolTypeVarContext = createProtocolTypeVarContext(evaluator, destType, destTypeVarContext);
365
- destType.details.mro.forEach((mroClass) => {
366
- if (!(0, types_1.isInstantiableClass)(mroClass) || !types_1.ClassType.isProtocolClass(mroClass)) {
367
- return;
368
- }
369
- mroClass.details.fields.forEach((symbol, name) => {
370
- var _a;
371
- if (!symbol.isClassMember() || symbol.isIgnoredForProtocolMatch() || checkedSymbolSet.has(name)) {
372
- return;
373
- }
374
- // Note that we've already checked this symbol. It doesn't need to
375
- // be checked again even if it is declared by a subclass.
376
- checkedSymbolSet.add(name);
377
- const memberSymbol = srcType.fields.get(name);
378
- if (!memberSymbol) {
379
- diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
380
- typesAreConsistent = false;
381
- return;
382
- }
383
- let destMemberType = (_a = evaluator.getDeclaredTypeOfSymbol(symbol)) === null || _a === void 0 ? void 0 : _a.type;
384
- if (!destMemberType) {
385
- return;
386
- }
387
- const srcMemberType = evaluator.getEffectiveTypeOfSymbol(memberSymbol);
388
- if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
389
- if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
390
- const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(destType), destMemberType, destType,
391
- /* errorNode */ undefined, recursionCount);
392
- if (boundDeclaredType) {
393
- destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
394
- }
395
- }
396
- }
397
- const subDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
398
- const primaryDecl = symbol.getDeclarations()[0];
399
- const isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* Variable */ && !primaryDecl.isFinal;
400
- if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolTypeVarContext,
401
- /* srcTypeVarContext */ undefined, isInvariant ? 1 /* EnforceInvariance */ : 0 /* Default */, recursionCount)) {
402
- if (subDiag) {
403
- if (isInvariant) {
404
- subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsInvariant().format({ name }));
405
- }
406
- subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
407
- }
408
- typesAreConsistent = false;
409
- }
410
- });
411
- });
412
- // If the dest protocol has type parameters, make sure the source type arguments match.
413
- if (typesAreConsistent && destType.details.typeParameters.length > 0 && destType.typeArguments) {
414
- // Create a specialized version of the protocol defined by the dest and
415
- // make sure the resulting type args can be assigned.
416
- const genericProtocolType = types_1.ClassType.cloneForSpecialization(destType, undefined,
417
- /* isTypeArgumentExplicit */ false);
418
- const specializedProtocolType = (0, typeUtils_1.applySolvedTypeVars)(genericProtocolType, protocolTypeVarContext);
419
- if (!evaluator.assignTypeArguments(destType, specializedProtocolType, diag, destTypeVarContext,
420
- /* srcTypeVarContext */ undefined, flags, recursionCount)) {
421
- typesAreConsistent = false;
422
- }
423
- }
424
- return typesAreConsistent;
425
- }
426
- exports.assignModuleToProtocol = assignModuleToProtocol;
427
374
  // Given a (possibly-specialized) destType and an optional typeVarContext, creates
428
375
  // a new typeVarContext that combines the constraints from both the destType and
429
376
  // the destTypeVarContext.
@@ -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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"}
@@ -225,8 +225,7 @@ class AnalyzerService {
225
225
  this._backgroundAnalysisProgram.addInterimFile(path);
226
226
  }
227
227
  getParseResult(path) {
228
- var _a;
229
- return (_a = this._program.getBoundSourceFile(path)) === null || _a === void 0 ? void 0 : _a.getParseResults();
228
+ return this._program.getParseResults(path);
230
229
  }
231
230
  getSourceFile(path) {
232
231
  return this._program.getBoundSourceFile(path);
@@ -419,17 +418,17 @@ class AnalyzerService {
419
418
  configOptions.ensureDefaultExtraPaths(this.fs, (_a = commandLineOptions.autoSearchPaths) !== null && _a !== void 0 ? _a : false, commandLineOptions.extraPaths);
420
419
  if (commandLineOptions.fileSpecs.length > 0) {
421
420
  commandLineOptions.fileSpecs.forEach((fileSpec) => {
422
- configOptions.include.push((0, pathUtils_1.getFileSpec)(this.fs, projectRoot, fileSpec));
421
+ configOptions.include.push((0, pathUtils_1.getFileSpec)(this.serviceProvider, projectRoot, fileSpec));
423
422
  });
424
423
  }
425
424
  if (commandLineOptions.excludeFileSpecs.length > 0) {
426
425
  commandLineOptions.excludeFileSpecs.forEach((fileSpec) => {
427
- configOptions.exclude.push((0, pathUtils_1.getFileSpec)(this.fs, projectRoot, fileSpec));
426
+ configOptions.exclude.push((0, pathUtils_1.getFileSpec)(this.serviceProvider, projectRoot, fileSpec));
428
427
  });
429
428
  }
430
429
  if (commandLineOptions.ignoreFileSpecs.length > 0) {
431
430
  commandLineOptions.ignoreFileSpecs.forEach((fileSpec) => {
432
- configOptions.ignore.push((0, pathUtils_1.getFileSpec)(this.fs, projectRoot, fileSpec));
431
+ configOptions.ignore.push((0, pathUtils_1.getFileSpec)(this.serviceProvider, projectRoot, fileSpec));
433
432
  });
434
433
  }
435
434
  if (!configFilePath && commandLineOptions.executionRoot) {
@@ -437,12 +436,12 @@ class AnalyzerService {
437
436
  // If no config file was found and there are no explicit include
438
437
  // paths specified, assume the caller wants to include all source
439
438
  // files under the execution root path.
440
- configOptions.include.push((0, pathUtils_1.getFileSpec)(this.fs, commandLineOptions.executionRoot, '.'));
439
+ configOptions.include.push((0, pathUtils_1.getFileSpec)(this.serviceProvider, commandLineOptions.executionRoot, '.'));
441
440
  }
442
441
  if (commandLineOptions.excludeFileSpecs.length === 0) {
443
442
  // Add a few common excludes to avoid long scan times.
444
443
  defaultExcludes.forEach((exclude) => {
445
- configOptions.exclude.push((0, pathUtils_1.getFileSpec)(this.fs, commandLineOptions.executionRoot, exclude));
444
+ configOptions.exclude.push((0, pathUtils_1.getFileSpec)(this.serviceProvider, commandLineOptions.executionRoot, exclude));
446
445
  });
447
446
  }
448
447
  }
@@ -458,19 +457,19 @@ class AnalyzerService {
458
457
  configJsonObj = this._parsePyprojectTomlFile(pyprojectFilePath);
459
458
  }
460
459
  if (configJsonObj) {
461
- configOptions.initializeFromJson(configJsonObj, this._typeCheckingMode, this._console, this.fs, host, commandLineOptions.diagnosticSeverityOverrides, commandLineOptions.fileSpecs.length > 0);
460
+ configOptions.initializeFromJson(configJsonObj, this._typeCheckingMode, this.serviceProvider, host, commandLineOptions.diagnosticSeverityOverrides, commandLineOptions.fileSpecs.length > 0);
462
461
  const configFileDir = (0, pathUtils_1.getDirectoryPath)(this._configFilePath);
463
462
  // If no include paths were provided, assume that all files within
464
463
  // the project should be included.
465
464
  if (configOptions.include.length === 0) {
466
465
  this._console.info(`No include entries specified; assuming ${configFileDir}`);
467
- configOptions.include.push((0, pathUtils_1.getFileSpec)(this.fs, configFileDir, '.'));
466
+ configOptions.include.push((0, pathUtils_1.getFileSpec)(this.serviceProvider, configFileDir, '.'));
468
467
  }
469
468
  // If there was no explicit set of excludes, add a few common ones to avoid long scan times.
470
469
  if (configOptions.exclude.length === 0) {
471
470
  defaultExcludes.forEach((exclude) => {
472
471
  this._console.info(`Auto-excluding ${exclude}`);
473
- configOptions.exclude.push((0, pathUtils_1.getFileSpec)(this.fs, configFileDir, exclude));
472
+ configOptions.exclude.push((0, pathUtils_1.getFileSpec)(this.serviceProvider, configFileDir, exclude));
474
473
  });
475
474
  if (configOptions.autoExcludeVenv === undefined) {
476
475
  configOptions.autoExcludeVenv = true;
@@ -523,7 +522,7 @@ class AnalyzerService {
523
522
  this._console.info(`Excluding typeshed stdlib stubs according to VERSIONS file:`);
524
523
  excludeList.forEach((exclude) => {
525
524
  this._console.info(` ${exclude}`);
526
- configOptions.exclude.push((0, pathUtils_1.getFileSpec)(this.fs, commandLineOptions.executionRoot, exclude));
525
+ configOptions.exclude.push((0, pathUtils_1.getFileSpec)(this.serviceProvider, commandLineOptions.executionRoot, exclude));
527
526
  });
528
527
  }
529
528
  configOptions.verboseOutput = (_b = commandLineOptions.verboseOutput) !== null && _b !== void 0 ? _b : configOptions.verboseOutput;
@@ -859,7 +858,7 @@ class AnalyzerService {
859
858
  if (envMarkers.some((f) => this.fs.existsSync((0, pathUtils_1.combinePaths)(absolutePath, ...f)))) {
860
859
  // Save auto exclude paths in the configOptions once we found them.
861
860
  if (!pathUtils_1.FileSpec.isInPath(absolutePath, exclude)) {
862
- exclude.push((0, pathUtils_1.getFileSpec)(this.fs, this._configOptions.projectRoot, `${absolutePath}/**`));
861
+ exclude.push((0, pathUtils_1.getFileSpec)(this.serviceProvider, this._configOptions.projectRoot, `${absolutePath}/**`));
863
862
  }
864
863
  this._console.info(`Auto-excluding ${absolutePath}`);
865
864
  return;
@@ -1113,7 +1112,8 @@ class AnalyzerService {
1113
1112
  }
1114
1113
  // find the innermost matching search path
1115
1114
  let matchingSearchPath;
1116
- const ignoreCase = !(0, pathUtils_1.isFileSystemCaseSensitive)(this.fs);
1115
+ const tempFile = this.serviceProvider.tryGet(serviceProviderExtensions_1.ServiceKeys.tempFile);
1116
+ const ignoreCase = !(0, pathUtils_1.isFileSystemCaseSensitive)(this.fs, tempFile);
1117
1117
  for (const libSearchPath of libSearchPaths) {
1118
1118
  if ((0, pathUtils_1.containsPath)(libSearchPath, path, ignoreCase) &&
1119
1119
  (!matchingSearchPath || matchingSearchPath.length < libSearchPath.length)) {