// Copyright (c) 2018, 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.

// @dart = 2.9

/// @description Regression test for the issue 33625 (No error when run dart
/// class with incorrect instantiation to bound for functions). Checks that
///    [typedef F<X> = X Function();
///    typedef G<X extends F> = X Function();]
/// does not throw a compile error (actually, it was an analyzer bug, see Issue
/// 33625 evaluation for more details).
/// @Issue 33625
/// @author iarkh@unipro.ru


typedef F<X> = X Function();
typedef G<X extends F> = X Function();
main() {}
