MCPcopy Index your code
hub / github.com/aiscriptdev/aiscript / check_args

Method check_args

aiscript-vm/src/vm/state.rs:1614–1634  ·  view source on GitHub ↗
(
        &mut self,
        function: &Gc<'gc, Function<'gc>>,
        args_count: u8,
        keyword_args_count: u8,
    )

Source from the content-addressed store, hash-verified

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,

Callers 2

invokeMethod · 0.80
callMethod · 0.80

Calls 4

prepare_argsMethod · 0.80
is_nilMethod · 0.80
runtime_errorMethod · 0.80
equalsMethod · 0.45

Tested by

no test coverage detected