| Index: pkg/compiler/lib/src/closure.dart
|
| diff --git a/pkg/compiler/lib/src/closure.dart b/pkg/compiler/lib/src/closure.dart
|
| index 908ecce3f2bba1685519424772ae04ca9f959440..f7a0af62c9a1992e5d94f3c2630e72c066970a9e 100644
|
| --- a/pkg/compiler/lib/src/closure.dart
|
| +++ b/pkg/compiler/lib/src/closure.dart
|
| @@ -23,7 +23,12 @@ import 'tree/tree.dart';
|
| import 'util/util.dart';
|
| import 'world.dart' show ClosedWorldRefiner;
|
|
|
| -class ClosureTask extends CompilerTask {
|
| +abstract class ClosureClassMaps {
|
| + ClosureClassMap getMemberMap(MemberEntity member);
|
| + ClosureClassMap getLocalFunctionMap(Local localFunction);
|
| +}
|
| +
|
| +class ClosureTask extends CompilerTask implements ClosureClassMaps {
|
| Map<Element, ClosureClassMap> _closureMappingCache =
|
| <Element, ClosureClassMap>{};
|
| Compiler compiler;
|
| @@ -35,6 +40,14 @@ class ClosureTask extends CompilerTask {
|
|
|
| DiagnosticReporter get reporter => compiler.reporter;
|
|
|
| + ClosureClassMap getMemberMap(MemberElement member) {
|
| + return getClosureToClassMapping(member.resolvedAst);
|
| + }
|
| +
|
| + ClosureClassMap getLocalFunctionMap(LocalFunctionElement localFunction) {
|
| + return getClosureToClassMapping(localFunction.resolvedAst);
|
| + }
|
| +
|
| /// Returns the [ClosureClassMap] computed for [resolvedAst].
|
| ClosureClassMap getClosureToClassMapping(ResolvedAst resolvedAst) {
|
| return measure(() {
|
|
|