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