| Index: runtime/lib/mirrors_impl.dart
|
| diff --git a/runtime/lib/mirrors_impl.dart b/runtime/lib/mirrors_impl.dart
|
| index 838af66094bca44edbd6b662882145e3475d349e..d95878edee13a8f6af8ce2cc0eeac10ea1386a20 100644
|
| --- a/runtime/lib/mirrors_impl.dart
|
| +++ b/runtime/lib/mirrors_impl.dart
|
| @@ -867,19 +867,17 @@ class _LocalMethodMirrorImpl extends _LocalMirrorImpl
|
| _LocalMethodMirrorImpl(this._reflectee,
|
| this._owner,
|
| this.parameters,
|
| - this._returnType,
|
| - this.isStatic,
|
| - this.isAbstract,
|
| - this.isGetter,
|
| - this.isSetter,
|
| - this.isConstructor,
|
| - this.isConstConstructor,
|
| - this.isGenerativeConstructor,
|
| - this.isRedirectingConstructor,
|
| - this.isFactoryConstructor);
|
| + this._returnType);
|
|
|
| final _MirrorReference _reflectee;
|
|
|
| + // Keep in sync with MethodMirrorProperty in mirrors.cc.
|
| + static const int _propertyIsStatic = 0;
|
| + static const int _propertyIsAbstract = 1;
|
| + static const int _propertyIsGetter = 2;
|
| + static const int _propertyIsSetter = 3;
|
| + static const int _propertyIsConstructor = 4;
|
| +
|
| Symbol _simpleName = null;
|
| Symbol get simpleName {
|
| if (_simpleName == null) {
|
| @@ -926,8 +924,21 @@ class _LocalMethodMirrorImpl extends _LocalMirrorImpl
|
|
|
| final List<ParameterMirror> parameters;
|
|
|
| - final bool isStatic;
|
| - final bool isAbstract;
|
| + bool _isStatic = null;
|
| + bool get isStatic {
|
| + if (_isStatic == null) {
|
| + _isStatic = _MethodMirror_get_property(_reflectee, _propertyIsStatic);
|
| + }
|
| + return _isStatic;
|
| + }
|
| +
|
| + bool _isAbstract;
|
| + bool get isAbstract {
|
| + if (_isAbstract == null) {
|
| + _isAbstract = _MethodMirror_get_property(_reflectee, _propertyIsAbstract);
|
| + }
|
| + return _isAbstract;
|
| + }
|
|
|
| bool get isRegularMethod => !isGetter && !isSetter && !isConstructor;
|
|
|
| @@ -936,9 +947,30 @@ class _LocalMethodMirrorImpl extends _LocalMirrorImpl
|
| 'MethodMirror.isOperator is not implemented');
|
| }
|
|
|
| - final bool isGetter;
|
| - final bool isSetter;
|
| - final bool isConstructor;
|
| + bool _isGetter = null;
|
| + bool get isGetter {
|
| + if (_isGetter == null) {
|
| + _isGetter = _MethodMirror_get_property(_reflectee, _propertyIsGetter);
|
| + }
|
| + return _isGetter;
|
| + }
|
| +
|
| + bool _isSetter = null;
|
| + bool get isSetter {
|
| + if (_isSetter == null) {
|
| + _isSetter = _MethodMirror_get_property(_reflectee, _propertyIsSetter);
|
| + }
|
| + return _isSetter;
|
| + }
|
| +
|
| + bool _isConstructor = null;
|
| + bool get isConstructor {
|
| + if (_isConstructor == null) {
|
| + _isConstructor = _MethodMirror_get_property(_reflectee,
|
| + _propertyIsConstructor);
|
| + }
|
| + return _isConstructor;
|
| + }
|
|
|
| Symbol _constructorName = null;
|
| Symbol get constructorName {
|
| @@ -961,10 +993,11 @@ class _LocalMethodMirrorImpl extends _LocalMirrorImpl
|
| return _constructorName;
|
| }
|
|
|
| - final bool isConstConstructor;
|
| - final bool isGenerativeConstructor;
|
| - final bool isRedirectingConstructor;
|
| - final bool isFactoryConstructor;
|
| + // TODO(mlippautz): Implement constructor kinds.
|
| + final bool isConstConstructor = false;
|
| + final bool isGenerativeConstructor = false;
|
| + final bool isRedirectingConstructor = false;
|
| + final bool isFactoryConstructor = false;
|
|
|
| List<InstanceMirror> get metadata {
|
| owner; // ensure owner is computed
|
| @@ -977,6 +1010,9 @@ class _LocalMethodMirrorImpl extends _LocalMirrorImpl
|
|
|
| static String _MethodMirror_name(reflectee)
|
| native "MethodMirror_name";
|
| +
|
| + static bool _MethodMirror_get_property(reflectee, property)
|
| + native "MethodMirror_get_property";
|
| }
|
|
|
| class _LocalVariableMirrorImpl extends _LocalMirrorImpl
|
|
|