| Index: pkg/kernel/lib/transformations/closure/converter.dart | 
| diff --git a/pkg/kernel/lib/transformations/closure/converter.dart b/pkg/kernel/lib/transformations/closure/converter.dart | 
| index 42562b2992eedb5092a7e89d5a3f018ca2704a0b..ce77ee065c88d308143c7abf1ddc069ab5bf3804 100644 | 
| --- a/pkg/kernel/lib/transformations/closure/converter.dart | 
| +++ b/pkg/kernel/lib/transformations/closure/converter.dart | 
| @@ -50,6 +50,7 @@ import '../../ast.dart' | 
| VariableDeclaration, | 
| VariableGet, | 
| VariableSet, | 
| +        VectorCreation, | 
| VectorType, | 
| transformList; | 
|  | 
| @@ -445,6 +446,13 @@ class ClosureConverter extends Transformer { | 
| typeParameters: closureTypeParams, | 
| requiredParameterCount: function.requiredParameterCount - 1); | 
|  | 
| +    // If we capture type parameters but not regular variables, we still need to | 
| +    // make a context. | 
| +    if (capturedTypeVariables[function] != null && | 
| +        accessContext is NullLiteral) { | 
| +      accessContext = new VectorCreation(1); | 
| +    } | 
| + | 
| return new ClosureCreation( | 
| closedTopLevelFunction, accessContext, closureType, fnTypeArgs); | 
| } | 
| @@ -740,9 +748,7 @@ class ClosureConverter extends Transformer { | 
|  | 
| /// Creates copies of the type variables in [original] and returns a | 
| /// substitution that can be passed to [substitute] to substitute all uses of | 
| -  /// [original] with their copies. Additionally returns a list of new type | 
| -  /// parameters to prefix to the enclosing function's type parameters and the | 
| -  /// arguments to be passed for those parameters. | 
| +  /// [original] with their copies. | 
| /// | 
| Map<TypeParameter, DartType> copyTypeVariables( | 
| Iterable<TypeParameter> original) { | 
|  |