library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

static field (core::int) → core::int implicitInstantiation;
static const field (core::int) → core::int implicitConstInstantiation = self::id<core::int>;
static method id<T extends core::Object? = dynamic>(self::id::T% t) → self::id::T%
  ;
static method create<T extends core::Object? = dynamic>() → (self::create::T%) → self::create::T%
  ;
static method main() → dynamic
  ;
static method expect(dynamic expected, dynamic actual) → dynamic
  ;


Extra constant evaluation status:
Evaluated: Instantiation @ org-dartlang-testcase:///identical_instantiated_function_tearoffs.dart:17:54 -> InstantiationConstant(id<int*>)
Extra constant evaluation: evaluated: 1, effectively constant: 1
