Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Unified Diff: runtime/vm/flow_graph_builder.cc

Issue 2799373002: Pass a second type argument vector to all type instantiation calls in the VM. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..6afefb58597f77ba3fc2aa65771efc8eab6e2e5a 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);
}

Powered by Google App Engine
This is Rietveld 408576698