void test(int abstract) {}
void test([int abstract]) {}
void test([int abstract = 42]) {}
void test({int abstract}) {}
void test({int abstract: 42}) {}
void test({int abstract = 42}) {}

void test(int as) {}
void test([int as]) {}
void test([int as = 42]) {}
void test({int as}) {}
void test({int as: 42}) {}
void test({int as = 42}) {}

void test(int assert) {}
void test([int assert]) {}
void test([int assert = 42]) {}
void test({int assert}) {}
void test({int assert: 42}) {}
void test({int assert = 42}) {}

void test(int async) {}
void test([int async]) {}
void test([int async = 42]) {}
void test({int async}) {}
void test({int async: 42}) {}
void test({int async = 42}) {}

void test(int await) {}
void test([int await]) {}
void test([int await = 42]) {}
void test({int await}) {}
void test({int await: 42}) {}
void test({int await = 42}) {}

void test(int break) {}
void test([int break]) {}
void test([int break = 42]) {}
void test({int break}) {}
void test({int break: 42}) {}
void test({int break = 42}) {}

void test(int case) {}
void test([int case]) {}
void test([int case = 42]) {}
void test({int case}) {}
void test({int case: 42}) {}
void test({int case = 42}) {}

void test(int catch) {}
void test([int catch]) {}
void test([int catch = 42]) {}
void test({int catch}) {}
void test({int catch: 42}) {}
void test({int catch = 42}) {}

void test(int class) {}
void test([int class]) {}
void test([int class = 42]) {}
void test({int class}) {}
void test({int class: 42}) {}
void test({int class = 42}) {}

void test(int const) {}
void test([int const]) {}
void test([int const = 42]) {}
void test({int const}) {}
void test({int const: 42}) {}
void test({int const = 42}) {}

void test(int continue) {}
void test([int continue]) {}
void test([int continue = 42]) {}
void test({int continue}) {}
void test({int continue: 42}) {}
void test({int continue = 42}) {}

void test(int covariant) {}
void test([int covariant]) {}
void test([int covariant = 42]) {}
void test({int covariant}) {}
void test({int covariant: 42}) {}
void test({int covariant = 42}) {}

void test(int default) {}
void test([int default]) {}
void test([int default = 42]) {}
void test({int default}) {}
void test({int default: 42}) {}
void test({int default = 42}) {}

void test(int deferred) {}
void test([int deferred]) {}
void test([int deferred = 42]) {}
void test({int deferred}) {}
void test({int deferred: 42}) {}
void test({int deferred = 42}) {}

void test(int do) {}
void test([int do]) {}
void test([int do = 42]) {}
void test({int do}) {}
void test({int do: 42}) {}
void test({int do = 42}) {}

void test(int dynamic) {}
void test([int dynamic]) {}
void test([int dynamic = 42]) {}
void test({int dynamic}) {}
void test({int dynamic: 42}) {}
void test({int dynamic = 42}) {}

void test(int else) {}
void test([int else]) {}
void test([int else = 42]) {}
void test({int else}) {}
void test({int else: 42}) {}
void test({int else = 42}) {}

void test(int enum) {}
void test([int enum]) {}
void test([int enum = 42]) {}
void test({int enum}) {}
void test({int enum: 42}) {}
void test({int enum = 42}) {}

void test(int export) {}
void test([int export]) {}
void test([int export = 42]) {}
void test({int export}) {}
void test({int export: 42}) {}
void test({int export = 42}) {}

void test(int extends) {}
void test([int extends]) {}
void test([int extends = 42]) {}
void test({int extends}) {}
void test({int extends: 42}) {}
void test({int extends = 42}) {}

void test(int extension) {}
void test([int extension]) {}
void test([int extension = 42]) {}
void test({int extension}) {}
void test({int extension: 42}) {}
void test({int extension = 42}) {}

void test(int external) {}
void test([int external]) {}
void test([int external = 42]) {}
void test({int external}) {}
void test({int external: 42}) {}
void test({int external = 42}) {}

void test(int factory) {}
void test([int factory]) {}
void test([int factory = 42]) {}
void test({int factory}) {}
void test({int factory: 42}) {}
void test({int factory = 42}) {}

void test(int false) {}
void test([int false]) {}
void test([int false = 42]) {}
void test({int false}) {}
void test({int false: 42}) {}
void test({int false = 42}) {}

void test(int final) {}
void test([int final]) {}
void test([int final = 42]) {}
void test({int final}) {}
void test({int final: 42}) {}
void test({int final = 42}) {}

void test(int finally) {}
void test([int finally]) {}
void test([int finally = 42]) {}
void test({int finally}) {}
void test({int finally: 42}) {}
void test({int finally = 42}) {}

void test(int for) {}
void test([int for]) {}
void test([int for = 42]) {}
void test({int for}) {}
void test({int for: 42}) {}
void test({int for = 42}) {}

void test(int Function) {}
void test([int Function]) {}
void test([int Function = 42]) {}
void test({int Function}) {}
void test({int Function: 42}) {}
void test({int Function = 42}) {}

void test(int get) {}
void test([int get]) {}
void test([int get = 42]) {}
void test({int get}) {}
void test({int get: 42}) {}
void test({int get = 42}) {}

void test(int hide) {}
void test([int hide]) {}
void test([int hide = 42]) {}
void test({int hide}) {}
void test({int hide: 42}) {}
void test({int hide = 42}) {}

void test(int if) {}
void test([int if]) {}
void test([int if = 42]) {}
void test({int if}) {}
void test({int if: 42}) {}
void test({int if = 42}) {}

void test(int implements) {}
void test([int implements]) {}
void test([int implements = 42]) {}
void test({int implements}) {}
void test({int implements: 42}) {}
void test({int implements = 42}) {}

void test(int import) {}
void test([int import]) {}
void test([int import = 42]) {}
void test({int import}) {}
void test({int import: 42}) {}
void test({int import = 42}) {}

void test(int in) {}
void test([int in]) {}
void test([int in = 42]) {}
void test({int in}) {}
void test({int in: 42}) {}
void test({int in = 42}) {}

void test(int inout) {}
void test([int inout]) {}
void test([int inout = 42]) {}
void test({int inout}) {}
void test({int inout: 42}) {}
void test({int inout = 42}) {}

void test(int interface) {}
void test([int interface]) {}
void test([int interface = 42]) {}
void test({int interface}) {}
void test({int interface: 42}) {}
void test({int interface = 42}) {}

void test(int is) {}
void test([int is]) {}
void test([int is = 42]) {}
void test({int is}) {}
void test({int is: 42}) {}
void test({int is = 42}) {}

void test(int late) {}
void test([int late]) {}
void test([int late = 42]) {}
void test({int late}) {}
void test({int late: 42}) {}
void test({int late = 42}) {}

void test(int library) {}
void test([int library]) {}
void test([int library = 42]) {}
void test({int library}) {}
void test({int library: 42}) {}
void test({int library = 42}) {}

void test(int mixin) {}
void test([int mixin]) {}
void test([int mixin = 42]) {}
void test({int mixin}) {}
void test({int mixin: 42}) {}
void test({int mixin = 42}) {}

void test(int native) {}
void test([int native]) {}
void test([int native = 42]) {}
void test({int native}) {}
void test({int native: 42}) {}
void test({int native = 42}) {}

void test(int new) {}
void test([int new]) {}
void test([int new = 42]) {}
void test({int new}) {}
void test({int new: 42}) {}
void test({int new = 42}) {}

void test(int null) {}
void test([int null]) {}
void test([int null = 42]) {}
void test({int null}) {}
void test({int null: 42}) {}
void test({int null = 42}) {}

void test(int of) {}
void test([int of]) {}
void test([int of = 42]) {}
void test({int of}) {}
void test({int of: 42}) {}
void test({int of = 42}) {}

void test(int on) {}
void test([int on]) {}
void test([int on = 42]) {}
void test({int on}) {}
void test({int on: 42}) {}
void test({int on = 42}) {}

void test(int operator) {}
void test([int operator]) {}
void test([int operator = 42]) {}
void test({int operator}) {}
void test({int operator: 42}) {}
void test({int operator = 42}) {}

void test(int out) {}
void test([int out]) {}
void test([int out = 42]) {}
void test({int out}) {}
void test({int out: 42}) {}
void test({int out = 42}) {}

void test(int part) {}
void test([int part]) {}
void test([int part = 42]) {}
void test({int part}) {}
void test({int part: 42}) {}
void test({int part = 42}) {}

void test(int patch) {}
void test([int patch]) {}
void test([int patch = 42]) {}
void test({int patch}) {}
void test({int patch: 42}) {}
void test({int patch = 42}) {}

void test(int required) {}
void test([int required]) {}
void test([int required = 42]) {}
void test({int required}) {}
void test({int required: 42}) {}
void test({int required = 42}) {}

void test(int rethrow) {}
void test([int rethrow]) {}
void test([int rethrow = 42]) {}
void test({int rethrow}) {}
void test({int rethrow: 42}) {}
void test({int rethrow = 42}) {}

void test(int return) {}
void test([int return]) {}
void test([int return = 42]) {}
void test({int return}) {}
void test({int return: 42}) {}
void test({int return = 42}) {}

void test(int set) {}
void test([int set]) {}
void test([int set = 42]) {}
void test({int set}) {}
void test({int set: 42}) {}
void test({int set = 42}) {}

void test(int show) {}
void test([int show]) {}
void test([int show = 42]) {}
void test({int show}) {}
void test({int show: 42}) {}
void test({int show = 42}) {}

void test(int source) {}
void test([int source]) {}
void test([int source = 42]) {}
void test({int source}) {}
void test({int source: 42}) {}
void test({int source = 42}) {}

void test(int static) {}
void test([int static]) {}
void test([int static = 42]) {}
void test({int static}) {}
void test({int static: 42}) {}
void test({int static = 42}) {}

void test(int super) {}
void test([int super]) {}
void test([int super = 42]) {}
void test({int super}) {}
void test({int super: 42}) {}
void test({int super = 42}) {}

void test(int switch) {}
void test([int switch]) {}
void test([int switch = 42]) {}
void test({int switch}) {}
void test({int switch: 42}) {}
void test({int switch = 42}) {}

void test(int sync) {}
void test([int sync]) {}
void test([int sync = 42]) {}
void test({int sync}) {}
void test({int sync: 42}) {}
void test({int sync = 42}) {}

void test(int this) {}
void test([int this]) {}
void test([int this = 42]) {}
void test({int this}) {}
void test({int this: 42}) {}
void test({int this = 42}) {}

void test(int throw) {}
void test([int throw]) {}
void test([int throw = 42]) {}
void test({int throw}) {}
void test({int throw: 42}) {}
void test({int throw = 42}) {}

void test(int true) {}
void test([int true]) {}
void test([int true = 42]) {}
void test({int true}) {}
void test({int true: 42}) {}
void test({int true = 42}) {}

void test(int try) {}
void test([int try]) {}
void test([int try = 42]) {}
void test({int try}) {}
void test({int try: 42}) {}
void test({int try = 42}) {}

void test(int typedef) {}
void test([int typedef]) {}
void test([int typedef = 42]) {}
void test({int typedef}) {}
void test({int typedef: 42}) {}
void test({int typedef = 42}) {}

void test(int var) {}
void test([int var]) {}
void test([int var = 42]) {}
void test({int var}) {}
void test({int var: 42}) {}
void test({int var = 42}) {}

void test(int void) {}
void test([int void]) {}
void test([int void = 42]) {}
void test({int void}) {}
void test({int void: 42}) {}
void test({int void = 42}) {}

void test(int while) {}
void test([int while]) {}
void test([int while = 42]) {}
void test({int while}) {}
void test({int while: 42}) {}
void test({int while = 42}) {}

void test(int with) {}
void test([int with]) {}
void test([int with = 42]) {}
void test({int with}) {}
void test({int with: 42}) {}
void test({int with = 42}) {}

void test(int yield) {}
void test([int yield]) {}
void test([int yield = 42]) {}
void test({int yield}) {}
void test({int yield: 42}) {}
void test({int yield = 42}) {}
