| // 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. | |
| bool b = true; | |
| class C<X extends C<X, X>?, Y extends C<Y, Y>?> { | |
| X x; | |
| C(this.x); | |
| Object m(X x, Y y) { | |
| // UP(X extends C<X, X>?, Y extends C<Y, Y>?) == | |
| // C<Object, Object>?. | |
| var z = b ? x : y; | |
| if (z == null) throw 0; | |
| return z.x; // Error. | |
| } | |
| } | |
| main() {} |