Error on struct pattern with enum · Issue #74863 · rust-lang/rust (original) (raw)
The following code doesn't compiles:
struct Website { url: String, title: Option, }
fn main() { let website = Website { url: "http://www.example.com".into(), title: Some("Example Domain".into()), };
if let Website { url, Some(title) } = website {
println!("[{}]({})", title, url);
}
}
The compile error:
error: expected ,
--> src/main.rs:14:27
|
14 | if let Website { url, Some(title) } = website {
| ^^^^
error[E0425]: cannot find value title
in this scope
--> src/main.rs:15:30
|
15 | println!("{}", title, url);
| ^^^^^ not found in this scope
error[E0423]: expected value, found crate url
--> src/main.rs:15:37
|
15 | println!("{}", title, url);
| ^^^ not a value
error: aborting due to 3 previous errors
If I use an tuple instead, the code compiles:
struct Website(String, Option);
fn main() { let website = Website( "http://www.example.com".into(), Some("Example Domain".into()), );
if let Website(url, Some(title)) = website {
println!("[{}]({})", title, url);
}
}
Meta
rustc --version --verbose
:
rustc 1.45.0 (5c1f21c3b 2020-07-13)
binary: rustc
commit-hash: 5c1f21c3b82297671ad3ae1e8c942d2ca92e84f2
commit-date: 2020-07-13
host: x86_64-unknown-linux-gnu
release: 1.45.0
LLVM version: 10.0