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

Unified Diff: tests/language_strong/generic_function_bounds_test.dart

Issue 3008573002: Migrate test block 113 to Dart 2.0. (Closed)
Patch Set: Merge fixups Created 3 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: tests/language_strong/generic_function_bounds_test.dart
diff --git a/tests/language_strong/generic_function_bounds_test.dart b/tests/language_strong/generic_function_bounds_test.dart
deleted file mode 100644
index 18aa0e9fb1c7a814405147818ff8ec371efd70c4..0000000000000000000000000000000000000000
--- a/tests/language_strong/generic_function_bounds_test.dart
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (c) 2017, 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.
-
-import 'dart:math';
-import 'package:expect/expect.dart';
-
-void testInstantiateToBounds() {
- f<T extends num, U extends T>() => [T, U];
- g<T extends List<U>, U extends int>() => [T, U];
- h<T extends num, U extends T>(T x, U y) => h.runtimeType.toString();
-
- Expect.listEquals((f as dynamic)(), [num, num]);
- Expect.equals((g as dynamic)().join('|'), 'List<int>|int');
- Expect.equals((h as dynamic)(null, null),
- '<T extends num, U extends T>(T, U) -> String');
-
- i<T extends Iterable<T>>() => null;
- j<T extends Iterable<S>, S extends T>() => null;
- Expect.throws(
- () => (i as dynamic)(), (e) => '$e'.contains('Instantiate to bounds'));
- Expect.throws(
- () => (j as dynamic)(), (e) => '$e'.contains('Instantiate to bounds'));
-}
-
-void testChecksBound() {
- f<T extends num>(T x) => x;
- Expect.equals((f as dynamic)(42), 42);
- Expect.throws(() => (f as dynamic)('42'));
-
- msg(t1, t2, tf) => Expect.throws(() => (f as dynamic)<Object>(42),
- (e) => '$e' == 'type `Object` does not extend `num` of `T');
-
- g<T extends U, U extends num>(T x, U y) => x;
- Expect.equals((g as dynamic)(42.0, 100), 42.0);
- Expect.throws(() => (g as dynamic)('hi', 100));
- Expect.throws(() => (g as dynamic)<double, int>(42.0, 100),
- (e) => '$e' == 'type `double` does not extend `int` of `T`.');
-
- Expect.throws(() => (g as dynamic)<num, Object>(42.0, 100),
- (e) => '$e' == 'type `Object` does not extend `num` of `U`.');
-}
-
-typedef G<U> = T Function<T extends U>(T x);
-
-void testSubtype() {
- f<T extends num>(T x) => x + 2;
-
- dynamic d = f;
- Expect.equals(d(40.0), 42.0);
- Expect.equals((f as G<int>)(40), 42);
- Expect.equals((d as G<int>)(40), 42);
- Expect.equals((f as G<double>)(40.0), 42.0);
- Expect.equals((d as G<double>)(40.0), 42.0);
-
- d as G<Null>;
- Expect.throws(() => d as G);
- Expect.throws(() => d as G<Object>);
- Expect.throws(() => d as G<String>);
-}
-
-void testToString() {
- // TODO(jmesserly): I don't think the cast on `y` should be required.
- num f<T extends num, U extends T>(T x, U y) => min(x, y as num);
- num g<T, U>(T x, U y) => max(x as num, y as num);
- String h<T, U>(T x, U y) => h.runtimeType.toString();
- Expect.equals(
- f.runtimeType.toString(), '<T extends num, U extends T>(T, U) -> num');
- Expect.equals(g.runtimeType.toString(), '<T, U>(T, U) -> num');
- Expect.equals(h(42, 123.0), '<T, U>(T, U) -> String');
-}
-
-main() {
- testInstantiateToBounds();
- testToString();
- testChecksBound();
- testSubtype();
-}
« no previous file with comments | « tests/language_strong/generic_field_mixin_test.dart ('k') | tests/language_strong/generic_function_dcall_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698