library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/issue46863.dart:5:36: Error: Method not found: 'bar'.
// final foo = [() => const [], () => bar()];
//                                    ^^^
//
// pkg/front_end/testcases/general/issue46863.dart:7:41: Error: 'Bar' isn't a type.
// final foo2 = [(dynamic x) => const [], (Bar x) => const []];
//                                         ^^^
//
// pkg/front_end/testcases/general/issue46863.dart:9:52: Error: 'Bar' isn't a type.
// final foo3 = [(List<dynamic> x) => const [], (List<Bar> x) => const []];
//                                                    ^^^
//
// pkg/front_end/testcases/general/issue46863.dart:11:60: Error: 'Bar' isn't a type.
// final foo4 = [(Function(dynamic) x) => const [], (Function(Bar) x) => const []];
//                                                            ^^^
//
import self as self;
import "dart:core" as core;

static final field core::List<() → invalid-type> foo = <() → invalid-type>[() → core::List<dynamic> => #C1, () → invalid-type => invalid-expression "pkg/front_end/testcases/general/issue46863.dart:5:36: Error: Method not found: 'bar'.
final foo = [() => const [], () => bar()];
                                   ^^^"];
static final field core::List<(invalid-type) → core::List<dynamic>> foo2 = <(invalid-type) → core::List<dynamic>>[(dynamic x) → core::List<dynamic> => #C1, (invalid-type x) → core::List<dynamic> => #C1];
static final field core::List<(core::List<dynamic>) → core::List<dynamic>> foo3 = <(core::List<dynamic>) → core::List<dynamic>>[(core::List<dynamic> x) → core::List<dynamic> => #C1, (core::List<invalid-type> x) → core::List<dynamic> => #C1];
static final field core::List<((invalid-type) → dynamic) → core::List<dynamic>> foo4 = <((invalid-type) → dynamic) → core::List<dynamic>>[((dynamic) → dynamic x) → core::List<dynamic> => #C1, ((invalid-type) → dynamic x) → core::List<dynamic> => #C1];
static method main() → dynamic {}

constants  {
  #C1 = <dynamic>[]
}
