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

extension E on core::int {
  static field constField = self::E|constField;
  static field constField1 = self::E|constField1;
  static field constField2 = self::E|constField2;
  static method staticMethod = self::E|staticMethod;
  method instanceMethod = self::E|instanceMethod;
  tearoff instanceMethod = self::E|get#instanceMethod;
}
@self::E|constField
static const field core::int E|constField = 1;
@self::E|constField2
static const field core::int E|constField1 = 2;
@self::E|constField1
static const field core::int E|constField2 = 3;
@self::E|constField
static method E|staticMethod() → void
  ;
@self::E|constField
static method E|instanceMethod(lowered final core::int #this) → void
  ;
static method E|get#instanceMethod(lowered final core::int #this) → () → void
  return () → void => self::E|instanceMethod(#this);
static method main() → dynamic
  ;


Extra constant evaluation status:
Evaluated: StaticGet @ org-dartlang-testcase:///annotations_scope.dart:18:4 -> IntConstant(1)
Evaluated: StaticGet @ org-dartlang-testcase:///annotations_scope.dart:21:4 -> IntConstant(1)
Evaluated: StaticGet @ org-dartlang-testcase:///annotations_scope.dart:9:4 -> IntConstant(1)
Evaluated: StaticGet @ org-dartlang-testcase:///annotations_scope.dart:12:4 -> IntConstant(3)
Evaluated: StaticGet @ org-dartlang-testcase:///annotations_scope.dart:15:4 -> IntConstant(2)
Extra constant evaluation: evaluated: 8, effectively constant: 5
