library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/function_bad_use.dart:1:7: Error: 'Function' is a built-in identifier, could not used as a class name.
// class Function {}
//       ^^^^^^^^
//
// pkg/front_end/testcases/general/function_bad_use.dart:3:9: Error: 'Function' is a built-in identifier, could not used as a type identifier.
// class C<Function> {}
//         ^^^^^^^^
//
// pkg/front_end/testcases/general/function_bad_use.dart:5:9: Error: 'Function' is a built-in identifier, could not used as a type identifier.
// mixin M<Function> implements List<Function> {}
//         ^^^^^^^^
//
import self as self;
import "dart:core" as core;

class Function extends core::Object {
  synthetic constructor •() → self::Function
    ;
}
class C<Function extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::C<self::C::Function%>
    ;
}
abstract class M<Function extends core::Object? = dynamic> extends core::Object implements core::List<self::M::Function%> /*isMixinDeclaration*/  {
}
static method main() → dynamic
  ;
