Closed
Description
The following code doesn't compiles:
struct Website {
url: String,
title: Option<String>,
}
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<String>);
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
Metadata
Metadata
Assignees
Labels
Area: Messages for errors, warnings, and lintsArea: The lexing & parsing of Rust source code to an ASTCategory: An issue proposing an enhancement or a PR with one.Diagnostics: An error or lint that needs small tweaks.Diagnostics: Too much output caused by a single piece of incorrect code.Relevant to the compiler team, which will review and decide on the PR/issue.