Iterable takesNoArg() => throw '';
void returnVoid() {}
int returnInt() => 42;
dynamic returnDynamic() => [];
Object returnObject() => 0;
test() {}
main() {}
