blob: be9d29c37cfd85add1433cd0cc5f464a7ae94552 [file] [log] [blame]
// Copyright (c) 2011, 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.
/// @assertion Otherwise, let Ti be the type parameters of G and let Bi be the
/// bound of Ti, i ∈ 1..n. T is malbounded iff either Si is malbounded or Si is
/// not a subtype of [S1, ..., Sn/T1, ..., Tn]Bi, i ∈ 1..n.
/// Note, that, it is a compile type error if a malbounded type is used in a type
/// test as specified in 19.2.
/// Any use of a malbounded type gives rise to a static warning.
/// @description Checks that it is a compile error if last type argument
/// violates the bound.
/// @author iefremov
class A<T extends String, S extends Object, U extends int> {}
main() {
A<String, List, double>? a;
// ^
// [analyzer] unspecified
// [cfe] unspecified
}