Unable to find assoc type when using tuple create syntax Self::AssocType(...)
· Issue #120871 · rust-lang/rust (original) (raw)
I tried this code playground
struct MyValue; struct MyError(u32);
impl MyError { #[allow(dead_code)] fn new(n: u32) -> Self { Self(n) } }
impl std::str::FromStr for MyValue { type Err = MyError; fn from_str(_s: &str) -> Result<Self, Self::Err> { // -------- THIS DOES NOT COMPILE -------- Err(Self::Err(42))
// --------- THESE COMPILE FINE ----------
// Err(Self::Err { 0: 42 })
// Err(Self::Err::new(42))
// Err(MyError(42))
}
}
fn main() { assert!("x".parse::().is_err()); }
I expected to see this happen: it should compile
Instead, this happened:
error[E0599]: no associated item named `Err` found for struct `MyValue` in the current scope
--> src/main.rs:15:19
|
1 | struct MyValue;
| -------------- associated item `Err` not found for this struct
...
15 | Err(Self::Err(42))
| ^^^ associated item not found in `MyValue`
Meta
rustc --version --verbose
:
rustc 1.76.0 (07dca489a 2024-02-04)
binary: rustc
commit-hash: 07dca489ac2d933c78d3c5158e3f43beefeb02ce
commit-date: 2024-02-04
host: x86_64-unknown-linux-gnu
release: 1.76.0
LLVM version: 17.0.6
This might be related to #71054