Files
sdk/pkg/front_end/testcases/override_check_basic.dart
T
Paul Berry 879badb850 Implement method type override checking rules in front_end.
Test failures introduced by this change have been marked with issue #31616.

Change-Id: Iddbcedb972b5ad2cf12e3fe588bd38aec76816df
Reviewed-on: https://dart-review.googlesource.com/29742
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-04 22:46:26 +00:00

33 lines
766 B
Dart

// Copyright (c) 2017, 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.
/*@testedFeatures=error*/
class A {}
class B extends A {}
class C {
void f1(A x) {}
void f2([A x]) {}
void f3({A x}) {}
A f4() {}
}
class D extends C {
void f1(Object x) {} // Ok
void f2([Object x]) {} // Ok
void f3({Object x}) {} // Ok
B f4() {} // Ok
}
class E extends C {
void f1(B /*@error=OverrideTypeMismatchParameter*/ x) {}
void f2([B /*@error=OverrideTypeMismatchParameter*/ x]) {}
void f3({B /*@error=OverrideTypeMismatchParameter*/ x}) {}
Object /*@error=OverrideTypeMismatchReturnType*/ f4() {}
}
main() {}