blob: 406d27cbfa1fd263c2f4a6dcb9f3d83527fb1af8 [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 name of a setter is obtained by appending the string ‘=’
* to the identifier given in its signature. Hence, a setter name can never
* conflict with, override or be overridden by a getter or method.
* @description Checks that there is a compile-time error if a class has
* an explicitly defined abstract setter inherited from a superclass and
* an instance method with the same name.
* @compile-error
* @author iefremov
*/
abstract class A {
void set foo(var x);
}
abstract class C extends A {
factory C() {
return new D();
}
C.c() {}
foo(value) {}
}
class D extends C {
D():super.c();
void set foo(var x) {}
}
main() {
C c = new C();
c.foo(1);
c.foo = 1;
}