line 5, column 1 of .: 'case' can't be used as an identifier because it's a keyword.
╷
5 │ case A:
│ ^^^^
╵
line 5, column 1 of .: Expected to find ';'.
╷
5 │ case A:
│ ^^^^
╵
line 5, column 1 of .: Expected a statement.
╷
5 │ case A:
│ ^^^^
╵
line 7, column 1 of .: A break statement can't be used outside of a loop or switch statement.
╷
7 │ break;
│ ^^^^^
╵
line 8, column 1 of .: 'default' can't be used as an identifier because it's a keyword.
╷
8 │ default:
│ ^^^^^^^
╵
line 8, column 1 of .: Expected to find ';'.
╷
8 │ default:
│ ^^^^^^^
╵
line 8, column 1 of .: Expected a statement.
╷
8 │ default:
│ ^^^^^^^
╵
line 8, column 8 of .: Expected an identifier.
╷
8 │ default:
│ ^
╵
line 8, column 8 of .: Unexpected text ';'.
╷
8 │ default:
│ ^
╵
line 10, column 1 of .: A break statement can't be used outside of a loop or switch statement.
╷
10 │ break;
i plan to generate code like this
bool validate(bean) { final type = bean.runtimeType; late final BeanChecker checker; switch (type) { case A: checker = AChecker(); break; default: checker = DefaultChecker(); break; } return checker.check(bean); }
and here is my generator Code:
Method((builder) { builder ..name = "validate" ..returns = Reference("bool") ..requiredParameters.add( Parameter( ((builder) { builder ..name = "bean" ..named = false; }), ), ) ..annotations.add(Reference("override")) ..body = Block.of([ declareFinal("type").assign(Reference("bean.runtimeType")).statement, declareFinal("checker", type: Reference("BeanChecker"), late: true).statement, Code("swicth(type)"), Code("{"), Code("case A:"), Reference("checker").assign(Reference("AChecker")).statement, Code("break;"), Code("default:"), Reference("checker").assign(Reference("DefaultChecker")).statement, Code("break;"), Code("}"), Reference("checker").returned.statement, ]); })
but i meet this error
line 5, column 1 of .: 'case' can't be used as an identifier because it's a keyword. ╷ 5 │ case A: │ ^^^^ ╵ line 5, column 1 of .: Expected to find ';'. ╷ 5 │ case A: │ ^^^^ ╵ line 5, column 1 of .: Expected a statement. ╷ 5 │ case A: │ ^^^^ ╵ line 7, column 1 of .: A break statement can't be used outside of a loop or switch statement. ╷ 7 │ break; │ ^^^^^ ╵ line 8, column 1 of .: 'default' can't be used as an identifier because it's a keyword. ╷ 8 │ default: │ ^^^^^^^ ╵ line 8, column 1 of .: Expected to find ';'. ╷ 8 │ default: │ ^^^^^^^ ╵ line 8, column 1 of .: Expected a statement. ╷ 8 │ default: │ ^^^^^^^ ╵ line 8, column 8 of .: Expected an identifier. ╷ 8 │ default: │ ^ ╵ line 8, column 8 of .: Unexpected text ';'. ╷ 8 │ default: │ ^ ╵ line 10, column 1 of .: A break statement can't be used outside of a loop or switch statement. ╷ 10 │ break;