about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCameron Steffen <cam.steffen94@gmail.com>2021-07-25 18:28:08 -0500
committerCameron Steffen <cam.steffen94@gmail.com>2021-08-30 20:18:41 -0500
commita603756cc5855c78fb261d18203128fb54f3c22a (patch)
tree7c2ebefd6ae56ed6e0f9ccee7ea6941a641c55f5
parent20ddab3defbba5b4b781b2b34db37c7eb082fa47 (diff)
downloadrust-a603756cc5855c78fb261d18203128fb54f3c22a.tar.gz
rust-a603756cc5855c78fb261d18203128fb54f3c22a.zip
Temporary fix rustfmt for let-else
-rw-r--r--src/items.rs9
-rw-r--r--tests/source/let_else.rs3
-rw-r--r--tests/target/let_else.rs3
3 files changed, 11 insertions, 4 deletions
diff --git a/src/items.rs b/src/items.rs
index 0542358c6e7..2483d0570d9 100644
--- a/src/items.rs
+++ b/src/items.rs
@@ -48,7 +48,7 @@ impl Rewrite for ast::Local {
 
         skip_out_of_file_lines_range!(context, self.span);
 
-        if contains_skip(&self.attrs) {
+        if contains_skip(&self.attrs) || matches!(self.kind, ast::LocalKind::InitElse(..)) {
             return None;
         }
 
@@ -97,7 +97,7 @@ impl Rewrite for ast::Local {
                 infix.push_str(&rewrite);
             }
 
-            if self.init.is_some() {
+            if self.kind.init().is_some() {
                 infix.push_str(" =");
             }
 
@@ -106,11 +106,12 @@ impl Rewrite for ast::Local {
 
         result.push_str(&infix);
 
-        if let Some(ref ex) = self.init {
+        if let Some((init, _els)) = self.kind.init_else_opt() {
             // 1 = trailing semicolon;
             let nested_shape = shape.sub_width(1)?;
 
-            result = rewrite_assign_rhs(context, result, &**ex, nested_shape)?;
+            result = rewrite_assign_rhs(context, result, init, nested_shape)?;
+            // todo else
         }
 
         result.push(';');
diff --git a/tests/source/let_else.rs b/tests/source/let_else.rs
new file mode 100644
index 00000000000..a6e816fb524
--- /dev/null
+++ b/tests/source/let_else.rs
@@ -0,0 +1,3 @@
+fn main() {
+    let Some(1) = Some(1) else { return };
+}
diff --git a/tests/target/let_else.rs b/tests/target/let_else.rs
new file mode 100644
index 00000000000..a6e816fb524
--- /dev/null
+++ b/tests/target/let_else.rs
@@ -0,0 +1,3 @@
+fn main() {
+    let Some(1) = Some(1) else { return };
+}