| // Copyright (c) 2011, 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. |
| |
| /// @assertion The result of a lookup of method m in class C with respect to |
| /// library L is: If C declares a concrete instance method named m that is |
| /// accessible to L, then that method is the result of the lookup, and we say |
| /// that the method was looked up in c. Otherwise, if C has a superclass S, then |
| /// the result of the lookup is the result of looking up m in S with respect to |
| /// L. Otherwise, we say that the method lookup has failed. |
| /// @description Checks that if class C declares an abstract instance method |
| /// and has a superclass, then the result of lookup is the the result of |
| /// lookup in the superclass. |
| /// @author ilya |
| |
| import '../../../../Utils/expect.dart'; |
| |
| class S { |
| int m() => 1; |
| } |
| |
| class C extends S { |
| int m(); // static warning: abstract method in a concrete class |
| } |
| |
| main() { |
| var o = new C(); |
| Expect.equals(1, o.m()); |
| } |