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 class Class {}
augment abstract class Class {}
augment class Class = Object with Mixin;
augment abstract class Class = Object with Mixin;
augment mixin Mixin {}
