library;
import self as self;
import "dart:core" as core;

static const field dynamic #errors = const <dynamic>["pkg/front_end/testcases/illegal_named_function_expression.dart:6:16: Error: A function expression can't have a name.
  var x = void f<T>(T t) {};
               ^", "pkg/front_end/testcases/illegal_named_function_expression.dart:8:14: Error: A function expression can't have a name.
  print(void g<T>(T t) {});
             ^"]/* from null */;
static method main() → dynamic {
  <T extends core::Object = dynamic>(T) → core::Null x = let final <T extends core::Object = dynamic>(T) → core::Null f = <T extends core::Object = dynamic>(T t) → core::Null {} in f;
  core::print(x.{core::Object::runtimeType});
  core::print(let final <T extends core::Object = dynamic>(T) → core::Null g = <T extends core::Object = dynamic>(T t) → core::Null {} in g);
}
