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

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 (147) 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 +649 -634
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/codeFlowEngine.d.ts +5 -3
  8. package/dist/analyzer/codeFlowEngine.js +87 -101
  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 +68 -64
  13. package/dist/analyzer/constraintSolver.js.map +1 -1
  14. package/dist/analyzer/constructorTransform.js +22 -22
  15. package/dist/analyzer/constructorTransform.js.map +1 -1
  16. package/dist/analyzer/constructors.js +51 -48
  17. package/dist/analyzer/constructors.js.map +1 -1
  18. package/dist/analyzer/dataClasses.js +109 -175
  19. package/dist/analyzer/dataClasses.js.map +1 -1
  20. package/dist/analyzer/declarationUtils.js +14 -15
  21. package/dist/analyzer/declarationUtils.js.map +1 -1
  22. package/dist/analyzer/decorators.js +77 -77
  23. package/dist/analyzer/decorators.js.map +1 -1
  24. package/dist/analyzer/enums.js +70 -56
  25. package/dist/analyzer/enums.js.map +1 -1
  26. package/dist/analyzer/functionTransform.js +8 -18
  27. package/dist/analyzer/functionTransform.js.map +1 -1
  28. package/dist/analyzer/importResolver.d.ts +2 -1
  29. package/dist/analyzer/importResolver.js +40 -29
  30. package/dist/analyzer/importResolver.js.map +1 -1
  31. package/dist/analyzer/importStatementUtils.js +27 -27
  32. package/dist/analyzer/importStatementUtils.js.map +1 -1
  33. package/dist/analyzer/namedTuples.js +33 -59
  34. package/dist/analyzer/namedTuples.js.map +1 -1
  35. package/dist/analyzer/operations.js +66 -66
  36. package/dist/analyzer/operations.js.map +1 -1
  37. package/dist/analyzer/packageTypeVerifier.js +66 -62
  38. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  39. package/dist/analyzer/parameterUtils.d.ts +4 -4
  40. package/dist/analyzer/parameterUtils.js +28 -46
  41. package/dist/analyzer/parameterUtils.js.map +1 -1
  42. package/dist/analyzer/parseTreeUtils.js +268 -269
  43. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  44. package/dist/analyzer/parseTreeWalker.js +76 -76
  45. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  46. package/dist/analyzer/patternMatching.js +176 -143
  47. package/dist/analyzer/patternMatching.js.map +1 -1
  48. package/dist/analyzer/program.js +1 -1
  49. package/dist/analyzer/program.js.map +1 -1
  50. package/dist/analyzer/properties.js +78 -147
  51. package/dist/analyzer/properties.js.map +1 -1
  52. package/dist/analyzer/protocols.js +21 -21
  53. package/dist/analyzer/protocols.js.map +1 -1
  54. package/dist/analyzer/sourceFile.js +3 -3
  55. package/dist/analyzer/sourceFile.js.map +1 -1
  56. package/dist/analyzer/sourceMapper.js +20 -19
  57. package/dist/analyzer/sourceMapper.js.map +1 -1
  58. package/dist/analyzer/staticExpressions.js +83 -84
  59. package/dist/analyzer/staticExpressions.js.map +1 -1
  60. package/dist/analyzer/testWalker.js +2 -2
  61. package/dist/analyzer/testWalker.js.map +1 -1
  62. package/dist/analyzer/tracePrinter.js +20 -20
  63. package/dist/analyzer/tracePrinter.js.map +1 -1
  64. package/dist/analyzer/typeDocStringUtils.js +25 -25
  65. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  66. package/dist/analyzer/typeEvaluator.js +1884 -1937
  67. package/dist/analyzer/typeEvaluator.js.map +1 -1
  68. package/dist/analyzer/typeEvaluatorTypes.d.ts +6 -5
  69. package/dist/analyzer/typeEvaluatorTypes.js +4 -1
  70. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  71. package/dist/analyzer/typeGuards.js +211 -211
  72. package/dist/analyzer/typeGuards.js.map +1 -1
  73. package/dist/analyzer/typePrinter.js +118 -115
  74. package/dist/analyzer/typePrinter.js.map +1 -1
  75. package/dist/analyzer/typeStubWriter.js +104 -103
  76. package/dist/analyzer/typeStubWriter.js.map +1 -1
  77. package/dist/analyzer/typeUtils.d.ts +14 -3
  78. package/dist/analyzer/typeUtils.js +432 -402
  79. package/dist/analyzer/typeUtils.js.map +1 -1
  80. package/dist/analyzer/typeVarContext.js +8 -8
  81. package/dist/analyzer/typeVarContext.js.map +1 -1
  82. package/dist/analyzer/typeWalker.js +13 -10
  83. package/dist/analyzer/typeWalker.js.map +1 -1
  84. package/dist/analyzer/typedDicts.js +96 -198
  85. package/dist/analyzer/typedDicts.js.map +1 -1
  86. package/dist/analyzer/types.d.ts +144 -102
  87. package/dist/analyzer/types.js +662 -494
  88. package/dist/analyzer/types.js.map +1 -1
  89. package/dist/commands/dumpFileDebugInfoCommand.js +33 -33
  90. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  91. package/dist/common/fileSystem.d.ts +1 -0
  92. package/dist/common/fileSystem.js.map +1 -1
  93. package/dist/common/fullAccessHost.js +6 -4
  94. package/dist/common/fullAccessHost.js.map +1 -1
  95. package/dist/common/realFileSystem.d.ts +1 -0
  96. package/dist/common/realFileSystem.js +4 -0
  97. package/dist/common/realFileSystem.js.map +1 -1
  98. package/dist/common/textEditTracker.js +14 -14
  99. package/dist/common/textEditTracker.js.map +1 -1
  100. package/dist/languageService/autoImporter.js +10 -10
  101. package/dist/languageService/autoImporter.js.map +1 -1
  102. package/dist/languageService/callHierarchyProvider.js +23 -23
  103. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  104. package/dist/languageService/completionProvider.js +153 -151
  105. package/dist/languageService/completionProvider.js.map +1 -1
  106. package/dist/languageService/definitionProvider.d.ts +1 -1
  107. package/dist/languageService/definitionProvider.js +3 -1
  108. package/dist/languageService/definitionProvider.js.map +1 -1
  109. package/dist/languageService/documentSymbolCollector.js +19 -19
  110. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  111. package/dist/languageService/hoverProvider.js +25 -24
  112. package/dist/languageService/hoverProvider.js.map +1 -1
  113. package/dist/languageService/importSorter.js +8 -8
  114. package/dist/languageService/importSorter.js.map +1 -1
  115. package/dist/languageService/referencesProvider.js +8 -8
  116. package/dist/languageService/referencesProvider.js.map +1 -1
  117. package/dist/languageService/signatureHelpProvider.d.ts +1 -1
  118. package/dist/languageService/signatureHelpProvider.js +6 -6
  119. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  120. package/dist/languageService/symbolIndexer.js +3 -3
  121. package/dist/languageService/symbolIndexer.js.map +1 -1
  122. package/dist/languageService/tooltipUtils.js +13 -13
  123. package/dist/languageService/tooltipUtils.js.map +1 -1
  124. package/dist/parser/parseNodes.d.ts +468 -401
  125. package/dist/parser/parseNodes.js +626 -355
  126. package/dist/parser/parseNodes.js.map +1 -1
  127. package/dist/parser/parser.d.ts +1 -0
  128. package/dist/parser/parser.js +316 -294
  129. package/dist/parser/parser.js.map +1 -1
  130. package/dist/tests/classDeclaration.test.js +14 -14
  131. package/dist/tests/classDeclaration.test.js.map +1 -1
  132. package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
  133. package/dist/tests/harness/vfs/filesystem.js +6 -2
  134. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  135. package/dist/tests/importResolver.test.js +4 -3
  136. package/dist/tests/importResolver.test.js.map +1 -1
  137. package/dist/tests/parseTreeUtils.test.js +5 -5
  138. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  139. package/dist/tests/parser.test.js +8 -8
  140. package/dist/tests/parser.test.js.map +1 -1
  141. package/dist/tests/sourceMapperUtils.test.js +7 -7
  142. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  143. package/dist/tests/typeEvaluator3.test.js +8 -3
  144. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  145. package/dist/tests/typePrinter.test.js +14 -39
  146. package/dist/tests/typePrinter.test.js.map +1 -1
  147. 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,29 @@ 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;
199
182
  // Override the scope ID since we're using parameter types from the
200
183
  // decorated function.
201
- getFunction1.details.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fget);
184
+ getFunction1.shared.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fget);
202
185
  // The second overload is for accesses through a class instance.
203
186
  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;
187
+ types_1.FunctionType.addParameter(getFunction2, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'self'));
188
+ const objType = fget.shared.parameters.length > 0 ? types_1.FunctionType.getEffectiveParameterType(fget, 0) : types_1.AnyType.create();
189
+ types_1.FunctionType.addParameter(getFunction2, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, objType, types_1.FunctionParamFlags.TypeDeclared, 'obj'));
190
+ 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)));
191
+ getFunction2.shared.declaredReturnType = types_1.FunctionType.getEffectiveReturnType(fget);
192
+ getFunction2.shared.declaration = fget.shared.declaration;
193
+ getFunction2.shared.deprecatedMessage = fget.shared.deprecatedMessage;
228
194
  // Override the scope ID since we're using parameter types from the
229
195
  // decorated function.
230
- getFunction2.details.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fget);
196
+ getFunction2.shared.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fget);
231
197
  // We previously placed getFunction1 before getFunction2, but this creates
232
198
  // problems specifically for the `NoneType` class because None.__class__
233
199
  // is a property, and both overloads match in this case because None
@@ -239,79 +205,54 @@ function addGetMethodToPropertySymbolTable(evaluator, propertyObject, fget) {
239
205
  function addSetMethodToPropertySymbolTable(evaluator, propertyObject, fset) {
240
206
  const fields = types_1.ClassType.getSymbolTable(propertyObject);
241
207
  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) {
208
+ types_1.FunctionType.addParameter(setFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'self'));
209
+ let objType = fset.shared.parameters.length > 0 ? types_1.FunctionType.getEffectiveParameterType(fset, 0) : types_1.AnyType.create();
210
+ if ((0, types_1.isTypeVar)(objType) && objType.shared.isSynthesizedSelf) {
250
211
  objType = evaluator.makeTopLevelTypeVarsConcrete(objType);
251
212
  }
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();
213
+ types_1.FunctionType.addParameter(setFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, (0, types_1.combineTypes)([objType, evaluator.getNoneType()]), types_1.FunctionParamFlags.TypeDeclared, 'obj'));
214
+ setFunction.shared.declaredReturnType = evaluator.getNoneType();
259
215
  // Adopt the TypeVarScopeId of the fset function in case it has any
260
216
  // TypeVars that need to be solved.
261
- setFunction.details.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fset);
262
- setFunction.details.deprecatedMessage = fset.details.deprecatedMessage;
217
+ setFunction.shared.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fset);
218
+ setFunction.shared.deprecatedMessage = fset.shared.deprecatedMessage;
263
219
  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;
220
+ if (fset.shared.parameters.length >= 2 &&
221
+ fset.shared.parameters[1].category === 0 /* ParameterCategory.Simple */ &&
222
+ fset.shared.parameters[1].name) {
223
+ setParamType = fset.shared.parameters[1].type;
268
224
  }
269
- types_1.FunctionType.addParameter(setFunction, {
270
- category: 0 /* ParameterCategory.Simple */,
271
- name: 'value',
272
- type: setParamType,
273
- hasDeclaredType: true,
274
- });
225
+ types_1.FunctionType.addParameter(setFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, setParamType, types_1.FunctionParamFlags.TypeDeclared, 'value'));
275
226
  const setSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, setFunction);
276
227
  fields.set('__set__', setSymbol);
277
228
  }
278
229
  function addDelMethodToPropertySymbolTable(evaluator, propertyObject, fdel) {
279
230
  const fields = types_1.ClassType.getSymbolTable(propertyObject);
280
231
  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
- });
232
+ types_1.FunctionType.addParameter(delFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'self'));
287
233
  // Adopt the TypeVarScopeId of the fdel function in case it has any
288
234
  // 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) {
235
+ delFunction.shared.typeVarScopeId = (0, typeUtils_1.getTypeVarScopeId)(fdel);
236
+ delFunction.shared.deprecatedMessage = fdel.shared.deprecatedMessage;
237
+ let objType = fdel.shared.parameters.length > 0 ? types_1.FunctionType.getEffectiveParameterType(fdel, 0) : types_1.AnyType.create();
238
+ if ((0, types_1.isTypeVar)(objType) && objType.shared.isSynthesizedSelf) {
293
239
  objType = evaluator.makeTopLevelTypeVarsConcrete(objType);
294
240
  }
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();
241
+ types_1.FunctionType.addParameter(delFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, (0, types_1.combineTypes)([objType, evaluator.getNoneType()]), types_1.FunctionParamFlags.TypeDeclared, 'obj'));
242
+ delFunction.shared.declaredReturnType = evaluator.getNoneType();
302
243
  const delSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, delFunction);
303
244
  fields.set('__delete__', delSymbol);
304
245
  }
305
246
  function updateGetSetDelMethodForClonedProperty(evaluator, propertyObject) {
306
- const fgetInfo = propertyObject.fgetInfo;
247
+ const fgetInfo = propertyObject.priv.fgetInfo;
307
248
  if (fgetInfo && (0, types_1.isFunction)(fgetInfo.methodType)) {
308
249
  addGetMethodToPropertySymbolTable(evaluator, propertyObject, fgetInfo.methodType);
309
250
  }
310
- const fsetInfo = propertyObject.fsetInfo;
251
+ const fsetInfo = propertyObject.priv.fsetInfo;
311
252
  if (fsetInfo && (0, types_1.isFunction)(fsetInfo.methodType)) {
312
253
  addSetMethodToPropertySymbolTable(evaluator, propertyObject, fsetInfo.methodType);
313
254
  }
314
- const fdelInfo = propertyObject.fdelInfo;
255
+ const fdelInfo = propertyObject.priv.fdelInfo;
315
256
  if (fdelInfo && (0, types_1.isFunction)(fdelInfo.methodType)) {
316
257
  addDelMethodToPropertySymbolTable(evaluator, propertyObject, fdelInfo.methodType);
317
258
  }
@@ -321,19 +262,9 @@ function addDecoratorMethodsToPropertySymbolTable(propertyObject) {
321
262
  // Fill in the getter, setter and deleter methods.
322
263
  ['getter', 'setter', 'deleter'].forEach((accessorName) => {
323
264
  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;
265
+ types_1.FunctionType.addParameter(accessorFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'self'));
266
+ types_1.FunctionType.addParameter(accessorFunction, types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, types_1.AnyType.create(), types_1.FunctionParamFlags.TypeDeclared, 'accessor'));
267
+ accessorFunction.shared.declaredReturnType = propertyObject;
337
268
  const accessorSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, accessorFunction);
338
269
  fields.set(accessorName, accessorSymbol);
339
270
  });
@@ -344,17 +275,17 @@ function assignProperty(evaluator, destPropertyType, srcPropertyType, destClass,
344
275
  let isAssignable = true;
345
276
  const accessors = [
346
277
  {
347
- getFunction: (c) => { var _a; return (_a = c.fgetInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
278
+ getFunction: (c) => { var _a; return (_a = c.priv.fgetInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
348
279
  missingDiagMsg: localize_1.LocAddendum.missingGetter,
349
280
  incompatibleDiagMsg: localize_1.LocAddendum.incompatibleGetter,
350
281
  },
351
282
  {
352
- getFunction: (c) => { var _a; return (_a = c.fsetInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
283
+ getFunction: (c) => { var _a; return (_a = c.priv.fsetInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
353
284
  missingDiagMsg: localize_1.LocAddendum.missingSetter,
354
285
  incompatibleDiagMsg: localize_1.LocAddendum.incompatibleSetter,
355
286
  },
356
287
  {
357
- getFunction: (c) => { var _a; return (_a = c.fdelInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
288
+ getFunction: (c) => { var _a; return (_a = c.priv.fdelInfo) === null || _a === void 0 ? void 0 : _a.methodType; },
358
289
  missingDiagMsg: localize_1.LocAddendum.missingDeleter,
359
290
  incompatibleDiagMsg: localize_1.LocAddendum.incompatibleDeleter,
360
291
  },
@@ -379,8 +310,8 @@ function assignProperty(evaluator, destPropertyType, srcPropertyType, destClass,
379
310
  // variables because they do not bind go the "property" class that
380
311
  // contains them, but we'll turn it back into a non-static method
381
312
  // 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 */);
313
+ destAccessType = types_1.FunctionType.cloneWithNewFlags(destAccessType, destAccessType.shared.flags & ~4 /* FunctionTypeFlags.StaticMethod */);
314
+ srcAccessType = types_1.FunctionType.cloneWithNewFlags(srcAccessType, srcAccessType.shared.flags & ~4 /* FunctionTypeFlags.StaticMethod */);
384
315
  const boundDestAccessType = evaluator.bindFunctionToClassOrObject(destObjectToBind, destAccessType,
385
316
  /* memberClass */ undefined,
386
317
  /* treatConstructorAsClassMethod */ undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../../../../src/analyzer/properties.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,qDAA0D;AAC1D,+DAA2D;AAC3D,uDAAmE;AAEnE,yDAAiD;AACjD,qDAAoG;AACpG,qCAA+C;AAE/C,mCAiBiB;AACjB,2CAMqB;AAGrB,SAAgB,sBAAsB,CAAC,SAAwB,EAAE,MAAoB,EAAE,SAAoB;IACvG,IAAI,oBAAY,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;QACrC,SAAS,CAAC,aAAa,CAAC,gCAAc,CAAC,uBAAuB,EAAE,qBAAU,CAAC,oBAAoB,EAAE,EAAE,SAAS,CAAC,CAAC;KACjH;AACL,CAAC;AAJD,wDAIC;AAED,SAAgB,cAAc,CAC1B,SAAwB,EACxB,aAA4B,EAC5B,aAAwB,EACxB,IAAkB;IAElB,MAAM,QAAQ,GAAG,IAAA,8BAAW,EAAC,aAAa,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,iBAAS,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC;QAC/D,CAAC,CAAC,IAAA,gCAAe,EAAC,aAAa,CAAC;QAChC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;IAEzC,MAAM,aAAa,GAAG,iBAAS,CAAC,kBAAkB,CAC9C,aAAa,CAAC,OAAO,CAAC,IAAI,EAC1B,IAAA,iCAAgB,EAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,EAAE,cAAc,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EACvF,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,OAAO,EAChB,4EAA0D,EAC1D,YAAY;IACZ,uBAAuB,CAAC,SAAS,EACjC,IAAA,2BAAmB,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAC5E,CAAC;IAEF,aAAa,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;IACtE,aAAa,CAAC,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;IAC5E,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACrE,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAA,2BAAmB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,IAAA,mCAAuB,EAAC,aAAa,CAAC,CAAC;IAEvC,gDAAgD;IAChD,MAAM,MAAM,GAAG,iBAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACvD,iBAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAC7D,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE;YACrC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;gBACzC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;aAC5B;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,iBAAS,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAChE,aAAa,CAAC,sBAAsB,GAAG,KAAK,CAAC;IAE7C,wDAAwD;IACxD,sCAAsC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAElE,2BAA2B;IAC3B,cAAc,CAAC,QAAQ,GAAG;QACtB,UAAU,EAAE,oBAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,yCAAiC,CAAC;QACrG,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;KACtC,CAAC;IAEF,IAAI,oBAAY,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;QAClC,aAAa,CAAC,OAAO,CAAC,KAAK,6CAAgC,CAAC;KAC/D;IAED,+CAA+C;IAC/C,iCAAiC,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAEnE,kDAAkD;IAClD,wCAAwC,CAAC,cAAc,CAAC,CAAC;IAEzD,OAAO,cAAc,CAAC;AAC1B,CAAC;AAhED,wCAgEC;AAED,SAAgB,uBAAuB,CACnC,SAAwB,EACxB,IAAU,EACV,IAAkB,EAClB,SAAuB;IAEvB,IAAI,CAAC,IAAA,sBAAU,EAAC,IAAI,CAAC,EAAE;QACnB,OAAO,IAAI,CAAC;KACf;IAED,MAAM,SAAS,GAAG,IAAiB,CAAC;IACpC,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7C,IAAI,sBAAsB,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC;IAEhE,8BAA8B;IAC9B,qEAAqE;IACrE,uEAAuE;IACvE,MAAM,QAAQ,GAAG,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC;IACxC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;QAClC,MAAM,cAAc,GAAG,IAAA,8CAA6B,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,cAAc,EAAE;YAChB,kCAAkC;YAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,yBAAyB,CAAC,SAAS,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC/F,IAAI,QAAQ,IAAI,CAAC,IAAA,sBAAc,EAAC,QAAQ,CAAC,EAAE;gBACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,cAAc,EAAE;oBAC3D,0BAA0B,EAAE,IAAI;iBACnC,CAAC,CAAC;gBAEH,2DAA2D;gBAC3D,IAAI,QAAQ,CAAC,iBAAiB,CAAC,0BAA0B,KAAK,MAAM,EAAE;oBAClE,MAAM,IAAI,GAAG,IAAI,+BAAkB,EAAE,CAAC;oBACtC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;wBACjD,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,0BAA0B,EACzC,qBAAU,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,EACxD,cAAc,CACjB,CAAC;qBACL;iBACJ;gBAED,IAAI,CAAC,IAAA,kBAAU,EAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;oBACjC,sBAAsB,GAAG,IAAI,CAAC;iBACjC;aACJ;SACJ;KACJ;IAED,MAAM,aAAa,GAAG,iBAAS,CAAC,kBAAkB,CAC9C,SAAS,CAAC,OAAO,CAAC,IAAI,EACtB,SAAS,CAAC,OAAO,CAAC,QAAQ,EAC1B,SAAS,CAAC,OAAO,CAAC,UAAU,EAC5B,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC,OAAO,EAC9B,YAAY,EACZ,SAAS,CAAC,OAAO,CAAC,YAAY,EAC9B,SAAS,CAAC,OAAO,CAAC,iBAAiB,EACnC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CACvC,CAAC;IAEF,aAAa,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC;IAClE,aAAa,CAAC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC;IACxE,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjE,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAA,2BAAmB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,IAAA,mCAAuB,EAAC,aAAa,CAAC,CAAC;IAEvC,aAAa,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IAC5C,aAAa,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IAC5C,aAAa,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IAC9D,MAAM,cAAc,GAAG,iBAAS,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAEhE,gDAAgD;IAChD,MAAM,MAAM,GAAG,iBAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACvD,iBAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACzD,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE;YACrC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAC5B;IACL,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,sCAAsC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAElE,+BAA+B;IAC/B,cAAc,CAAC,QAAQ,GAAG;QACtB,UAAU,EAAE,oBAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,yCAAiC,CAAC;QACrG,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;KACtC,CAAC;IAEF,8BAA8B;IAC9B,iCAAiC,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAEnE,kDAAkD;IAClD,wCAAwC,CAAC,cAAc,CAAC,CAAC;IAEzD,OAAO,cAAc,CAAC;AAC1B,CAAC;AA7FD,0DA6FC;AAED,SAAgB,wBAAwB,CACpC,SAAwB,EACxB,IAAU,EACV,IAAkB,EAClB,SAAuB;;IAEvB,IAAI,CAAC,IAAA,sBAAU,EAAC,IAAI,CAAC,EAAE;QACnB,OAAO,IAAI,CAAC;KACf;IAED,MAAM,SAAS,GAAG,IAAiB,CAAC;IACpC,MAAM,aAAa,GAAG,iBAAS,CAAC,kBAAkB,CAC9C,SAAS,CAAC,OAAO,CAAC,IAAI,EACtB,SAAS,CAAC,OAAO,CAAC,QAAQ,EAC1B,SAAS,CAAC,OAAO,CAAC,UAAU,EAC5B,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC,OAAO,EAC9B,SAAS,CAAC,OAAO,CAAC,KAAK,EACvB,SAAS,CAAC,OAAO,CAAC,YAAY,EAC9B,SAAS,CAAC,OAAO,CAAC,iBAAiB,EACnC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CACvC,CAAC;IAEF,aAAa,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC;IAClE,aAAa,CAAC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC;IACxE,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjE,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAA,2BAAmB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,IAAA,mCAAuB,EAAC,aAAa,CAAC,CAAC;IAEvC,aAAa,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IAC5C,aAAa,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IAC5C,MAAM,cAAc,GAAG,iBAAS,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAChE,aAAa,CAAC,sBAAsB,GAAG,MAAA,SAAS,CAAC,sBAAsB,mCAAI,KAAK,CAAC;IAEjF,gDAAgD;IAChD,MAAM,MAAM,GAAG,iBAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IACvD,iBAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACzD,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE;YACrC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAC5B;IACL,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,sCAAsC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAElE,2BAA2B;IAC3B,cAAc,CAAC,QAAQ,GAAG;QACtB,UAAU,EAAE,oBAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,yCAAiC,CAAC;QACrG,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;KACtC,CAAC;IAEF,iCAAiC;IACjC,iCAAiC,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAEnE,kDAAkD;IAClD,wCAAwC,CAAC,cAAc,CAAC,CAAC;IAEzD,OAAO,cAAc,CAAC;AAC1B,CAAC;AAzDD,4DAyDC;AAED,SAAS,iCAAiC,CAAC,SAAwB,EAAE,cAAyB,EAAE,IAAkB;IAC9G,MAAM,MAAM,GAAG,iBAAS,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAExD,mEAAmE;IACnE,kCAAkC;IAClC,MAAM,YAAY,GAAG,oBAAY,CAAC,yBAAyB,CAAC,SAAS,yCAA+B,CAAC;IACrG,oBAAY,CAAC,YAAY,CAAC,YAAY,EAAE;QACpC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,eAAO,CAAC,MAAM,EAAE;QACtB,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IACH,oBAAY,CAAC,YAAY,CAAC,YAAY,EAAE;QACpC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE;QAC7B,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IACH,oBAAY,CAAC,YAAY,CAAC,YAAY,EAAE;QACpC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,eAAO,CAAC,MAAM,EAAE;QACtB,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,eAAO,CAAC,MAAM,EAAE;KAChC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,CAAC,kBAAkB,GAAG,oBAAY,CAAC,aAAa,CAAC,IAAI,CAAC;QACtE,CAAC,CAAC,oBAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC;QAC3C,CAAC,CAAC,cAAc,CAAC;IACrB,YAAY,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5D,YAAY,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAExE,mEAAmE;IACnE,sBAAsB;IACtB,YAAY,CAAC,OAAO,CAAC,cAAc,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC;IAE9D,gEAAgE;IAChE,MAAM,YAAY,GAAG,oBAAY,CAAC,yBAAyB,CAAC,SAAS,yCAA+B,CAAC;IACrG,oBAAY,CAAC,YAAY,CAAC,YAAY,EAAE;QACpC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,eAAO,CAAC,MAAM,EAAE;QACtB,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IAEH,MAAM,OAAO,GACT,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAO,CAAC,MAAM,EAAE,CAAC;IAE5G,oBAAY,CAAC,YAAY,CAAC,YAAY,EAAE;QACpC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,OAAO;QACb,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IAEH,oBAAY,CAAC,YAAY,CAAC,YAAY,EAAE;QACpC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,eAAO,CAAC,MAAM,EAAE;QACtB,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,eAAO,CAAC,MAAM,EAAE;KAChC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,CAAC,kBAAkB,GAAG,oBAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACpF,YAAY,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5D,YAAY,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAExE,mEAAmE;IACnE,sBAAsB;IACtB,YAAY,CAAC,OAAO,CAAC,cAAc,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC;IAE9D,0EAA0E;IAC1E,wEAAwE;IACxE,oEAAoE;IACpE,qCAAqC;IACrC,MAAM,mBAAmB,GAAG,8BAAsB,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;IACxF,MAAM,SAAS,GAAG,eAAM,CAAC,cAAc,kCAA0B,mBAAmB,CAAC,CAAC;IACtF,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,iCAAiC,CAAC,SAAwB,EAAE,cAAyB,EAAE,IAAkB;IAC9G,MAAM,MAAM,GAAG,iBAAS,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,oBAAY,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACtE,oBAAY,CAAC,YAAY,CAAC,WAAW,EAAE;QACnC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,eAAO,CAAC,MAAM,EAAE;QACtB,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IAEH,IAAI,OAAO,GACP,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAO,CAAC,MAAM,EAAE,CAAC;IAC5G,IAAI,IAAA,iBAAS,EAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE;QACzD,OAAO,GAAG,SAAS,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;KAC7D;IAED,oBAAY,CAAC,YAAY,CAAC,WAAW,EAAE;QACnC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,IAAA,oBAAY,EAAC,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IAEH,WAAW,CAAC,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAEjE,mEAAmE;IACnE,mCAAmC;IACnC,WAAW,CAAC,OAAO,CAAC,cAAc,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC;IAC7D,WAAW,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAEvE,IAAI,YAAY,GAAS,mBAAW,CAAC,MAAM,EAAE,CAAC;IAE9C,IACI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,qCAA6B;QAChE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EACjC;QACE,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAClD;IACD,oBAAY,CAAC,YAAY,CAAC,WAAW,EAAE;QACnC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;QAClB,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,eAAM,CAAC,cAAc,kCAA0B,WAAW,CAAC,CAAC;IAC9E,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,iCAAiC,CAAC,SAAwB,EAAE,cAAyB,EAAE,IAAkB;IAC9G,MAAM,MAAM,GAAG,iBAAS,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,oBAAY,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACzE,oBAAY,CAAC,YAAY,CAAC,WAAW,EAAE;QACnC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,eAAO,CAAC,MAAM,EAAE;QACtB,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IAEH,mEAAmE;IACnE,mCAAmC;IACnC,WAAW,CAAC,OAAO,CAAC,cAAc,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC;IAC7D,WAAW,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAEvE,IAAI,OAAO,GACP,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAO,CAAC,MAAM,EAAE,CAAC;IAE5G,IAAI,IAAA,iBAAS,EAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE;QACzD,OAAO,GAAG,SAAS,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;KAC7D;IAED,oBAAY,CAAC,YAAY,CAAC,WAAW,EAAE;QACnC,QAAQ,kCAA0B;QAClC,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,IAAA,oBAAY,EAAC,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QACtD,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IACH,WAAW,CAAC,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACjE,MAAM,SAAS,GAAG,eAAM,CAAC,cAAc,kCAA0B,WAAW,CAAC,CAAC;IAC9E,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,sCAAsC,CAAC,SAAwB,EAAE,cAAyB;IAC/F,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IACzC,IAAI,QAAQ,IAAI,IAAA,kBAAU,EAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC7C,iCAAiC,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;KACrF;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IACzC,IAAI,QAAQ,IAAI,IAAA,kBAAU,EAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC7C,iCAAiC,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;KACrF;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IACzC,IAAI,QAAQ,IAAI,IAAA,kBAAU,EAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC7C,iCAAiC,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;KACrF;AACL,CAAC;AAED,SAAS,wCAAwC,CAAC,cAAyB;IACvE,MAAM,MAAM,GAAG,iBAAS,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAExD,kDAAkD;IAClD,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACrD,MAAM,gBAAgB,GAAG,oBAAY,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAC9E,oBAAY,CAAC,YAAY,CAAC,gBAAgB,EAAE;YACxC,QAAQ,kCAA0B;YAClC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,eAAO,CAAC,MAAM,EAAE;YACtB,eAAe,EAAE,IAAI;SACxB,CAAC,CAAC;QACH,oBAAY,CAAC,YAAY,CAAC,gBAAgB,EAAE;YACxC,QAAQ,kCAA0B;YAClC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,eAAO,CAAC,MAAM,EAAE;YACtB,eAAe,EAAE,IAAI;SACxB,CAAC,CAAC;QACH,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,GAAG,cAAc,CAAC;QAC7D,MAAM,cAAc,GAAG,eAAM,CAAC,cAAc,kCAA0B,gBAAgB,CAAC,CAAC;QACxF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,cAAc,CAC1B,SAAwB,EACxB,gBAA2B,EAC3B,eAA0B,EAC1B,SAAoB,EACpB,QAAgC,EAChC,IAAoC,EACpC,cAA+B,EAC/B,kBAAmC,EACnC,cAAc,GAAG,CAAC;IAElB,MAAM,eAAe,GAAG,IAAA,eAAO,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,MAAM,gBAAgB,GAAG,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,MAAM,SAAS,GAIT;QACF;YACI,WAAW,EAAE,CAAC,CAAY,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,QAAQ,0CAAE,UAAU,CAAA,EAAA;YACrD,cAAc,EAAE,sBAAW,CAAC,aAAa;YACzC,mBAAmB,EAAE,sBAAW,CAAC,kBAAkB;SACtD;QACD;YACI,WAAW,EAAE,CAAC,CAAY,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,QAAQ,0CAAE,UAAU,CAAA,EAAA;YACrD,cAAc,EAAE,sBAAW,CAAC,aAAa;YACzC,mBAAmB,EAAE,sBAAW,CAAC,kBAAkB;SACtD;QACD;YACI,WAAW,EAAE,CAAC,CAAY,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,QAAQ,0CAAE,UAAU,CAAA,EAAA;YACrD,cAAc,EAAE,sBAAW,CAAC,cAAc;YAC1C,mBAAmB,EAAE,sBAAW,CAAC,mBAAmB;SACvD;KACJ,CAAC;IAEF,SAAS,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QAC/B,IAAI,cAAc,GAAG,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAEhE,IAAI,cAAc,IAAI,IAAA,kBAAU,EAAC,cAAc,CAAC,EAAE;YAC9C,IAAI,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAE9D,IAAI,CAAC,aAAa,IAAI,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,EAAE;gBAC9C,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;gBAChD,YAAY,GAAG,KAAK,CAAC;gBACrB,OAAO;aACV;YAED,SAAS,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;YACpD,SAAS,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;YAErD,2EAA2E;YAC3E,2CAA2C;YAC3C,IAAI,kBAAkB,EAAE;gBACpB,cAAc,GAAG,IAAA,+BAAmB,EAAC,cAAc,EAAE,kBAAkB,CAAiB,CAAC;aAC5F;YAED,kEAAkE;YAClE,kEAAkE;YAClE,iEAAiE;YACjE,gDAAgD;YAChD,cAAc,GAAG,oBAAY,CAAC,iBAAiB,CAC3C,cAAc,EACd,cAAc,CAAC,OAAO,CAAC,KAAK,GAAG,uCAA+B,CACjE,CAAC;YAEF,aAAa,GAAG,oBAAY,CAAC,iBAAiB,CAC1C,aAAa,EACb,aAAa,CAAC,OAAO,CAAC,KAAK,GAAG,uCAA+B,CAChE,CAAC;YAEF,MAAM,mBAAmB,GAAG,SAAS,CAAC,2BAA2B,CAC7D,gBAAgB,EAChB,cAAc;YACd,iBAAiB,CAAC,SAAS;YAC3B,mCAAmC,CAAC,SAAS;YAC7C,oBAAoB,CAAC,SAAS,EAC9B,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,EAAE,EACtB,cAAc,CACjB,CAAC;YAEF,MAAM,kBAAkB,GAAG,SAAS,CAAC,2BAA2B,CAC5D,eAAe,EACf,aAAa;YACb,iBAAiB,CAAC,SAAS;YAC3B,mCAAmC,CAAC,SAAS;YAC7C,oBAAoB,CAAC,SAAS,EAC9B,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,EAAE,EACtB,cAAc,CACjB,CAAC;YAEF,IACI,CAAC,mBAAmB;gBACpB,CAAC,kBAAkB;gBACnB,CAAC,SAAS,CAAC,UAAU,CACjB,mBAAmB,EACnB,kBAAkB,EAClB,IAAI,EACJ,cAAc;gBACd,uBAAuB,CAAC,SAAS,mCAEjC,cAAc,CACjB,EACH;gBACE,YAAY,GAAG,KAAK,CAAC;aACxB;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACxB,CAAC;AA9GD,wCA8GC"}
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,7 +187,7 @@ 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
+ if ((_b = (_a = srcType.props) === null || _a === void 0 ? void 0 : _a.condition) === null || _b === void 0 ? void 0 : _b.some((c) => c.typeVar.shared.isSynthesizedSelf)) {
191
191
  selfType = (0, typeUtils_1.synthesizeTypeVarForSelfCls)(types_1.TypeBase.cloneForCondition(srcType, undefined),
192
192
  /* isClsType */ false);
193
193
  }
@@ -211,7 +211,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
211
211
  assignTypeFlags |= (0, typeUtils_1.containsLiteralType)(srcType, /* includeTypeArgs */ true)
212
212
  ? 256 /* AssignTypeFlags.RetainLiteralsForTypeVar */
213
213
  : 0 /* AssignTypeFlags.Default */;
214
- destType.details.mro.forEach((mroClass) => {
214
+ destType.shared.mro.forEach((mroClass) => {
215
215
  if (!(0, types_1.isInstantiableClass)(mroClass) || !types_1.ClassType.isProtocolClass(mroClass)) {
216
216
  return;
217
217
  }
@@ -255,9 +255,9 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
255
255
  if ((0, types_1.isClass)(srcType)) {
256
256
  // Look in the metaclass first if we're treating the source as an instantiable class.
257
257
  if (sourceIsClassObject &&
258
- srcType.details.effectiveMetaclass &&
259
- (0, types_1.isInstantiableClass)(srcType.details.effectiveMetaclass)) {
260
- srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType.details.effectiveMetaclass, name);
258
+ srcType.shared.effectiveMetaclass &&
259
+ (0, types_1.isInstantiableClass)(srcType.shared.effectiveMetaclass)) {
260
+ srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType.shared.effectiveMetaclass, name);
261
261
  if (srcMemberInfo) {
262
262
  isMemberFromMetaclass = true;
263
263
  }
@@ -324,7 +324,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
324
324
  }
325
325
  }
326
326
  else {
327
- srcSymbol = srcType.fields.get(name);
327
+ srcSymbol = srcType.priv.fields.get(name);
328
328
  if (!srcSymbol) {
329
329
  diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.LocAddendum.protocolMemberMissing().format({ name }));
330
330
  typesAreConsistent = false;
@@ -488,19 +488,19 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
488
488
  });
489
489
  });
490
490
  // If the dest protocol has type parameters, make sure the source type arguments match.
491
- if (typesAreConsistent && destType.details.typeParameters.length > 0) {
491
+ if (typesAreConsistent && destType.shared.typeParameters.length > 0) {
492
492
  // Create a specialized version of the protocol defined by the dest and
493
493
  // make sure the resulting type args can be assigned.
494
494
  const genericProtocolType = types_1.ClassType.cloneForSpecialization(destType, undefined,
495
495
  /* isTypeArgumentExplicit */ false);
496
496
  const specializedProtocolType = (0, typeUtils_1.applySolvedTypeVars)(genericProtocolType, protocolTypeVarContext);
497
- if (destType.typeArguments) {
497
+ if (destType.priv.typeArguments) {
498
498
  if (!evaluator.assignTypeArguments(destType, specializedProtocolType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount)) {
499
499
  typesAreConsistent = false;
500
500
  }
501
501
  }
502
502
  else if (destTypeVarContext && !destTypeVarContext.isLocked()) {
503
- for (const typeParam of destType.details.typeParameters) {
503
+ for (const typeParam of destType.shared.typeParameters) {
504
504
  const typeArgEntry = protocolTypeVarContext.getPrimarySignature().getTypeVar(typeParam);
505
505
  if (typeArgEntry) {
506
506
  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 +515,13 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
515
515
  // the destTypeVarContext.
516
516
  function createProtocolTypeVarContext(evaluator, destType, destTypeVarContext) {
517
517
  const protocolTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(destType));
518
- destType.details.typeParameters.forEach((typeParam, index) => {
518
+ destType.shared.typeParameters.forEach((typeParam, index) => {
519
519
  const entry = destTypeVarContext === null || destTypeVarContext === void 0 ? void 0 : destTypeVarContext.getPrimarySignature().getTypeVar(typeParam);
520
520
  if (entry) {
521
521
  protocolTypeVarContext.setTypeVarType(typeParam, entry.narrowBound, entry.narrowBoundNoLiterals, entry.wideBound);
522
522
  }
523
- else if (destType.typeArguments && index < destType.typeArguments.length) {
524
- let typeArg = destType.typeArguments[index];
523
+ else if (destType.priv.typeArguments && index < destType.priv.typeArguments.length) {
524
+ let typeArg = destType.priv.typeArguments[index];
525
525
  let flags;
526
526
  let hasUnsolvedTypeVars = (0, typeUtils_1.requiresSpecialization)(typeArg);
527
527
  // If the type argument has unsolved TypeVars, see if they have