| // Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| abstract class A { |
| void foo1(Object x) {} |
| dynamic get foo2; |
| set foo3(int x); |
| } |
| |
| class B { |
| void bar1(Object arg) {} |
| dynamic get bar2 => null; |
| set bar3(int y) {} |
| int bar4; |
| } |
| |
| class C { |
| interfaceCalls(A aa, Object a2, Object a3, Object a4) { |
| aa.foo1(new B()); |
| aa.foo3 = aa.foo2; |
| a4 = aa.foo2(a2, a3, aa.foo1); |
| return a4; |
| } |
| |
| dynamicCalls(dynamic aa, Object a2, Object a3, Object a4) { |
| aa.foo1(new B()); |
| aa.foo3 = aa.foo2; |
| a4 = aa.foo2(a2, a3, aa.foo1); |
| return a4; |
| } |
| } |
| |
| class D extends B { |
| superCalls(Object a1, Object a2, Object a3, Object a4) { |
| super.bar1(a1); |
| super.bar3 = super.bar4; |
| a4 = super.bar2(a2, a3, super.bar1); |
| return a4; |
| } |
| } |
| |
| main() {} |