| /* |
| * 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 |
| } |