mirror of
https://github.com/nushell/nushell.git
synced 2025-05-02 09:04:30 +02:00
Better for loop
This commit is contained in:
parent
b6f00d07e8
commit
083dcd4541
29
src/eval.rs
29
src/eval.rs
@ -235,31 +235,20 @@ fn eval_call(state: &State, stack: Stack, call: &Call) -> Result<Value, ShellErr
|
|||||||
|
|
||||||
let stack = StackFrame::enter_scope(stack);
|
let stack = StackFrame::enter_scope(stack);
|
||||||
|
|
||||||
StackFrame::add_var(
|
let mut x = Value::Int {
|
||||||
stack.clone(),
|
val: 0,
|
||||||
var_id,
|
span: Span::unknown(),
|
||||||
Value::Int {
|
};
|
||||||
val: 0,
|
|
||||||
span: Span::unknown(),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
let curr = StackFrame::get_var(stack.clone(), var_id)?;
|
if x == end_val {
|
||||||
|
|
||||||
if curr == end_val {
|
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
|
StackFrame::add_var(stack.clone(), var_id, x.clone());
|
||||||
eval_block(state, stack.clone(), block)?;
|
eval_block(state, stack.clone(), block)?;
|
||||||
|
}
|
||||||
StackFrame::add_var(
|
if let Value::Int { ref mut val, .. } = x {
|
||||||
stack.clone(),
|
*val += 1
|
||||||
var_id,
|
|
||||||
curr.add(&Value::Int {
|
|
||||||
val: 1,
|
|
||||||
span: Span::unknown(),
|
|
||||||
})?,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(Value::Unknown)
|
Ok(Value::Unknown)
|
||||||
|
Loading…
Reference in New Issue
Block a user