Skip to content

Commit

Permalink
Move is_ascii_ident to where it's used.
Browse files Browse the repository at this point in the history
  • Loading branch information
nnethercote committed Nov 30, 2023
1 parent f8ce186 commit dba9416
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
15 changes: 13 additions & 2 deletions compiler/rustc_session/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2456,6 +2456,17 @@ pub fn parse_externs(
matches: &getopts::Matches,
unstable_opts: &UnstableOptions,
) -> Externs {
fn is_ascii_ident(string: &str) -> bool {
let mut chars = string.chars();
if let Some(start) = chars.next()
&& (start.is_ascii_alphabetic() || start == '_')
{
chars.all(|char| char.is_ascii_alphanumeric() || char == '_')
} else {
false
}
}

let is_unstable_enabled = unstable_opts.unstable_options;
let mut externs: BTreeMap<String, ExternEntry> = BTreeMap::new();
for arg in matches.opt_strs("extern") {
Expand All @@ -2468,12 +2479,12 @@ pub fn parse_externs(
Some((opts, name)) => (Some(opts), name.to_string()),
};

if !crate::utils::is_ascii_ident(&name) {
if !is_ascii_ident(&name) {
let mut error = handler.early_struct_error(format!(
"crate name `{name}` passed to `--extern` is not a valid ASCII identifier"
));
let adjusted_name = name.replace('-', "_");
if crate::utils::is_ascii_ident(&adjusted_name) {
if is_ascii_ident(&adjusted_name) {
error.help(format!(
"consider replacing the dashes with underscores: `{adjusted_name}`"
));
Expand Down
11 changes: 0 additions & 11 deletions compiler/rustc_session/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,14 +158,3 @@ pub fn extra_compiler_flags() -> Option<(Vec<String>, bool)> {

if !result.is_empty() { Some((result, excluded_cargo_defaults)) } else { None }
}

pub(crate) fn is_ascii_ident(string: &str) -> bool {
let mut chars = string.chars();
if let Some(start) = chars.next()
&& (start.is_ascii_alphabetic() || start == '_')
{
chars.all(|char| char.is_ascii_alphanumeric() || char == '_')
} else {
false
}
}

0 comments on commit dba9416

Please sign in to comment.