| 654 | return pass(typeexpr) |
| 655 | } |
| 656 | function afterType(type, value) { |
| 657 | if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType) |
| 658 | if (value == "|" || type == "." || value == "&") return cont(typeexpr) |
| 659 | if (type == "[") return cont(typeexpr, expect("]"), afterType) |
| 660 | if (value == "extends" || value == "implements") { cx.marked = "keyword"; return cont(typeexpr) } |
| 661 | if (value == "?") return cont(typeexpr, expect(":"), typeexpr) |
| 662 | } |
| 663 | function maybeTypeArgs(_, value) { |
| 664 | if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType) |
| 665 | } |