blob: 039476906e9f6907607b2668d403e77bd62ef429 [file] [log] [blame]
// 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=checks*/
library test;
typedef void F<T>(T t);
abstract class A<T> {
void f(T /*@covariance=genericImpl*/ x, int y);
}
class B<T> implements A<F<T>> {
void f(F<T> /*@covariance=genericImpl*/ x, int y) {}
}
abstract class I<T> implements A<F<T>> {
void f(F<T> /*@covariance=genericImpl*/ x, Object y);
}
class
/*@forwardingStub=abstract void f(covariance=(genericImpl) ((C::T) -> void) -> void x, covariance=() Object y)*/
C<T> extends B<F<T>> implements I<F<T>> {}
void main() {}