Fix array.pop()

This commit is contained in:
Laurenz 2023-02-05 17:47:33 +01:00
parent 93138e2d4b
commit 9a99beec94
3 changed files with 4 additions and 5 deletions

View File

@ -84,9 +84,8 @@ impl Array {
}
/// Remove the last value in the array.
pub fn pop(&mut self) -> StrResult<()> {
Arc::make_mut(&mut self.0).pop().ok_or_else(array_is_empty)?;
Ok(())
pub fn pop(&mut self) -> StrResult<Value> {
Arc::make_mut(&mut self.0).pop().ok_or_else(array_is_empty)
}
/// Insert a value at the specified index.

View File

@ -144,7 +144,7 @@ pub fn call_mut(
match value {
Value::Array(array) => match method {
"push" => array.push(args.expect("value")?),
"pop" => array.pop().at(span)?,
"pop" => output = array.pop().at(span)?,
"insert" => {
array.insert(args.expect("index")?, args.expect("value")?).at(span)?
}

View File

@ -100,7 +100,7 @@
// Test the `push` and `pop` methods.
#{
let tasks = (a: (1, 2, 3), b: (4, 5, 6))
tasks.at("a").pop()
test(tasks.at("a").pop(), 3)
tasks.b.push(7)
test(tasks.a, (1, 2))
test(tasks.at("b"), (4, 5, 6, 7))