1
Fork 0

modify test to side-step platform-dependent stderr output

This commit is contained in:
Esteban Küber 2025-01-08 00:13:43 +00:00
parent d44f021904
commit 592f2c90da
2 changed files with 27 additions and 18 deletions

View file

@ -1,7 +1,10 @@
// Regression test for #135209. // Regression test for #135209.
// We ensure that we don't try to access fields on a non-struct pattern type. // We ensure that we don't try to access fields on a non-struct pattern type.
fn main() { 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 x //~ ERROR E0425
} }
} }

View file

@ -1,28 +1,34 @@
error[E0425]: cannot find value `x` in this scope 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 LL | x
| ^ not found in this scope | ^ 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 --> $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 <Ancestors<'_> as Iterator>::Item { .. } = 1 { LL | if let <Vec<()> as Iterator>::Item { .. } = 1 {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a struct
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
error: aborting due to 2 previous errors 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
|
= help: the trait `Iterator` is not implemented for `Vec<()>`
Some errors have detailed explanations: E0223, E0425. error: aborting due to 4 previous errors
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`.