Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: pkg/kernel/testcases/reify/generic_methods_recursive_bound_error_test.dart

Issue 2756693002: Add generic-methods 'golden' tests for 'reify' transformation (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 // Test that F-bounded quantification works for generic methods, and that types
6 // that are passed to generic methods in dynamic calls are checked for being
7 // recursively defined. An exception should be thrown if the type doesn't meet
8 // the expectation.
9
10 library generic_methods_recursive_bound_error_test;
11
12 import "test_base.dart";
13
14 abstract class I<T> {
15 bool fun(T x);
16 }
17
18 void foo<T extends I<T>>(List<T> a) {
19 if (a.length > 1) {
20 a[0].fun(a[1]);
21 }
22 }
23
24 class C implements I<C> {
25 bool fun(C c) => true;
26 }
27
28 main() {
29 dynamic bar = foo;
30 List<int> list = <int>[4, 2];
31 // The type int does not extend I<int>.
32 expectThrows(() => bar<int>(list), (e) => e is TypeError);
33 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698