blob: 60f83678dfe91066610f817e5d3587dac9fbd167 [file] [log] [blame]
// 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());
}