OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library tree_ir_nodes; | 5 library tree_ir_nodes; |
6 | 6 |
7 import '../constants/values.dart' as values; | 7 import '../constants/values.dart' as values; |
8 import '../dart_types.dart' show DartType, InterfaceType, TypeVariableType; | 8 import '../dart_types.dart' show DartType, InterfaceType, TypeVariableType; |
9 import '../elements/elements.dart'; | 9 import '../elements/elements.dart'; |
10 import '../io/source_information.dart' show SourceInformation; | 10 import '../io/source_information.dart' show SourceInformation; |
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 | 647 |
648 accept(StatementVisitor visitor) => visitor.visitUnreachable(this); | 648 accept(StatementVisitor visitor) => visitor.visitUnreachable(this); |
649 accept1(StatementVisitor1 visitor, arg) { | 649 accept1(StatementVisitor1 visitor, arg) { |
650 return visitor.visitUnreachable(this, arg); | 650 return visitor.visitUnreachable(this, arg); |
651 } | 651 } |
652 } | 652 } |
653 | 653 |
654 class FunctionDefinition extends Node { | 654 class FunctionDefinition extends Node { |
655 final ExecutableElement element; | 655 final ExecutableElement element; |
656 final List<Variable> parameters; | 656 final List<Variable> parameters; |
| 657 final SourceInformation sourceInformation; |
657 Statement body; | 658 Statement body; |
658 | 659 |
659 /// Creates a function definition and updates `writeCount` for [parameters]. | 660 /// Creates a function definition and updates `writeCount` for [parameters]. |
660 FunctionDefinition(this.element, this.parameters, this.body) { | 661 FunctionDefinition( |
| 662 this.element, |
| 663 this.parameters, |
| 664 this.body, |
| 665 {this.sourceInformation}) { |
661 for (Variable param in parameters) { | 666 for (Variable param in parameters) { |
662 param.writeCount++; // Being a parameter counts as a write. | 667 param.writeCount++; // Being a parameter counts as a write. |
663 } | 668 } |
664 } | 669 } |
665 } | 670 } |
666 | 671 |
667 class CreateBox extends Expression { | 672 class CreateBox extends Expression { |
668 accept(ExpressionVisitor visitor) => visitor.visitCreateBox(this); | 673 accept(ExpressionVisitor visitor) => visitor.visitCreateBox(this); |
669 accept1(ExpressionVisitor1 visitor, arg) => visitor.visitCreateBox(this, arg); | 674 accept1(ExpressionVisitor1 visitor, arg) => visitor.visitCreateBox(this, arg); |
670 } | 675 } |
(...skipping 914 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1585 | 1590 |
1586 /// Number of uses of the current fallthrough target. | 1591 /// Number of uses of the current fallthrough target. |
1587 int get useCount => _stack.last.useCount; | 1592 int get useCount => _stack.last.useCount; |
1588 | 1593 |
1589 /// Indicate that a statement will fall through to the current fallthrough | 1594 /// Indicate that a statement will fall through to the current fallthrough |
1590 /// target. | 1595 /// target. |
1591 void use() { | 1596 void use() { |
1592 ++_stack.last.useCount; | 1597 ++_stack.last.useCount; |
1593 } | 1598 } |
1594 } | 1599 } |
OLD | NEW |