| Index: dart/sdk/lib/_internal/compiler/implementation/ssa/nodes.dart
|
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/ssa/nodes.dart b/dart/sdk/lib/_internal/compiler/implementation/ssa/nodes.dart
|
| index c72124e7fe92f54b838695329bb3fc37f6b2b1ff..8447cb87ef86b7e8c715d5665386ec3c81d08098 100644
|
| --- a/dart/sdk/lib/_internal/compiler/implementation/ssa/nodes.dart
|
| +++ b/dart/sdk/lib/_internal/compiler/implementation/ssa/nodes.dart
|
| @@ -67,6 +67,8 @@ abstract class HVisitor<R> {
|
| R visitTry(HTry node);
|
| R visitTypeConversion(HTypeConversion node);
|
| R visitTypeKnown(HTypeKnown node);
|
| + R visitFunctionType(HFunctionType node);
|
| + R visitReadTypeVariable(HReadTypeVariable node);
|
| }
|
|
|
| abstract class HGraphVisitor {
|
| @@ -346,6 +348,8 @@ class HBaseVisitor extends HGraphVisitor implements HVisitor {
|
| visitIs(HIs node) => visitInstruction(node);
|
| visitTypeConversion(HTypeConversion node) => visitCheck(node);
|
| visitTypeKnown(HTypeKnown node) => visitCheck(node);
|
| + visitFunctionType(HFunctionType node) => visitInstruction(node);
|
| + visitReadTypeVariable(HReadTypeVariable node) => visitInstruction(node);
|
| }
|
|
|
| class SubGraph {
|
| @@ -2717,8 +2721,6 @@ class HTryBlockInformation implements HStatementInformation {
|
| visitor.visitTryInfo(this);
|
| }
|
|
|
| -
|
| -
|
| class HSwitchBlockInformation implements HStatementInformation {
|
| final HExpressionInformation expression;
|
| final List<List<Constant>> matchExpressions;
|
| @@ -2742,3 +2744,32 @@ class HSwitchBlockInformation implements HStatementInformation {
|
| bool accept(HStatementInformationVisitor visitor) =>
|
| visitor.visitSwitchInfo(this);
|
| }
|
| +
|
| +class HReadTypeVariable extends HInstruction {
|
| + /// The type variable being read.
|
| + final TypeVariableType dartType;
|
| +
|
| + final bool hasReceiver;
|
| +
|
| + HReadTypeVariable(this.dartType, HInstruction receiver)
|
| + : hasReceiver = true,
|
| + super(<HInstruction>[receiver]);
|
| +
|
| + HReadTypeVariable.noReceiver(this.dartType, HInstruction typeArguments)
|
| + : hasReceiver = false,
|
| + super(<HInstruction>[typeArguments]);
|
| +
|
| + accept(HVisitor visitor) => visitor.visitReadTypeVariable(this);
|
| +}
|
| +
|
| +class HFunctionType extends HInstruction {
|
| + final FunctionType dartType;
|
| +
|
| + HFunctionType(List<HInstruction> typeVariables, this.dartType)
|
| + : super(typeVariables) {
|
| + /* Element */ sourceElement = null;
|
| + /* SourceFileLocation */ sourcePosition = null;
|
| + }
|
| +
|
| + accept(HVisitor visitor) => visitor.visitFunctionType(this);
|
| +}
|
|
|