about summary refs log tree commit diff
path: root/src/test/ui/inference
diff options
context:
space:
mode:
authorDylan DPC <dylan.dpc@gmail.com>2021-04-05 13:03:36 +0200
committerGitHub <noreply@github.com>2021-04-05 13:03:36 +0200
commit54ea8e1b82a67202e64f8aac1ed57bc7b987e508 (patch)
tree3a58fc584780565d66b1f88196aed568f651c358 /src/test/ui/inference
parent58e71896506edb701f276158bd2f47e8788a1133 (diff)
parent06b3636f4ed23c1ad0ed18ecc1408147ec862c1a (diff)
downloadrust-54ea8e1b82a67202e64f8aac1ed57bc7b987e508.tar.gz
rust-54ea8e1b82a67202e64f8aac1ed57bc7b987e508.zip
Rollup merge of #81922 - magurotuna:issue81522, r=matthewjasper
Let `#[allow(unstable_name_collisions)]` work for things other than function

Fixes #81522

In addition to the report in #81522, currently `#[allow(unstable_name_collisions)]` doesn't suppress the corresponding diagnostics even if this attribute is appended to an expression statement or a let statement. It seems like this is because the wrong `HirId` is passed to `struct_span_lint_hir`.
It's fixed in this PR, and a regression test for it is also added.
Diffstat (limited to 'src/test/ui/inference')
-rw-r--r--src/test/ui/inference/issue-81522.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/inference/issue-81522.rs b/src/test/ui/inference/issue-81522.rs
new file mode 100644
index 00000000000..902f8fdde58
--- /dev/null
+++ b/src/test/ui/inference/issue-81522.rs
@@ -0,0 +1,31 @@
+// Regression test for #81522.
+// Ensures that `#[allow(unstable_name_collisions)]` appended to things other than function
+// suppresses the corresponding diagnostics emitted from inside them.
+// But note that this attribute doesn't work for macro invocations if it is appended directly.
+
+// aux-build:inference_unstable_iterator.rs
+// aux-build:inference_unstable_itertools.rs
+// run-pass
+
+extern crate inference_unstable_iterator;
+extern crate inference_unstable_itertools;
+
+#[allow(unused_imports)]
+use inference_unstable_iterator::IpuIterator;
+use inference_unstable_itertools::IpuItertools;
+
+fn main() {
+    // expression statement
+    #[allow(unstable_name_collisions)]
+    'x'.ipu_flatten();
+
+    // let statement
+    #[allow(unstable_name_collisions)]
+    let _ = 'x'.ipu_flatten();
+
+    // block expression
+    #[allow(unstable_name_collisions)]
+    {
+        'x'.ipu_flatten();
+    }
+}