Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 6 pull requests #97468

Merged
merged 16 commits into from
May 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion compiler/rustc_builtin_macros/src/deriving/generic/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1039,7 +1039,9 @@ impl<'a> MethodDef<'a> {
let span = trait_.span;
let mut patterns = Vec::new();
for i in 0..self_args.len() {
let struct_path = cx.path(span, vec![type_ident]);
// We could use `type_ident` instead of `Self`, but in the case of a type parameter
// shadowing the struct name, that causes a second, unnecessary E0578 error. #97343
let struct_path = cx.path(span, vec![Ident::new(kw::SelfUpper, type_ident.span)]);
let (pat, ident_expr) = trait_.create_struct_pattern(
cx,
struct_path,
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_middle/src/ty/sty.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1469,7 +1469,7 @@ impl ParamConst {
}
}

/// Use this rather than `TyKind`, whenever possible.
/// Use this rather than `RegionKind`, whenever possible.
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, HashStable)]
#[rustc_pass_by_value]
pub struct Region<'tcx>(pub Interned<'tcx, RegionKind>);
Expand Down
2 changes: 1 addition & 1 deletion library/alloc/src/vec/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1771,7 +1771,7 @@ impl<T, A: Allocator> Vec<T, A> {
///
/// # Panics
///
/// Panics if the number of elements in the vector overflows a `usize`.
/// Panics if the new capacity exceeds `isize::MAX` bytes.
///
/// # Examples
///
Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ impl StepDescription {

fn is_excluded(&self, builder: &Builder<'_>, pathset: &PathSet) -> bool {
if builder.config.exclude.iter().any(|e| pathset.has(&e.path, e.kind)) {
eprintln!("Skipping {:?} because it is excluded", pathset);
println!("Skipping {:?} because it is excluded", pathset);
return true;
}

Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -765,7 +765,7 @@ impl Config {
{
Ok(table) => table,
Err(err) => {
println!("failed to parse TOML configuration '{}': {}", file.display(), err);
eprintln!("failed to parse TOML configuration '{}': {}", file.display(), err);
process::exit(2);
}
}
Expand Down
8 changes: 4 additions & 4 deletions src/bootstrap/flags.rs
Original file line number Diff line number Diff line change
Expand Up @@ -367,8 +367,8 @@ To learn more about a subcommand, run `./x.py <subcommand> -h`",
}
}
if !pass_sanity_check {
println!("{}\n", subcommand_help);
println!(
eprintln!("{}\n", subcommand_help);
eprintln!(
"Sorry, I couldn't figure out which subcommand you were trying to specify.\n\
You may need to move some options to after the subcommand.\n"
);
Expand Down Expand Up @@ -532,7 +532,7 @@ Arguments:
Kind::Build => Subcommand::Build { paths },
Kind::Check => {
if matches.opt_present("all-targets") {
eprintln!(
println!(
"Warning: --all-targets is now on by default and does not need to be passed explicitly."
);
}
Expand Down Expand Up @@ -606,7 +606,7 @@ Arguments:
if matches.opt_str("keep-stage").is_some()
|| matches.opt_str("keep-stage-std").is_some()
{
println!("--keep-stage not yet supported for x.py check");
eprintln!("--keep-stage not yet supported for x.py check");
process::exit(1);
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/bootstrap/format.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ pub fn format(build: &Build, check: bool, paths: &[PathBuf]) {
entry.split(' ').nth(1).expect("every git status entry should list a path")
});
for untracked_path in untracked_paths {
eprintln!("skip untracked path {} during rustfmt invocations", untracked_path);
println!("skip untracked path {} during rustfmt invocations", untracked_path);
// The leading `/` makes it an exact match against the
// repository root, rather than a glob. Without that, if you
// have `foo.rs` in the repository root it will also match
Expand All @@ -105,10 +105,10 @@ pub fn format(build: &Build, check: bool, paths: &[PathBuf]) {
ignore_fmt.add(&format!("!/{}", untracked_path)).expect(&untracked_path);
}
} else {
eprintln!("Not in git tree. Skipping git-aware format checks");
println!("Not in git tree. Skipping git-aware format checks");
}
} else {
eprintln!("Could not find usable git. Skipping git-aware format checks");
println!("Could not find usable git. Skipping git-aware format checks");
}
let ignore_fmt = ignore_fmt.build().unwrap();

Expand Down
4 changes: 2 additions & 2 deletions src/bootstrap/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -689,9 +689,9 @@ impl Build {
// Check for postponed failures from `test --no-fail-fast`.
let failures = self.delayed_failures.borrow();
if failures.len() > 0 {
println!("\n{} command(s) did not execute successfully:\n", failures.len());
eprintln!("\n{} command(s) did not execute successfully:\n", failures.len());
for failure in failures.iter() {
println!(" - {}\n", failure);
eprintln!(" - {}\n", failure);
}
process::exit(1);
}
Expand Down
8 changes: 4 additions & 4 deletions src/bootstrap/native.rs
Original file line number Diff line number Diff line change
Expand Up @@ -138,10 +138,10 @@ pub(crate) fn maybe_download_ci_llvm(builder: &Builder<'_>) {
let llvm_sha = llvm_sha.trim();

if llvm_sha == "" {
println!("error: could not find commit hash for downloading LLVM");
println!("help: maybe your repository history is too shallow?");
println!("help: consider disabling `download-ci-llvm`");
println!("help: or fetch enough history to include one upstream commit");
eprintln!("error: could not find commit hash for downloading LLVM");
eprintln!("help: maybe your repository history is too shallow?");
eprintln!("help: consider disabling `download-ci-llvm`");
eprintln!("help: or fetch enough history to include one upstream commit");
panic!();
}

Expand Down
24 changes: 12 additions & 12 deletions src/bootstrap/setup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ pub fn setup(config: &Config, profile: Profile) {
let path = &config.config;

if path.exists() {
println!(
eprintln!(
"error: you asked `x.py` to setup a new config file, but one already exists at `{}`",
path.display()
);
println!("help: try adding `profile = \"{}\"` at the top of {}", profile, path.display());
println!(
eprintln!("help: try adding `profile = \"{}\"` at the top of {}", profile, path.display());
eprintln!(
"note: this will use the configuration in {}",
profile.include_path(&config.src).display()
);
Expand All @@ -115,7 +115,7 @@ pub fn setup(config: &Config, profile: Profile) {
println!();

if !rustup_installed() && profile != Profile::User {
println!("`rustup` is not installed; cannot link `stage1` toolchain");
eprintln!("`rustup` is not installed; cannot link `stage1` toolchain");
} else if stage_dir_exists(&stage_path[..]) {
attempt_toolchain_link(&stage_path[..]);
}
Expand Down Expand Up @@ -173,7 +173,7 @@ fn attempt_toolchain_link(stage_path: &str) {
}

if !ensure_stage1_toolchain_placeholder_exists(stage_path) {
println!(
eprintln!(
"Failed to create a template for stage 1 toolchain or confirm that it already exists"
);
return;
Expand All @@ -184,8 +184,8 @@ fn attempt_toolchain_link(stage_path: &str) {
"Added `stage1` rustup toolchain; try `cargo +stage1 build` on a separate rust project to run a newly-built toolchain"
);
} else {
println!("`rustup` failed to link stage 1 build to `stage1` toolchain");
println!(
eprintln!("`rustup` failed to link stage 1 build to `stage1` toolchain");
eprintln!(
"To manually link stage 1 build to `stage1` toolchain, run:\n
`rustup toolchain link stage1 {}`",
&stage_path
Expand Down Expand Up @@ -292,8 +292,8 @@ pub fn interactive_path() -> io::Result<Profile> {
break match parse_with_abbrev(&input) {
Ok(profile) => profile,
Err(err) => {
println!("error: {}", err);
println!("note: press Ctrl+C to exit");
eprintln!("error: {}", err);
eprintln!("note: press Ctrl+C to exit");
continue;
}
};
Expand All @@ -320,8 +320,8 @@ undesirable, simply delete the `pre-push` file from .git/hooks."
"y" | "yes" => true,
"n" | "no" | "" => false,
_ => {
println!("error: unrecognized option '{}'", input.trim());
println!("note: press Ctrl+C to exit");
eprintln!("error: unrecognized option '{}'", input.trim());
eprintln!("note: press Ctrl+C to exit");
continue;
}
};
Expand All @@ -337,7 +337,7 @@ undesirable, simply delete the `pre-push` file from .git/hooks."
));
let dst = git.join("hooks").join("pre-push");
match fs::hard_link(src, &dst) {
Err(e) => println!(
Err(e) => eprintln!(
"error: could not create hook {}: do you already have the git hook installed?\n{}",
dst.display(),
e
Expand Down
20 changes: 10 additions & 10 deletions src/bootstrap/tool.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,43 +152,43 @@ impl Step for ToolBuild {
});

if is_expected && !duplicates.is_empty() {
println!(
eprintln!(
"duplicate artifacts found when compiling a tool, this \
typically means that something was recompiled because \
a transitive dependency has different features activated \
than in a previous build:\n"
);
println!(
eprintln!(
"the following dependencies are duplicated although they \
have the same features enabled:"
);
let (same, different): (Vec<_>, Vec<_>) =
duplicates.into_iter().partition(|(_, cur, prev)| cur.2 == prev.2);
for (id, cur, prev) in same {
println!(" {}", id);
eprintln!(" {}", id);
// same features
println!(" `{}` ({:?})\n `{}` ({:?})", cur.0, cur.1, prev.0, prev.1);
eprintln!(" `{}` ({:?})\n `{}` ({:?})", cur.0, cur.1, prev.0, prev.1);
}
println!("the following dependencies have different features:");
eprintln!("the following dependencies have different features:");
for (id, cur, prev) in different {
println!(" {}", id);
eprintln!(" {}", id);
let cur_features: HashSet<_> = cur.2.into_iter().collect();
let prev_features: HashSet<_> = prev.2.into_iter().collect();
println!(
eprintln!(
" `{}` additionally enabled features {:?} at {:?}",
cur.0,
&cur_features - &prev_features,
cur.1
);
println!(
eprintln!(
" `{}` additionally enabled features {:?} at {:?}",
prev.0,
&prev_features - &cur_features,
prev.1
);
}
println!();
println!(
eprintln!();
eprintln!(
"to fix this you will probably want to edit the local \
src/tools/rustc-workspace-hack/Cargo.toml crate, as \
that will update the dependency graph to ensure that \
Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@ fn dir_up_to_date(src: &Path, threshold: SystemTime) -> bool {
}

fn fail(s: &str) -> ! {
println!("\n\n{}\n\n", s);
eprintln!("\n\n{}\n\n", s);
std::process::exit(1);
}

Expand Down
9 changes: 9 additions & 0 deletions src/librustdoc/html/static/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,14 @@ module.exports = {
"comma-style": ["error", "last"],
"max-len": ["error", { "code": 100, "tabWidth": 4 }],
"eol-last": ["error", "always"],
"arrow-parens": ["error", "as-needed"],
"no-unused-vars": [
"error",
{
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_"
}
],
"eqeqeq": "error",
}
};
4 changes: 2 additions & 2 deletions src/librustdoc/html/static/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,12 +97,12 @@ function showMain() {
//
// So I guess you could say things are getting pretty interoperable.
function getVirtualKey(ev) {
if ("key" in ev && typeof ev.key != "undefined") {
if ("key" in ev && typeof ev.key !== "undefined") {
return ev.key;
}

const c = ev.charCode || ev.keyCode;
if (c == 27) {
if (c === 27) {
return "Escape";
}
return String.fromCharCode(c);
Expand Down
8 changes: 4 additions & 4 deletions src/librustdoc/html/static/js/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ function printTab(nb) {
});
if (foundCurrentTab && foundCurrentResultSet) {
searchState.currentTab = nb;
} else if (nb != 0) {
} else if (nb !== 0) {
printTab(0);
}
}
Expand Down Expand Up @@ -200,7 +200,7 @@ function initSearch(rawSearchIndex) {
* @return {boolean}
*/
function isPathStart(parserState) {
return parserState.userQuery.slice(parserState.pos, parserState.pos + 2) == "::";
return parserState.userQuery.slice(parserState.pos, parserState.pos + 2) === "::";
}

/**
Expand All @@ -211,7 +211,7 @@ function initSearch(rawSearchIndex) {
* @return {boolean}
*/
function isReturnArrow(parserState) {
return parserState.userQuery.slice(parserState.pos, parserState.pos + 2) == "->";
return parserState.userQuery.slice(parserState.pos, parserState.pos + 2) === "->";
}

/**
Expand Down Expand Up @@ -1726,7 +1726,7 @@ function initSearch(rawSearchIndex) {
crates = " in <select id=\"crate-search\"><option value=\"All crates\">" +
"All crates</option>";
for (const c of window.ALL_CRATES) {
crates += `<option value="${c}" ${c == filterCrates && "selected"}>${c}</option>`;
crates += `<option value="${c}" ${c === filterCrates && "selected"}>${c}</option>`;
}
crates += "</select>";
}
Expand Down
13 changes: 13 additions & 0 deletions src/test/ui/borrowck/issue-81899.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Regression test for #81899.
// The `panic!()` below is important to trigger the fixed ICE.

const _CONST: &[u8] = &f(&[], |_| {});

const fn f<F>(_: &[u8], _: F) -> &[u8]
where
F: FnMut(&u8),
{
panic!() //~ ERROR: evaluation of constant value failed
}

fn main() {}
17 changes: 17 additions & 0 deletions src/test/ui/borrowck/issue-81899.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
error[E0080]: evaluation of constant value failed
--> $DIR/issue-81899.rs:10:5
|
LL | const _CONST: &[u8] = &f(&[], |_| {});
| -------------- inside `_CONST` at $DIR/issue-81899.rs:4:24
...
LL | panic!()
| ^^^^^^^^
| |
| the evaluated program panicked at 'explicit panic', $DIR/issue-81899.rs:10:5
| inside `f::<[closure@$DIR/issue-81899.rs:4:31: 4:37]>` at $SRC_DIR/std/src/panic.rs:LL:COL
|
= note: this error originates in the macro `$crate::panic::panic_2015` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

For more information about this error, try `rustc --explain E0080`.
8 changes: 8 additions & 0 deletions src/test/ui/derives/issue-97343.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
use std::fmt::Debug;

#[derive(Debug)]
pub struct Irrelevant<Irrelevant> { //~ ERROR type arguments are not allowed for this type
irrelevant: Irrelevant,
}

fn main() {}
13 changes: 13 additions & 0 deletions src/test/ui/derives/issue-97343.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
error[E0109]: type arguments are not allowed for this type
--> $DIR/issue-97343.rs:4:23
|
LL | #[derive(Debug)]
| ----- in this derive macro expansion
LL | pub struct Irrelevant<Irrelevant> {
| ^^^^^^^^^^ type argument not allowed
|
= note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

For more information about this error, try `rustc --explain E0109`.