blob: 26ca03bcd63d37fdd47b49914b1213538143a18e [file] [log] [blame]
// 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 33701 (Dart does not throw error
* if function argument parameter extends [Null]).
*
* Finally, analyzer behavior was updated, so checks that function type
* parameter can extend [Null] with nnbd turned on.
*
* [X] can be [Never], so such function cannot return [null] and exception is
* thrown.
*
* @Issue 33701
* @author iarkh@unipro.ru
*/
void testme1<X extends Null>(X x) {}
X testme2<X extends Null>() => throw "Cannot do it";
X testme3<X extends Null>(X x) => throw "Cannot do it";
void testme4<X extends Null>() {}
main() {}