summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2025-01-08 00:13:43 +0000
committerJosh Stone <jistone@redhat.com>2025-02-06 09:53:26 -0800
commitf264675a806800e568df09eefd0b7efda80e961b (patch)
tree31a48a6a80e1e54f65fa003503558a2aeda727d7
parente98d52408c908d52bc3466d1b59d167a9463512a (diff)
downloadrust-f264675a806800e568df09eefd0b7efda80e961b.tar.gz
rust-f264675a806800e568df09eefd0b7efda80e961b.zip
modify test to side-step platform-dependent stderr output
(cherry picked from commit 592f2c90da6a6e1b25b3b9c2f13a2e0cfb83dcfc)
-rw-r--r--tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.rs5
-rw-r--r--tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.stderr40
2 files changed, 27 insertions, 18 deletions
diff --git a/tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.rs b/tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.rs
index c74c77fea60..17a5bad0e6c 100644
--- a/tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.rs
+++ b/tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.rs
@@ -1,7 +1,10 @@
 // Regression test for #135209.
 // We ensure that we don't try to access fields on a non-struct pattern type.
 fn main() {
-    if let Iterator::Item { .. } = 1 { //~ ERROR E0223
+    if let <Vec<()> as Iterator>::Item { .. } = 1 {
+        //~^ ERROR E0658
+        //~| ERROR E0071
+        //~| ERROR E0277
         x //~ ERROR E0425
     }
 }
diff --git a/tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.stderr b/tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.stderr
index e31b19ab6bc..793c2d1e97f 100644
--- a/tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.stderr
+++ b/tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.stderr
@@ -1,28 +1,34 @@
 error[E0425]: cannot find value `x` in this scope
-  --> $DIR/struct-pattern-on-non-struct-resolve-error.rs:5:9
+  --> $DIR/struct-pattern-on-non-struct-resolve-error.rs:8:9
    |
 LL |         x
    |         ^ not found in this scope
 
-error[E0223]: ambiguous associated type
+error[E0658]: usage of qualified paths in this context is experimental
   --> $DIR/struct-pattern-on-non-struct-resolve-error.rs:4:12
    |
-LL |     if let Iterator::Item { .. } = 1 {
-   |            ^^^^^^^^^^^^^^
+LL |     if let <Vec<()> as Iterator>::Item { .. } = 1 {
+   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
-help: use fully-qualified syntax
+   = note: see issue #86935 <https://github.com/rust-lang/rust/issues/86935> for more information
+   = help: add `#![feature(more_qualified_paths)]` to the crate attributes to enable
+   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+
+error[E0071]: expected struct, variant or union type, found inferred type
+  --> $DIR/struct-pattern-on-non-struct-resolve-error.rs:4:12
+   |
+LL |     if let <Vec<()> as Iterator>::Item { .. } = 1 {
+   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a struct
+
+error[E0277]: `Vec<()>` is not an iterator
+  --> $DIR/struct-pattern-on-non-struct-resolve-error.rs:4:12
+   |
+LL |     if let <Vec<()> as Iterator>::Item { .. } = 1 {
+   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Vec<()>` is not an iterator
    |
-LL |     if let <Ancestors<'_> as Iterator>::Item { .. } = 1 {
-   |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-LL |     if let <Args as Iterator>::Item { .. } = 1 {
-   |            ~~~~~~~~~~~~~~~~~~~~~~~~
-LL |     if let <ArgsOs as Iterator>::Item { .. } = 1 {
-   |            ~~~~~~~~~~~~~~~~~~~~~~~~~~
-LL |     if let <CharIndices<'_> as Iterator>::Item { .. } = 1 {
-   |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-     and 71 other candidates
+   = help: the trait `Iterator` is not implemented for `Vec<()>`
 
-error: aborting due to 2 previous errors
+error: aborting due to 4 previous errors
 
-Some errors have detailed explanations: E0223, E0425.
-For more information about an error, try `rustc --explain E0223`.
+Some errors have detailed explanations: E0071, E0277, E0425, E0658.
+For more information about an error, try `rustc --explain E0071`.