Lines Matching refs:expr
5 //! 3. Print each expr to a string of source code.
119 for expr in exprs {
120 let source_code = expr.to_token_stream().to_string();
133 syn_parenthesize(expr.clone()).to_token_stream().to_string();
158 let expr_invisible = make_parens_invisible(expr);
208 fn contains_let_chain(expr: &Expr) -> bool {
209 match &expr.kind {
221 noop_visit_expr(&mut f.expr, vis);
223 vis.visit_expr(&mut f.expr);
249 ExprKind::Struct(expr) => {
255 } = expr.deref_mut();
392 fn parenthesize(expr: Expr) -> Expr {
395 expr: Box::new(expr),
400 fn needs_paren(expr: &Expr) -> bool {
401 match expr {
404 Expr::Binary(_) => !contains_let_chain(expr),
409 fn contains_let_chain(expr: &Expr) -> bool {
410 match expr {
412 Expr::Binary(expr) => {
413 matches!(expr.op, BinOp::And(_))
414 && (contains_let_chain(&expr.left) || contains_let_chain(&expr.right))
421 fn fold_expr(&mut self, expr: Expr) -> Expr {
422 let needs_paren = needs_paren(&expr);
423 let folded = fold_expr(self, expr);
472 fn make_parens_invisible(expr: syn::Expr) -> syn::Expr {
479 fn fold_expr(&mut self, mut expr: Expr) -> Expr {
480 if let Expr::Paren(paren) = expr {
481 expr = Expr::Group(ExprGroup {
484 expr: paren.expr,
487 fold_expr(self, expr)
491 if let Stmt::Expr(expr @ (Expr::Binary(_) | Expr::Cast(_)), None) = stmt {
496 expr: Box::new(fold_expr(self, expr)),
507 folder.fold_expr(expr)
518 fn fold_expr(&mut self, expr: Expr) -> Expr {
519 match expr {
521 _ => self.0.push(expr),