// 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.

/// @description Regression test for the issue 34087 (Dartanalyzer does not throw
/// error when [Callable] function result is assigned to incorrect type).
/// Checks that compile error appears if [Callable] function result is assigned
/// to the variable of incorrect type.
/// @Issue 34087
/// @author iarkh@unipro.ru

class A<X> {}

class F {
  X? call<X extends A<X>>() => null;
}

main() {
  F testme = new F();              //# 01: compile-time error
  A<A>? a1 = testme();             //# 02: compile-time error
  A<A<A>>? a2 = testme();          //# 03: compile-time error
  A<A<A<A>>>? a3 = testme();       //# 04: compile-time error
  A<A<A<A<A>>>>? a4 = testme();    //# 05: compile-time error
  A<A<A<A<A<A>>>>>? a5 = testme(); //# 06: compile-time error
}
