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

Unified Diff: runtime/vm/kernel_binary_flowgraph.cc

Issue 3004463002: [vm] Use strong mode types to calculate CompileType (Closed)
Patch Set: Created 3 years, 4 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/kernel_binary_flowgraph.cc
diff --git a/runtime/vm/kernel_binary_flowgraph.cc b/runtime/vm/kernel_binary_flowgraph.cc
index eb976d501057907c862ded382cf5c70f9c8cdba2..6555d39f321306f3fed79542957631d6bd25eb78 100644
--- a/runtime/vm/kernel_binary_flowgraph.cc
+++ b/runtime/vm/kernel_binary_flowgraph.cc
@@ -5311,6 +5311,7 @@ Fragment StreamingFlowGraphBuilder::BuildPropertyGet(TokenPosition* p) {
(H.IsGetter(itarget_name) || H.IsField(itarget_name))) {
interface_target = &Function::ZoneHandle(
Z, LookupMethodByMember(itarget_name, H.DartGetterName(itarget_name)));
+ ASSERT(getter_name.Equals(String::Handle(interface_target->name())));
rmacnak 2017/08/22 21:24:24 Stronger: They should both be symbols. ASSERT(name
alexmarkov 2017/08/22 22:53:11 Done.
}
const intptr_t kTypeArgsLen = 0;
@@ -5342,6 +5343,7 @@ Fragment StreamingFlowGraphBuilder::BuildPropertySet(TokenPosition* p) {
if (FLAG_experimental_strong_mode && !H.IsRoot(itarget_name)) {
interface_target = &Function::ZoneHandle(
Z, LookupMethodByMember(itarget_name, H.DartSetterName(itarget_name)));
+ ASSERT(setter_name.Equals(String::Handle(interface_target->name())));
rmacnak 2017/08/22 21:24:24 "
alexmarkov 2017/08/22 22:53:11 Done.
}
const intptr_t kTypeArgsLen = 0;
@@ -5573,10 +5575,12 @@ Fragment StreamingFlowGraphBuilder::BuildMethodInvocation(TokenPosition* p) {
const Function* interface_target = &Function::null_function();
NameIndex itarget_name =
ReadCanonicalNameReference(); // read interface_target_reference.
- if (FLAG_experimental_strong_mode && !H.IsRoot(itarget_name)) {
+ if (FLAG_experimental_strong_mode && !H.IsRoot(itarget_name) &&
+ !H.IsField(itarget_name)) {
interface_target = &Function::ZoneHandle(
Z,
LookupMethodByMember(itarget_name, H.DartProcedureName(itarget_name)));
+ ASSERT(name.Equals(String::Handle(interface_target->name())));
rmacnak 2017/08/22 21:24:24 "
alexmarkov 2017/08/22 22:53:11 Done.
}
instructions +=
« runtime/vm/flow_graph_type_propagator.cc ('K') | « runtime/vm/intermediate_language.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698