| Index: pkg/kernel/lib/ast.dart
|
| diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
|
| index 7afda0c84ed66e7fdd65b766b0a9c59dc66eac6c..3cc838d63f692efbce1d971236a80bd30cab9653 100644
|
| --- a/pkg/kernel/lib/ast.dart
|
| +++ b/pkg/kernel/lib/ast.dart
|
| @@ -1539,13 +1539,16 @@ class FunctionNode extends TreeNode {
|
| List<NamedType> named =
|
| namedParameters.map(_getNamedTypeOfVariable).toList(growable: false);
|
| named.sort();
|
| + // We need create a copy of the list of type parameters, otherwise
|
| + // transformations like erasure don't work.
|
| + var typeParametersCopy = new List<TypeParameter>.from(parent is Constructor
|
| + ? parent.enclosingClass.typeParameters
|
| + : typeParameters);
|
| return new FunctionType(
|
| positionalParameters.map(_getTypeOfVariable).toList(growable: false),
|
| returnType,
|
| namedParameters: named,
|
| - typeParameters: parent is Constructor
|
| - ? parent.enclosingClass.typeParameters
|
| - : typeParameters,
|
| + typeParameters: typeParametersCopy,
|
| requiredParameterCount: requiredParameterCount);
|
| }
|
|
|
|
|