mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-24 15:54:15 +00:00
Auto merge of #131859 - chriskrycho:update-trpl, r=onur-ozkan
Update TRPL to add new Chapter 17: Async and Await - Add support to `rustbook` to pass through the `-L`/`--library-path` flag to `mdbook` so that references to the `trpl` crate - Build the `trpl` crate as part of the book tests. Make it straightforward to add other such book dependencies in the future if needed by implementing that in a fairly general way. - Update the submodule for the book to pull in the new chapter on async and await, as well as a number of other fixes. This will happen organically/automatically in a week, too, but this lets me group this change with the next one: - Update the compiler messages which reference the existing chapters 17–20, which are now chapters 18-21. There are only two, both previously referencing chapter 18. - Update the UI tests which reference the compiler message outputs.
This commit is contained in:
commit
e48241b5d1
@ -364,7 +364,7 @@ fn report_unexpected_variant_res(
|
||||
.with_code(err_code);
|
||||
match res {
|
||||
Res::Def(DefKind::Fn | DefKind::AssocFn, _) if err_code == E0164 => {
|
||||
let patterns_url = "https://doc.rust-lang.org/book/ch18-00-patterns.html";
|
||||
let patterns_url = "https://doc.rust-lang.org/book/ch19-00-patterns.html";
|
||||
err.with_span_label(span, "`fn` calls are not allowed in patterns")
|
||||
.with_help(format!("for more information, visit {patterns_url}"))
|
||||
}
|
||||
|
@ -213,7 +213,7 @@ mir_build_lower_range_bound_must_be_less_than_or_equal_to_upper =
|
||||
|
||||
mir_build_lower_range_bound_must_be_less_than_upper = lower range bound must be less than upper
|
||||
|
||||
mir_build_more_information = for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
|
||||
mir_build_more_information = for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
|
||||
mir_build_moved = value is moved into `{$name}` here
|
||||
|
||||
|
@ -827,7 +827,7 @@ parse_unexpected_expr_in_pat =
|
||||
}, found an expression
|
||||
|
||||
.label = not a pattern
|
||||
.note = arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
.note = arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
parse_unexpected_expr_in_pat_const_sugg = consider extracting the expression into a `const`
|
||||
|
||||
|
@ -1206,7 +1206,7 @@ impl<'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'_, 'ast, 'ra, 'tcx> {
|
||||
let PathSource::TupleStruct(_, _) = source else { return };
|
||||
let Some(Res::Def(DefKind::Fn, _)) = res else { return };
|
||||
err.primary_message("expected a pattern, found a function call");
|
||||
err.note("function calls are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>");
|
||||
err.note("function calls are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>");
|
||||
}
|
||||
|
||||
fn suggest_changing_type_to_const_param(
|
||||
|
@ -3,12 +3,14 @@
|
||||
//! `./x.py test` (aka [`Kind::Test`]) is currently allowed to reach build steps in other modules.
|
||||
//! However, this contains ~all test parts we expect people to be able to build and run locally.
|
||||
|
||||
use std::collections::HashSet;
|
||||
use std::ffi::{OsStr, OsString};
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::{env, fs, iter};
|
||||
|
||||
use clap_complete::shells;
|
||||
|
||||
use crate::core::build_steps::compile::run_cargo;
|
||||
use crate::core::build_steps::doc::DocumentationFormat;
|
||||
use crate::core::build_steps::synthetic_targets::MirOptPanicAbortSyntheticTarget;
|
||||
use crate::core::build_steps::tool::{self, SourceType, Tool};
|
||||
@ -2185,6 +2187,7 @@ struct BookTest {
|
||||
path: PathBuf,
|
||||
name: &'static str,
|
||||
is_ext_doc: bool,
|
||||
dependencies: Vec<&'static str>,
|
||||
}
|
||||
|
||||
impl Step for BookTest {
|
||||
@ -2237,6 +2240,57 @@ impl BookTest {
|
||||
// Books often have feature-gated example text.
|
||||
rustbook_cmd.env("RUSTC_BOOTSTRAP", "1");
|
||||
rustbook_cmd.env("PATH", new_path).arg("test").arg(path);
|
||||
|
||||
// Books may also need to build dependencies. For example, `TheBook` has
|
||||
// code samples which use the `trpl` crate. For the `rustdoc` invocation
|
||||
// to find them them successfully, they need to be built first and their
|
||||
// paths used to generate the
|
||||
let libs = if !self.dependencies.is_empty() {
|
||||
let mut lib_paths = vec![];
|
||||
for dep in self.dependencies {
|
||||
let mode = Mode::ToolRustc;
|
||||
let target = builder.config.build;
|
||||
let cargo = tool::prepare_tool_cargo(
|
||||
builder,
|
||||
compiler,
|
||||
mode,
|
||||
target,
|
||||
Kind::Build,
|
||||
dep,
|
||||
SourceType::Submodule,
|
||||
&[],
|
||||
);
|
||||
|
||||
let stamp = builder
|
||||
.cargo_out(compiler, mode, target)
|
||||
.join(PathBuf::from(dep).file_name().unwrap())
|
||||
.with_extension("stamp");
|
||||
|
||||
let output_paths = run_cargo(builder, cargo, vec![], &stamp, vec![], false, false);
|
||||
let directories = output_paths
|
||||
.into_iter()
|
||||
.filter_map(|p| p.parent().map(ToOwned::to_owned))
|
||||
.fold(HashSet::new(), |mut set, dir| {
|
||||
set.insert(dir);
|
||||
set
|
||||
});
|
||||
|
||||
lib_paths.extend(directories);
|
||||
}
|
||||
lib_paths
|
||||
} else {
|
||||
vec![]
|
||||
};
|
||||
|
||||
if !libs.is_empty() {
|
||||
let paths = libs
|
||||
.into_iter()
|
||||
.map(|path| path.into_os_string())
|
||||
.collect::<Vec<OsString>>()
|
||||
.join(OsStr::new(","));
|
||||
rustbook_cmd.args([OsString::from("--library-path"), paths]);
|
||||
}
|
||||
|
||||
builder.add_rust_test_threads(&mut rustbook_cmd);
|
||||
let _guard = builder.msg(
|
||||
Kind::Test,
|
||||
@ -2295,6 +2349,7 @@ macro_rules! test_book {
|
||||
$name:ident, $path:expr, $book_name:expr,
|
||||
default=$default:expr
|
||||
$(,submodules = $submodules:expr)?
|
||||
$(,dependencies=$dependencies:expr)?
|
||||
;
|
||||
)+) => {
|
||||
$(
|
||||
@ -2324,11 +2379,21 @@ macro_rules! test_book {
|
||||
builder.require_submodule(submodule, None);
|
||||
}
|
||||
)*
|
||||
|
||||
let dependencies = vec![];
|
||||
$(
|
||||
let mut dependencies = dependencies;
|
||||
for dep in $dependencies {
|
||||
dependencies.push(dep);
|
||||
}
|
||||
)?
|
||||
|
||||
builder.ensure(BookTest {
|
||||
compiler: self.compiler,
|
||||
path: PathBuf::from($path),
|
||||
name: $book_name,
|
||||
is_ext_doc: !$default,
|
||||
dependencies,
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -2343,7 +2408,7 @@ test_book!(
|
||||
RustcBook, "src/doc/rustc", "rustc", default=true;
|
||||
RustByExample, "src/doc/rust-by-example", "rust-by-example", default=false, submodules=["src/doc/rust-by-example"];
|
||||
EmbeddedBook, "src/doc/embedded-book", "embedded-book", default=false, submodules=["src/doc/embedded-book"];
|
||||
TheBook, "src/doc/book", "book", default=false, submodules=["src/doc/book"];
|
||||
TheBook, "src/doc/book", "book", default=false, submodules=["src/doc/book"], dependencies=["src/doc/book/packages/trpl"];
|
||||
UnstableBook, "src/doc/unstable-book", "unstable-book", default=true;
|
||||
EditionGuide, "src/doc/edition-guide", "edition-guide", default=false, submodules=["src/doc/edition-guide"];
|
||||
);
|
||||
|
@ -20,6 +20,7 @@ pub fn default_paths_to_vendor(builder: &Builder<'_>) -> Vec<(PathBuf, Vec<&'sta
|
||||
("src/tools/rustbook/Cargo.toml", SUBMODULES_FOR_RUSTBOOK.into()),
|
||||
("src/tools/rustc-perf/Cargo.toml", vec!["src/tools/rustc-perf"]),
|
||||
("src/tools/opt-dist/Cargo.toml", vec![]),
|
||||
("src/doc/book/packages/trpl/Cargo.toml", vec![]),
|
||||
]
|
||||
.into_iter()
|
||||
.map(|(path, submodules)| (builder.src.join(path), submodules))
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit f38ce8baef98cb20229e56f1be2d50e345f11792
|
||||
Subproject commit e16dd73690a6cc3ecdc5f5d94bbc3ce158a42e16
|
@ -12,7 +12,7 @@ env_logger = "0.11"
|
||||
mdbook-trpl-listing = { path = "../../doc/book/packages/mdbook-trpl-listing" }
|
||||
mdbook-trpl-note = { path = "../../doc/book/packages/mdbook-trpl-note" }
|
||||
mdbook-i18n-helpers = "0.3.3"
|
||||
mdbook-spec = { path = "../../doc/reference/mdbook-spec"}
|
||||
mdbook-spec = { path = "../../doc/reference/mdbook-spec" }
|
||||
|
||||
[dependencies.mdbook]
|
||||
version = "0.4.37"
|
||||
|
@ -31,6 +31,20 @@ fn main() {
|
||||
(Defaults to the current directory when omitted)")
|
||||
.value_parser(clap::value_parser!(PathBuf));
|
||||
|
||||
// Note: we don't parse this into a `PathBuf` because it is comma separated
|
||||
// strings *and* we will ultimately pass it into `MDBook::test()`, which
|
||||
// accepts `Vec<&str>`. Although it is a bit annoying that `-l/--lang` and
|
||||
// `-L/--library-path` are so close, this is the same set of arguments we
|
||||
// would pass when invoking mdbook on the CLI, so making them match when
|
||||
// invoking rustbook makes for good consistency.
|
||||
let library_path_arg = arg!(
|
||||
-L --"library-path" <PATHS>
|
||||
"A comma-separated list of directories to add to the crate search\n\
|
||||
path when building tests"
|
||||
)
|
||||
.required(false)
|
||||
.value_parser(parse_library_paths);
|
||||
|
||||
let matches = Command::new("rustbook")
|
||||
.about("Build a book with mdBook")
|
||||
.author("Steve Klabnik <steve@steveklabnik.com>")
|
||||
@ -48,11 +62,12 @@ fn main() {
|
||||
.subcommand(
|
||||
Command::new("test")
|
||||
.about("Tests that a book's Rust code samples compile")
|
||||
.arg(dir_arg),
|
||||
.arg(dir_arg)
|
||||
.arg(library_path_arg),
|
||||
)
|
||||
.get_matches();
|
||||
|
||||
// Check which subcomamnd the user ran...
|
||||
// Check which subcommand the user ran...
|
||||
match matches.subcommand() {
|
||||
Some(("build", sub_matches)) => {
|
||||
if let Err(e) = build(sub_matches) {
|
||||
@ -113,8 +128,12 @@ pub fn build(args: &ArgMatches) -> Result3<()> {
|
||||
|
||||
fn test(args: &ArgMatches) -> Result3<()> {
|
||||
let book_dir = get_book_dir(args);
|
||||
let library_paths = args
|
||||
.try_get_one::<Vec<String>>("library-path")?
|
||||
.map(|v| v.iter().map(|s| s.as_str()).collect::<Vec<&str>>())
|
||||
.unwrap_or_default();
|
||||
let mut book = load_book(&book_dir)?;
|
||||
book.test(vec![])
|
||||
book.test(library_paths)
|
||||
}
|
||||
|
||||
fn get_book_dir(args: &ArgMatches) -> PathBuf {
|
||||
@ -132,6 +151,10 @@ fn load_book(book_dir: &Path) -> Result3<MDBook> {
|
||||
Ok(book)
|
||||
}
|
||||
|
||||
fn parse_library_paths(input: &str) -> Result<Vec<String>, String> {
|
||||
Ok(input.split(",").map(String::from).collect())
|
||||
}
|
||||
|
||||
fn handle_error(error: mdbook::errors::Error) -> ! {
|
||||
eprintln!("Error: {}", error);
|
||||
|
||||
@ -139,5 +162,5 @@ fn handle_error(error: mdbook::errors::Error) -> ! {
|
||||
eprintln!("\tCaused By: {}", cause);
|
||||
}
|
||||
|
||||
::std::process::exit(101);
|
||||
std::process::exit(101);
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ LL | let 0 = v1;
|
||||
| ^ pattern `1_u32..=u32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `u32`
|
||||
help: you might want to use `if let` to ignore the variant that isn't matched
|
||||
|
|
||||
@ -23,7 +23,7 @@ LL | let (0 | 1) = v1;
|
||||
| ^^^^^ pattern `2_u32..=u32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `u32`
|
||||
help: you might want to use `if let` to ignore the variant that isn't matched
|
||||
|
|
||||
@ -37,7 +37,7 @@ LL | let 1.. = v1;
|
||||
| ^^^ pattern `0_u32` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `u32`
|
||||
help: you might want to use `if let` to ignore the variant that isn't matched
|
||||
|
|
||||
@ -51,7 +51,7 @@ LL | let [0, 0, 0, 0] = v2;
|
||||
| ^^^^^^^^^^^^ pattern `[1_u32..=u32::MAX, _, _, _]` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `[u32; 4]`
|
||||
help: you might want to use `if let` to ignore the variant that isn't matched
|
||||
|
|
||||
@ -65,7 +65,7 @@ LL | let [0] = v4;
|
||||
| ^^^ patterns `&[]` and `&[_, _, ..]` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `&[u32]`
|
||||
help: you might want to use `if let` to ignore the variants that aren't matched
|
||||
|
|
||||
@ -79,7 +79,7 @@ LL | let Refutable::A = v3;
|
||||
| ^^^^^^^^^^^^ pattern `Refutable::B` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `Refutable` defined here
|
||||
--> $DIR/bad-pattern.rs:4:6
|
||||
|
|
||||
@ -104,7 +104,7 @@ LL | let PAT = v1;
|
||||
| ^^^ pattern `1_u32..=u32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `u32`
|
||||
help: introduce a variable instead
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | A = { let 0 = 0; 0 },
|
||||
| ^ patterns `i32::MIN..=-1_i32` and `1_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: you might want to use `if let` to ignore the variants that aren't matched
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let x: [i32; { let 0 = 0; 0 }] = [];
|
||||
| ^ patterns `i32::MIN..=-1_i32` and `1_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: you might want to use `if let` to ignore the variants that aren't matched
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | const X: i32 = { let 0 = 0; 0 };
|
||||
| ^ patterns `i32::MIN..=-1_i32` and `1_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: you might want to use `if let` to ignore the variants that aren't matched
|
||||
|
|
||||
@ -23,7 +23,7 @@ LL | static Y: i32 = { let 0 = 0; 0 };
|
||||
| ^ patterns `i32::MIN..=-1_i32` and `1_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: you might want to use `if let` to ignore the variants that aren't matched
|
||||
|
|
||||
@ -41,7 +41,7 @@ LL | const X: i32 = { let 0 = 0; 0 };
|
||||
| ^ patterns `i32::MIN..=-1_i32` and `1_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: you might want to use `if let` to ignore the variants that aren't matched
|
||||
|
|
||||
@ -59,7 +59,7 @@ LL | const X: i32 = { let 0 = 0; 0 };
|
||||
| ^ patterns `i32::MIN..=-1_i32` and `1_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: you might want to use `if let` to ignore the variants that aren't matched
|
||||
|
|
||||
|
@ -8,7 +8,7 @@ LL | let a = 4;
|
||||
| ^ patterns `0_u8..=1_u8` and `3_u8..=u8::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `u8`
|
||||
help: introduce a variable instead
|
||||
|
|
||||
@ -25,7 +25,7 @@ LL | let c = 4;
|
||||
| ^ patterns `0_u8..=1_u8` and `3_u8..=u8::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `u8`
|
||||
help: introduce a variable instead
|
||||
|
|
||||
@ -42,7 +42,7 @@ LL | let d = (4, 4);
|
||||
| ^ patterns `(0_u8..=1_u8, _)` and `(3_u8..=u8::MAX, _)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `(u8, u8)`
|
||||
help: introduce a variable instead
|
||||
|
|
||||
@ -59,7 +59,7 @@ LL | let e = S {
|
||||
| ^ pattern `S { foo: 1_u8..=u8::MAX }` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `S` defined here
|
||||
--> $DIR/const-pattern-irrefutable.rs:15:8
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | None = Some(3);
|
||||
| ^^^^ pattern `Some(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= 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
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let Helper::U(u) = Helper::T(t, []);
|
||||
| ^^^^^^^^^^^^ pattern `Helper::T(_, _)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `Helper<T, U>` defined here
|
||||
--> $DIR/empty-never-array.rs:3:6
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let Some(y) = x;
|
||||
| ^^^^^^^ 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `Option<i32>`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let Ok(_x) = &foo();
|
||||
| ^^^^^^ pattern `&Err(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `&Result<u32, !>`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
|
@ -15,7 +15,7 @@ LL | let [a @ 3.., b @ ..3, c @ 4..6, ..] = xs;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pattern `[i32::MIN..=2_i32, ..]` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `[i32; 8]`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
|
@ -67,7 +67,7 @@ LL | mac!(0);
|
||||
| ------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
|
@ -94,7 +94,7 @@ LL | mac!(0);
|
||||
| ------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
@ -108,7 +108,7 @@ LL | mac!(0);
|
||||
| ------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
|
@ -4,7 +4,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | 0..5+1 => errors_only.push(x),
|
||||
| ^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = 5+1;
|
||||
|
@ -16,7 +16,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | 0..=(5+1) => errors_only.push(x),
|
||||
| ^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = 5+1;
|
||||
|
@ -15,7 +15,7 @@ LL | let [a @ 3.., b @ ..3, c @ 4..6, ..] = xs;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pattern `[i32::MIN..=2_i32, ..]` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `[i32; 8]`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
|
@ -4,7 +4,7 @@ error[E0164]: expected tuple struct or tuple variant, found associated function
|
||||
LL | let Path::new();
|
||||
| ^^^^^^^^^^^ `fn` calls are not allowed in patterns
|
||||
|
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch19-00-patterns.html
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -5,7 +5,7 @@ LL | let Some(x);
|
||||
| ^^^^^^^ 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `Option<i32>`
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
@ -21,7 +21,7 @@ LL | let Some(1) = loop {
|
||||
| ^^^^^^^ 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= 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
|
||||
|
|
||||
|
@ -4,7 +4,7 @@ error[E0164]: expected tuple struct or tuple variant, found associated function
|
||||
LL | Path::new("foo") => println!("foo"),
|
||||
| ^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
|
||||
|
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch19-00-patterns.html
|
||||
|
||||
error[E0164]: expected tuple struct or tuple variant, found associated function `Path::new`
|
||||
--> $DIR/match-fn-call.rs:8:9
|
||||
@ -12,7 +12,7 @@ error[E0164]: expected tuple struct or tuple variant, found associated function
|
||||
LL | Path::new("bar") => println!("bar"),
|
||||
| ^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns
|
||||
|
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch19-00-patterns.html
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -7,7 +7,7 @@ LL | let x: i32 = 3;
|
||||
| ^ patterns `i32::MIN..=3_i32` and `5_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: introduce a variable instead
|
||||
|
|
||||
@ -23,7 +23,7 @@ LL | let y = 4;
|
||||
| ^ patterns `i32::MIN..=2_i32` and `4_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: introduce a variable instead
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let Either::A(()) = foo();
|
||||
| ^^^^^^^^^^^^^ pattern `Either::B(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `Either<(), !>` defined here
|
||||
--> $DIR/exhaustive_patterns.rs:9:6
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let (0 | (1 | 2)) = 0;
|
||||
| ^^^^^^^^^^^ patterns `i32::MIN..=-1_i32` and `3_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: you might want to use `if let` to ignore the variants that aren't matched
|
||||
|
|
||||
|
@ -10,7 +10,7 @@ error: expected a pattern, found an expression
|
||||
LL | let x.y::<isize>.z foo;
|
||||
| ^^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: expected one of `(`, `.`, `::`, `:`, `;`, `=`, `?`, `|`, or an operator, found `foo`
|
||||
--> $DIR/bad-name.rs:2:22
|
||||
|
@ -4,7 +4,7 @@ error: expected a pattern, found an expression
|
||||
LL | let buf[0] = 0;
|
||||
| ^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -4,7 +4,7 @@ error: expected a pattern, found an expression
|
||||
LL | tmp[0] => {}
|
||||
| ^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == tmp[0] => {}
|
||||
|
@ -4,7 +4,7 @@ error: expected a pattern, found an expression
|
||||
LL | let v[0] = v[1];
|
||||
| ^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error[E0425]: cannot find value `v` in this scope
|
||||
--> $DIR/pat-lt-bracket-5.rs:2:16
|
||||
|
@ -4,7 +4,7 @@ error: expected a pattern, found an expression
|
||||
LL | let Test(&desc[..]) = x;
|
||||
| ^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/pat-lt-bracket-6.rs:10:30
|
||||
|
@ -4,7 +4,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | let 10 ..= 10 + 3 = 12;
|
||||
| ^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: expected a pattern range bound, found an expression
|
||||
--> $DIR/pat-ranges-3.rs:7:9
|
||||
@ -12,7 +12,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | let 10 - 3 ..= 10 = 8;
|
||||
| ^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -4,7 +4,7 @@ error: expected a pattern, found an expression
|
||||
LL | x.y => (),
|
||||
| ^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x.y => (),
|
||||
@ -27,7 +27,7 @@ error: expected a pattern, found an expression
|
||||
LL | x.0 => (),
|
||||
| ^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x.0 => (),
|
||||
@ -51,7 +51,7 @@ error: expected a pattern, found an expression
|
||||
LL | x._0 => (),
|
||||
| ^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x._0 => (),
|
||||
@ -76,7 +76,7 @@ error: expected a pattern, found an expression
|
||||
LL | x.0.1 => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x.0.1 => (),
|
||||
@ -101,7 +101,7 @@ error: expected a pattern, found an expression
|
||||
LL | x.4.y.17.__z => (),
|
||||
| ^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x.4.y.17.__z => (),
|
||||
@ -156,7 +156,7 @@ error: expected a pattern, found an expression
|
||||
LL | x[0] => (),
|
||||
| ^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x[0] => (),
|
||||
@ -178,7 +178,7 @@ error: expected a pattern, found an expression
|
||||
LL | x[..] => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x[..] => (),
|
||||
@ -228,7 +228,7 @@ error: expected a pattern, found an expression
|
||||
LL | x.f() => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x.f() => (),
|
||||
@ -250,7 +250,7 @@ error: expected a pattern, found an expression
|
||||
LL | x._f() => (),
|
||||
| ^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x._f() => (),
|
||||
@ -273,7 +273,7 @@ error: expected a pattern, found an expression
|
||||
LL | x? => (),
|
||||
| ^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x? => (),
|
||||
@ -297,7 +297,7 @@ error: expected a pattern, found an expression
|
||||
LL | ().f() => (),
|
||||
| ^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == ().f() => (),
|
||||
@ -322,7 +322,7 @@ error: expected a pattern, found an expression
|
||||
LL | (0, x)?.f() => (),
|
||||
| ^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == (0, x)?.f() => (),
|
||||
@ -347,7 +347,7 @@ error: expected a pattern, found an expression
|
||||
LL | x.f().g() => (),
|
||||
| ^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x.f().g() => (),
|
||||
@ -372,7 +372,7 @@ error: expected a pattern, found an expression
|
||||
LL | 0.f()?.g()?? => (),
|
||||
| ^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == 0.f()?.g()?? => (),
|
||||
@ -397,7 +397,7 @@ error: expected a pattern, found an expression
|
||||
LL | x as usize => (),
|
||||
| ^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x as usize => (),
|
||||
@ -419,7 +419,7 @@ error: expected a pattern, found an expression
|
||||
LL | 0 as usize => (),
|
||||
| ^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == 0 as usize => (),
|
||||
@ -442,7 +442,7 @@ error: expected a pattern, found an expression
|
||||
LL | x.f().0.4 as f32 => (),
|
||||
| ^^^^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == x.f().0.4 as f32 => (),
|
||||
@ -466,7 +466,7 @@ error: expected a pattern, found an expression
|
||||
LL | 1 + 1 => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == 1 + 1 => (),
|
||||
@ -488,7 +488,7 @@ error: expected a pattern, found an expression
|
||||
LL | (1 + 2) * 3 => (),
|
||||
| ^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == (1 + 2) * 3 => (),
|
||||
@ -511,7 +511,7 @@ error: expected a pattern, found an expression
|
||||
LL | x.0 > 2 => (),
|
||||
| ^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == (x.0 > 2) => (),
|
||||
@ -536,7 +536,7 @@ error: expected a pattern, found an expression
|
||||
LL | x.0 == 2 => (),
|
||||
| ^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == (x.0 == 2) => (),
|
||||
@ -561,7 +561,7 @@ error: expected a pattern, found an expression
|
||||
LL | (x, y.0 > 2) if x != 0 => (),
|
||||
| ^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to the match arm guard
|
||||
|
|
||||
LL | (x, val) if x != 0 && val == (y.0 > 2) => (),
|
||||
@ -583,7 +583,7 @@ error: expected a pattern, found an expression
|
||||
LL | (x, y.0 > 2) if x != 0 || x != 1 => (),
|
||||
| ^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to the match arm guard
|
||||
|
|
||||
LL | (x, val) if (x != 0 || x != 1) && val == (y.0 > 2) => (),
|
||||
@ -623,7 +623,7 @@ error: expected a pattern, found an expression
|
||||
LL | u8::MAX.abs() => (),
|
||||
| ^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == u8::MAX.abs() => (),
|
||||
@ -645,7 +645,7 @@ error: expected a pattern, found an expression
|
||||
LL | z @ w @ v.u() => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | z @ w @ val if val == v.u() => (),
|
||||
@ -670,7 +670,7 @@ error: expected a pattern, found an expression
|
||||
LL | y.ilog(3) => (),
|
||||
| ^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == y.ilog(3) => (),
|
||||
@ -695,7 +695,7 @@ error: expected a pattern, found an expression
|
||||
LL | n + 1 => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == n + 1 => (),
|
||||
@ -720,7 +720,7 @@ error: expected a pattern, found an expression
|
||||
LL | ("".f() + 14 * 8) => (),
|
||||
| ^^^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | (val) if val == "".f() + 14 * 8 => (),
|
||||
@ -745,7 +745,7 @@ error: expected a pattern, found an expression
|
||||
LL | f?() => (),
|
||||
| ^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | val if val == f?() => (),
|
||||
@ -770,7 +770,7 @@ error: expected a pattern, found an expression
|
||||
LL | let 1 + 1 = 2;
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: expected one of `)`, `,`, `@`, or `|`, found `*`
|
||||
--> $DIR/recover-pat-exprs.rs:104:28
|
||||
@ -787,7 +787,7 @@ error: expected a pattern, found an expression
|
||||
LL | (1 + 2) * 3 => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: expected a pattern, found an expression
|
||||
--> $DIR/recover-pat-exprs.rs:75:5
|
||||
@ -795,7 +795,7 @@ error: expected a pattern, found an expression
|
||||
LL | 1 + 2 * PI.cos() => 2,
|
||||
| ^^^^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: expected a pattern, found an expression
|
||||
--> $DIR/recover-pat-exprs.rs:83:9
|
||||
@ -803,7 +803,7 @@ error: expected a pattern, found an expression
|
||||
LL | x.sqrt() @ .. => (),
|
||||
| ^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: aborting due to 45 previous errors
|
||||
|
||||
|
@ -4,7 +4,7 @@ error: expected a pattern, found an expression
|
||||
LL | Foo("hi".to_owned()) => true,
|
||||
| ^^^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | Foo(val) if val == "hi".to_owned() => true,
|
||||
@ -26,7 +26,7 @@ error: expected a pattern, found an expression
|
||||
LL | Bar { baz: "hi".to_owned() } => true,
|
||||
| ^^^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | Bar { baz } if baz == "hi".to_owned() => true,
|
||||
@ -48,7 +48,7 @@ error: expected a pattern, found an expression
|
||||
LL | &["foo".to_string()] => {}
|
||||
| ^^^^^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider moving the expression to a match arm guard
|
||||
|
|
||||
LL | &[val] if val == "foo".to_string() => {}
|
||||
@ -70,7 +70,7 @@ error: expected a pattern, found an expression
|
||||
LL | if let Some(MAGIC.0 as usize) = None::<usize> {}
|
||||
| ^^^^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = MAGIC.0 as usize;
|
||||
@ -87,7 +87,7 @@ error: expected a pattern, found an expression
|
||||
LL | if let (-1.some(4)) = (0, Some(4)) {}
|
||||
| ^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = -1.some(4);
|
||||
@ -104,7 +104,7 @@ error: expected a pattern, found an expression
|
||||
LL | if let (-1.Some(4)) = (0, Some(4)) {}
|
||||
| ^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = -1.Some(4);
|
||||
|
@ -4,7 +4,7 @@ error: expected a pattern, found an expression
|
||||
LL | let x.expect("foo");
|
||||
| ^^^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: expected a pattern, found an expression
|
||||
--> $DIR/recover-pat-lets.rs:7:9
|
||||
@ -12,7 +12,7 @@ error: expected a pattern, found an expression
|
||||
LL | let x.unwrap(): u32;
|
||||
| ^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: expected a pattern, found an expression
|
||||
--> $DIR/recover-pat-lets.rs:10:9
|
||||
@ -20,7 +20,7 @@ error: expected a pattern, found an expression
|
||||
LL | let x[0] = 1;
|
||||
| ^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: expected a pattern, found an expression
|
||||
--> $DIR/recover-pat-lets.rs:13:14
|
||||
@ -28,7 +28,7 @@ error: expected a pattern, found an expression
|
||||
LL | let Some(1 + 1) = x else {
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = 1 + 1;
|
||||
@ -45,7 +45,7 @@ error: expected a pattern, found an expression
|
||||
LL | if let Some(1 + 1) = x {
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = 1 + 1;
|
||||
|
@ -88,7 +88,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | ..=1 + 2 => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = 1 + 2;
|
||||
@ -109,7 +109,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | (-4 + 0).. => (),
|
||||
| ^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = -4 + 0;
|
||||
@ -130,7 +130,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | (1 + 4)...1 * 2 => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = 1 + 4;
|
||||
@ -151,7 +151,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | (1 + 4)...1 * 2 => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = 1 * 2;
|
||||
@ -172,7 +172,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | 0.x()..="y".z() => (),
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = 0.x();
|
||||
@ -193,7 +193,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | 0.x()..="y".z() => (),
|
||||
| ^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = "y".z();
|
||||
|
@ -77,7 +77,7 @@ error: expected a pattern range bound, found an expression
|
||||
LL | 4..=(2 + _) => ()
|
||||
| ^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
help: consider extracting the expression into a `const`
|
||||
|
|
||||
LL + const VAL: /* Type */ = 2 + _;
|
||||
|
@ -613,7 +613,7 @@ LL | mac2!(0, 1);
|
||||
| ----------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac2` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
@ -627,7 +627,7 @@ LL | mac2!(0, 1);
|
||||
| ----------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac2` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
@ -641,7 +641,7 @@ LL | mac2!(0, 1);
|
||||
| ----------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac2` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
@ -655,7 +655,7 @@ LL | mac!(0);
|
||||
| ------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
@ -669,7 +669,7 @@ LL | mac!(0);
|
||||
| ------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
@ -683,7 +683,7 @@ LL | mac!(0);
|
||||
| ------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
@ -697,7 +697,7 @@ LL | mac!(0);
|
||||
| ------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
@ -711,7 +711,7 @@ LL | mac!(0);
|
||||
| ------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
@ -725,7 +725,7 @@ LL | mac!(0);
|
||||
| ------- in this macro invocation
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
|
@ -4,7 +4,7 @@ error[E0164]: expected tuple struct or tuple variant, found associated function
|
||||
LL | A::new() => (),
|
||||
| ^^^^^^^^ `fn` calls are not allowed in patterns
|
||||
|
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch18-00-patterns.html
|
||||
= help: for more information, visit https://doc.rust-lang.org/book/ch19-00-patterns.html
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -5,7 +5,7 @@ LL | let 5 = 6;
|
||||
| ^ patterns `i32::MIN..=4_i32` and `6_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: you might want to use `if let` to ignore the variants that aren't matched
|
||||
|
|
||||
@ -23,7 +23,7 @@ LL | let x @ 5 = 6;
|
||||
| ^ patterns `i32::MIN..=4_i32` and `6_i32..=i32::MAX` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: you might want to use `let else` to handle the variants that aren't matched
|
||||
|
|
||||
|
@ -87,7 +87,7 @@ LL | let UnitVariant = UnitVariant;
|
||||
| ^^^^^^^^^^^ patterns `E::TupleVariant` and `E::BracedVariant { }` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `E` defined here
|
||||
--> $DIR/pattern-binding-disambiguation.rs:5:6
|
||||
|
|
||||
|
@ -54,7 +54,7 @@ LL | let None = *x;
|
||||
| ^^^^ pattern `Some(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: pattern `Some(_)` is currently uninhabited, but this variant contains private fields which may become inhabited in the future
|
||||
= note: the matched value is of type `Option<SecretlyUninhabitedForeignStruct>`
|
||||
help: you might want to use `if let` to ignore the variant that isn't matched
|
||||
|
@ -54,7 +54,7 @@ LL | let None = *x;
|
||||
| ^^^^ pattern `Some(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: pattern `Some(_)` is currently uninhabited, but this variant contains private fields which may become inhabited in the future
|
||||
= note: the matched value is of type `Option<SecretlyUninhabitedForeignStruct>`
|
||||
help: you might want to use `if let` to ignore the variant that isn't matched
|
||||
|
@ -150,7 +150,7 @@ LL | let Ok(_x) = res_u32_never.as_ref();
|
||||
| ^^^^^^ pattern `Err(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `Result<&u32, &!>`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
|
@ -126,7 +126,7 @@ LL | let Ok(_x) = res_u32_never.as_ref();
|
||||
| ^^^^^^ pattern `Err(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `Result<&u32, &!>`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
@ -140,7 +140,7 @@ LL | let Ok(_x) = &res_u32_never;
|
||||
| ^^^^^^ pattern `&Err(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `&Result<u32, !>`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
|
@ -104,7 +104,7 @@ LL | let Ok(_x) = res_u32_never.as_ref();
|
||||
| ^^^^^^ pattern `Err(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `Result<&u32, &!>`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
@ -118,7 +118,7 @@ LL | let Ok(_x) = &res_u32_never;
|
||||
| ^^^^^^ pattern `&Err(!)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `&Result<u32, !>`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
@ -239,7 +239,7 @@ LL | let Ok(_) = *ptr_result_never_err;
|
||||
| ^^^^^ pattern `Err(!)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `Result<u8, !>`
|
||||
help: you might want to use `if let` to ignore the variant that isn't matched
|
||||
|
|
||||
|
@ -95,7 +95,7 @@ LL | let Ok(_x) = res_u32_never.as_ref();
|
||||
| ^^^^^^ pattern `Err(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `Result<&u32, &!>`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
@ -109,7 +109,7 @@ LL | let Ok(_x) = &res_u32_never;
|
||||
| ^^^^^^ pattern `&Err(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `&Result<u32, !>`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
@ -230,7 +230,7 @@ LL | let Ok(_) = *ptr_result_never_err;
|
||||
| ^^^^^ pattern `Err(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `Result<u8, !>`
|
||||
help: you might want to use `if let` to ignore the variant that isn't matched
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let Thing::Foo(y) = Thing::Foo(1);
|
||||
| ^^^^^^^^^^^^^ patterns `Thing::Bar` and `Thing::Baz` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `Thing` defined here
|
||||
--> $DIR/issue-31561.rs:1:6
|
||||
|
|
||||
|
@ -44,7 +44,7 @@ fn by_val(e: E) {
|
||||
//~^ ERROR refutable pattern in local binding
|
||||
//~| patterns `E::B` and `E::C` not covered
|
||||
//~| NOTE `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with
|
||||
//~| NOTE for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
|
||||
//~| NOTE for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
//~| NOTE the matched value is of type `E`
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@ fn by_ref_once(e: &E) {
|
||||
//~^ ERROR refutable pattern in local binding
|
||||
//~| patterns `&E::B` and `&E::C` not covered
|
||||
//~| NOTE `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with
|
||||
//~| NOTE for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
|
||||
//~| NOTE for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
//~| NOTE the matched value is of type `&E`
|
||||
}
|
||||
|
||||
@ -76,7 +76,7 @@ fn by_ref_thrice(e: & &mut &E) {
|
||||
//~^ ERROR refutable pattern in local binding
|
||||
//~| patterns `&&mut &E::B` and `&&mut &E::C` not covered
|
||||
//~| NOTE `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with
|
||||
//~| NOTE for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
|
||||
//~| NOTE for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
//~| NOTE the matched value is of type `&&mut &E`
|
||||
}
|
||||
|
||||
@ -103,7 +103,7 @@ fn ref_pat(e: Opt) {
|
||||
//~| NOTE the matched value is of type `Opt`
|
||||
//~| NOTE pattern `Opt::None` not covered
|
||||
//~| NOTE `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with
|
||||
//~| NOTE for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
|
||||
//~| NOTE for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
@ -29,7 +29,7 @@ LL | let E::A = e;
|
||||
| ^^^^ patterns `E::B` and `E::C` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `E` defined here
|
||||
--> $DIR/non-exhaustive-defined-here.rs:8:6
|
||||
|
|
||||
@ -78,7 +78,7 @@ LL | let E::A = e;
|
||||
| ^^^^ patterns `&E::B` and `&E::C` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `E` defined here
|
||||
--> $DIR/non-exhaustive-defined-here.rs:8:6
|
||||
|
|
||||
@ -127,7 +127,7 @@ LL | let E::A = e;
|
||||
| ^^^^ patterns `&&mut &E::B` and `&&mut &E::C` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `E` defined here
|
||||
--> $DIR/non-exhaustive-defined-here.rs:8:6
|
||||
|
|
||||
@ -173,7 +173,7 @@ LL | let Opt::Some(ref _x) = e;
|
||||
| ^^^^^^^^^^^^^^^^^ pattern `Opt::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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `Opt` defined here
|
||||
--> $DIR/non-exhaustive-defined-here.rs:83:6
|
||||
|
|
||||
|
@ -13,7 +13,7 @@ LL | let (1, (Some(1), 2..=3)) = (1, (None, 2));
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ patterns `(i32::MIN..=0_i32, _)` and `(2_i32..=i32::MAX, _)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `(i32, (Option<i32>, i32))`
|
||||
help: you might want to use `if let` to ignore the variants that aren't matched
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let Ok(x) = res;
|
||||
| ^^^^^ pattern `Err(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `Result<u32, &R<'_>>`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
|
@ -7,7 +7,7 @@ LL | struct Foo(bool);
|
||||
LL | foo(x)
|
||||
| ^^^ help: a tuple struct with a similar name exists (notice the capitalization): `Foo`
|
||||
|
|
||||
= note: function calls are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: function calls are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -136,7 +136,7 @@ LL | let local_refutable @ NonExhaustiveEnum::Unit = NonExhaustiveEnum::Unit
|
||||
| ^^^^^^^^^^^^^^^ pattern `_` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `NonExhaustiveEnum`
|
||||
help: you might want to use `let else` to handle the variant that isn't matched
|
||||
|
|
||||
|
@ -4,7 +4,7 @@ error: expected a pattern, found an expression
|
||||
LL | let str::<{fn str() { let str::T>>::as_bytes; }}, T>::as_bytes;
|
||||
| ^^^^^^^^^^^^^^^^^^ not a pattern
|
||||
|
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch18-00-patterns.html>
|
||||
= note: arbitrary expressions are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
|
||||
|
||||
error[E0412]: cannot find type `T` in this scope
|
||||
--> $DIR/ensure-overriding-bindings-in-pattern-with-ty-err-doesnt-ice.rs:2:55
|
||||
|
@ -8,7 +8,7 @@ LL | const A: i32 = 2;
|
||||
| ------------ missing patterns are not covered because `A` is interpreted as a constant pattern, not a new variable
|
||||
|
|
||||
= 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
= note: the matched value is of type `i32`
|
||||
help: introduce a variable instead
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let Foo::D(_y, _z) = x;
|
||||
| ^^^^^^^^^^^^^^ pattern `Foo::A(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `Foo` defined here
|
||||
--> $DIR/uninhabited-irrefutable.rs:19:6
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let Foo::D(_y, _z) = x;
|
||||
| ^^^^^^^^^^^^^^ pattern `Foo::A(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `Foo` defined here
|
||||
--> $DIR/uninhabited-irrefutable.rs:20:6
|
||||
|
|
||||
|
@ -5,7 +5,7 @@ LL | let Foo::D(_y, _z) = x;
|
||||
| ^^^^^^^^^^^^^^ pattern `Foo::A(_)` 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: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
|
||||
note: `Foo` defined here
|
||||
--> $DIR/uninhabited-irrefutable.rs:19:6
|
||||
|
|
||||
|
Loading…
Reference in New Issue
Block a user