1
Fork 0

Auto merge of #137420 - matthiaskrgr:rollup-rr0q37f, r=matthiaskrgr

Rollup of 9 pull requests

Successful merges:

 - #136910 (Implement feature `isolate_most_least_significant_one` for integer types)
 - #137183 (Prune dead regionck code)
 - #137333 (Use `edition = "2024"` in the compiler (redux))
 - #137356 (Ferris 🦀 Identifier naming conventions)
 - #137362 (Add build step log for `run-make-support`)
 - #137377 (Always allow reusing cratenum in CrateLoader::load)
 - #137388 (Fix(lib/fs/tests): Disable rename POSIX semantics FS tests under Windows 7)
 - #137410 (Use StableHasher + Hash64 for dep_tracking_hash)
 - #137413 (jubilee cleared out the review queue)

r? `@ghost`
`@rustbot` modify labels: rollup
This commit is contained in:
bors 2025-02-22 13:32:44 +00:00
commit 15469f8f8a
173 changed files with 692 additions and 561 deletions

View file

@ -24,8 +24,9 @@ pub(crate) struct CrateNameInvalid<'a> {
pub struct FerrisIdentifier {
#[primary_span]
pub spans: Vec<Span>,
#[suggestion(code = "ferris", applicability = "maybe-incorrect")]
#[suggestion(code = "{ferris_fix}", applicability = "maybe-incorrect")]
pub first_span: Span,
pub ferris_fix: &'static str,
}
#[derive(Diagnostic)]

View file

@ -171,13 +171,15 @@ fn configure_and_expand(
new_path.push(path);
}
}
env::set_var(
"PATH",
&env::join_paths(
new_path.iter().filter(|p| env::join_paths(iter::once(p)).is_ok()),
)
.unwrap(),
);
unsafe {
env::set_var(
"PATH",
&env::join_paths(
new_path.iter().filter(|p| env::join_paths(iter::once(p)).is_ok()),
)
.unwrap(),
);
}
}
// Create the config for macro expansion
@ -216,7 +218,9 @@ fn configure_and_expand(
}
if cfg!(windows) {
env::set_var("PATH", &old_path);
unsafe {
env::set_var("PATH", &old_path);
}
}
krate
@ -301,8 +305,41 @@ fn early_lint_checks(tcx: TyCtxt<'_>, (): ()) {
for (ident, mut spans) in identifiers.drain(..) {
spans.sort();
if ident == sym::ferris {
enum FerrisFix {
SnakeCase,
ScreamingSnakeCase,
PascalCase,
}
impl FerrisFix {
const fn as_str(self) -> &'static str {
match self {
FerrisFix::SnakeCase => "ferris",
FerrisFix::ScreamingSnakeCase => "FERRIS",
FerrisFix::PascalCase => "Ferris",
}
}
}
let first_span = spans[0];
sess.dcx().emit_err(errors::FerrisIdentifier { spans, first_span });
let prev_source = sess.psess.source_map().span_to_prev_source(first_span);
let ferris_fix = prev_source
.map_or(FerrisFix::SnakeCase, |source| {
let mut source_before_ferris = source.trim_end().split_whitespace().rev();
match source_before_ferris.next() {
Some("struct" | "trait" | "mod" | "union" | "type" | "enum") => {
FerrisFix::PascalCase
}
Some("const" | "static") => FerrisFix::ScreamingSnakeCase,
Some("mut") if source_before_ferris.next() == Some("static") => {
FerrisFix::ScreamingSnakeCase
}
_ => FerrisFix::SnakeCase,
}
})
.as_str();
sess.dcx().emit_err(errors::FerrisIdentifier { spans, first_span, ferris_fix });
} else {
sess.dcx().emit_err(errors::EmojiIdentifier { spans, ident });
}