| Index: sdk/lib/_internal/compiler/implementation/mirrors/dart2js_member_mirrors.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/mirrors/dart2js_member_mirrors.dart b/sdk/lib/_internal/compiler/implementation/mirrors/dart2js_member_mirrors.dart
|
| index 2a3bcc176e80c100f20cf03158cae088cbf4407f..7f3899ade72e3e31903604a1852811e61be26218 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/mirrors/dart2js_member_mirrors.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/mirrors/dart2js_member_mirrors.dart
|
| @@ -166,25 +166,26 @@ class Dart2JsParameterMirror extends Dart2JsMemberMirror
|
| final bool isNamed;
|
|
|
| factory Dart2JsParameterMirror(Dart2JsDeclarationMirror owner,
|
| - ParameterElement element,
|
| + FormalElement element,
|
| {bool isOptional: false,
|
| bool isNamed: false}) {
|
| - if (element is FieldParameterElement) {
|
| + if (element is InitializingFormalElement) {
|
| return new Dart2JsFieldParameterMirror(
|
| owner, element, isOptional, isNamed);
|
| + } else {
|
| + return new Dart2JsParameterMirror._normal(
|
| + owner, element, isOptional, isNamed);
|
| }
|
| - return new Dart2JsParameterMirror._normal(
|
| - owner, element, isOptional, isNamed);
|
| }
|
|
|
| Dart2JsParameterMirror._normal(Dart2JsDeclarationMirror owner,
|
| - ParameterElement element,
|
| + FormalElement element,
|
| this.isOptional,
|
| this.isNamed)
|
| : this.owner = owner,
|
| super(owner.mirrorSystem, element);
|
|
|
| - ParameterElement get _element => super._element;
|
| + FormalElement get _element => super._element;
|
|
|
| TypeMirror get type => owner._getTypeMirror(_element.type);
|
|
|
| @@ -196,18 +197,23 @@ class Dart2JsParameterMirror extends Dart2JsMemberMirror
|
| if (hasDefaultValue) {
|
| // TODO(johnniwinther): Get the constant from the [TreeElements]
|
| // associated with the enclosing method.
|
| + ParameterElement parameter = _element;
|
| Constant constant = mirrorSystem.compiler.constants
|
| - .getConstantForVariable(_element);
|
| - assert(invariant(_element, constant != null,
|
| + .getConstantForVariable(parameter);
|
| + assert(invariant(parameter, constant != null,
|
| message: "Missing constant for parameter "
|
| - "$_element with default value."));
|
| + "$parameter with default value."));
|
| return _convertConstantToInstanceMirror(mirrorSystem, constant);
|
| }
|
| return null;
|
| }
|
|
|
| bool get hasDefaultValue {
|
| - return _element.initializer != null;
|
| + if (_element is ParameterElement) {
|
| + ParameterElement parameter = _element;
|
| + return parameter.initializer != null;
|
| + }
|
| + return false;
|
| }
|
|
|
| bool get isInitializingFormal => false;
|
| @@ -218,12 +224,12 @@ class Dart2JsParameterMirror extends Dart2JsMemberMirror
|
| class Dart2JsFieldParameterMirror extends Dart2JsParameterMirror {
|
|
|
| Dart2JsFieldParameterMirror(Dart2JsDeclarationMirror method,
|
| - FieldParameterElement element,
|
| + InitializingFormalElement element,
|
| bool isOptional,
|
| bool isNamed)
|
| : super._normal(method, element, isOptional, isNamed);
|
|
|
| - FieldParameterElement get _fieldParameterElement => _element;
|
| + InitializingFormalElement get _fieldParameterElement => _element;
|
|
|
| bool get isInitializingFormal => true;
|
|
|
|
|