summaryrefslogtreecommitdiffstats
path: root/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08
diff options
context:
space:
mode:
Diffstat (limited to 'src/doc/book/listings/ch18-patterns-and-matching/listing-18-08')
-rw-r--r--src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/Cargo.lock6
-rw-r--r--src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/Cargo.toml6
-rw-r--r--src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/output.txt19
-rw-r--r--src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/src/main.rs6
4 files changed, 37 insertions, 0 deletions
diff --git a/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/Cargo.lock b/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/Cargo.lock
new file mode 100644
index 000000000..2b4fa2903
--- /dev/null
+++ b/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/Cargo.lock
@@ -0,0 +1,6 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "patterns"
+version = "0.1.0"
+
diff --git a/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/Cargo.toml b/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/Cargo.toml
new file mode 100644
index 000000000..82fe057bb
--- /dev/null
+++ b/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/Cargo.toml
@@ -0,0 +1,6 @@
+[package]
+name = "patterns"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
diff --git a/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/output.txt b/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/output.txt
new file mode 100644
index 000000000..72274d07c
--- /dev/null
+++ b/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/output.txt
@@ -0,0 +1,19 @@
+$ cargo run
+ Compiling patterns v0.1.0 (file:///projects/patterns)
+error[E0005]: refutable pattern in local binding: `None` not covered
+ --> src/main.rs:3:9
+ |
+3 | let Some(x) = some_option_value;
+ | ^^^^^^^ pattern `None` not covered
+ |
+ = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
+ = note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
+note: `Option<i32>` defined here
+ = note: the matched value is of type `Option<i32>`
+help: you might want to use `if let` to ignore the variant that isn't matched
+ |
+3 | let x = if let Some(x) = some_option_value { x } else { todo!() };
+ | ++++++++++ ++++++++++++++++++++++
+
+For more information about this error, try `rustc --explain E0005`.
+error: could not compile `patterns` due to previous error
diff --git a/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/src/main.rs b/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/src/main.rs
new file mode 100644
index 000000000..7baa02a49
--- /dev/null
+++ b/src/doc/book/listings/ch18-patterns-and-matching/listing-18-08/src/main.rs
@@ -0,0 +1,6 @@
+fn main() {
+ let some_option_value: Option<i32> = None;
+ // ANCHOR: here
+ let Some(x) = some_option_value;
+ // ANCHOR_END: here
+}