@zzzen/pyright-internal 1.2.0-dev.20240707 → 1.2.0-dev.20240721

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 (184) hide show
  1. package/dist/analyzer/analyzerNodeInfo.js +74 -46
  2. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +506 -512
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/checker.js +672 -655
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/codeFlowEngine.d.ts +5 -3
  8. package/dist/analyzer/codeFlowEngine.js +112 -103
  9. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  10. package/dist/analyzer/codeFlowTypes.js +30 -28
  11. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  12. package/dist/analyzer/constraintSolver.js +70 -66
  13. package/dist/analyzer/constraintSolver.js.map +1 -1
  14. package/dist/analyzer/constructorTransform.d.ts +1 -2
  15. package/dist/analyzer/constructorTransform.js +26 -27
  16. package/dist/analyzer/constructorTransform.js.map +1 -1
  17. package/dist/analyzer/constructors.d.ts +2 -2
  18. package/dist/analyzer/constructors.js +95 -190
  19. package/dist/analyzer/constructors.js.map +1 -1
  20. package/dist/analyzer/dataClasses.js +110 -179
  21. package/dist/analyzer/dataClasses.js.map +1 -1
  22. package/dist/analyzer/declarationUtils.js +14 -15
  23. package/dist/analyzer/declarationUtils.js.map +1 -1
  24. package/dist/analyzer/decorators.js +78 -79
  25. package/dist/analyzer/decorators.js.map +1 -1
  26. package/dist/analyzer/enums.js +70 -56
  27. package/dist/analyzer/enums.js.map +1 -1
  28. package/dist/analyzer/functionTransform.js +8 -18
  29. package/dist/analyzer/functionTransform.js.map +1 -1
  30. package/dist/analyzer/importResolver.d.ts +2 -1
  31. package/dist/analyzer/importResolver.js +40 -29
  32. package/dist/analyzer/importResolver.js.map +1 -1
  33. package/dist/analyzer/importStatementUtils.js +27 -27
  34. package/dist/analyzer/importStatementUtils.js.map +1 -1
  35. package/dist/analyzer/namedTuples.js +33 -59
  36. package/dist/analyzer/namedTuples.js.map +1 -1
  37. package/dist/analyzer/operations.js +194 -145
  38. package/dist/analyzer/operations.js.map +1 -1
  39. package/dist/analyzer/packageTypeVerifier.js +66 -62
  40. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  41. package/dist/analyzer/parameterUtils.d.ts +4 -4
  42. package/dist/analyzer/parameterUtils.js +30 -47
  43. package/dist/analyzer/parameterUtils.js.map +1 -1
  44. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  45. package/dist/analyzer/parseTreeUtils.js +294 -272
  46. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  47. package/dist/analyzer/parseTreeWalker.js +76 -76
  48. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  49. package/dist/analyzer/patternMatching.js +178 -145
  50. package/dist/analyzer/patternMatching.js.map +1 -1
  51. package/dist/analyzer/program.js +1 -1
  52. package/dist/analyzer/program.js.map +1 -1
  53. package/dist/analyzer/properties.js +82 -147
  54. package/dist/analyzer/properties.js.map +1 -1
  55. package/dist/analyzer/protocols.js +29 -25
  56. package/dist/analyzer/protocols.js.map +1 -1
  57. package/dist/analyzer/sourceFile.js +3 -3
  58. package/dist/analyzer/sourceFile.js.map +1 -1
  59. package/dist/analyzer/sourceMapper.js +20 -19
  60. package/dist/analyzer/sourceMapper.js.map +1 -1
  61. package/dist/analyzer/staticExpressions.js +83 -84
  62. package/dist/analyzer/staticExpressions.js.map +1 -1
  63. package/dist/analyzer/testWalker.js +15 -3
  64. package/dist/analyzer/testWalker.js.map +1 -1
  65. package/dist/analyzer/tracePrinter.js +20 -20
  66. package/dist/analyzer/tracePrinter.js.map +1 -1
  67. package/dist/analyzer/typeDocStringUtils.js +25 -25
  68. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  69. package/dist/analyzer/typeEvaluator.js +2443 -2350
  70. package/dist/analyzer/typeEvaluator.js.map +1 -1
  71. package/dist/analyzer/typeEvaluatorTypes.d.ts +13 -9
  72. package/dist/analyzer/typeEvaluatorTypes.js +7 -1
  73. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  74. package/dist/analyzer/typeGuards.js +212 -215
  75. package/dist/analyzer/typeGuards.js.map +1 -1
  76. package/dist/analyzer/typePrinter.js +118 -115
  77. package/dist/analyzer/typePrinter.js.map +1 -1
  78. package/dist/analyzer/typeStubWriter.js +104 -103
  79. package/dist/analyzer/typeStubWriter.js.map +1 -1
  80. package/dist/analyzer/typeUtils.d.ts +30 -15
  81. package/dist/analyzer/typeUtils.js +534 -436
  82. package/dist/analyzer/typeUtils.js.map +1 -1
  83. package/dist/analyzer/typeVarContext.js +8 -8
  84. package/dist/analyzer/typeVarContext.js.map +1 -1
  85. package/dist/analyzer/typeWalker.js +13 -10
  86. package/dist/analyzer/typeWalker.js.map +1 -1
  87. package/dist/analyzer/typedDicts.js +97 -199
  88. package/dist/analyzer/typedDicts.js.map +1 -1
  89. package/dist/analyzer/types.d.ts +152 -106
  90. package/dist/analyzer/types.js +695 -496
  91. package/dist/analyzer/types.js.map +1 -1
  92. package/dist/commands/dumpFileDebugInfoCommand.js +34 -34
  93. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  94. package/dist/common/fileSystem.d.ts +1 -0
  95. package/dist/common/fileSystem.js.map +1 -1
  96. package/dist/common/fullAccessHost.js +6 -4
  97. package/dist/common/fullAccessHost.js.map +1 -1
  98. package/dist/common/realFileSystem.d.ts +1 -0
  99. package/dist/common/realFileSystem.js +4 -0
  100. package/dist/common/realFileSystem.js.map +1 -1
  101. package/dist/common/textEditTracker.js +14 -14
  102. package/dist/common/textEditTracker.js.map +1 -1
  103. package/dist/languageService/autoImporter.js +10 -10
  104. package/dist/languageService/autoImporter.js.map +1 -1
  105. package/dist/languageService/callHierarchyProvider.js +23 -23
  106. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  107. package/dist/languageService/completionProvider.js +153 -151
  108. package/dist/languageService/completionProvider.js.map +1 -1
  109. package/dist/languageService/definitionProvider.d.ts +1 -1
  110. package/dist/languageService/definitionProvider.js +3 -1
  111. package/dist/languageService/definitionProvider.js.map +1 -1
  112. package/dist/languageService/documentSymbolCollector.js +19 -19
  113. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  114. package/dist/languageService/hoverProvider.js +36 -27
  115. package/dist/languageService/hoverProvider.js.map +1 -1
  116. package/dist/languageService/importSorter.js +8 -8
  117. package/dist/languageService/importSorter.js.map +1 -1
  118. package/dist/languageService/referencesProvider.d.ts +10 -4
  119. package/dist/languageService/referencesProvider.js +30 -18
  120. package/dist/languageService/referencesProvider.js.map +1 -1
  121. package/dist/languageService/renameProvider.js +21 -4
  122. package/dist/languageService/renameProvider.js.map +1 -1
  123. package/dist/languageService/signatureHelpProvider.d.ts +1 -1
  124. package/dist/languageService/signatureHelpProvider.js +6 -6
  125. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  126. package/dist/languageService/symbolIndexer.js +3 -3
  127. package/dist/languageService/symbolIndexer.js.map +1 -1
  128. package/dist/languageService/tooltipUtils.js +13 -13
  129. package/dist/languageService/tooltipUtils.js.map +1 -1
  130. package/dist/localization/localize.d.ts +4 -3
  131. package/dist/localization/localize.js +2 -1
  132. package/dist/localization/localize.js.map +1 -1
  133. package/dist/localization/package.nls.cs.json +0 -1
  134. package/dist/localization/package.nls.de.json +0 -1
  135. package/dist/localization/package.nls.en-us.json +2 -1
  136. package/dist/localization/package.nls.es.json +0 -1
  137. package/dist/localization/package.nls.fr.json +0 -1
  138. package/dist/localization/package.nls.it.json +0 -1
  139. package/dist/localization/package.nls.ja.json +0 -1
  140. package/dist/localization/package.nls.ko.json +0 -1
  141. package/dist/localization/package.nls.pl.json +0 -1
  142. package/dist/localization/package.nls.pt-br.json +0 -1
  143. package/dist/localization/package.nls.qps-ploc.json +0 -1
  144. package/dist/localization/package.nls.ru.json +0 -1
  145. package/dist/localization/package.nls.tr.json +0 -1
  146. package/dist/localization/package.nls.zh-cn.json +0 -1
  147. package/dist/localization/package.nls.zh-tw.json +0 -1
  148. package/dist/parser/parseNodes.d.ts +471 -402
  149. package/dist/parser/parseNodes.js +629 -356
  150. package/dist/parser/parseNodes.js.map +1 -1
  151. package/dist/parser/parser.d.ts +1 -0
  152. package/dist/parser/parser.js +345 -300
  153. package/dist/parser/parser.js.map +1 -1
  154. package/dist/tests/classDeclaration.test.js +14 -14
  155. package/dist/tests/classDeclaration.test.js.map +1 -1
  156. package/dist/tests/fourslash/rename.args.fourslash.d.ts +1 -0
  157. package/dist/tests/fourslash/rename.args.fourslash.js +71 -0
  158. package/dist/tests/fourslash/rename.args.fourslash.js.map +1 -0
  159. package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
  160. package/dist/tests/harness/vfs/filesystem.js +6 -2
  161. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  162. package/dist/tests/importResolver.test.js +4 -3
  163. package/dist/tests/importResolver.test.js.map +1 -1
  164. package/dist/tests/parseTreeUtils.test.js +5 -5
  165. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  166. package/dist/tests/parser.test.js +8 -8
  167. package/dist/tests/parser.test.js.map +1 -1
  168. package/dist/tests/sourceMapperUtils.test.js +7 -7
  169. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  170. package/dist/tests/typeEvaluator1.test.js +17 -0
  171. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  172. package/dist/tests/typeEvaluator2.test.js +4 -0
  173. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  174. package/dist/tests/typeEvaluator3.test.js +8 -3
  175. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  176. package/dist/tests/typeEvaluator4.test.js +10 -6
  177. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  178. package/dist/tests/typeEvaluator6.test.js +6 -2
  179. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  180. package/dist/tests/typeEvaluator7.test.js +7 -3
  181. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  182. package/dist/tests/typePrinter.test.js +14 -39
  183. package/dist/tests/typePrinter.test.js.map +1 -1
  184. package/package.json +1 -1
@@ -28,13 +28,13 @@ function createProperty(evaluator, decoratorNode, decoratorType, fget) {
28
28
  const typeMetaclass = evaluator.getBuiltInType(decoratorNode, 'type');
29
29
  const typeSourceId = types_1.ClassType.isBuiltIn(decoratorType, 'property')
30
30
  ? (0, parseTreeUtils_1.getTypeSourceId)(decoratorNode)
31
- : decoratorType.details.typeSourceId;
32
- const propertyClass = types_1.ClassType.createInstantiable(decoratorType.details.name, (0, parseTreeUtils_1.getClassFullName)(decoratorNode, fileInfo.moduleName, `__property_${fget.details.name}`), fileInfo.moduleName, fileInfo.fileUri, 128 /* ClassTypeFlags.PropertyClass */ | 1 /* ClassTypeFlags.BuiltInClass */, typeSourceId,
31
+ : decoratorType.shared.typeSourceId;
32
+ const propertyClass = types_1.ClassType.createInstantiable(decoratorType.shared.name, (0, parseTreeUtils_1.getClassFullName)(decoratorNode, fileInfo.moduleName, `__property_${fget.shared.name}`), fileInfo.moduleName, fileInfo.fileUri, 128 /* ClassTypeFlags.PropertyClass */ | 1 /* ClassTypeFlags.BuiltIn */, typeSourceId,
33
33
  /* declaredMetaclass */ undefined, (0, types_1.isInstantiableClass)(typeMetaclass) ? typeMetaclass : types_1.UnknownType.create());
34
- propertyClass.details.declaration = decoratorType.details.declaration;
35
- propertyClass.details.typeVarScopeId = decoratorType.details.typeVarScopeId;
34
+ propertyClass.shared.declaration = decoratorType.shared.declaration;
35
+ propertyClass.shared.typeVarScopeId = decoratorType.shared.typeVarScopeId;
36
36
  const objectType = evaluator.getBuiltInType(decoratorNode, 'object');
37
- propertyClass.details.baseClasses.push((0, types_1.isInstantiableClass)(objectType) ? objectType : types_1.UnknownType.create());
37
+ propertyClass.shared.baseClasses.push((0, types_1.isInstantiableClass)(objectType) ? objectType : types_1.UnknownType.create());
38
38
  (0, typeUtils_1.computeMroLinearization)(propertyClass);
39
39
  // Clone the symbol table of the old class type.
40
40
  const fields = types_1.ClassType.getSymbolTable(propertyClass);
@@ -47,16 +47,16 @@ function createProperty(evaluator, decoratorNode, decoratorType, fget) {
47
47
  }
48
48
  });
49
49
  const propertyObject = types_1.ClassType.cloneAsInstance(propertyClass);
50
- propertyClass.isAsymmetricDescriptor = false;
50
+ propertyClass.priv.isAsymmetricDescriptor = false;
51
51
  // Update the __set__ and __delete__ methods if present.
52
52
  updateGetSetDelMethodForClonedProperty(evaluator, propertyObject);
53
53
  // Fill in the fget method.
54
- propertyObject.fgetInfo = {
55
- methodType: types_1.FunctionType.cloneWithNewFlags(fget, fget.details.flags | 4 /* FunctionTypeFlags.StaticMethod */),
56
- classType: fget.details.methodClass,
54
+ propertyObject.priv.fgetInfo = {
55
+ methodType: types_1.FunctionType.cloneWithNewFlags(fget, fget.shared.flags | 4 /* FunctionTypeFlags.StaticMethod */),
56
+ classType: fget.shared.methodClass,
57
57
  };
58
58
  if (types_1.FunctionType.isClassMethod(fget)) {
59
- propertyClass.details.flags |= 131072 /* ClassTypeFlags.ClassProperty */;
59
+ propertyClass.shared.flags |= 131072 /* ClassTypeFlags.ClassProperty */;
60
60
  }
61
61
  // Fill in the __get__ method with an overload.
62
62
  addGetMethodToPropertySymbolTable(evaluator, propertyObject, fget);
@@ -70,13 +70,13 @@ function clonePropertyWithSetter(evaluator, prop, fset, errorNode) {
70
70
  return prop;
71
71
  }
72
72
  const classType = prop;
73
- const flagsToClone = classType.details.flags;
74
- let isAsymmetricDescriptor = !!classType.isAsymmetricDescriptor;
73
+ const flagsToClone = classType.shared.flags;
74
+ let isAsymmetricDescriptor = !!classType.priv.isAsymmetricDescriptor;
75
75
  // Verify parameters for fset.
76
76
  // We'll skip this test if the diagnostic rule is disabled because it
77
77
  // can be somewhat expensive, especially in code that is not annotated.
78
78
  const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(errorNode);
79
- if (errorNode.parameters.length >= 2) {
79
+ if (errorNode.d.params.length >= 2) {
80
80
  const typeAnnotation = (0, parseTreeUtils_1.getTypeAnnotationForParameter)(errorNode, 1);
81
81
  if (typeAnnotation) {
82
82
  // Verify consistency of the type.
@@ -98,15 +98,15 @@ function clonePropertyWithSetter(evaluator, prop, fset, errorNode) {
98
98
  }
99
99
  }
100
100
  }
101
- const propertyClass = types_1.ClassType.createInstantiable(classType.details.name, classType.details.fullName, classType.details.moduleName, (0, analyzerNodeInfo_1.getFileInfo)(errorNode).fileUri, flagsToClone, classType.details.typeSourceId, classType.details.declaredMetaclass, classType.details.effectiveMetaclass);
102
- propertyClass.details.declaration = classType.details.declaration;
103
- propertyClass.details.typeVarScopeId = classType.details.typeVarScopeId;
101
+ const propertyClass = types_1.ClassType.createInstantiable(classType.shared.name, classType.shared.fullName, classType.shared.moduleName, (0, analyzerNodeInfo_1.getFileInfo)(errorNode).fileUri, flagsToClone, classType.shared.typeSourceId, classType.shared.declaredMetaclass, classType.shared.effectiveMetaclass);
102
+ propertyClass.shared.declaration = classType.shared.declaration;
103
+ propertyClass.shared.typeVarScopeId = classType.shared.typeVarScopeId;
104
104
  const objectType = evaluator.getBuiltInType(errorNode, 'object');
105
- propertyClass.details.baseClasses.push((0, types_1.isInstantiableClass)(objectType) ? objectType : types_1.UnknownType.create());
105
+ propertyClass.shared.baseClasses.push((0, types_1.isInstantiableClass)(objectType) ? objectType : types_1.UnknownType.create());
106
106
  (0, typeUtils_1.computeMroLinearization)(propertyClass);
107
- propertyClass.fgetInfo = classType.fgetInfo;
108
- propertyClass.fdelInfo = classType.fdelInfo;
109
- propertyClass.isAsymmetricDescriptor = isAsymmetricDescriptor;
107
+ propertyClass.priv.fgetInfo = classType.priv.fgetInfo;
108
+ propertyClass.priv.fdelInfo = classType.priv.fdelInfo;
109
+ propertyClass.priv.isAsymmetricDescriptor = isAsymmetricDescriptor;
110
110
  const propertyObject = types_1.ClassType.cloneAsInstance(propertyClass);
111
111
  // Clone the symbol table of the old class type.
112
112
  const fields = types_1.ClassType.getSymbolTable(propertyClass);
@@ -118,9 +118,9 @@ function clonePropertyWithSetter(evaluator, prop, fset, errorNode) {
118
118
  // Update the __get__ and __delete__ methods if present.
119
119
  updateGetSetDelMethodForClonedProperty(evaluator, propertyObject);
120
120
  // Fill in the new fset method.
121
- propertyObject.fsetInfo = {
122
- methodType: types_1.FunctionType.cloneWithNewFlags(fset, fset.details.flags | 4 /* FunctionTypeFlags.StaticMethod */),
123
- classType: fset.details.methodClass,
121
+ propertyObject.priv.fsetInfo = {
122
+ methodType: types_1.FunctionType.cloneWithNewFlags(fset, fset.shared.flags | 4 /* FunctionTypeFlags.StaticMethod */),
123
+ classType: fset.shared.methodClass,
124
124
  };
125
125
  // Fill in the __set__ method.
126
126
  addSetMethodToPropertySymbolTable(evaluator, propertyObject, fset);
@@ -135,16 +135,16 @@ function clonePropertyWithDeleter(evaluator, prop, fdel, errorNode) {
135
135
  return prop;
136
136
  }
137
137
  const classType = prop;
138
- const propertyClass = types_1.ClassType.createInstantiable(classType.details.name, classType.details.fullName, classType.details.moduleName, (0, analyzerNodeInfo_1.getFileInfo)(errorNode).fileUri, classType.details.flags, classType.details.typeSourceId, classType.details.declaredMetaclass, classType.details.effectiveMetaclass);
139
- propertyClass.details.declaration = classType.details.declaration;
140
- propertyClass.details.typeVarScopeId = classType.details.typeVarScopeId;
138
+ const propertyClass = types_1.ClassType.createInstantiable(classType.shared.name, classType.shared.fullName, classType.shared.moduleName, (0, analyzerNodeInfo_1.getFileInfo)(errorNode).fileUri, classType.shared.flags, classType.shared.typeSourceId, classType.shared.declaredMetaclass, classType.shared.effectiveMetaclass);
139
+ propertyClass.shared.declaration = classType.shared.declaration;
140
+ propertyClass.shared.typeVarScopeId = classType.shared.typeVarScopeId;
141
141
  const objectType = evaluator.getBuiltInType(errorNode, 'object');
142
- propertyClass.details.baseClasses.push((0, types_1.isInstantiableClass)(objectType) ? objectType : types_1.UnknownType.create());
142
+ propertyClass.shared.baseClasses.push((0, types_1.isInstantiableClass)(objectType) ? objectType : types_1.UnknownType.create());
143
143
  (0, typeUtils_1.computeMroLinearization)(propertyClass);
144
- propertyClass.fgetInfo = classType.fgetInfo;
145
- propertyClass.fsetInfo = classType.fsetInfo;
144
+ propertyClass.priv.fgetInfo = classType.priv.fgetInfo;
145
+ propertyClass.priv.fsetInfo = classType.priv.fsetInfo;
146
146
  const propertyObject = types_1.ClassType.cloneAsInstance(propertyClass);
147
- propertyClass.isAsymmetricDescriptor = (_a = classType.isAsymmetricDescriptor) !== null && _a !== void 0 ? _a : false;
147
+ propertyClass.priv.isAsymmetricDescriptor = (_a = classType.priv.isAsymmetricDescriptor) !== null && _a !== void 0 ? _a : false;
148
148
  // Clone the symbol table of the old class type.
149
149
  const fields = types_1.ClassType.getSymbolTable(propertyClass);
150
150
  types_1.ClassType.getSymbolTable(classType).forEach((symbol, name) => {
@@ -155,9 +155,9 @@ function clonePropertyWithDeleter(evaluator, prop, fdel, errorNode) {
155
155
  // Update the __get__ and __set__ methods if present.
156
156
  updateGetSetDelMethodForClonedProperty(evaluator, propertyObject);
157
157
  // Fill in the fdel method.
158
- propertyObject.fdelInfo = {
159
- methodType: types_1.FunctionType.cloneWithNewFlags(fdel, fdel.details.flags | 4 /* FunctionTypeFlags.StaticMethod */),
160
- classType: fdel.details.methodClass,
158
+ propertyObject.priv.fdelInfo = {
159
+ methodType: types_1.FunctionType.cloneWithNewFlags(fdel, fdel.shared.flags | 4 /* FunctionTypeFlags.StaticMethod */),
160
+ classType: fdel.shared.methodClass,
161
161
  };
162
162
  // Fill in the __delete__ method.
163
163
  addDelMethodToPropertySymbolTable(evaluator, propertyObject, fdel);
@@ -171,63 +171,31 @@ function addGetMethodToPropertySymbolTable(evaluator, propertyObject, fget) {
171
171
  // The first overload is for accesses through a class object (where
172
172
  // the instance argument is None).
173
173
  const getFunction1 = types_1.FunctionType.createSynthesizedInstance('__get__', 256 /* FunctionTypeFlags.Overloaded */);
174
- types_1.FunctionType.addParameter(getFunction1, {
175
- category: 0 /* ParameterCategory.Simple */,
176
- name: 'self',
177
- type: types_1.AnyType.create(),
178
- hasDeclaredType: true,
179
- });
180
- types_1.FunctionType.addParameter(getFunction1, {
181
- category: 0 /* ParameterCategory.Simple */,
182
- name: 'obj',
183
- type: evaluator.getNoneType(),
184
- hasDeclaredType: true,
185
- });
186
- types_1.FunctionType.addParameter(getFunction1, {
187
- category: 0 /* ParameterCategory.Simple */,
188
- name: 'objtype',
189
- type: types_1.AnyType.create(),
190
- hasDeclaredType: true,
191
- hasDefault: true,
192
- defaultType: types_1.AnyType.create(),
193
- });
194
- getFunction1.details.declaredReturnType = types_1.FunctionType.isClassMethod(fget)
174
+ types_1.FunctionType.addParameter(getFunction1, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'self'));
175
+ types_1.FunctionType.addParameter(getFunction1, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, evaluator.getNoneType(), types_1.FunctionParamFlags.TypeDeclared, 'obj'));
176
+ types_1.FunctionType.addParameter(getFunction1, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'objtype', types_1.AnyType.create(/* isEllipsis */ true)));
177
+ getFunction1.shared.declaredReturnType = types_1.FunctionType.isClassMethod(fget)
195
178
  ? types_1.FunctionType.getEffectiveReturnType(fget)
196
179
  : propertyObject;
197
- getFunction1.details.declaration = fget.details.declaration;
198
- getFunction1.details.deprecatedMessage = fget.details.deprecatedMessage;
180
+ getFunction1.shared.declaration = fget.shared.declaration;
181
+ getFunction1.shared.deprecatedMessage = fget.shared.deprecatedMessage;
182
+ getFunction1.shared.methodClass = fget.shared.methodClass;
199
183
  // Override the scope ID since we're using parameter types from the
200
184
  // decorated function.
201
- getFunction1.details.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fget);
185
+ getFunction1.shared.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fget);
202
186
  // The second overload is for accesses through a class instance.
203
187
  const getFunction2 = types_1.FunctionType.createSynthesizedInstance('__get__', 256 /* FunctionTypeFlags.Overloaded */);
204
- types_1.FunctionType.addParameter(getFunction2, {
205
- category: 0 /* ParameterCategory.Simple */,
206
- name: 'self',
207
- type: types_1.AnyType.create(),
208
- hasDeclaredType: true,
209
- });
210
- const objType = fget.details.parameters.length > 0 ? types_1.FunctionType.getEffectiveParameterType(fget, 0) : types_1.AnyType.create();
211
- types_1.FunctionType.addParameter(getFunction2, {
212
- category: 0 /* ParameterCategory.Simple */,
213
- name: 'obj',
214
- type: objType,
215
- hasDeclaredType: true,
216
- });
217
- types_1.FunctionType.addParameter(getFunction2, {
218
- category: 0 /* ParameterCategory.Simple */,
219
- name: 'objtype',
220
- type: types_1.AnyType.create(),
221
- hasDeclaredType: true,
222
- hasDefault: true,
223
- defaultType: types_1.AnyType.create(),
224
- });
225
- getFunction2.details.declaredReturnType = types_1.FunctionType.getEffectiveReturnType(fget);
226
- getFunction2.details.declaration = fget.details.declaration;
227
- getFunction2.details.deprecatedMessage = fget.details.deprecatedMessage;
188
+ types_1.FunctionType.addParameter(getFunction2, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'self'));
189
+ const objType = fget.shared.parameters.length > 0 ? types_1.FunctionType.getEffectiveParameterType(fget, 0) : types_1.AnyType.create();
190
+ types_1.FunctionType.addParameter(getFunction2, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, objType, types_1.FunctionParamFlags.TypeDeclared, 'obj'));
191
+ types_1.FunctionType.addParameter(getFunction2, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'objtype', types_1.AnyType.create(/* isEllipsis */ true)));
192
+ getFunction2.shared.declaredReturnType = types_1.FunctionType.getEffectiveReturnType(fget);
193
+ getFunction2.shared.declaration = fget.shared.declaration;
194
+ getFunction2.shared.deprecatedMessage = fget.shared.deprecatedMessage;
195
+ getFunction2.shared.methodClass = fget.shared.methodClass;
228
196
  // Override the scope ID since we're using parameter types from the
229
197
  // decorated function.
230
- getFunction2.details.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fget);
198
+ getFunction2.shared.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fget);
231
199
  // We previously placed getFunction1 before getFunction2, but this creates
232
200
  // problems specifically for the `NoneType` class because None.__class__
233
201
  // is a property, and both overloads match in this case because None
@@ -239,79 +207,56 @@ function addGetMethodToPropertySymbolTable(evaluator, propertyObject, fget) {
239
207
  function addSetMethodToPropertySymbolTable(evaluator, propertyObject, fset) {
240
208
  const fields = types_1.ClassType.getSymbolTable(propertyObject);
241
209
  const setFunction = types_1.FunctionType.createSynthesizedInstance('__set__');
242
- types_1.FunctionType.addParameter(setFunction, {
243
- category: 0 /* ParameterCategory.Simple */,
244
- name: 'self',
245
- type: types_1.AnyType.create(),
246
- hasDeclaredType: true,
247
- });
248
- let objType = fset.details.parameters.length > 0 ? types_1.FunctionType.getEffectiveParameterType(fset, 0) : types_1.AnyType.create();
249
- if ((0, types_1.isTypeVar)(objType) && objType.details.isSynthesizedSelf) {
210
+ types_1.FunctionType.addParameter(setFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'self'));
211
+ let objType = fset.shared.parameters.length > 0 ? types_1.FunctionType.getEffectiveParameterType(fset, 0) : types_1.AnyType.create();
212
+ if ((0, types_1.isTypeVar)(objType) && objType.shared.isSynthesizedSelf) {
250
213
  objType = evaluator.makeTopLevelTypeVarsConcrete(objType);
251
214
  }
252
- types_1.FunctionType.addParameter(setFunction, {
253
- category: 0 /* ParameterCategory.Simple */,
254
- name: 'obj',
255
- type: (0, types_1.combineTypes)([objType, evaluator.getNoneType()]),
256
- hasDeclaredType: true,
257
- });
258
- setFunction.details.declaredReturnType = evaluator.getNoneType();
215
+ types_1.FunctionType.addParameter(setFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, (0, types_1.combineTypes)([objType, evaluator.getNoneType()]), types_1.FunctionParamFlags.TypeDeclared, 'obj'));
216
+ setFunction.shared.declaredReturnType = evaluator.getNoneType();
259
217
  // Adopt the TypeVarScopeId of the fset function in case it has any
260
218
  // TypeVars that need to be solved.
261
- setFunction.details.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fset);
262
- setFunction.details.deprecatedMessage = fset.details.deprecatedMessage;
219
+ setFunction.shared.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fset);
220
+ setFunction.shared.deprecatedMessage = fset.shared.deprecatedMessage;
221
+ setFunction.shared.methodClass = fset.shared.methodClass;
263
222
  let setParamType = types_1.UnknownType.create();
264
- if (fset.details.parameters.length >= 2 &&
265
- fset.details.parameters[1].category === 0 /* ParameterCategory.Simple */ &&
266
- fset.details.parameters[1].name) {
267
- setParamType = fset.details.parameters[1].type;
223
+ if (fset.shared.parameters.length >= 2 &&
224
+ fset.shared.parameters[1].category === 0 /* ParameterCategory.Simple */ &&
225
+ fset.shared.parameters[1].name) {
226
+ setParamType = fset.shared.parameters[1].type;
268
227
  }
269
- types_1.FunctionType.addParameter(setFunction, {
270
- category: 0 /* ParameterCategory.Simple */,
271
- name: 'value',
272
- type: setParamType,
273
- hasDeclaredType: true,
274
- });
228
+ types_1.FunctionType.addParameter(setFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, setParamType, types_1.FunctionParamFlags.TypeDeclared, 'value'));
275
229
  const setSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, setFunction);
276
230
  fields.set('__set__', setSymbol);
277
231
  }
278
232
  function addDelMethodToPropertySymbolTable(evaluator, propertyObject, fdel) {
279
233
  const fields = types_1.ClassType.getSymbolTable(propertyObject);
280
234
  const delFunction = types_1.FunctionType.createSynthesizedInstance('__delete__');
281
- types_1.FunctionType.addParameter(delFunction, {
282
- category: 0 /* ParameterCategory.Simple */,
283
- name: 'self',
284
- type: types_1.AnyType.create(),
285
- hasDeclaredType: true,
286
- });
235
+ types_1.FunctionType.addParameter(delFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'self'));
287
236
  // Adopt the TypeVarScopeId of the fdel function in case it has any
288
237
  // TypeVars that need to be solved.
289
- delFunction.details.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fdel);
290
- delFunction.details.deprecatedMessage = fdel.details.deprecatedMessage;
291
- let objType = fdel.details.parameters.length > 0 ? types_1.FunctionType.getEffectiveParameterType(fdel, 0) : types_1.AnyType.create();
292
- if ((0, types_1.isTypeVar)(objType) && objType.details.isSynthesizedSelf) {
238
+ delFunction.shared.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fdel);
239
+ delFunction.shared.deprecatedMessage = fdel.shared.deprecatedMessage;
240
+ delFunction.shared.methodClass = fdel.shared.methodClass;
241
+ let objType = fdel.shared.parameters.length > 0 ? types_1.FunctionType.getEffectiveParameterType(fdel, 0) : types_1.AnyType.create();
242
+ if ((0, types_1.isTypeVar)(objType) && objType.shared.isSynthesizedSelf) {
293
243
  objType = evaluator.makeTopLevelTypeVarsConcrete(objType);
294
244
  }
295
- types_1.FunctionType.addParameter(delFunction, {
296
- category: 0 /* ParameterCategory.Simple */,
297
- name: 'obj',
298
- type: (0, types_1.combineTypes)([objType, evaluator.getNoneType()]),
299
- hasDeclaredType: true,
300
- });
301
- delFunction.details.declaredReturnType = evaluator.getNoneType();
245
+ types_1.FunctionType.addParameter(delFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, (0, types_1.combineTypes)([objType, evaluator.getNoneType()]), types_1.FunctionParamFlags.TypeDeclared, 'obj'));
246
+ delFunction.shared.declaredReturnType = evaluator.getNoneType();
302
247
  const delSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, delFunction);
303
248
  fields.set('__delete__', delSymbol);
304
249
  }
305
250
  function updateGetSetDelMethodForClonedProperty(evaluator, propertyObject) {
306
- const fgetInfo = propertyObject.fgetInfo;
251
+ const fgetInfo = propertyObject.priv.fgetInfo;
307
252
  if (fgetInfo && (0, types_1.isFunction)(fgetInfo.methodType)) {
308
253
  addGetMethodToPropertySymbolTable(evaluator, propertyObject, fgetInfo.methodType);
309
254
  }
310
- const fsetInfo = propertyObject.fsetInfo;
255
+ const fsetInfo = propertyObject.priv.fsetInfo;
311
256
  if (fsetInfo && (0, types_1.isFunction)(fsetInfo.methodType)) {
312
257
  addSetMethodToPropertySymbolTable(evaluator, propertyObject, fsetInfo.methodType);
313
258
  }
314
- const fdelInfo = propertyObject.fdelInfo;
259
+ const fdelInfo = propertyObject.priv.fdelInfo;
315
260
  if (fdelInfo && (0, types_1.isFunction)(fdelInfo.methodType)) {
316
261
  addDelMethodToPropertySymbolTable(evaluator, propertyObject, fdelInfo.methodType);
317
262
  }
@@ -321,19 +266,9 @@ function addDecoratorMethodsToPropertySymbolTable(propertyObject) {
321
266
  // Fill in the getter, setter and deleter methods.
322
267
  ['getter', 'setter', 'deleter'].forEach((accessorName) => {
323
268
  const accessorFunction = types_1.FunctionType.createSynthesizedInstance(accessorName);
324
- types_1.FunctionType.addParameter(accessorFunction, {
325
- category: 0 /* ParameterCategory.Simple */,
326
- name: 'self',
327
- type: types_1.AnyType.create(),
328
- hasDeclaredType: true,
329
- });
330
- types_1.FunctionType.addParameter(accessorFunction, {
331
- category: 0 /* ParameterCategory.Simple */,
332
- name: 'accessor',
333
- type: types_1.AnyType.create(),
334
- hasDeclaredType: true,
335
- });
336
- accessorFunction.details.declaredReturnType = propertyObject;
269
+ types_1.FunctionType.addParameter(accessorFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'self'));
270
+ types_1.FunctionType.addParameter(accessorFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'accessor'));
271
+ accessorFunction.shared.declaredReturnType = propertyObject;
337
272
  const accessorSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, accessorFunction);
338
273
  fields.set(accessorName, accessorSymbol);
339
274
  });
@@ -344,17 +279,17 @@ function assignProperty(evaluator, destPropertyType, srcPropertyType, destClass,
344
279
  let isAssignable = true;
345
280
  const accessors = [
346
281
  {
347
- getFunction: (c) => { var _a; return (_a = c.fgetInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
282
+ getFunction: (c) => { var _a; return (_a = c.priv.fgetInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
348
283
  missingDiagMsg: localize_1.LocAddendum.missingGetter,
349
284
  incompatibleDiagMsg: localize_1.LocAddendum.incompatibleGetter,
350
285
  },
351
286
  {
352
- getFunction: (c) => { var _a; return (_a = c.fsetInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
287
+ getFunction: (c) => { var _a; return (_a = c.priv.fsetInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
353
288
  missingDiagMsg: localize_1.LocAddendum.missingSetter,
354
289
  incompatibleDiagMsg: localize_1.LocAddendum.incompatibleSetter,
355
290
  },
356
291
  {
357
- getFunction: (c) => { var _a; return (_a = c.fdelInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
292
+ getFunction: (c) => { var _a; return (_a = c.priv.fdelInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
358
293
  missingDiagMsg: localize_1.LocAddendum.missingDeleter,
359
294
  incompatibleDiagMsg: localize_1.LocAddendum.incompatibleDeleter,
360
295
  },
@@ -379,8 +314,8 @@ function assignProperty(evaluator, destPropertyType, srcPropertyType, destClass,
379
314
  // variables because they do not bind go the "property" class that
380
315
  // contains them, but we'll turn it back into a non-static method
381
316
  // here and bind them to the associated objects.
382
- destAccessType = types_1.FunctionType.cloneWithNewFlags(destAccessType, destAccessType.details.flags & ~4 /* FunctionTypeFlags.StaticMethod */);
383
- srcAccessType = types_1.FunctionType.cloneWithNewFlags(srcAccessType, srcAccessType.details.flags & ~4 /* FunctionTypeFlags.StaticMethod */);
317
+ destAccessType = types_1.FunctionType.cloneWithNewFlags(destAccessType, destAccessType.shared.flags & ~4 /* FunctionTypeFlags.StaticMethod */);
318
+ srcAccessType = types_1.FunctionType.cloneWithNewFlags(srcAccessType, srcAccessType.shared.flags & ~4 /* FunctionTypeFlags.StaticMethod */);
384
319
  const boundDestAccessType = evaluator.bindFunctionToClassOrObject(destObjectToBind, destAccessType,
385
320
  /* memberClass */ undefined,
386
321
  /* treatConstructorAsClassMethod */ undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../../../src/analyzer/properties.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../../../src/analyzer/properties.ts"],"names":[],"mappings":"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"}
@@ -87,7 +87,7 @@ function isMethodOnlyProtocol(classType) {
87
87
  return false;
88
88
  }
89
89
  // First check for data members in any protocol base classes.
90
- for (const baseClass of classType.details.baseClasses) {
90
+ for (const baseClass of classType.shared.baseClasses) {
91
91
  if ((0, types_1.isClass)(baseClass) && types_1.ClassType.isProtocolClass(baseClass) && !isMethodOnlyProtocol(baseClass)) {
92
92
  return false;
93
93
  }
@@ -112,7 +112,7 @@ function isProtocolUnsafeOverlap(evaluator, protocol, classType) {
112
112
  return false;
113
113
  }
114
114
  let isUnsafeOverlap = true;
115
- protocol.details.mro.forEach((mroClass) => {
115
+ protocol.shared.mro.forEach((mroClass) => {
116
116
  if (!isUnsafeOverlap || !(0, types_1.isInstantiableClass)(mroClass) || !types_1.ClassType.isProtocolClass(mroClass)) {
117
117
  return;
118
118
  }
@@ -133,8 +133,8 @@ exports.isProtocolUnsafeOverlap = isProtocolUnsafeOverlap;
133
133
  // Looks up the protocol compatibility in the cache. If it's not found,
134
134
  // return undefined.
135
135
  function getProtocolCompatibility(destType, srcType, flags, typeVarContext) {
136
- const map = srcType.details.protocolCompatibility;
137
- const entries = map === null || map === void 0 ? void 0 : map.get(destType.details.fullName);
136
+ const map = srcType.shared.protocolCompatibility;
137
+ const entries = map === null || map === void 0 ? void 0 : map.get(destType.shared.fullName);
138
138
  if (entries === undefined) {
139
139
  return undefined;
140
140
  }
@@ -147,15 +147,15 @@ function getProtocolCompatibility(destType, srcType, flags, typeVarContext) {
147
147
  return entry === null || entry === void 0 ? void 0 : entry.isCompatible;
148
148
  }
149
149
  function setProtocolCompatibility(destType, srcType, flags, typeVarContext, isCompatible) {
150
- let map = srcType.details.protocolCompatibility;
150
+ let map = srcType.shared.protocolCompatibility;
151
151
  if (!map) {
152
152
  map = new Map();
153
- srcType.details.protocolCompatibility = map;
153
+ srcType.shared.protocolCompatibility = map;
154
154
  }
155
- let entries = map.get(destType.details.fullName);
155
+ let entries = map.get(destType.shared.fullName);
156
156
  if (!entries) {
157
157
  entries = [];
158
- map.set(destType.details.fullName, entries);
158
+ map.set(destType.shared.fullName, entries);
159
159
  }
160
160
  entries.push({
161
161
  destType,
@@ -175,7 +175,7 @@ function isTypeVarContextSame(context1, context2) {
175
175
  return context1.isSame(context2);
176
176
  }
177
177
  function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount) {
178
- var _a;
178
+ var _a, _b;
179
179
  if ((flags & 1 /* AssignTypeFlags.EnforceInvariance */) !== 0) {
180
180
  return (0, types_1.isTypeSame)(destType, srcType);
181
181
  }
@@ -187,9 +187,13 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
187
187
  if ((0, types_1.isClass)(srcType)) {
188
188
  // If the srcType is conditioned on "self", use "Self" as the selfType.
189
189
  // Otherwise use the class type for selfType.
190
- if ((_a = srcType.condition) === null || _a === void 0 ? void 0 : _a.some((c) => c.typeVar.details.isSynthesizedSelf)) {
190
+ const synthCond = (_b = (_a = srcType.props) === null || _a === void 0 ? void 0 : _a.condition) === null || _b === void 0 ? void 0 : _b.find((c) => c.typeVar.shared.isSynthesizedSelf);
191
+ if (synthCond) {
191
192
  selfType = (0, typeUtils_1.synthesizeTypeVarForSelfCls)(types_1.TypeBase.cloneForCondition(srcType, undefined),
192
193
  /* isClsType */ false);
194
+ if (types_1.TypeVarType.hasInternalScopeId(synthCond.typeVar)) {
195
+ selfType = types_1.TypeVarType.cloneWithInternalScopeId(selfType);
196
+ }
193
197
  }
194
198
  else {
195
199
  selfType = srcType;
@@ -207,11 +211,11 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
207
211
  }
208
212
  let typesAreConsistent = true;
209
213
  const checkedSymbolSet = new Set();
210
- let assignTypeFlags = flags & (16 /* AssignTypeFlags.OverloadOverlapCheck */ | 32 /* AssignTypeFlags.PartialOverloadOverlapCheck */);
214
+ let assignTypeFlags = flags & (16 /* AssignTypeFlags.OverloadOverlap */ | 32 /* AssignTypeFlags.PartialOverloadOverlap */);
211
215
  assignTypeFlags |= (0, typeUtils_1.containsLiteralType)(srcType, /* includeTypeArgs */ true)
212
216
  ? 256 /* AssignTypeFlags.RetainLiteralsForTypeVar */
213
217
  : 0 /* AssignTypeFlags.Default */;
214
- destType.details.mro.forEach((mroClass) => {
218
+ destType.shared.mro.forEach((mroClass) => {
215
219
  if (!(0, types_1.isInstantiableClass)(mroClass) || !types_1.ClassType.isProtocolClass(mroClass)) {
216
220
  return;
217
221
  }
@@ -255,9 +259,9 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
255
259
  if ((0, types_1.isClass)(srcType)) {
256
260
  // Look in the metaclass first if we're treating the source as an instantiable class.
257
261
  if (sourceIsClassObject &&
258
- srcType.details.effectiveMetaclass &&
259
- (0, types_1.isInstantiableClass)(srcType.details.effectiveMetaclass)) {
260
- srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType.details.effectiveMetaclass, name);
262
+ srcType.shared.effectiveMetaclass &&
263
+ (0, types_1.isInstantiableClass)(srcType.shared.effectiveMetaclass)) {
264
+ srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType.shared.effectiveMetaclass, name);
261
265
  if (srcMemberInfo) {
262
266
  isMemberFromMetaclass = true;
263
267
  }
@@ -275,7 +279,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
275
279
  // We can skip this if it's the dest class because it is already
276
280
  // specialized.
277
281
  if (!types_1.ClassType.isSameGenericClass(mroClass, destType)) {
278
- destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, mroClass, selfType);
282
+ destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, mroClass, evaluator.getTypeClassType(), selfType);
279
283
  }
280
284
  if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
281
285
  const symbolType = evaluator.getEffectiveTypeOfSymbol(srcMemberInfo.symbol);
@@ -283,7 +287,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
283
287
  if ((0, types_1.isFunction)(symbolType)) {
284
288
  evaluator.inferReturnTypeIfNecessary(symbolType);
285
289
  }
286
- srcMemberType = (0, typeUtils_1.partiallySpecializeType)(symbolType, srcMemberInfo.classType, selfType);
290
+ srcMemberType = (0, typeUtils_1.partiallySpecializeType)(symbolType, srcMemberInfo.classType, evaluator.getTypeClassType(), selfType);
287
291
  }
288
292
  else {
289
293
  srcMemberType = types_1.UnknownType.create();
@@ -324,7 +328,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
324
328
  }
325
329
  }
326
330
  else {
327
- srcSymbol = srcType.fields.get(name);
331
+ srcSymbol = srcType.priv.fields.get(name);
328
332
  if (!srcSymbol) {
329
333
  diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.LocAddendum.protocolMemberMissing().format({ name }));
330
334
  typesAreConsistent = false;
@@ -374,7 +378,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
374
378
  // Extract the property type from the property class.
375
379
  let getterType = evaluator.getGetterTypeFromProperty(destMemberType, /* inferTypeIfNeeded */ true);
376
380
  if (getterType) {
377
- getterType = (0, typeUtils_1.partiallySpecializeType)(getterType, mroClass);
381
+ getterType = (0, typeUtils_1.partiallySpecializeType)(getterType, mroClass, evaluator.getTypeClassType());
378
382
  }
379
383
  if (!getterType ||
380
384
  !evaluator.assignType(getterType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolTypeVarContext,
@@ -488,19 +492,19 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
488
492
  });
489
493
  });
490
494
  // If the dest protocol has type parameters, make sure the source type arguments match.
491
- if (typesAreConsistent && destType.details.typeParameters.length > 0) {
495
+ if (typesAreConsistent && destType.shared.typeParameters.length > 0) {
492
496
  // Create a specialized version of the protocol defined by the dest and
493
497
  // make sure the resulting type args can be assigned.
494
498
  const genericProtocolType = types_1.ClassType.cloneForSpecialization(destType, undefined,
495
499
  /* isTypeArgumentExplicit */ false);
496
500
  const specializedProtocolType = (0, typeUtils_1.applySolvedTypeVars)(genericProtocolType, protocolTypeVarContext);
497
- if (destType.typeArguments) {
501
+ if (destType.priv.typeArguments) {
498
502
  if (!evaluator.assignTypeArguments(destType, specializedProtocolType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount)) {
499
503
  typesAreConsistent = false;
500
504
  }
501
505
  }
502
506
  else if (destTypeVarContext && !destTypeVarContext.isLocked()) {
503
- for (const typeParam of destType.details.typeParameters) {
507
+ for (const typeParam of destType.shared.typeParameters) {
504
508
  const typeArgEntry = protocolTypeVarContext.getPrimarySignature().getTypeVar(typeParam);
505
509
  if (typeArgEntry) {
506
510
  destTypeVarContext.setTypeVarType(typeParam, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.narrowBound, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.narrowBoundNoLiterals, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.wideBound);
@@ -515,13 +519,13 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
515
519
  // the destTypeVarContext.
516
520
  function createProtocolTypeVarContext(evaluator, destType, destTypeVarContext) {
517
521
  const protocolTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(destType));
518
- destType.details.typeParameters.forEach((typeParam, index) => {
522
+ destType.shared.typeParameters.forEach((typeParam, index) => {
519
523
  const entry = destTypeVarContext === null || destTypeVarContext === void 0 ? void 0 : destTypeVarContext.getPrimarySignature().getTypeVar(typeParam);
520
524
  if (entry) {
521
525
  protocolTypeVarContext.setTypeVarType(typeParam, entry.narrowBound, entry.narrowBoundNoLiterals, entry.wideBound);
522
526
  }
523
- else if (destType.typeArguments && index < destType.typeArguments.length) {
524
- let typeArg = destType.typeArguments[index];
527
+ else if (destType.priv.typeArguments && index < destType.priv.typeArguments.length) {
528
+ let typeArg = destType.priv.typeArguments[index];
525
529
  let flags;
526
530
  let hasUnsolvedTypeVars = (0, typeUtils_1.requiresSpecialization)(typeArg);
527
531
  // If the type argument has unsolved TypeVars, see if they have