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

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 (145) hide show
  1. package/dist/analyzer/checker.js +33 -37
  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 +262 -168
  6. package/dist/analyzer/constraintSolver.js.map +1 -1
  7. package/dist/analyzer/constructors.js +3 -4
  8. package/dist/analyzer/constructors.js.map +1 -1
  9. package/dist/analyzer/decorators.js +3 -1
  10. package/dist/analyzer/decorators.js.map +1 -1
  11. package/dist/analyzer/parseTreeUtils.d.ts +1 -1
  12. package/dist/analyzer/patternMatching.js +4 -0
  13. package/dist/analyzer/patternMatching.js.map +1 -1
  14. package/dist/analyzer/program.js +7 -1
  15. package/dist/analyzer/program.js.map +1 -1
  16. package/dist/analyzer/properties.d.ts +2 -2
  17. package/dist/analyzer/properties.js +10 -4
  18. package/dist/analyzer/properties.js.map +1 -1
  19. package/dist/analyzer/protocols.js +119 -174
  20. package/dist/analyzer/protocols.js.map +1 -1
  21. package/dist/analyzer/service.js +13 -13
  22. package/dist/analyzer/service.js.map +1 -1
  23. package/dist/analyzer/sourceFile.d.ts +3 -2
  24. package/dist/analyzer/sourceFile.js +31 -11
  25. package/dist/analyzer/sourceFile.js.map +1 -1
  26. package/dist/analyzer/sourceFileInfo.d.ts +4 -4
  27. package/dist/analyzer/sourceFileInfo.js +2 -0
  28. package/dist/analyzer/sourceFileInfo.js.map +1 -1
  29. package/dist/analyzer/staticExpressions.js +2 -1
  30. package/dist/analyzer/staticExpressions.js.map +1 -1
  31. package/dist/analyzer/typeEvaluator.js +138 -123
  32. package/dist/analyzer/typeEvaluator.js.map +1 -1
  33. package/dist/analyzer/typeEvaluatorTypes.d.ts +4 -3
  34. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  35. package/dist/analyzer/typeGuards.js +101 -33
  36. package/dist/analyzer/typeGuards.js.map +1 -1
  37. package/dist/analyzer/typePrinter.js +4 -1
  38. package/dist/analyzer/typePrinter.js.map +1 -1
  39. package/dist/analyzer/typeUtils.d.ts +13 -2
  40. package/dist/analyzer/typeUtils.js +130 -51
  41. package/dist/analyzer/typeUtils.js.map +1 -1
  42. package/dist/analyzer/typeVarContext.d.ts +4 -1
  43. package/dist/analyzer/typeVarContext.js +7 -2
  44. package/dist/analyzer/typeVarContext.js.map +1 -1
  45. package/dist/analyzer/typedDicts.js +99 -27
  46. package/dist/analyzer/typedDicts.js.map +1 -1
  47. package/dist/analyzer/types.d.ts +6 -2
  48. package/dist/analyzer/types.js +49 -17
  49. package/dist/analyzer/types.js.map +1 -1
  50. package/dist/backgroundThreadBase.js +5 -1
  51. package/dist/backgroundThreadBase.js.map +1 -1
  52. package/dist/common/configOptions.d.ts +2 -1
  53. package/dist/common/configOptions.js +9 -5
  54. package/dist/common/configOptions.js.map +1 -1
  55. package/dist/common/extensibility.d.ts +0 -2
  56. package/dist/common/extensibility.js.map +1 -1
  57. package/dist/common/fileSystem.d.ts +9 -4
  58. package/dist/common/fileSystem.js +8 -1
  59. package/dist/common/fileSystem.js.map +1 -1
  60. package/dist/common/pathUtils.d.ts +8 -5
  61. package/dist/common/pathUtils.js +90 -33
  62. package/dist/common/pathUtils.js.map +1 -1
  63. package/dist/common/realFileSystem.d.ts +7 -1
  64. package/dist/common/realFileSystem.js +35 -22
  65. package/dist/common/realFileSystem.js.map +1 -1
  66. package/dist/common/serviceProviderExtensions.d.ts +3 -4
  67. package/dist/common/serviceProviderExtensions.js +3 -6
  68. package/dist/common/serviceProviderExtensions.js.map +1 -1
  69. package/dist/common/uriParser.d.ts +10 -1
  70. package/dist/common/uriParser.js.map +1 -1
  71. package/dist/languageServerBase.d.ts +4 -4
  72. package/dist/languageServerBase.js +3 -17
  73. package/dist/languageServerBase.js.map +1 -1
  74. package/dist/languageService/autoImporter.d.ts +1 -1
  75. package/dist/languageService/completionProvider.d.ts +2 -2
  76. package/dist/languageService/completionProvider.js +20 -23
  77. package/dist/languageService/completionProvider.js.map +1 -1
  78. package/dist/languageService/hoverProvider.d.ts +6 -2
  79. package/dist/languageService/hoverProvider.js +33 -65
  80. package/dist/languageService/hoverProvider.js.map +1 -1
  81. package/dist/languageService/navigationUtils.d.ts +1 -1
  82. package/dist/languageService/navigationUtils.js +2 -2
  83. package/dist/languageService/navigationUtils.js.map +1 -1
  84. package/dist/languageService/referencesProvider.d.ts +9 -2
  85. package/dist/languageService/referencesProvider.js +19 -12
  86. package/dist/languageService/referencesProvider.js.map +1 -1
  87. package/dist/languageService/tooltipUtils.js +1 -3
  88. package/dist/languageService/tooltipUtils.js.map +1 -1
  89. package/dist/localization/localize.d.ts +4 -3
  90. package/dist/localization/localize.js +1 -1
  91. package/dist/localization/localize.js.map +1 -1
  92. package/dist/localization/package.nls.cs.json +7 -1
  93. package/dist/localization/package.nls.de.json +7 -1
  94. package/dist/localization/package.nls.en-us.json +1 -1
  95. package/dist/localization/package.nls.es.json +7 -1
  96. package/dist/localization/package.nls.fr.json +7 -1
  97. package/dist/localization/package.nls.it.json +7 -1
  98. package/dist/localization/package.nls.ja.json +7 -1
  99. package/dist/localization/package.nls.ko.json +7 -1
  100. package/dist/localization/package.nls.pl.json +7 -1
  101. package/dist/localization/package.nls.pt-br.json +7 -1
  102. package/dist/localization/package.nls.qps-ploc.json +7 -1
  103. package/dist/localization/package.nls.ru.json +7 -1
  104. package/dist/localization/package.nls.tr.json +7 -1
  105. package/dist/localization/package.nls.zh-cn.json +7 -1
  106. package/dist/localization/package.nls.zh-tw.json +7 -1
  107. package/dist/pyright.js +2 -1
  108. package/dist/pyright.js.map +1 -1
  109. package/dist/pyrightFileSystem.d.ts +1 -16
  110. package/dist/pyrightFileSystem.js +1 -60
  111. package/dist/pyrightFileSystem.js.map +1 -1
  112. package/dist/readonlyAugmentedFileSystem.d.ts +1 -4
  113. package/dist/readonlyAugmentedFileSystem.js +0 -10
  114. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  115. package/dist/server.js +2 -1
  116. package/dist/server.js.map +1 -1
  117. package/dist/tests/config.test.js +5 -3
  118. package/dist/tests/config.test.js.map +1 -1
  119. package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js +56 -10
  120. package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js.map +1 -1
  121. package/dist/tests/harness/fourslash/testState.d.ts +5 -2
  122. package/dist/tests/harness/fourslash/testState.js +13 -14
  123. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  124. package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
  125. package/dist/tests/harness/vfs/filesystem.js +4 -0
  126. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  127. package/dist/tests/harness/vfs/pathValidation.js +10 -1
  128. package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
  129. package/dist/tests/importResolver.test.js +0 -9
  130. package/dist/tests/importResolver.test.js.map +1 -1
  131. package/dist/tests/pathUtils.test.js +2 -2
  132. package/dist/tests/pathUtils.test.js.map +1 -1
  133. package/dist/tests/pyrightFileSystem.test.js +0 -20
  134. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  135. package/dist/tests/typeEvaluator1.test.js +4 -0
  136. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  137. package/dist/tests/typeEvaluator2.test.js +14 -2
  138. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  139. package/dist/tests/typeEvaluator3.test.js +5 -1
  140. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  141. package/dist/tests/typeEvaluator4.test.js +10 -2
  142. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  143. package/dist/tests/typeEvaluator5.test.js +7 -1
  144. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  145. 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");
@@ -24,10 +25,6 @@ const maxProtocolCompatibilityCacheEntries = 32;
24
25
  // protocol. If it's false, we're comparing the class instance against the protocol.
25
26
  function assignClassToProtocol(evaluator, destType, srcType, diag, destTypeVarContext, srcTypeVarContext, flags, treatSourceAsInstantiable, recursionCount) {
26
27
  const enforceInvariance = (flags & 1 /* EnforceInvariance */) !== 0;
27
- if (recursionCount > types_1.maxTypeRecursionCount) {
28
- return true;
29
- }
30
- recursionCount++;
31
28
  // Use a stack of pending protocol class evaluations to detect recursion.
32
29
  // This can happen when a protocol class refers to itself.
33
30
  if (protocolAssignmentStack.some((entry) => {
@@ -71,6 +68,12 @@ function assignClassToProtocol(evaluator, destType, srcType, diag, destTypeVarCo
71
68
  return isCompatible;
72
69
  }
73
70
  exports.assignClassToProtocol = assignClassToProtocol;
71
+ function assignModuleToProtocol(evaluator, destType, srcType, diag, destTypeVarContext, flags, recursionCount) {
72
+ return assignClassToProtocolInternal(evaluator, destType, srcType, diag, destTypeVarContext,
73
+ /* srcTypeVarContext */ undefined, flags,
74
+ /* treatSourceAsInstantiable */ false, recursionCount);
75
+ }
76
+ exports.assignModuleToProtocol = assignModuleToProtocol;
74
77
  // Looks up the protocol compatibility in the cache. If it's not found,
75
78
  // return undefined.
76
79
  function getProtocolCompatibility(destType, srcType, flags, treatSourceAsInstantiable) {
@@ -118,7 +121,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
118
121
  // If the source is a TypedDict, use the _TypedDict placeholder class
119
122
  // instead. We don't want to use the TypedDict members for protocol
120
123
  // comparison.
121
- if (types_1.ClassType.isTypedDictClass(srcType)) {
124
+ if ((0, types_1.isClass)(srcType) && types_1.ClassType.isTypedDictClass(srcType)) {
122
125
  const typedDictClassType = evaluator.getTypedDictClassType();
123
126
  if (typedDictClassType && (0, types_1.isInstantiableClass)(typedDictClassType)) {
124
127
  srcType = typedDictClassType;
@@ -139,18 +142,19 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
139
142
  if (!typesAreConsistent && !diag) {
140
143
  return;
141
144
  }
142
- mroClass.details.fields.forEach((symbol, name) => {
145
+ mroClass.details.fields.forEach((destSymbol, name) => {
143
146
  var _a;
144
147
  // If we've already determined that the types are not consistent and the caller
145
148
  // hasn't requested detailed diagnostic output, we can shortcut the remainder.
146
149
  if (!typesAreConsistent && !diag) {
147
150
  return;
148
151
  }
149
- if (!symbol.isClassMember() || symbol.isIgnoredForProtocolMatch() || checkedSymbolSet.has(name)) {
152
+ if (!destSymbol.isClassMember() || destSymbol.isIgnoredForProtocolMatch() || checkedSymbolSet.has(name)) {
150
153
  return;
151
154
  }
152
155
  let isMemberFromMetaclass = false;
153
156
  let srcMemberInfo;
157
+ let srcSymbol;
154
158
  // Special-case the `__class_getitem__` for normal protocol comparison.
155
159
  // This is a convention agreed upon by typeshed maintainers.
156
160
  if (!treatSourceAsInstantiable && name === '__class_getitem__') {
@@ -164,88 +168,103 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
164
168
  // Note that we've already checked this symbol. It doesn't need to
165
169
  // be checked again even if it is declared by a subclass.
166
170
  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;
171
+ let destMemberType = (_a = evaluator.getDeclaredTypeOfSymbol(destSymbol)) === null || _a === void 0 ? void 0 : _a.type;
189
172
  if (!destMemberType) {
190
173
  return;
191
174
  }
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
175
  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);
204
- }
205
- srcMemberType = (0, typeUtils_1.partiallySpecializeType)(symbolType, srcMemberInfo.classType, noLiteralSrcType);
206
- }
207
- else {
208
- srcMemberType = types_1.UnknownType.create();
209
- }
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,
222
- /* errorNode */ undefined, recursionCount,
223
- /* treatConstructorAsClassMember */ false, srcType);
224
- if (boundDeclaredType) {
225
- destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
226
- }
176
+ if ((0, types_1.isClass)(srcType)) {
177
+ // Look in the metaclass first if we're treating the source as an instantiable class.
178
+ if (treatSourceAsInstantiable &&
179
+ srcType.details.effectiveMetaclass &&
180
+ (0, types_1.isInstantiableClass)(srcType.details.effectiveMetaclass)) {
181
+ srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType.details.effectiveMetaclass, name);
182
+ if (srcMemberInfo) {
183
+ isMemberFromMetaclass = true;
227
184
  }
228
185
  }
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,
233
- /* errorNode */ undefined, recursionCount);
234
- if (boundSrcFunction) {
235
- srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
186
+ if (!srcMemberInfo) {
187
+ srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType, name);
188
+ }
189
+ if (!srcMemberInfo) {
190
+ diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
191
+ typesAreConsistent = false;
192
+ return;
193
+ }
194
+ srcSymbol = srcMemberInfo.symbol;
195
+ if (destSymbol.isClassVar() &&
196
+ !srcMemberInfo.symbol.isClassVar() &&
197
+ !srcMemberInfo.symbol.isClassMember()) {
198
+ diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberClassVar().format({ name }));
199
+ typesAreConsistent = false;
200
+ }
201
+ // Partially specialize the type of the symbol based on the MRO class.
202
+ // We can skip this if it's the dest class because it is already
203
+ // specialized.
204
+ if (!types_1.ClassType.isSameGenericClass(mroClass, destType)) {
205
+ destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, mroClass, srcType);
206
+ }
207
+ if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
208
+ const symbolType = evaluator.getEffectiveTypeOfSymbol(srcMemberInfo.symbol);
209
+ // If this is a function, infer its return type prior to specializing it.
210
+ if ((0, types_1.isFunction)(symbolType)) {
211
+ evaluator.inferReturnTypeIfNecessary(symbolType);
236
212
  }
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);
213
+ srcMemberType = (0, typeUtils_1.partiallySpecializeType)(symbolType, srcMemberInfo.classType, noLiteralSrcType);
214
+ }
215
+ else {
216
+ srcMemberType = types_1.UnknownType.create();
217
+ }
218
+ // If the source is a method, bind it.
219
+ if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
220
+ if (isMemberFromMetaclass || (0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
221
+ const boundSrcFunction = evaluator.bindFunctionToClassOrObject(treatSourceAsInstantiable && !isMemberFromMetaclass
222
+ ? srcType
223
+ : types_1.ClassType.cloneAsInstance(srcType), srcMemberType, isMemberFromMetaclass ? undefined : srcMemberInfo.classType,
224
+ /* treatConstructorAsClassMember */ undefined, isMemberFromMetaclass ? srcType : undefined, diag === null || diag === void 0 ? void 0 : diag.createAddendum(), recursionCount);
225
+ if (boundSrcFunction) {
226
+ srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
227
+ }
228
+ else {
229
+ typesAreConsistent = false;
230
+ return;
242
231
  }
243
232
  }
244
233
  }
245
234
  }
246
235
  else {
247
- // Replace any "Self" TypeVar within the dest with the source type.
248
- destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
236
+ srcSymbol = srcType.fields.get(name);
237
+ if (!srcSymbol) {
238
+ diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
239
+ typesAreConsistent = false;
240
+ return;
241
+ }
242
+ srcMemberType = evaluator.getEffectiveTypeOfSymbol(srcSymbol);
243
+ }
244
+ // Replace any "Self" TypeVar within the dest with the source type.
245
+ destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
246
+ // If the dest is a method, bind it.
247
+ if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
248
+ let boundDeclaredType;
249
+ if ((0, types_1.isClass)(srcType)) {
250
+ (0, debug_1.assert)(srcMemberInfo);
251
+ if (isMemberFromMetaclass || (0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
252
+ boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType, isMemberFromMetaclass ? undefined : srcMemberInfo.classType,
253
+ /* treatConstructorAsClassMember */ undefined, isMemberFromMetaclass ? srcType : undefined, diag, recursionCount);
254
+ }
255
+ }
256
+ else {
257
+ boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(destType), destMemberType, destType,
258
+ /* treatConstructorAsClassMember */ undefined,
259
+ /* firstParamType */ undefined, diag, recursionCount);
260
+ }
261
+ if (boundDeclaredType) {
262
+ destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
263
+ }
264
+ else {
265
+ typesAreConsistent = false;
266
+ return;
267
+ }
249
268
  }
250
269
  const subDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
251
270
  // Properties require special processing.
@@ -276,7 +295,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
276
295
  }
277
296
  else {
278
297
  // Class and instance variables that are mutable need to enforce invariance.
279
- const primaryDecl = symbol.getDeclarations()[0];
298
+ const primaryDecl = destSymbol.getDeclarations()[0];
280
299
  const isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* Variable */ && !primaryDecl.isFinal;
281
300
  // Temporarily add the TypeVar scope ID for this method to handle method-scoped TypeVars.
282
301
  const protocolTypeVarContextClone = protocolTypeVarContext.clone();
@@ -295,10 +314,10 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
295
314
  protocolTypeVarContext.copyFromClone(protocolTypeVarContextClone);
296
315
  }
297
316
  }
298
- const isDestFinal = symbol
317
+ const isDestFinal = destSymbol
299
318
  .getTypedDeclarations()
300
319
  .some((decl) => decl.type === 1 /* Variable */ && !!decl.isFinal);
301
- const isSrcFinal = srcMemberInfo.symbol
320
+ const isSrcFinal = srcSymbol
302
321
  .getTypedDeclarations()
303
322
  .some((decl) => decl.type === 1 /* Variable */ && !!decl.isFinal);
304
323
  if (isDestFinal !== isSrcFinal) {
@@ -314,12 +333,13 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
314
333
  }
315
334
  typesAreConsistent = false;
316
335
  }
317
- const destPrimaryDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(symbol);
318
- const srcPrimaryDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(srcMemberInfo.symbol);
336
+ const destPrimaryDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(destSymbol);
337
+ const srcPrimaryDecl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(srcSymbol);
319
338
  if ((destPrimaryDecl === null || destPrimaryDecl === void 0 ? void 0 : destPrimaryDecl.type) === 1 /* Variable */ &&
320
339
  (srcPrimaryDecl === null || srcPrimaryDecl === void 0 ? void 0 : srcPrimaryDecl.type) === 1 /* Variable */) {
321
340
  const isDestConst = !!destPrimaryDecl.isConstant;
322
- const isSrcConst = ((0, types_1.isClass)(srcMemberInfo.classType) &&
341
+ const isSrcConst = (srcMemberInfo &&
342
+ (0, types_1.isClass)(srcMemberInfo.classType) &&
323
343
  types_1.ClassType.isReadOnlyInstanceVariables(srcMemberInfo.classType)) ||
324
344
  !!srcPrimaryDecl.isConstant;
325
345
  if (!isDestConst && isSrcConst) {
@@ -354,104 +374,29 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
354
374
  }
355
375
  return typesAreConsistent;
356
376
  }
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
377
  // Given a (possibly-specialized) destType and an optional typeVarContext, creates
428
378
  // a new typeVarContext that combines the constraints from both the destType and
429
379
  // the destTypeVarContext.
430
380
  function createProtocolTypeVarContext(evaluator, destType, destTypeVarContext) {
431
381
  const protocolTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(destType));
432
- let specializedDestType = destType;
433
- if (destTypeVarContext) {
434
- specializedDestType = (0, typeUtils_1.applySolvedTypeVars)(destType, destTypeVarContext, {
435
- useNarrowBoundOnly: true,
436
- });
437
- }
438
382
  destType.details.typeParameters.forEach((typeParam, index) => {
439
- if (specializedDestType.typeArguments && index < specializedDestType.typeArguments.length) {
440
- const typeArg = specializedDestType.typeArguments[index];
441
- if (!(0, typeUtils_1.requiresSpecialization)(typeArg)) {
442
- // If the caller hasn't provided a destTypeVarContext, assume that
443
- // the destType represents an "expected type" and populate the
444
- // typeVarContext accordingly. For example, if the destType is
445
- // MyProto[Literal[0]], we want to constrain the type argument to be
446
- // no wider than Literal[0] if the type param is not contravariant.
447
- (0, constraintSolver_1.assignTypeToTypeVar)(evaluator, typeParam, typeArg,
448
- /* diag */ undefined, protocolTypeVarContext, destTypeVarContext ? 0 /* Default */ : 1024 /* PopulatingExpectedType */);
449
- }
383
+ const entry = destTypeVarContext === null || destTypeVarContext === void 0 ? void 0 : destTypeVarContext.getPrimarySignature().getTypeVar(typeParam);
384
+ if (entry) {
385
+ protocolTypeVarContext.setTypeVarType(typeParam, entry.narrowBound, entry.narrowBoundNoLiterals, entry.wideBound);
450
386
  }
451
- if (destTypeVarContext) {
452
- const entry = destTypeVarContext.getPrimarySignature().getTypeVar(typeParam);
453
- if (entry) {
454
- protocolTypeVarContext.setTypeVarType(typeParam, entry.narrowBound, entry.narrowBoundNoLiterals, entry.wideBound);
387
+ else if (destType.typeArguments && index < destType.typeArguments.length) {
388
+ let typeArg = destType.typeArguments[index];
389
+ let flags = 1024 /* PopulatingExpectedType */;
390
+ let hasUnsolvedTypeVars = (0, typeUtils_1.requiresSpecialization)(typeArg);
391
+ // If the type argument has unsolved TypeVars, see if they have
392
+ // solved values in the destTypeVarContext.
393
+ if (hasUnsolvedTypeVars && destTypeVarContext) {
394
+ typeArg = (0, typeUtils_1.applySolvedTypeVars)(typeArg, destTypeVarContext, { useNarrowBoundOnly: true });
395
+ flags = 0 /* Default */;
396
+ hasUnsolvedTypeVars = (0, typeUtils_1.requiresSpecialization)(typeArg);
397
+ }
398
+ if (!hasUnsolvedTypeVars) {
399
+ (0, constraintSolver_1.assignTypeToTypeVar)(evaluator, typeParam, typeArg, /* diag */ undefined, protocolTypeVarContext, flags);
455
400
  }
456
401
  }
457
402
  });
@@ -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)) {