(&mut self)
| 411 | } |
| 412 | |
| 413 | pub(super) fn call_range(&mut self) { |
| 414 | let call_pos = self.last_end as u32; |
| 415 | self.advance(); |
| 416 | let mut argc = 0u16; |
| 417 | self.comma_list(|t| t == TokenType::Rpar, |s| { |
| 418 | // Allow `range(*args)`; UnpackArgs spreads the iterable at runtime. |
| 419 | if s.eat_if(TokenType::Star) { s.expr(); s.chunk.emit(OpCode::UnpackArgs, 1); } |
| 420 | else { s.expr(); } |
| 421 | argc = argc.saturating_add(1); |
| 422 | }); |
| 423 | self.eat(TokenType::Rpar); |
| 424 | self.chunk.emit(OpCode::CallRange, argc); |
| 425 | self.chunk.record_call_pos(call_pos); |
| 426 | } |
| 427 | |
| 428 | pub(super) fn parse_args(&mut self) -> (u16, u16) { |
| 429 | self.advance(); |
no test coverage detected