Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: runtime/lib/mirrors_impl.dart

Issue 23020025: Implement ParameterMirror.{isFinal,hasDefaultValue,defaultValue}. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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"; 7 import "dart:collection";
8 8
9 // These values are allowed to be passed directly over the wire. 9 // These values are allowed to be passed directly over the wire.
10 bool _isSimpleValue(var value) { 10 bool _isSimpleValue(var value) {
(...skipping 1059 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 native "VariableMirror_type"; 1070 native "VariableMirror_type";
1071 } 1071 }
1072 1072
1073 class _LocalParameterMirrorImpl extends _LocalVariableMirrorImpl 1073 class _LocalParameterMirrorImpl extends _LocalVariableMirrorImpl
1074 implements ParameterMirror { 1074 implements ParameterMirror {
1075 _LocalParameterMirrorImpl(reflectee, 1075 _LocalParameterMirrorImpl(reflectee,
1076 String simpleName, 1076 String simpleName,
1077 DeclarationMirror owner, 1077 DeclarationMirror owner,
1078 this._position, 1078 this._position,
1079 this.isOptional, 1079 this.isOptional,
1080 this.isNamed) 1080 this.isNamed,
1081 bool isFinal,
1082 this._defaultValueReflectee)
1081 : super(reflectee, 1083 : super(reflectee,
1082 simpleName, 1084 simpleName,
1083 owner, 1085 owner,
1084 null, // We override the type. 1086 null, // We override the type.
1085 false, // isStatic does not apply. 1087 false, // isStatic does not apply.
1086 false); // TODO(12196): Not yet implemented. 1088 isFinal);
1087 1089
1088 final int _position; 1090 final int _position;
1089 final bool isOptional; 1091 final bool isOptional;
1090 final bool isNamed; 1092 final bool isNamed;
1091 1093
1092 String get defaultValue { 1094 Object _defaultValueReflectee;
1093 throw new UnimplementedError( 1095 InstanceMirror _defaultValue = null;
1094 'ParameterMirror.defaultValue is not implemented'); 1096 InstanceMirror get defaultValue {
1097 if (_defaultValue == null && hasDefaultValue) {
1098 _defaultValue = reflect(_defaultValueReflectee);
1099 }
1100 return _defaultValue;
1095 } 1101 }
1096 1102
1097 bool get hasDefaultValue { 1103 bool get hasDefaultValue => !(_defaultValueReflectee == null);
rmacnak 2013/08/23 23:15:27 !=
Michael Lippautz (Google) 2013/08/24 00:17:21 Done.
1098 throw new UnimplementedError(
1099 'ParameterMirror.hasDefaultValue is not implemented');
1100 }
1101 1104
1102 // TODO(11418): Implement. 1105 // TODO(11418): Implement.
1103 List<InstanceMirror> get metadata { 1106 List<InstanceMirror> get metadata {
1104 throw new UnimplementedError( 1107 throw new UnimplementedError(
1105 'ParameterMirror.metadata is not implemented'); 1108 'ParameterMirror.metadata is not implemented');
1106 } 1109 }
1107 1110
1108 TypeMirror _type = null; 1111 TypeMirror _type = null;
1109 TypeMirror get type { 1112 TypeMirror get type {
1110 if (_type == null) { 1113 if (_type == null) {
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1219 if (typeMirror == null) { 1222 if (typeMirror == null) {
1220 typeMirror = makeLocalTypeMirror(key); 1223 typeMirror = makeLocalTypeMirror(key);
1221 _instanitationCache[key] = typeMirror; 1224 _instanitationCache[key] = typeMirror;
1222 if (typeMirror is ClassMirror && !typeMirror._isGeneric) { 1225 if (typeMirror is ClassMirror && !typeMirror._isGeneric) {
1223 _declarationCache[key] = typeMirror; 1226 _declarationCache[key] = typeMirror;
1224 } 1227 }
1225 } 1228 }
1226 return typeMirror; 1229 return typeMirror;
1227 } 1230 }
1228 } 1231 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698