cl-ast: Remove "Continue" struct
This commit is contained in:
		| @@ -403,7 +403,7 @@ pub enum ExprKind { | |||||||
|     /// A [Return] expression `return` [`Expr`]? |     /// A [Return] expression `return` [`Expr`]? | ||||||
|     Return(Return), |     Return(Return), | ||||||
|     /// A continue expression: `continue` |     /// A continue expression: `continue` | ||||||
|     Continue(Continue), |     Continue, | ||||||
| } | } | ||||||
|  |  | ||||||
| /// An [Assign]ment expression: [`Expr`] ([`ModifyKind`] [`Expr`])\+ | /// An [Assign]ment expression: [`Expr`] ([`ModifyKind`] [`Expr`])\+ | ||||||
| @@ -612,7 +612,3 @@ pub struct Break { | |||||||
| pub struct Return { | pub struct Return { | ||||||
|     pub body: Option<Box<Expr>>, |     pub body: Option<Box<Expr>>, | ||||||
| } | } | ||||||
|  |  | ||||||
| /// A continue expression: `continue` |  | ||||||
| #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)] |  | ||||||
| pub struct Continue; |  | ||||||
|   | |||||||
| @@ -453,7 +453,7 @@ mod display { | |||||||
|                 ExprKind::For(v) => v.fmt(f), |                 ExprKind::For(v) => v.fmt(f), | ||||||
|                 ExprKind::Break(v) => v.fmt(f), |                 ExprKind::Break(v) => v.fmt(f), | ||||||
|                 ExprKind::Return(v) => v.fmt(f), |                 ExprKind::Return(v) => v.fmt(f), | ||||||
|                 ExprKind::Continue(_) => "continue".fmt(f), |                 ExprKind::Continue => "continue".fmt(f), | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -693,12 +693,6 @@ mod display { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     impl Display for Continue { |  | ||||||
|         fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { |  | ||||||
|             "continue".fmt(f) |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|  |  | ||||||
| mod convert { | mod convert { | ||||||
| @@ -784,7 +778,6 @@ mod convert { | |||||||
|             For => ExprKind::For, |             For => ExprKind::For, | ||||||
|             Break => ExprKind::Break, |             Break => ExprKind::Break, | ||||||
|             Return => ExprKind::Return, |             Return => ExprKind::Return, | ||||||
|             Continue => ExprKind::Continue, |  | ||||||
|         } |         } | ||||||
|         impl From for Literal { |         impl From for Literal { | ||||||
|             bool => Literal::Bool, |             bool => Literal::Bool, | ||||||
|   | |||||||
| @@ -376,10 +376,6 @@ pub trait Fold { | |||||||
|         let Return { body } = r; |         let Return { body } = r; | ||||||
|         Return { body: body.map(|e| Box::new(self.fold_expr(*e))) } |         Return { body: body.map(|e| Box::new(self.fold_expr(*e))) } | ||||||
|     } |     } | ||||||
|     fn fold_continue(&mut self, c: Continue) -> Continue { |  | ||||||
|         let Continue = c; |  | ||||||
|         Continue |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|  |  | ||||||
| #[inline] | #[inline] | ||||||
| @@ -553,7 +549,7 @@ pub fn or_fold_expr_kind<F: Fold + ?Sized>(folder: &mut F, kind: ExprKind) -> Ex | |||||||
|         ExprKind::For(f) => ExprKind::For(folder.fold_for(f)), |         ExprKind::For(f) => ExprKind::For(folder.fold_for(f)), | ||||||
|         ExprKind::Break(b) => ExprKind::Break(folder.fold_break(b)), |         ExprKind::Break(b) => ExprKind::Break(folder.fold_break(b)), | ||||||
|         ExprKind::Return(r) => ExprKind::Return(folder.fold_return(r)), |         ExprKind::Return(r) => ExprKind::Return(folder.fold_return(r)), | ||||||
|         ExprKind::Continue(c) => ExprKind::Continue(folder.fold_continue(c)), |         ExprKind::Continue => ExprKind::Continue, | ||||||
|     } |     } | ||||||
| } | } | ||||||
| pub fn or_fold_member_kind<F: Fold + ?Sized>(folder: &mut F, kind: MemberKind) -> MemberKind { | pub fn or_fold_member_kind<F: Fold + ?Sized>(folder: &mut F, kind: MemberKind) -> MemberKind { | ||||||
|   | |||||||
| @@ -334,9 +334,7 @@ pub trait Visit<'a>: Sized { | |||||||
|             self.visit_expr(body) |             self.visit_expr(body) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     fn visit_continue(&mut self, c: &'a Continue) { |     fn visit_continue(&mut self) {} | ||||||
|         let Continue = c; |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|  |  | ||||||
| pub fn or_visit_literal<'a, V: Visit<'a>>(visitor: &mut V, l: &'a Literal) { | pub fn or_visit_literal<'a, V: Visit<'a>>(visitor: &mut V, l: &'a Literal) { | ||||||
| @@ -477,7 +475,7 @@ pub fn or_visit_expr_kind<'a, V: Visit<'a>>(visitor: &mut V, e: &'a ExprKind) { | |||||||
|         ExprKind::For(f) => visitor.visit_for(f), |         ExprKind::For(f) => visitor.visit_for(f), | ||||||
|         ExprKind::Break(b) => visitor.visit_break(b), |         ExprKind::Break(b) => visitor.visit_break(b), | ||||||
|         ExprKind::Return(r) => visitor.visit_return(r), |         ExprKind::Return(r) => visitor.visit_return(r), | ||||||
|         ExprKind::Continue(c) => visitor.visit_continue(c), |         ExprKind::Continue => visitor.visit_continue(), | ||||||
|     } |     } | ||||||
| } | } | ||||||
| pub fn or_visit_member_kind<'a, V: Visit<'a>>(visitor: &mut V, kind: &'a MemberKind) { | pub fn or_visit_member_kind<'a, V: Visit<'a>>(visitor: &mut V, kind: &'a MemberKind) { | ||||||
|   | |||||||
| @@ -156,7 +156,7 @@ impl Interpret for ExprKind { | |||||||
|             ExprKind::For(v) => v.interpret(env), |             ExprKind::For(v) => v.interpret(env), | ||||||
|             ExprKind::Break(v) => v.interpret(env), |             ExprKind::Break(v) => v.interpret(env), | ||||||
|             ExprKind::Return(v) => v.interpret(env), |             ExprKind::Return(v) => v.interpret(env), | ||||||
|             ExprKind::Continue(v) => v.interpret(env), |             ExprKind::Continue => Err(Error::Continue), | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @@ -579,11 +579,6 @@ impl Interpret for Else { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
| impl Interpret for Continue { |  | ||||||
|     fn interpret(&self, _env: &mut Environment) -> IResult<ConValue> { |  | ||||||
|         Err(Error::Continue) |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| impl Interpret for Return { | impl Interpret for Return { | ||||||
|     fn interpret(&self, env: &mut Environment) -> IResult<ConValue> { |     fn interpret(&self, env: &mut Environment) -> IResult<ConValue> { | ||||||
|         let Self { body } = self; |         let Self { body } = self; | ||||||
|   | |||||||
| @@ -850,7 +850,7 @@ impl<'t> Parser<'t> { | |||||||
|             TokenKind::Return => ExprKind::Return(self.parse_return()?), |             TokenKind::Return => ExprKind::Return(self.parse_return()?), | ||||||
|             TokenKind::Continue => { |             TokenKind::Continue => { | ||||||
|                 self.consume_peeked(); |                 self.consume_peeked(); | ||||||
|                 Continue.into() |                 ExprKind::Continue | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             op => { |             op => { | ||||||
|   | |||||||
| @@ -411,7 +411,9 @@ pub mod yamlify { | |||||||
|                 ExprKind::For(k) => k.yaml(y), |                 ExprKind::For(k) => k.yaml(y), | ||||||
|                 ExprKind::Break(k) => k.yaml(y), |                 ExprKind::Break(k) => k.yaml(y), | ||||||
|                 ExprKind::Return(k) => k.yaml(y), |                 ExprKind::Return(k) => k.yaml(y), | ||||||
|                 ExprKind::Continue(k) => k.yaml(y), |                 ExprKind::Continue => { | ||||||
|  |                     y.key("Continue"); | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -579,11 +581,6 @@ pub mod yamlify { | |||||||
|             y.key("Return").yaml(body); |             y.key("Return").yaml(body); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     impl Yamlify for Continue { |  | ||||||
|         fn yaml(&self, y: &mut Yamler) { |  | ||||||
|             y.key("Continue"); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|     impl Yamlify for Literal { |     impl Yamlify for Literal { | ||||||
|         fn yaml(&self, y: &mut Yamler) { |         fn yaml(&self, y: &mut Yamler) { | ||||||
|             y.value(format_args!("\"{self}\"")); |             y.value(format_args!("\"{self}\"")); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user