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