// Copyright (c) 2013, 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. library test.generic_function_typedef; import 'dart:mirrors'; import 'package:expect/expect.dart'; import 'generics_helper.dart'; class C { makeClosure1() { T closure1(T t) => t; return closure1; } makeClosure2() { enclosing() { T closure2(T t) => t; return closure2; } ; return enclosing(); } } main() { ClosureMirror closure1 = reflect(new C().makeClosure1()) as ClosureMirror; Expect.equals(reflectClass(String), closure1.function.returnType); Expect.equals(reflectClass(String), closure1.function.parameters[0].type); ClosureMirror closure2 = reflect(new C().makeClosure2()) as ClosureMirror; Expect.equals(reflectClass(String), closure2.function.returnType); Expect.equals(reflectClass(String), closure2.function.parameters[0].type); }