Revert "cl-ast: Unify break, return, and unary expressions"

This reverts commit adb0fd229c.
This commit is contained in:
2024-07-30 22:31:39 -05:00
parent 5e7ba6de24
commit 388a69948e
8 changed files with 123 additions and 15 deletions

View File

@@ -398,6 +398,10 @@ pub enum ExprKind {
If(If),
/// A [For] expression: `for` Pattern `in` [`Expr`] [`Block`] [`Else`]?
For(For),
/// A [Break] expression: `break` [`Expr`]?
Break(Break),
/// A [Return] expression `return` [`Expr`]?
Return(Return),
/// A continue expression: `continue`
Continue,
}
@@ -478,8 +482,6 @@ pub enum UnaryKind {
Not,
/// A Loop expression: `loop` [`Block`]
Loop,
Break,
Return,
/// Unused
At,
/// Unused
@@ -598,3 +600,15 @@ pub struct For {
pub struct Else {
pub body: Option<Box<Expr>>,
}
/// A [Break] expression: `break` [`Expr`]?
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct Break {
pub body: Option<Box<Expr>>,
}
/// A [Return] expression `return` [`Expr`]?
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct Return {
pub body: Option<Box<Expr>>,
}