mirror of
https://github.com/RGBCube/serenity
synced 2025-07-23 05:07:34 +00:00
Shell: Allow non-exhaustive 'case' statements in POSIX
This commit is contained in:
parent
ef551a045d
commit
8a042cd9cb
2 changed files with 5 additions and 1 deletions
|
@ -2363,7 +2363,9 @@ ErrorOr<RefPtr<Value>> MatchExpr::run(RefPtr<Shell> shell)
|
||||||
return move(result).get<RefPtr<Value>>();
|
return move(result).get<RefPtr<Value>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
shell->raise_error(Shell::ShellError::EvaluatedSyntaxError, "Non-exhaustive match rules!", position());
|
// Non-exhaustive 'case' statements are valid in POSIX.
|
||||||
|
if (!shell || !shell->posix_mode())
|
||||||
|
shell->raise_error(Shell::ShellError::EvaluatedSyntaxError, "Non-exhaustive match rules!", position());
|
||||||
return make_ref_counted<AST::ListValue>({});
|
return make_ref_counted<AST::ListValue>({});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -308,6 +308,8 @@ public:
|
||||||
|
|
||||||
void notify_child_event();
|
void notify_child_event();
|
||||||
|
|
||||||
|
bool posix_mode() const { return m_in_posix_mode; }
|
||||||
|
|
||||||
struct termios termios;
|
struct termios termios;
|
||||||
struct termios default_termios;
|
struct termios default_termios;
|
||||||
bool was_interrupted { false };
|
bool was_interrupted { false };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue