mirror of
https://github.com/nushell/nushell.git
synced 2025-08-11 11:14:51 +02:00
Revert "Pipeline operators: &&
and ||
" (#7452)
Reverts nushell/nushell#7448 Some surprising behavior in how we do this. For example: ``` 〉if (true || false) { print "yes!" } else { print "no!" } no! 〉if (true or false) { print "yes!" } else { print "no!" } yes! ``` This means for folks who are using the old `||`, they possibly get the wrong answer once they upgrade. I don't think we can ship with that as it will catch too many people by surprise and just make it easier to write buggy code.
This commit is contained in:
@ -14,6 +14,7 @@ pub enum Redirection {
|
||||
pub enum PipelineElement {
|
||||
Expression(Option<Span>, Expression),
|
||||
Redirection(Span, Redirection, Expression),
|
||||
And(Span, Expression),
|
||||
Or(Span, Expression),
|
||||
}
|
||||
|
||||
@ -22,8 +23,9 @@ impl PipelineElement {
|
||||
match self {
|
||||
PipelineElement::Expression(None, expression) => expression.span,
|
||||
PipelineElement::Expression(Some(span), expression)
|
||||
| PipelineElement::Or(span, expression)
|
||||
| PipelineElement::Redirection(span, _, expression) => Span {
|
||||
| PipelineElement::Redirection(span, _, expression)
|
||||
| PipelineElement::And(span, expression)
|
||||
| PipelineElement::Or(span, expression) => Span {
|
||||
start: span.start,
|
||||
end: expression.span.end,
|
||||
},
|
||||
@ -33,6 +35,7 @@ impl PipelineElement {
|
||||
match self {
|
||||
PipelineElement::Expression(_, expression)
|
||||
| PipelineElement::Redirection(_, _, expression)
|
||||
| PipelineElement::And(_, expression)
|
||||
| PipelineElement::Or(_, expression) => expression.has_in_variable(working_set),
|
||||
}
|
||||
}
|
||||
@ -40,8 +43,9 @@ impl PipelineElement {
|
||||
pub fn replace_in_variable(&mut self, working_set: &mut StateWorkingSet, new_var_id: VarId) {
|
||||
match self {
|
||||
PipelineElement::Expression(_, expression)
|
||||
| PipelineElement::Or(_, expression)
|
||||
| PipelineElement::Redirection(_, _, expression) => {
|
||||
| PipelineElement::Redirection(_, _, expression)
|
||||
| PipelineElement::And(_, expression)
|
||||
| PipelineElement::Or(_, expression) => {
|
||||
expression.replace_in_variable(working_set, new_var_id)
|
||||
}
|
||||
}
|
||||
@ -55,8 +59,9 @@ impl PipelineElement {
|
||||
) {
|
||||
match self {
|
||||
PipelineElement::Expression(_, expression)
|
||||
| PipelineElement::Or(_, expression)
|
||||
| PipelineElement::Redirection(_, _, expression) => {
|
||||
| PipelineElement::Redirection(_, _, expression)
|
||||
| PipelineElement::And(_, expression)
|
||||
| PipelineElement::Or(_, expression) => {
|
||||
expression.replace_span(working_set, replaced, new_span)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user