(
&mut self,
function: &Gc<'gc, Function<'gc>>,
args_count: u8,
keyword_args_count: u8,
)
| 1612 | } |
| 1613 | |
| 1614 | fn check_args( |
| 1615 | &mut self, |
| 1616 | function: &Gc<'gc, Function<'gc>>, |
| 1617 | args_count: u8, |
| 1618 | keyword_args_count: u8, |
| 1619 | ) -> Result<Vec<Value<'gc>>, VmError> { |
| 1620 | let mut final_args = self.prepare_args(function, args_count, keyword_args_count)?; |
| 1621 | // Fill in default values and check required parameters |
| 1622 | for (name, param) in &function.params { |
| 1623 | let pos = param.position as usize; |
| 1624 | if final_args[pos].equals(&Value::Nil) { |
| 1625 | if pos < function.arity as usize && param.default_value.is_nil() { |
| 1626 | return Err( |
| 1627 | self.runtime_error(format!("Missing required argument '{}'.", name).into()) |
| 1628 | ); |
| 1629 | } |
| 1630 | final_args[pos] = param.default_value; |
| 1631 | } |
| 1632 | } |
| 1633 | Ok(final_args) |
| 1634 | } |
| 1635 | |
| 1636 | fn validate_args( |
| 1637 | &mut self, |
no test coverage detected