Index: runtime/vm/parser.cc |
=================================================================== |
--- runtime/vm/parser.cc (revision 34798) |
+++ runtime/vm/parser.cc (working copy) |
@@ -9114,7 +9114,9 @@ |
// Check if an instance/static function exists. |
func = cls.LookupFunction(ident); |
if (!func.IsNull() && |
- (func.IsDynamicFunction() || func.IsStaticFunction())) { |
+ (func.IsDynamicFunction() || |
+ func.IsStaticFunction() || |
+ func.is_abstract())) { |
if (node != NULL) { |
*node = new PrimaryNode(ident_pos, |
Function::ZoneHandle(isolate(), func.raw())); |
@@ -9126,7 +9128,7 @@ |
// it is still a field. |
func = cls.LookupGetterFunction(ident); |
if (!func.IsNull()) { |
- if (func.IsDynamicFunction()) { |
+ if (func.IsDynamicFunction() || func.is_abstract()) { |
if (node != NULL) { |
CheckInstanceFieldAccess(ident_pos, ident); |
ASSERT(AbstractType::Handle(func.result_type()).IsResolved()); |
@@ -9156,7 +9158,7 @@ |
} |
func = cls.LookupSetterFunction(ident); |
if (!func.IsNull()) { |
- if (func.IsDynamicFunction()) { |
+ if (func.IsDynamicFunction() || func.is_abstract()) { |
if (node != NULL) { |
// We create a getter node even though a getter doesn't exist as |
// it could be followed by an assignment which will convert it to |