dart-sdk/tests/dartdevc_2/hot_restart_test.dart
Joshua Litt d14ab0779a [dartdevc] Migrate tests/compiler/dartdevc_native to tests/dartdevc_2.
Change-Id: I9c486f29f3bcf8a6ecf481eb25ea61d0468049b2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150667
Commit-Queue: Joshua Litt <joshualitt@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
2020-06-17 18:14:00 +00:00

45 lines
949 B
Dart

// Copyright (c) 2019, 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.
// @dart = 2.6
import 'package:expect/expect.dart';
import 'dart:_foreign_helper' show JS;
import 'dart:_runtime' as dart;
class Foo<T> {
Type type() => typeOf<Foo<T>>();
}
class Bar {}
Type typeOf<T>() => T;
Type fooOf<T>() => typeOf<Foo<T>>();
typedef funcType = Function(String);
void func(Object o) {}
void main() {
var f1 = Foo<Bar>();
var t1 = typeOf<Foo<Bar>>();
Expect.equals(f1.type(), t1);
var s1 = fooOf<Bar>();
Expect.equals(t1, s1);
Expect.isTrue(func is funcType);
dart.hotRestart();
var f2 = Foo<Bar>();
Expect.isTrue(f2 is Foo<Bar>);
var t2 = typeOf<Foo<Bar>>();
Expect.equals(f2.type(), t2);
var s2 = fooOf<Bar>();
Expect.equals(t2, s2);
Expect.isTrue(func is funcType);
}