| Index: pkg/compiler/lib/src/elements/modelx.dart
|
| diff --git a/pkg/compiler/lib/src/elements/modelx.dart b/pkg/compiler/lib/src/elements/modelx.dart
|
| index 68ee1a47a71510e0749c8e2612acc893e6697db6..2407e5ac8522020b2d858e99c10b3fa65e810215 100644
|
| --- a/pkg/compiler/lib/src/elements/modelx.dart
|
| +++ b/pkg/compiler/lib/src/elements/modelx.dart
|
| @@ -2044,17 +2044,24 @@ class SynthesizedConstructorElementX extends ConstructorElementX {
|
| final ConstructorElement definingConstructor;
|
| final bool isDefaultConstructor;
|
|
|
| - SynthesizedConstructorElementX(String name,
|
| - this.definingConstructor,
|
| - Element enclosing,
|
| - this.isDefaultConstructor)
|
| - : super(name,
|
| + SynthesizedConstructorElementX.notForDefault(String name,
|
| + this.definingConstructor,
|
| + Element enclosing)
|
| + : isDefaultConstructor = false,
|
| + super(name,
|
| ElementKind.GENERATIVE_CONSTRUCTOR,
|
| Modifiers.EMPTY,
|
| - enclosing);
|
| + enclosing) ;
|
|
|
| - SynthesizedConstructorElementX.forDefault(superMember, Element enclosing)
|
| - : this('', superMember, enclosing, true);
|
| + SynthesizedConstructorElementX.forDefault(this.definingConstructor,
|
| + Element enclosing)
|
| + : isDefaultConstructor = true,
|
| + super('',
|
| + ElementKind.GENERATIVE_CONSTRUCTOR,
|
| + Modifiers.EMPTY,
|
| + enclosing) {
|
| + typeCache = new FunctionType.synthesized(enclosingClass.thisType);
|
| + }
|
|
|
| FunctionExpression parseNode(DiagnosticListener listener) => null;
|
|
|
| @@ -2066,11 +2073,21 @@ class SynthesizedConstructorElementX extends ConstructorElementX {
|
|
|
| bool get isSynthesized => true;
|
|
|
| + DartType get type {
|
| + if (isDefaultConstructor) {
|
| + return super.type;
|
| + } else {
|
| + // TODO(johnniwinther): Ensure that the function type substitutes type
|
| + // variables correctly.
|
| + return definingConstructor.type;
|
| + }
|
| + }
|
| +
|
| FunctionSignature computeSignature(compiler) {
|
| if (functionSignatureCache != null) return functionSignatureCache;
|
| if (isDefaultConstructor) {
|
| return functionSignatureCache = new FunctionSignatureX(
|
| - type: new FunctionType(this, enclosingClass.thisType));
|
| + type: type);
|
| }
|
| if (definingConstructor.isErroneous) {
|
| return functionSignatureCache =
|
|
|