| OLD | NEW | 
|---|
| 1 // Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 import 'package:kernel/ast.dart' as ir; | 5 import 'package:kernel/ast.dart' as ir; | 
| 6 | 6 | 
| 7 import '../closure.dart'; | 7 import '../closure.dart'; | 
| 8 import '../common.dart'; | 8 import '../common.dart'; | 
| 9 import '../constants/values.dart'; | 9 import '../constants/values.dart'; | 
| 10 import '../common_elements.dart'; | 10 import '../common_elements.dart'; | 
| (...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 382 | 382 | 
| 383   /// Call to notify that [member] is no longer being inlined. | 383   /// Call to notify that [member] is no longer being inlined. | 
| 384   void leaveInlinedMember(covariant MemberEntity member); | 384   void leaveInlinedMember(covariant MemberEntity member); | 
| 385 | 385 | 
| 386   /// Returns the [Local] for [node]. If [isClosureCallMethod] is true, this | 386   /// Returns the [Local] for [node]. If [isClosureCallMethod] is true, this | 
| 387   /// gives the locals map permission to also look one scope higher within the | 387   /// gives the locals map permission to also look one scope higher within the | 
| 388   /// class for the corresponding local. This can happen in the case of free | 388   /// class for the corresponding local. This can happen in the case of free | 
| 389   /// variables involved with a closure class. | 389   /// variables involved with a closure class. | 
| 390   // TODO(efortuna, johnniwinther): convey this information without a boolean | 390   // TODO(efortuna, johnniwinther): convey this information without a boolean | 
| 391   // parameter. | 391   // parameter. | 
| 392   Local getLocalVariable(ir.VariableDeclaration node, | 392   Local getLocalVariable(ir.VariableDeclaration node); | 
| 393       {bool isClosureCallMethod = false}); |  | 
| 394 | 393 | 
| 395   /// Returns the [Local] corresponding to the [node]. The node must be either | 394   /// Returns the [Local] corresponding to the [node]. The node must be either | 
| 396   /// a [ir.FunctionDeclaration] or [ir.FunctionExpression]. | 395   /// a [ir.FunctionDeclaration] or [ir.FunctionExpression]. | 
| 397   Local getLocalFunction(ir.TreeNode node); | 396   Local getLocalFunction(ir.TreeNode node); | 
| 398 | 397 | 
| 399   /// Returns the [JumpTarget] for the break statement [node]. | 398   /// Returns the [JumpTarget] for the break statement [node]. | 
| 400   JumpTarget getJumpTargetForBreak(ir.BreakStatement node); | 399   JumpTarget getJumpTargetForBreak(ir.BreakStatement node); | 
| 401 | 400 | 
| 402   /// Returns `true` if [node] should generate a `continue` to its [JumpTarget]. | 401   /// Returns `true` if [node] should generate a `continue` to its [JumpTarget]. | 
| 403   bool generateContinueForBreak(ir.BreakStatement node); | 402   bool generateContinueForBreak(ir.BreakStatement node); | 
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 462       uri = Uri.parse(node.location.file); | 461       uri = Uri.parse(node.location.file); | 
| 463       break; | 462       break; | 
| 464     } | 463     } | 
| 465     node = node.parent; | 464     node = node.parent; | 
| 466   } | 465   } | 
| 467   if (uri != null) { | 466   if (uri != null) { | 
| 468     return new SourceSpan(uri, offset, offset + 1); | 467     return new SourceSpan(uri, offset, offset + 1); | 
| 469   } | 468   } | 
| 470   return null; | 469   return null; | 
| 471 } | 470 } | 
| OLD | NEW | 
|---|