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

Unified Diff: runtime/vm/kernel_binary_flowgraph.cc

Issue 3004463002: [vm] Use strong mode types to calculate CompileType (Closed)
Patch Set: Address review comments 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
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..0d605996acf8d50ef73295748053cbc40773f6ea 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.raw() == interface_target->name());
}
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.raw() == interface_target->name());
}
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.raw() == interface_target->name());
}
instructions +=
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698