| /** | |
| h4. Pattern matching | |
| bq. See [Pattern matching] | |
| */ | |
| when | |
| : "when" ("(" (modifiers "val" SimpleName "=")? expression ")")? "{" | |
| whenEntry* | |
| "}" | |
| ; | |
| // TODO : consider empty after -> | |
| whenEntry | |
| : whenCondition{","} "->" expression SEMI | |
| : "else" "->" expression SEMI | |
| ; | |
| whenCondition | |
| : expression | |
| : ("in" | "!in") expression | |
| : ("is" | "!is") isRHS | |
| ; |