| // Copyright (c) 2020, 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. |
| |
| class C { |
| int call() => 0; |
| } |
| |
| functionContext(int Function() f) {} |
| |
| nullableFunctionContext(int Function()? f) {} |
| |
| foo<T extends C?>(C? c, T t, T? nt) { |
| functionContext(null as C?); // Error. |
| nullableFunctionContext(null as C?); // Error. |
| functionContext(c); // Error. |
| nullableFunctionContext(c); // Error. |
| functionContext(t); // Error. |
| nullableFunctionContext(t); // Error. |
| functionContext(nt); // Error. |
| nullableFunctionContext(nt); // Error. |
| } |
| |
| bar<T extends C>(C c, T t) { |
| functionContext(c); // Shouldn't result in a compile-time error. |
| nullableFunctionContext(c); // Shouldn't result in a compile-time error. |
| functionContext(t); // Shouldn't result in a compile-time error. |
| nullableFunctionContext(t); // Shouldn't result in a compile-time error. |
| } |
| |
| main() {} |