| Index: pkg/compiler/lib/src/kernel/element_map.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/element_map.dart b/pkg/compiler/lib/src/kernel/element_map.dart
|
| index 9bad04ee9de5a80a1acafda382e328c4b7ed90de..8f7cc42b88f635f3b24a4a7aec23a01e22ddb343 100644
|
| --- a/pkg/compiler/lib/src/kernel/element_map.dart
|
| +++ b/pkg/compiler/lib/src/kernel/element_map.dart
|
| @@ -244,6 +244,9 @@ abstract class MemberDefinition {
|
| enum ClassKind {
|
| regular,
|
| closure,
|
| + // TODO(efortuna, johnniwinther): Container is not a class, but is
|
| + // masquerading as one currently for consistency with the old element model.
|
| + container,
|
| }
|
|
|
| /// A member directly defined by its [ir.Member] node.
|
| @@ -383,8 +386,12 @@ abstract class KernelToLocalsMap {
|
| /// Call to notify that [member] is no longer being inlined.
|
| void leaveInlinedMember(covariant MemberEntity member);
|
|
|
| - /// Returns the [Local] for [node].
|
| - Local getLocalVariable(ir.VariableDeclaration node);
|
| + /// Returns the [Local] for [node]. If [isClosureCallMethod] is true, this
|
| + /// gives the locals map permission to also look one scope higher within the
|
| + /// class for the corresponding local. This can happen in the case of free
|
| + /// variables involved with a closure class.
|
| + Local getLocalVariable(ir.VariableDeclaration node,
|
| + {bool isClosureCallMethod = false});
|
|
|
| /// Returns the [Local] corresponding to the [node]. The node must be either
|
| /// a [ir.FunctionDeclaration] or [ir.FunctionExpression].
|
|
|