class Class {
  augment method() {}
  augment void method() {}
  augment get getter => null;
  augment int get getter => 0;
  augment set setter(value) {}
  augment void set setter(value) {}
  augment var field;
  augment final field = 0;
  augment const field = 0;
  augment int field;
  augment late var field;
  augment late final field;
  augment late int field;

  augment static method() {}
  augment static void method() {}
  augment static get getter => null;
  augment static int get getter => 0;
  augment static set setter(value) {}
  augment static void set setter(value) {}
  augment static var field;
  augment static final field = 0;
  augment static const field = 0;
  augment static int field;
  augment static late var field;
  augment static late final field;
  augment static late int field;
}

mixin Mixin {
  augment method() {}
  augment void method() {}
  augment get getter => null;
  augment int get getter => 0;
  augment set setter(value) {}
  augment void set setter(value) {}
  augment var field;
  augment final field = 0;
  augment const field = 0;
  augment int field;
  augment late var field;
  augment late final field;
  augment late int field;

  augment static method() {}
  augment static void method() {}
  augment static get getter => null;
  augment static int get getter => 0;
  augment static set setter(value) {}
  augment static void set setter(value) {}
  augment static var field;
  augment static final field = 0;
  augment static const field = 0;
  augment static int field;
  augment static late var field;
  augment static late final field;
  augment static late int field;
}

