about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAaron Hill <aa1ronham@gmail.com>2021-07-19 09:33:35 -0500
committerAaron Hill <aa1ronham@gmail.com>2021-07-19 17:23:10 -0500
commitf9f238e6b8fcfbe4ab8af2b48cebf597d47d308b (patch)
tree0e0041f6ea7ad7be8abe5e3554288de43826b2f8
parent8df945c4717ffaf923b57bf30c473df6fc98bc85 (diff)
downloadrust-f9f238e6b8fcfbe4ab8af2b48cebf597d47d308b.tar.gz
rust-f9f238e6b8fcfbe4ab8af2b48cebf597d47d308b.zip
Remove special case for `ExprKind::Paren` in `MutVisitor`
The special case breaks several useful invariants (`ExpnId`s are
globally unique, and never change). This special case
was added back in 2016 in https://github.com/rust-lang/rust/pull/34355
-rw-r--r--compiler/rustc_ast/src/mut_visit.rs6
-rw-r--r--src/test/ui/lint/issue-87274-paren-parent.rs9
-rw-r--r--src/test/ui/lint/issue-87274-paren-parent.stderr10
3 files changed, 19 insertions, 6 deletions
diff --git a/compiler/rustc_ast/src/mut_visit.rs b/compiler/rustc_ast/src/mut_visit.rs
index 296766f8019..87950b44083 100644
--- a/compiler/rustc_ast/src/mut_visit.rs
+++ b/compiler/rustc_ast/src/mut_visit.rs
@@ -1347,12 +1347,6 @@ pub fn noop_visit_expr<T: MutVisitor>(
         }
         ExprKind::Paren(expr) => {
             vis.visit_expr(expr);
-
-            // Nodes that are equal modulo `Paren` sugar no-ops should have the same IDs.
-            *id = expr.id;
-            vis.visit_span(span);
-            visit_thin_attrs(attrs, vis);
-            return;
         }
         ExprKind::Yield(expr) => {
             visit_opt(expr, |expr| vis.visit_expr(expr));
diff --git a/src/test/ui/lint/issue-87274-paren-parent.rs b/src/test/ui/lint/issue-87274-paren-parent.rs
new file mode 100644
index 00000000000..0141c5a252f
--- /dev/null
+++ b/src/test/ui/lint/issue-87274-paren-parent.rs
@@ -0,0 +1,9 @@
+// check-pass
+// Tests that we properly lint at 'paren' expressions
+
+fn foo() -> Result<(), String>  {
+    (try!(Ok::<u8, String>(1))); //~ WARN use of deprecated macro `try`
+    Ok(())
+}
+
+fn main() {}
diff --git a/src/test/ui/lint/issue-87274-paren-parent.stderr b/src/test/ui/lint/issue-87274-paren-parent.stderr
new file mode 100644
index 00000000000..f06024298bc
--- /dev/null
+++ b/src/test/ui/lint/issue-87274-paren-parent.stderr
@@ -0,0 +1,10 @@
+warning: use of deprecated macro `try`: use the `?` operator instead
+  --> $DIR/issue-87274-paren-parent.rs:5:6
+   |
+LL |     (try!(Ok::<u8, String>(1)));
+   |      ^^^
+   |
+   = note: `#[warn(deprecated)]` on by default
+
+warning: 1 warning emitted
+