Index: lib/compiler/implementation/ssa/nodes.dart |
diff --git a/lib/compiler/implementation/ssa/nodes.dart b/lib/compiler/implementation/ssa/nodes.dart |
index b84ddb4dcd280e92c5810067b2ffa8633000041c..8fa7e885db7893922c3dda37dd4419ba8759171a 100644 |
--- a/lib/compiler/implementation/ssa/nodes.dart |
+++ b/lib/compiler/implementation/ssa/nodes.dart |
@@ -51,6 +51,7 @@ interface HVisitor<R> { |
R visitShiftRight(HShiftRight node); |
R visitStatic(HStatic node); |
R visitStaticStore(HStaticStore node); |
+ R visitStringConcat(HStringConcat node); |
R visitSubtract(HSubtract node); |
R visitThis(HThis node); |
R visitThrow(HThrow node); |
@@ -301,6 +302,7 @@ class HBaseVisitor extends HGraphVisitor implements HVisitor { |
visitSubtract(HSubtract node) => visitBinaryArithmetic(node); |
visitStatic(HStatic node) => visitInstruction(node); |
visitStaticStore(HStaticStore node) => visitInstruction(node); |
+ visitStringConcat(HStringConcat node) => visitInstruction(node); |
visitThis(HThis node) => visitParameterValue(node); |
visitThrow(HThrow node) => visitControlFlow(node); |
visitTry(HTry node) => visitControlFlow(node); |
@@ -2205,6 +2207,14 @@ class HTypeConversion extends HCheck { |
bool hasSideEffects() => checked; |
} |
+class HStringConcat extends HInstruction { |
+ HStringConcat(inputs) : super(inputs); |
+ HType get guaranteedType() => HType.STRING; |
+ |
+ accept(HVisitor visitor) => visitor.visitStringConcat(this); |
+ toString() => "string concat"; |
Lasse Reichstein Nielsen
2012/06/06 12:11:40
Should this class be allowed to have more than two
kasperl
2012/06/06 13:31:03
Changed the constructor to take exactly two argume
|
+} |
+ |
/** Non-block-based (aka. traditional) loop information. */ |
class HLoopInformation { |
final HBasicBlock header; |