| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 // VM-specific implementation of the dart:mirrors library. | 5 // VM-specific implementation of the dart:mirrors library. |
| 6 | 6 |
| 7 import "dart:collection" show UnmodifiableListView, UnmodifiableMapView; | 7 import "dart:collection" show UnmodifiableListView, UnmodifiableMapView; |
| 8 | 8 |
| 9 final emptyList = new UnmodifiableListView([]); | 9 final emptyList = new UnmodifiableListView([]); |
| 10 final emptyMap = new UnmodifiableMapView({}); | 10 final emptyMap = new UnmodifiableMapView({}); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 buf.write('}'); | 73 buf.write('}'); |
| 74 } | 74 } |
| 75 if (found_optional_positional) { | 75 if (found_optional_positional) { |
| 76 buf.write(']'); | 76 buf.write(']'); |
| 77 } | 77 } |
| 78 buf.write(') -> '); | 78 buf.write(') -> '); |
| 79 buf.write(_n(returnType.qualifiedName)); | 79 buf.write(_n(returnType.qualifiedName)); |
| 80 return buf.toString(); | 80 return buf.toString(); |
| 81 } | 81 } |
| 82 | 82 |
| 83 SourceLocation _location(reflectee) |
| 84 native "DeclarationMirror_location"; |
| 85 |
| 83 List _metadata(reflectee) | 86 List _metadata(reflectee) |
| 84 native 'DeclarationMirror_metadata'; | 87 native 'DeclarationMirror_metadata'; |
| 85 | 88 |
| 86 bool _subtypeTest(Type a, Type b) | 89 bool _subtypeTest(Type a, Type b) |
| 87 native 'TypeMirror_subtypeTest'; | 90 native 'TypeMirror_subtypeTest'; |
| 88 | 91 |
| 89 bool _moreSpecificTest(Type a, Type b) | 92 bool _moreSpecificTest(Type a, Type b) |
| 90 native 'TypeMirror_moreSpecificTest'; | 93 native 'TypeMirror_moreSpecificTest'; |
| 91 | 94 |
| 92 class _AccessorCacheAssociation { | 95 class _AccessorCacheAssociation { |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 Symbol get qualifiedName => _computeQualifiedName(owner, simpleName); | 321 Symbol get qualifiedName => _computeQualifiedName(owner, simpleName); |
| 319 Symbol get constructorName => const Symbol(''); | 322 Symbol get constructorName => const Symbol(''); |
| 320 | 323 |
| 321 TypeMirror get returnType => _target.type; | 324 TypeMirror get returnType => _target.type; |
| 322 List<ParameterMirror> get parameters { | 325 List<ParameterMirror> get parameters { |
| 323 if (isGetter) return emptyList; | 326 if (isGetter) return emptyList; |
| 324 return new UnmodifiableListView( | 327 return new UnmodifiableListView( |
| 325 [new _SyntheticSetterParameter(this, this._target)]); | 328 [new _SyntheticSetterParameter(this, this._target)]); |
| 326 } | 329 } |
| 327 | 330 |
| 331 SourceLocation get location => null; |
| 328 List<InstanceMirror> get metadata => emptyList; | 332 List<InstanceMirror> get metadata => emptyList; |
| 329 String get source => null; | 333 String get source => null; |
| 330 SourceLocation get location => null; | |
| 331 } | 334 } |
| 332 | 335 |
| 333 class _SyntheticSetterParameter implements ParameterMirror { | 336 class _SyntheticSetterParameter implements ParameterMirror { |
| 334 final DeclarationMirror owner; | 337 final DeclarationMirror owner; |
| 335 final VariableMirror _target; | 338 final VariableMirror _target; |
| 336 | 339 |
| 337 _SyntheticSetterParameter(this.owner, this._target); | 340 _SyntheticSetterParameter(this.owner, this._target); |
| 338 | 341 |
| 339 Symbol get simpleName => _target.simpleName; | 342 Symbol get simpleName => _target.simpleName; |
| 340 Symbol get qualifiedName => _computeQualifiedName(owner, simpleName); | 343 Symbol get qualifiedName => _computeQualifiedName(owner, simpleName); |
| 341 TypeMirror get type => _target.type; | 344 TypeMirror get type => _target.type; |
| 342 | 345 |
| 343 bool get isOptional => false; | 346 bool get isOptional => false; |
| 344 bool get isNamed => false; | 347 bool get isNamed => false; |
| 345 bool get isStatic => false; | 348 bool get isStatic => false; |
| 346 bool get isTopLevel => false; | 349 bool get isTopLevel => false; |
| 347 bool get isConst => false; | 350 bool get isConst => false; |
| 348 bool get isFinal => true; | 351 bool get isFinal => true; |
| 349 bool get isPrivate => false; | 352 bool get isPrivate => false; |
| 350 bool get hasDefaultValue => false; | 353 bool get hasDefaultValue => false; |
| 351 InstanceMirror get defaultValue => null; | 354 InstanceMirror get defaultValue => null; |
| 355 SourceLocation get location => null; |
| 352 List<InstanceMirror> get metadata => emptyList; | 356 List<InstanceMirror> get metadata => emptyList; |
| 353 SourceLocation get location => throw new UnimplementedError(); | |
| 354 } | 357 } |
| 355 | 358 |
| 356 abstract class _LocalObjectMirror extends _LocalMirror implements ObjectMirror { | 359 abstract class _LocalObjectMirror extends _LocalMirror implements ObjectMirror { |
| 357 final _reflectee; // May be a MirrorReference or an ordinary object. | 360 final _reflectee; // May be a MirrorReference or an ordinary object. |
| 358 | 361 |
| 359 _LocalObjectMirror(this._reflectee); | 362 _LocalObjectMirror(this._reflectee); |
| 360 | 363 |
| 361 InstanceMirror invoke(Symbol memberName, | 364 InstanceMirror invoke(Symbol memberName, |
| 362 List positionalArguments, | 365 List positionalArguments, |
| 363 [Map<Symbol, dynamic> namedArguments]) { | 366 [Map<Symbol, dynamic> namedArguments]) { |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 630 _owner = _library(_reflectee); | 633 _owner = _library(_reflectee); |
| 631 } | 634 } |
| 632 return _owner; | 635 return _owner; |
| 633 } | 636 } |
| 634 | 637 |
| 635 bool get isPrivate => _n(simpleName).startsWith('_'); | 638 bool get isPrivate => _n(simpleName).startsWith('_'); |
| 636 | 639 |
| 637 final bool isTopLevel = true; | 640 final bool isTopLevel = true; |
| 638 | 641 |
| 639 SourceLocation get location { | 642 SourceLocation get location { |
| 640 throw new UnimplementedError('ClassMirror.location is not implemented'); | 643 return _location(_reflectee); |
| 641 } | 644 } |
| 642 | 645 |
| 643 ClassMirror _trueSuperclassField; | 646 ClassMirror _trueSuperclassField; |
| 644 ClassMirror get _trueSuperclass { | 647 ClassMirror get _trueSuperclass { |
| 645 if (_trueSuperclassField == null) { | 648 if (_trueSuperclassField == null) { |
| 646 Type supertype = isOriginalDeclaration | 649 Type supertype = isOriginalDeclaration |
| 647 ? _supertype(_reflectedType) | 650 ? _supertype(_reflectedType) |
| 648 : _supertypeInstantiated(_reflectedType); | 651 : _supertypeInstantiated(_reflectedType); |
| 649 if (supertype == null) { | 652 if (supertype == null) { |
| 650 // Object has no superclass. | 653 // Object has no superclass. |
| (...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1037 Symbol _qualifiedName = null; | 1040 Symbol _qualifiedName = null; |
| 1038 Symbol get qualifiedName { | 1041 Symbol get qualifiedName { |
| 1039 if (_qualifiedName == null) { | 1042 if (_qualifiedName == null) { |
| 1040 _qualifiedName = _computeQualifiedName(owner, simpleName); | 1043 _qualifiedName = _computeQualifiedName(owner, simpleName); |
| 1041 } | 1044 } |
| 1042 return _qualifiedName; | 1045 return _qualifiedName; |
| 1043 } | 1046 } |
| 1044 | 1047 |
| 1045 bool get isPrivate => _n(simpleName).startsWith('_'); | 1048 bool get isPrivate => _n(simpleName).startsWith('_'); |
| 1046 | 1049 |
| 1050 SourceLocation get location { |
| 1051 return _location(_reflectee); |
| 1052 } |
| 1053 |
| 1047 List<InstanceMirror> get metadata { | 1054 List<InstanceMirror> get metadata { |
| 1048 // Get the metadata objects, convert them into InstanceMirrors using | 1055 // Get the metadata objects, convert them into InstanceMirrors using |
| 1049 // reflect() and then make them into a Dart list. | 1056 // reflect() and then make them into a Dart list. |
| 1050 return new UnmodifiableListView(_metadata(_reflectee).map(reflect)); | 1057 return new UnmodifiableListView(_metadata(_reflectee).map(reflect)); |
| 1051 } | 1058 } |
| 1052 | 1059 |
| 1053 bool operator ==(other) { | 1060 bool operator ==(other) { |
| 1054 return this.runtimeType == other.runtimeType && | 1061 return this.runtimeType == other.runtimeType && |
| 1055 this._reflectee == other._reflectee; | 1062 this._reflectee == other._reflectee; |
| 1056 } | 1063 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1069 DeclarationMirror get owner { | 1076 DeclarationMirror get owner { |
| 1070 if (_owner == null) { | 1077 if (_owner == null) { |
| 1071 _owner = _TypeVariableMirror_owner(_reflectee).originalDeclaration; | 1078 _owner = _TypeVariableMirror_owner(_reflectee).originalDeclaration; |
| 1072 } | 1079 } |
| 1073 return _owner; | 1080 return _owner; |
| 1074 } | 1081 } |
| 1075 | 1082 |
| 1076 bool get isStatic => false; | 1083 bool get isStatic => false; |
| 1077 bool get isTopLevel => false; | 1084 bool get isTopLevel => false; |
| 1078 | 1085 |
| 1079 SourceLocation get location { | |
| 1080 throw new UnimplementedError( | |
| 1081 'TypeVariableMirror.location is not implemented'); | |
| 1082 } | |
| 1083 | |
| 1084 TypeMirror _upperBound = null; | 1086 TypeMirror _upperBound = null; |
| 1085 TypeMirror get upperBound { | 1087 TypeMirror get upperBound { |
| 1086 if (_upperBound == null) { | 1088 if (_upperBound == null) { |
| 1087 _upperBound = reflectType(_TypeVariableMirror_upper_bound(_reflectee)); | 1089 _upperBound = reflectType(_TypeVariableMirror_upper_bound(_reflectee)); |
| 1088 } | 1090 } |
| 1089 return _upperBound; | 1091 return _upperBound; |
| 1090 } | 1092 } |
| 1091 | 1093 |
| 1092 bool get hasReflectedType => false; | 1094 bool get hasReflectedType => false; |
| 1093 Type get reflectedType { | 1095 Type get reflectedType { |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1148 bool get isTopLevel => true; | 1150 bool get isTopLevel => true; |
| 1149 | 1151 |
| 1150 DeclarationMirror _owner; | 1152 DeclarationMirror _owner; |
| 1151 DeclarationMirror get owner { | 1153 DeclarationMirror get owner { |
| 1152 if (_owner == null) { | 1154 if (_owner == null) { |
| 1153 _owner = _LocalClassMirror._library(_reflectee); | 1155 _owner = _LocalClassMirror._library(_reflectee); |
| 1154 } | 1156 } |
| 1155 return _owner; | 1157 return _owner; |
| 1156 } | 1158 } |
| 1157 | 1159 |
| 1158 SourceLocation get location { | |
| 1159 throw new UnimplementedError('TypedefMirror.location is not implemented'); | |
| 1160 } | |
| 1161 | |
| 1162 TypeMirror _referent = null; | 1160 TypeMirror _referent = null; |
| 1163 TypeMirror get referent { | 1161 TypeMirror get referent { |
| 1164 if (_referent == null) { | 1162 if (_referent == null) { |
| 1165 _referent = _nativeReferent(_reflectedType); | 1163 _referent = _nativeReferent(_reflectedType); |
| 1166 _referent._instantiator = _reflectedType; | 1164 _referent._instantiator = _reflectedType; |
| 1167 } | 1165 } |
| 1168 return _referent; | 1166 return _referent; |
| 1169 } | 1167 } |
| 1170 | 1168 |
| 1171 bool get hasReflectedType => !_isGenericDeclaration; | 1169 bool get hasReflectedType => !_isGenericDeclaration; |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1257 // The simple name and the qualified name are the same for a library. | 1255 // The simple name and the qualified name are the same for a library. |
| 1258 Symbol get qualifiedName => simpleName; | 1256 Symbol get qualifiedName => simpleName; |
| 1259 | 1257 |
| 1260 DeclarationMirror get owner => null; | 1258 DeclarationMirror get owner => null; |
| 1261 | 1259 |
| 1262 bool get isPrivate => false; | 1260 bool get isPrivate => false; |
| 1263 bool get isTopLevel => false; | 1261 bool get isTopLevel => false; |
| 1264 | 1262 |
| 1265 Type get _instantiator => null; | 1263 Type get _instantiator => null; |
| 1266 | 1264 |
| 1267 SourceLocation get location { | |
| 1268 throw new UnimplementedError('LibraryMirror.location is not implemented'); | |
| 1269 } | |
| 1270 | |
| 1271 Map<Symbol, DeclarationMirror> _declarations; | 1265 Map<Symbol, DeclarationMirror> _declarations; |
| 1272 Map<Symbol, DeclarationMirror> get declarations { | 1266 Map<Symbol, DeclarationMirror> get declarations { |
| 1273 if (_declarations != null) return _declarations; | 1267 if (_declarations != null) return _declarations; |
| 1274 return _declarations = | 1268 return _declarations = |
| 1275 new UnmodifiableMapView<Symbol, DeclarationMirror>(_members); | 1269 new UnmodifiableMapView<Symbol, DeclarationMirror>(_members); |
| 1276 } | 1270 } |
| 1277 | 1271 |
| 1278 Map<Symbol, Mirror> _cachedMembers; | 1272 Map<Symbol, Mirror> _cachedMembers; |
| 1279 Map<Symbol, Mirror> get _members { | 1273 Map<Symbol, Mirror> get _members { |
| 1280 if (_cachedMembers == null) { | 1274 if (_cachedMembers == null) { |
| 1281 _cachedMembers = _makeMemberMap(_computeMembers(_reflectee)); | 1275 _cachedMembers = _makeMemberMap(_computeMembers(_reflectee)); |
| 1282 } | 1276 } |
| 1283 return _cachedMembers; | 1277 return _cachedMembers; |
| 1284 } | 1278 } |
| 1285 | 1279 |
| 1280 SourceLocation get location { |
| 1281 return _location(_reflectee); |
| 1282 } |
| 1283 |
| 1286 List<InstanceMirror> get metadata { | 1284 List<InstanceMirror> get metadata { |
| 1287 // Get the metadata objects, convert them into InstanceMirrors using | 1285 // Get the metadata objects, convert them into InstanceMirrors using |
| 1288 // reflect() and then make them into a Dart list. | 1286 // reflect() and then make them into a Dart list. |
| 1289 return new UnmodifiableListView(_metadata(_reflectee).map(reflect)); | 1287 return new UnmodifiableListView(_metadata(_reflectee).map(reflect)); |
| 1290 } | 1288 } |
| 1291 | 1289 |
| 1292 bool operator ==(other) { | 1290 bool operator ==(other) { |
| 1293 return this.runtimeType == other.runtimeType && | 1291 return this.runtimeType == other.runtimeType && |
| 1294 this._reflectee == other._reflectee; | 1292 this._reflectee == other._reflectee; |
| 1295 } | 1293 } |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1393 } | 1391 } |
| 1394 return _owner; | 1392 return _owner; |
| 1395 } | 1393 } |
| 1396 | 1394 |
| 1397 bool get isPrivate => _n(simpleName).startsWith('_') || | 1395 bool get isPrivate => _n(simpleName).startsWith('_') || |
| 1398 _n(constructorName).startsWith('_'); | 1396 _n(constructorName).startsWith('_'); |
| 1399 | 1397 |
| 1400 bool get isTopLevel => owner is LibraryMirror; | 1398 bool get isTopLevel => owner is LibraryMirror; |
| 1401 bool get isSynthetic => false; | 1399 bool get isSynthetic => false; |
| 1402 | 1400 |
| 1403 SourceLocation _location; | |
| 1404 SourceLocation get location { | |
| 1405 if (_location == null) { | |
| 1406 _location = _MethodMirror_location(_reflectee); | |
| 1407 } | |
| 1408 return _location; | |
| 1409 } | |
| 1410 | |
| 1411 Type get _instantiator { | 1401 Type get _instantiator { |
| 1412 var o = owner; | 1402 var o = owner; |
| 1413 while (o is MethodMirror) o = o.owner; | 1403 while (o is MethodMirror) o = o.owner; |
| 1414 return o._instantiator; | 1404 return o._instantiator; |
| 1415 } | 1405 } |
| 1416 | 1406 |
| 1417 TypeMirror _returnType = null; | 1407 TypeMirror _returnType = null; |
| 1418 TypeMirror get returnType { | 1408 TypeMirror get returnType { |
| 1419 if (_returnType == null) { | 1409 if (_returnType == null) { |
| 1420 if (isConstructor) { | 1410 if (isConstructor) { |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1483 native "MethodMirror_owner"; | 1473 native "MethodMirror_owner"; |
| 1484 | 1474 |
| 1485 static dynamic _MethodMirror_return_type(reflectee, instantiator) | 1475 static dynamic _MethodMirror_return_type(reflectee, instantiator) |
| 1486 native "MethodMirror_return_type"; | 1476 native "MethodMirror_return_type"; |
| 1487 | 1477 |
| 1488 List<ParameterMirror> _MethodMirror_parameters(reflectee) | 1478 List<ParameterMirror> _MethodMirror_parameters(reflectee) |
| 1489 native "MethodMirror_parameters"; | 1479 native "MethodMirror_parameters"; |
| 1490 | 1480 |
| 1491 static String _MethodMirror_source(reflectee) | 1481 static String _MethodMirror_source(reflectee) |
| 1492 native "MethodMirror_source"; | 1482 native "MethodMirror_source"; |
| 1493 | |
| 1494 static SourceLocation _MethodMirror_location(reflectee) | |
| 1495 native "MethodMirror_location"; | |
| 1496 } | 1483 } |
| 1497 | 1484 |
| 1498 class _LocalVariableMirror extends _LocalDeclarationMirror | 1485 class _LocalVariableMirror extends _LocalDeclarationMirror |
| 1499 implements VariableMirror { | 1486 implements VariableMirror { |
| 1500 final DeclarationMirror owner; | 1487 final DeclarationMirror owner; |
| 1501 final bool isStatic; | 1488 final bool isStatic; |
| 1502 final bool isFinal; | 1489 final bool isFinal; |
| 1503 final bool isConst; | 1490 final bool isConst; |
| 1504 | 1491 |
| 1505 _LocalVariableMirror(reflectee, | 1492 _LocalVariableMirror(reflectee, |
| 1506 String simpleName, | 1493 String simpleName, |
| 1507 this.owner, | 1494 this.owner, |
| 1508 this._type, | 1495 this._type, |
| 1509 this.isStatic, | 1496 this.isStatic, |
| 1510 this.isFinal, | 1497 this.isFinal, |
| 1511 this.isConst) | 1498 this.isConst) |
| 1512 : super(reflectee, _s(simpleName)); | 1499 : super(reflectee, _s(simpleName)); |
| 1513 | 1500 |
| 1514 bool get isTopLevel => owner is LibraryMirror; | 1501 bool get isTopLevel => owner is LibraryMirror; |
| 1515 | 1502 |
| 1516 SourceLocation get location { | |
| 1517 throw new UnimplementedError('VariableMirror.location is not implemented'); | |
| 1518 } | |
| 1519 | |
| 1520 Type get _instantiator { | 1503 Type get _instantiator { |
| 1521 return owner._instantiator; | 1504 return owner._instantiator; |
| 1522 } | 1505 } |
| 1523 | 1506 |
| 1524 TypeMirror _type; | 1507 TypeMirror _type; |
| 1525 TypeMirror get type { | 1508 TypeMirror get type { |
| 1526 if (_type == null) { | 1509 if (_type == null) { |
| 1527 _type = reflectType(_VariableMirror_type(_reflectee, _instantiator)); | 1510 _type = reflectType(_VariableMirror_type(_reflectee, _instantiator)); |
| 1528 } | 1511 } |
| 1529 return _type; | 1512 return _type; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1567 return null; | 1550 return null; |
| 1568 } | 1551 } |
| 1569 if (_defaultValue == null) { | 1552 if (_defaultValue == null) { |
| 1570 _defaultValue = reflect(_defaultValueReflectee); | 1553 _defaultValue = reflect(_defaultValueReflectee); |
| 1571 } | 1554 } |
| 1572 return _defaultValue; | 1555 return _defaultValue; |
| 1573 } | 1556 } |
| 1574 | 1557 |
| 1575 bool get hasDefaultValue => _defaultValueReflectee != null; | 1558 bool get hasDefaultValue => _defaultValueReflectee != null; |
| 1576 | 1559 |
| 1560 SourceLocation get location { |
| 1561 throw new UnsupportedError("ParameterMirror.location unimplemented"); |
| 1562 } |
| 1563 |
| 1577 List<InstanceMirror> get metadata { | 1564 List<InstanceMirror> get metadata { |
| 1578 if (_unmirroredMetadata == null) return emptyList; | 1565 if (_unmirroredMetadata == null) return emptyList; |
| 1579 return new UnmodifiableListView(_unmirroredMetadata.map(reflect)); | 1566 return new UnmodifiableListView(_unmirroredMetadata.map(reflect)); |
| 1580 } | 1567 } |
| 1581 | 1568 |
| 1582 Type get _instantiator { | 1569 Type get _instantiator { |
| 1583 var o = owner; | 1570 var o = owner; |
| 1584 while (o is MethodMirror) o = o.owner; | 1571 while (o is MethodMirror) o = o.owner; |
| 1585 return o._instantiator; | 1572 return o._instantiator; |
| 1586 } | 1573 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1604 implements TypeMirror, DeclarationMirror { | 1591 implements TypeMirror, DeclarationMirror { |
| 1605 final Symbol simpleName; | 1592 final Symbol simpleName; |
| 1606 | 1593 |
| 1607 _SpecialTypeMirror(String name) : simpleName = _s(name); | 1594 _SpecialTypeMirror(String name) : simpleName = _s(name); |
| 1608 | 1595 |
| 1609 bool get isPrivate => false; | 1596 bool get isPrivate => false; |
| 1610 bool get isTopLevel => true; | 1597 bool get isTopLevel => true; |
| 1611 | 1598 |
| 1612 DeclarationMirror get owner => null; | 1599 DeclarationMirror get owner => null; |
| 1613 | 1600 |
| 1601 SourceLocation get location => null; |
| 1614 List<InstanceMirror> get metadata => emptyList; | 1602 List<InstanceMirror> get metadata => emptyList; |
| 1615 | 1603 |
| 1616 bool get hasReflectedType => simpleName == #dynamic; | 1604 bool get hasReflectedType => simpleName == #dynamic; |
| 1617 Type get reflectedType { | 1605 Type get reflectedType { |
| 1618 if (simpleName == #dynamic) return dynamic; | 1606 if (simpleName == #dynamic) return dynamic; |
| 1619 throw new UnsupportedError("void has no reflected type"); | 1607 throw new UnsupportedError("void has no reflected type"); |
| 1620 } | 1608 } |
| 1621 | 1609 |
| 1622 List<TypeVariableMirror> get typeVariables => emptyList; | 1610 List<TypeVariableMirror> get typeVariables => emptyList; |
| 1623 List<TypeMirror> get typeArguments => emptyList; | 1611 List<TypeMirror> get typeArguments => emptyList; |
| 1624 | 1612 |
| 1625 bool get isOriginalDeclaration => true; | 1613 bool get isOriginalDeclaration => true; |
| 1626 TypeMirror get originalDeclaration => this; | 1614 TypeMirror get originalDeclaration => this; |
| 1627 | 1615 |
| 1628 SourceLocation get location { | |
| 1629 throw new UnimplementedError('TypeMirror.location is not implemented'); | |
| 1630 } | |
| 1631 | |
| 1632 Symbol get qualifiedName => simpleName; | 1616 Symbol get qualifiedName => simpleName; |
| 1633 | 1617 |
| 1634 // TODO(11955): Remove once dynamicType and voidType are canonical objects in | 1618 // TODO(11955): Remove once dynamicType and voidType are canonical objects in |
| 1635 // the object store. | 1619 // the object store. |
| 1636 bool operator ==(other) { | 1620 bool operator ==(other) { |
| 1637 if (other is! _SpecialTypeMirror) { | 1621 if (other is! _SpecialTypeMirror) { |
| 1638 return false; | 1622 return false; |
| 1639 } | 1623 } |
| 1640 return this.simpleName == other.simpleName; | 1624 return this.simpleName == other.simpleName; |
| 1641 } | 1625 } |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1700 if (typeMirror == null) { | 1684 if (typeMirror == null) { |
| 1701 typeMirror = makeLocalTypeMirror(key); | 1685 typeMirror = makeLocalTypeMirror(key); |
| 1702 _instanitationCache[key] = typeMirror; | 1686 _instanitationCache[key] = typeMirror; |
| 1703 if (typeMirror is ClassMirror && !typeMirror._isGeneric) { | 1687 if (typeMirror is ClassMirror && !typeMirror._isGeneric) { |
| 1704 _declarationCache[key] = typeMirror; | 1688 _declarationCache[key] = typeMirror; |
| 1705 } | 1689 } |
| 1706 } | 1690 } |
| 1707 return typeMirror; | 1691 return typeMirror; |
| 1708 } | 1692 } |
| 1709 } | 1693 } |
| OLD | NEW |