blob: ea1da5674c39e3d6649a369decd8e3cc030d7819 [file] [log] [blame]
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by b
// BSD-style license that can be found in the LICENSE file.
class Class<X> {}
extension type ExtensionType<X>(Object? foo) {}
extension type E1<X>(Class<Never> foo) implements Class<Function(X)> {} // Error.
extension type E2<X>(Class<Never> foo) implements Class<Function(Function(X))> {} // Ok.
extension type E3<X>(Class<Never> foo) implements Class<Function(Function(Function(X)))> {} // Error.
extension type E4<X>(Class<Never> foo) implements Class<X Function(X)> {} // Error.
extension type E5<X>(Class<Never> foo) implements Class<X Function(Function(X))> {} // Ok.
extension type E6<X>(Class<Never> foo) implements Class<X Function(Function(Function(X)))> {} // Error.
extension type E7<X>(Object? foo) implements ExtensionType<Function(X)> {} // Error.
extension type E8<X>(Object? foo) implements ExtensionType<Function(Function(X))> {} // Ok.
extension type E9<X>(Object? foo) implements ExtensionType<Function(Function(Function(X)))> {} // Error.
extension type E10<X>(Object? foo) implements ExtensionType<X Function(X)> {} // Error.
extension type E11<X>(Object? foo) implements ExtensionType<X Function(Function(X))> {} // Ok.
extension type E12<X>(Object? foo) implements ExtensionType<X Function(Function(Function(X)))> {} // Error.