| Index: pkg/kernel/lib/ast.dart
|
| diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
|
| index 0b019870c0367e71da86079c4984453241bdc2e6..f0d508fa304f7a54799b98ecc72f1f45b07abceb 100644
|
| --- a/pkg/kernel/lib/ast.dart
|
| +++ b/pkg/kernel/lib/ast.dart
|
| @@ -1536,13 +1536,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);
|
| }
|
|
|
|
|