Skip to content

Commit

Permalink
modify test to side-step platform-dependent stderr output
Browse files Browse the repository at this point in the history
  • Loading branch information
estebank committed Jan 8, 2025
1 parent d44f021 commit 592f2c9
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -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
}
}
40 changes: 23 additions & 17 deletions tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.stderr
Original file line number Diff line number Diff line change
@@ -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`.

0 comments on commit 592f2c9

Please sign in to comment.