| 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 3e1057db8385d07387e1fd863498d2d0e8ff8d5e..0415d47b09095e28738cf0067d2f216a10ab321e 100644
 | 
| --- a/pkg/compiler/lib/src/elements/modelx.dart
 | 
| +++ b/pkg/compiler/lib/src/elements/modelx.dart
 | 
| @@ -1344,7 +1344,7 @@ class TypedefElementX extends ElementX
 | 
|    ResolutionTypedefType computeType(Resolution resolution) {
 | 
|      if (thisTypeCache != null) return thisTypeCache;
 | 
|      Typedef node = parseNode(resolution.parsingContext);
 | 
| -    setThisAndRawTypes(createTypeVariables(node.typeParameters));
 | 
| +    setThisAndRawTypes(createTypeVariables(node.templateParameters));
 | 
|      ensureResolved(resolution);
 | 
|      return thisTypeCache;
 | 
|    }
 | 
| @@ -1742,6 +1742,15 @@ class FormalElementX extends ElementX
 | 
|        : this.identifier = identifier,
 | 
|          super(identifier.source, elementKind, enclosingElement);
 | 
|  
 | 
| +  FormalElementX.unnamed(ElementKind elementKind,
 | 
| +      FunctionTypedElement enclosingElement,
 | 
| +      this.definitions)
 | 
| +      : this.identifier = null,
 | 
| +        super("<unnamed>", elementKind, enclosingElement);
 | 
| +
 | 
| +  /// Whether this is an unnamed parameter in a Function type.
 | 
| +  bool get isUnnamed => identifier == null;
 | 
| +
 | 
|    FunctionTypedElement get functionDeclaration => enclosingElement;
 | 
|  
 | 
|    Modifiers get modifiers => definitions.modifiers;
 | 
| 
 |