mirror of
https://github.com/nushell/nushell.git
synced 2025-04-11 23:08:20 +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);
|
||||
|
||||
StackFrame::add_var(
|
||||
stack.clone(),
|
||||
var_id,
|
||||
Value::Int {
|
||||
val: 0,
|
||||
span: Span::unknown(),
|
||||
},
|
||||
);
|
||||
let mut x = Value::Int {
|
||||
val: 0,
|
||||
span: Span::unknown(),
|
||||
};
|
||||
|
||||
loop {
|
||||
let curr = StackFrame::get_var(stack.clone(), var_id)?;
|
||||
|
||||
if curr == end_val {
|
||||
if x == end_val {
|
||||
break;
|
||||
} else {
|
||||
StackFrame::add_var(stack.clone(), var_id, x.clone());
|
||||
eval_block(state, stack.clone(), block)?;
|
||||
|
||||
StackFrame::add_var(
|
||||
stack.clone(),
|
||||
var_id,
|
||||
curr.add(&Value::Int {
|
||||
val: 1,
|
||||
span: Span::unknown(),
|
||||
})?,
|
||||
);
|
||||
}
|
||||
if let Value::Int { ref mut val, .. } = x {
|
||||
*val += 1
|
||||
}
|
||||
}
|
||||
Ok(Value::Unknown)
|
||||
|
Loading…
Reference in New Issue
Block a user