Index: runtime/vm/flow_graph_builder.cc |
diff --git a/runtime/vm/flow_graph_builder.cc b/runtime/vm/flow_graph_builder.cc |
index 1d07093e5810947472f8e144ce40c890851e951f..38068a349f056738ca6a08d23d9dc666b3c1b787 100644 |
--- a/runtime/vm/flow_graph_builder.cc |
+++ b/runtime/vm/flow_graph_builder.cc |
@@ -1234,7 +1234,7 @@ void ValueGraphVisitor::VisitTypeNode(TypeNode* node) { |
} |
Value* function_type_arguments = NULL; |
if (type.IsInstantiated(kCurrentFunction)) { |
- // TODO(regis): function_type_arguments = BuildNullValue((token_pos); |
+ function_type_arguments = BuildNullValue(token_pos); |
} else { |
function_type_arguments = BuildFunctionTypeArguments(token_pos); |
} |
@@ -1463,7 +1463,7 @@ AssertAssignableInstr* EffectGraphVisitor::BuildAssertAssignable( |
instantiator_type_arguments = BuildInstantiatorTypeArguments(token_pos); |
} |
if (dst_type.IsInstantiated(kCurrentFunction)) { |
- // TODO(regis): function_type_arguments = BuildNullValue(token_pos); |
+ function_type_arguments = BuildNullValue(token_pos); |
} else { |
function_type_arguments = BuildFunctionTypeArguments(token_pos); |
} |
@@ -1532,13 +1532,13 @@ void EffectGraphVisitor::BuildTypeTest(ComparisonNode* node) { |
PushArgumentInstr* push_instantiator_type_args = |
PushInstantiatorTypeArguments(type, node->token_pos()); |
- // TODO(regis): PushArgumentInstr* push_function_type_args = |
- // PushFunctionTypeArguments(type, node->token_pos()); |
+ PushArgumentInstr* push_function_type_args = |
+ PushFunctionTypeArguments(type, node->token_pos()); |
ZoneGrowableArray<PushArgumentInstr*>* arguments = |
- new (Z) ZoneGrowableArray<PushArgumentInstr*>(3); |
+ new (Z) ZoneGrowableArray<PushArgumentInstr*>(4); |
arguments->Add(push_left); |
arguments->Add(push_instantiator_type_args); |
- // TODO(regis): arguments->Add(push_function_type_args); |
+ arguments->Add(push_function_type_args); |
Value* type_const = Bind(new (Z) ConstantInstr(type)); |
arguments->Add(PushArgument(type_const)); |
const intptr_t kNumArgsChecked = 1; |
@@ -1570,13 +1570,13 @@ void EffectGraphVisitor::BuildTypeCast(ComparisonNode* node) { |
PushArgumentInstr* push_left = PushArgument(for_value.value()); |
PushArgumentInstr* push_instantiator_type_args = |
PushInstantiatorTypeArguments(type, node->token_pos()); |
- // TODO(regis): PushArgumentInstr* push_function_type_args = |
- // PushFunctionTypeArguments(type, node->token_pos()); |
+ PushArgumentInstr* push_function_type_args = |
+ PushFunctionTypeArguments(type, node->token_pos()); |
ZoneGrowableArray<PushArgumentInstr*>* arguments = |
- new (Z) ZoneGrowableArray<PushArgumentInstr*>(3); |
+ new (Z) ZoneGrowableArray<PushArgumentInstr*>(4); |
arguments->Add(push_left); |
arguments->Add(push_instantiator_type_args); |
- // TODO(regis): arguments->Add(push_function_type_args); |
+ arguments->Add(push_function_type_args); |
Value* type_arg = Bind(new (Z) ConstantInstr(type)); |
arguments->Add(PushArgument(type_arg)); |
const intptr_t kNumArgsChecked = 1; |
@@ -2738,7 +2738,7 @@ Value* EffectGraphVisitor::BuildInstantiatedTypeArguments( |
} |
Value* function_type_args = NULL; |
if (type_arguments.IsInstantiated(kCurrentFunction)) { |
- // TODO(regis): function_type_args = BuildNullValue(token_pos); |
+ function_type_args = BuildNullValue(token_pos); |
} else { |
function_type_args = BuildFunctionTypeArguments(token_pos); |
} |
@@ -4140,9 +4140,8 @@ StaticCallInstr* EffectGraphVisitor::BuildThrowNoSuchMethodError( |
new (Z) ZoneGrowableArray<PushArgumentInstr*>(); |
// Object receiver, actually a class literal of the unresolved method's owner. |
AbstractType& type = Type::ZoneHandle( |
- Z, |
- Type::New(function_class, TypeArguments::Handle(Z, TypeArguments::null()), |
- token_pos, Heap::kOld)); |
+ Z, Type::New(function_class, Object::null_type_arguments(), token_pos, |
+ Heap::kOld)); |
type ^= ClassFinalizer::FinalizeType(function_class, type); |
Value* receiver_value = Bind(new (Z) ConstantInstr(type)); |
arguments->Add(PushArgument(receiver_value)); |