OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of models; | 5 part of models; |
6 | 6 |
7 enum InstanceKind { | 7 enum InstanceKind { |
8 /// A general instance of the Dart class Object. | 8 /// A general instance of the Dart class Object. |
9 plainInstance, | 9 plainInstance, |
10 /// null instance. | 10 /// null instance. |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 switch (kind) { | 118 switch (kind) { |
119 case InstanceKind.float32x4: | 119 case InstanceKind.float32x4: |
120 case InstanceKind.float64x2: | 120 case InstanceKind.float64x2: |
121 case InstanceKind.int32x4: | 121 case InstanceKind.int32x4: |
122 return true; | 122 return true; |
123 default: | 123 default: |
124 return false; | 124 return false; |
125 } | 125 } |
126 } | 126 } |
127 | 127 |
| 128 bool isAbstractType(InstanceKind kind) { |
| 129 switch (kind) { |
| 130 case InstanceKind.type: |
| 131 case InstanceKind.typeRef: |
| 132 case InstanceKind.typeParameter: |
| 133 case InstanceKind.boundedType: |
| 134 return true; |
| 135 default: |
| 136 return false; |
| 137 } |
| 138 } |
| 139 |
128 abstract class InstanceRef extends ObjectRef { | 140 abstract class InstanceRef extends ObjectRef { |
129 /// What kind of instance is this? | 141 /// What kind of instance is this? |
130 InstanceKind get kind; | 142 InstanceKind get kind; |
131 | 143 |
132 /// Instance references always include their class. | 144 /// Instance references always include their class. |
133 ClassRef get clazz; | 145 ClassRef get clazz; |
134 | 146 |
135 /// [optional] The value of this instance as a string. | 147 /// [optional] The value of this instance as a string. |
136 /// | 148 /// |
137 /// Provided for the instance kinds: | 149 /// Provided for the instance kinds: |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 /// | 211 /// |
200 /// Provided for instance kinds: | 212 /// Provided for instance kinds: |
201 /// RegExp | 213 /// RegExp |
202 InstanceRef get pattern; | 214 InstanceRef get pattern; |
203 | 215 |
204 /// [optional] The function associated with a Closure instance. | 216 /// [optional] The function associated with a Closure instance. |
205 /// | 217 /// |
206 /// Provided for instance kinds: | 218 /// Provided for instance kinds: |
207 /// Closure | 219 /// Closure |
208 FunctionRef get closureFunction; | 220 FunctionRef get closureFunction; |
| 221 |
| 222 /// [optional] The context associated with a Closure instance. |
| 223 /// |
| 224 /// Provided for instance kinds: |
| 225 /// Closure |
| 226 ContextRef get closureContext; |
209 } | 227 } |
210 | 228 |
211 abstract class Instance extends Object implements InstanceRef { | 229 abstract class Instance extends Object implements InstanceRef { |
212 /// [optional] The index of the first element or association or codeunit | 230 /// [optional] The index of the first element or association or codeunit |
213 /// returned. This is only provided when it is non-zero. | 231 /// returned. This is only provided when it is non-zero. |
214 /// | 232 /// |
215 /// Provided for instance kinds: | 233 /// Provided for instance kinds: |
216 /// String | 234 /// String |
217 /// List | 235 /// List |
218 /// Map | 236 /// Map |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 /// Int16List | 285 /// Int16List |
268 /// Int32List | 286 /// Int32List |
269 /// Int64List | 287 /// Int64List |
270 /// Float32List | 288 /// Float32List |
271 /// Float64List | 289 /// Float64List |
272 /// Int32x4List | 290 /// Int32x4List |
273 /// Float32x4List | 291 /// Float32x4List |
274 /// Float64x2List | 292 /// Float64x2List |
275 Iterable<dynamic> get typedElements; | 293 Iterable<dynamic> get typedElements; |
276 | 294 |
277 /// [optional]The fields of this Instance. | 295 /// [optional] The native fields of this Instance. |
| 296 Iterable<NativeField> get nativeFields; |
| 297 |
| 298 /// [optional] The fields of this Instance. |
278 Iterable<BoundField> get fields; | 299 Iterable<BoundField> get fields; |
279 | 300 |
280 /// [optional] The elements of a List instance. | 301 /// [optional] The elements of a List instance. |
281 /// | 302 /// |
282 /// Provided for instance kinds: | 303 /// Provided for instance kinds: |
283 /// List | 304 /// List |
284 Iterable<Guarded<ObjectRef>> get elements; | 305 Iterable<Guarded<ObjectRef>> get elements; |
285 // It should be: | 306 // It should be: |
286 // Iterable<Guarded<InstanceRef>> get elements; | 307 // Iterable<Guarded<InstanceRef>> get elements; |
287 // In some situations we obtain lists of non Instances | 308 // In some situations we obtain lists of non Instances |
(...skipping 14 matching lines...) Expand all Loading... |
302 /// | 323 /// |
303 /// Provided for instance kinds: | 324 /// Provided for instance kinds: |
304 /// WeakProperty | 325 /// WeakProperty |
305 InstanceRef get value; | 326 InstanceRef get value; |
306 | 327 |
307 /// [optional] The referent of a MirrorReference instance. | 328 /// [optional] The referent of a MirrorReference instance. |
308 /// | 329 /// |
309 /// Provided for instance kinds: | 330 /// Provided for instance kinds: |
310 /// MirrorReference | 331 /// MirrorReference |
311 ObjectRef get referent; | 332 ObjectRef get referent; |
| 333 |
| 334 /// [optional] The type arguments for this type. |
| 335 /// |
| 336 /// Provided for instance kinds: |
| 337 /// Type |
| 338 TypeArgumentsRef get typeArguments; |
| 339 |
| 340 /// [optional] The index of a TypeParameter instance. |
| 341 /// |
| 342 /// Provided for instance kinds: |
| 343 /// TypeParameter |
| 344 int get parameterIndex; |
| 345 |
| 346 /// [optional] The type bounded by a BoundedType instance |
| 347 /// - or - |
| 348 /// the referent of a TypeRef instance. |
| 349 /// |
| 350 /// The value will always be of one of the kinds: |
| 351 /// Type, TypeRef, TypeParameter, BoundedType. |
| 352 /// |
| 353 /// Provided for instance kinds: |
| 354 /// BoundedType |
| 355 /// TypeRef |
| 356 InstanceRef get targetType; |
| 357 |
| 358 /// [optional] The bound of a TypeParameter or BoundedType. |
| 359 /// |
| 360 /// The value will always be of one of the kinds: |
| 361 /// Type, TypeRef, TypeParameter, BoundedType. |
| 362 /// |
| 363 /// Provided for instance kinds: |
| 364 /// BoundedType |
| 365 /// TypeParameter |
| 366 InstanceRef get bound; |
| 367 |
| 368 /// [optional] |
| 369 /// |
| 370 /// Provided for instance kinds: |
| 371 /// Closure |
| 372 Breakpoint get activationBreakpoint; |
| 373 |
| 374 /// [optional] |
| 375 /// |
| 376 /// Provided for instance kinds: |
| 377 /// RegExp |
| 378 bool get isCaseSensitive; |
| 379 |
| 380 /// [optional] |
| 381 /// |
| 382 /// Provided for instance kinds: |
| 383 /// RegExp |
| 384 bool get isMultiLine; |
| 385 |
| 386 /// [optional] |
| 387 /// |
| 388 /// Provided for instance kinds: |
| 389 /// RegExp |
| 390 Function get oneByteFunction; |
| 391 |
| 392 /// [optional] |
| 393 /// |
| 394 /// Provided for instance kinds: |
| 395 /// RegExp |
| 396 Function get twoByteFunction; |
| 397 |
| 398 /// [optional] |
| 399 /// |
| 400 /// Provided for instance kinds: |
| 401 /// RegExp |
| 402 Function get externalOneByteFunction; |
| 403 |
| 404 /// [optional] |
| 405 /// |
| 406 /// Provided for instance kinds: |
| 407 /// RegExp |
| 408 Function get externalTwoByteFunction; |
| 409 |
| 410 /// [optional] |
| 411 /// |
| 412 /// Provided for instance kinds: |
| 413 /// RegExp |
| 414 Instance get oneByteBytecode; |
| 415 |
| 416 /// [optional] |
| 417 /// |
| 418 /// Provided for instance kinds: |
| 419 /// RegExp |
| 420 Instance get twoByteBytecode; |
312 } | 421 } |
| 422 |
| 423 abstract class BoundField { |
| 424 FieldRef get decl; |
| 425 Guarded<InstanceRef> get value; |
| 426 } |
| 427 |
| 428 abstract class NativeField { |
| 429 int get value; |
| 430 } |
OLD | NEW |