File tree 2 files changed +11
-2
lines changed
2 files changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -104,7 +104,7 @@ pub(crate) fn convert_to_guarded_return(ctx: AssistCtx) -> Option<Assist> {
104
104
let then_branch =
105
105
make:: block_expr ( once ( make:: expr_stmt ( early_expression) . into ( ) ) , None ) ;
106
106
let cond = invert_boolean_expression ( cond_expr) ;
107
- let e = make:: expr_if ( cond, then_branch) ;
107
+ let e = make:: expr_if ( make :: condition ( cond, None ) , then_branch) ;
108
108
if_indent_level. increase_indent ( e)
109
109
} ;
110
110
replace ( new_expr. syntax ( ) , & then_block, & parent_block, & if_expr)
Original file line number Diff line number Diff line change @@ -108,7 +108,7 @@ pub fn expr_return() -> ast::Expr {
108
108
pub fn expr_match ( expr : ast:: Expr , match_arm_list : ast:: MatchArmList ) -> ast:: Expr {
109
109
expr_from_text ( & format ! ( "match {} {}" , expr, match_arm_list) )
110
110
}
111
- pub fn expr_if ( condition : ast:: Expr , then_branch : ast:: BlockExpr ) -> ast:: Expr {
111
+ pub fn expr_if ( condition : ast:: Condition , then_branch : ast:: BlockExpr ) -> ast:: Expr {
112
112
expr_from_text ( & format ! ( "if {} {}" , condition, then_branch) )
113
113
}
114
114
pub fn expr_prefix ( op : SyntaxKind , expr : ast:: Expr ) -> ast:: Expr {
@@ -123,6 +123,15 @@ pub fn try_expr_from_text(text: &str) -> Option<ast::Expr> {
123
123
try_ast_from_text ( & format ! ( "const C: () = {};" , text) )
124
124
}
125
125
126
+ pub fn condition ( expr : ast:: Expr , pattern : Option < ast:: Pat > ) -> ast:: Condition {
127
+ match pattern {
128
+ None => ast_from_text ( & format ! ( "const _: () = while {} {{}};" , expr) ) ,
129
+ Some ( pattern) => {
130
+ ast_from_text ( & format ! ( "const _: () = while {} = {} {{}};" , pattern, expr) )
131
+ }
132
+ }
133
+ }
134
+
126
135
pub fn bind_pat ( name : ast:: Name ) -> ast:: BindPat {
127
136
return from_text ( name. text ( ) ) ;
128
137
You can’t perform that action at this time.
0 commit comments