void test(int abstract) {}
void test(int as) {}
void test(int assert) {}
void test(int async) {}
void test(int await) {}
void test(int break) {}
void test(int case) {}
void test(int catch) {}
void test(int class) {}
void test(int const) {}
void test(int continue) {}
void test(int covariant) {}
void test(int default) {}
void test(int deferred) {}
void test(int do) {}
void test(int dynamic) {}
void test(int else) {}
void test(int enum) {}
void test(int export) {}
void test(int extends) {}
void test(int extension) {}
void test(int external) {}
void test(int factory) {}
void test(int false) {}
void test(int final) {}
void test(int finally) {}
void test(int for) {}
void test(int Function) {}
void test(int get) {}
void test(int hide) {}
void test(int if) {}
void test(int implements) {}
void test(int import) {}
void test(int in) {}
void test(int inout) {}
void test(int interface) {}
void test(int is) {}
void test(int late) {}
void test(int library) {}
void test(int mixin) {}
void test(int native) {}
void test(int new) {}
void test(int null) {}
void test(int of) {}
void test(int on) {}
void test(int operator) {}
void test(int out) {}
void test(int part) {}
void test(int patch) {}
void test(int required) {}
void test(int rethrow) {}
void test(int return) {}
void test(int set) {}
void test(int show) {}
void test(int source) {}
void test(int static) {}
void test(int super) {}
void test(int switch) {}
void test(int sync) {}
void test(int this) {}
void test(int throw) {}
void test(int true) {}
void test(int try) {}
void test(int typedef) {}
void test(int var) {}
void test(int void) {}
void test(int while) {}
void test(int with) {}
void test(int yield) {}
