OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 interface HVisitor<R> { | 5 interface HVisitor<R> { |
6 R visitAdd(HAdd node); | 6 R visitAdd(HAdd node); |
7 R visitBitAnd(HBitAnd node); | 7 R visitBitAnd(HBitAnd node); |
8 R visitBitNot(HBitNot node); | 8 R visitBitNot(HBitNot node); |
9 R visitBitOr(HBitOr node); | 9 R visitBitOr(HBitOr node); |
10 R visitBitXor(HBitXor node); | 10 R visitBitXor(HBitXor node); |
(...skipping 2217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2228 } | 2228 } |
2229 | 2229 |
2230 HType get guaranteedType() => type; | 2230 HType get guaranteedType() => type; |
2231 | 2231 |
2232 accept(HVisitor visitor) => visitor.visitTypeConversion(this); | 2232 accept(HVisitor visitor) => visitor.visitTypeConversion(this); |
2233 | 2233 |
2234 bool hasSideEffects() => checked; | 2234 bool hasSideEffects() => checked; |
2235 } | 2235 } |
2236 | 2236 |
2237 class HStringConcat extends HInstruction { | 2237 class HStringConcat extends HInstruction { |
2238 HStringConcat(HInstruction left, HInstrunction right) | 2238 final Node node; |
| 2239 HStringConcat(HInstruction left, HInstruction right, this.node) |
2239 : super(<HInstruction>[left, right]); | 2240 : super(<HInstruction>[left, right]); |
2240 HType get guaranteedType() => HType.STRING; | 2241 HType get guaranteedType() => HType.STRING; |
2241 | 2242 |
2242 HInstruction get left() => inputs[0]; | 2243 HInstruction get left() => inputs[0]; |
2243 HInstruction get right() => inputs[1]; | 2244 HInstruction get right() => inputs[1]; |
2244 | 2245 |
2245 accept(HVisitor visitor) => visitor.visitStringConcat(this); | 2246 accept(HVisitor visitor) => visitor.visitStringConcat(this); |
2246 toString() => "string concat"; | 2247 toString() => "string concat"; |
2247 } | 2248 } |
2248 | 2249 |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2563 HBasicBlock get start() => expression.start; | 2564 HBasicBlock get start() => expression.start; |
2564 HBasicBlock get end() { | 2565 HBasicBlock get end() { |
2565 // We don't create a switch block if there are no cases. | 2566 // We don't create a switch block if there are no cases. |
2566 assert(!statements.isEmpty()); | 2567 assert(!statements.isEmpty()); |
2567 return statements.last().end; | 2568 return statements.last().end; |
2568 } | 2569 } |
2569 | 2570 |
2570 bool accept(HStatementInformationVisitor visitor) => | 2571 bool accept(HStatementInformationVisitor visitor) => |
2571 visitor.visitSwitchInfo(this); | 2572 visitor.visitSwitchInfo(this); |
2572 } | 2573 } |
OLD | NEW |