Add help for crate arg when crate name is invalid
This commit is contained in:
parent
8771282d4e
commit
e0c479eea2
6 changed files with 31 additions and 3 deletions
|
@ -45,6 +45,7 @@ session_int_literal_too_large = integer literal is too large
|
|||
.note = value exceeds limit of `{$limit}`
|
||||
|
||||
session_invalid_character_in_create_name = invalid character `{$character}` in crate name: `{$crate_name}`
|
||||
session_invalid_character_in_create_name_help = you can either pass `--crate-name` on the command line or add `#![crate_name="…"]` to set the crate name
|
||||
|
||||
session_invalid_float_literal_suffix = invalid suffix `{$suffix}` for float literal
|
||||
.label = invalid suffix `{$suffix}`
|
||||
|
|
|
@ -199,6 +199,14 @@ pub struct InvalidCharacterInCrateName {
|
|||
pub span: Option<Span>,
|
||||
pub character: char,
|
||||
pub crate_name: Symbol,
|
||||
#[subdiagnostic]
|
||||
pub crate_name_help: Option<InvalidCrateNameHelp>,
|
||||
}
|
||||
|
||||
#[derive(Subdiagnostic)]
|
||||
pub enum InvalidCrateNameHelp {
|
||||
#[help(session_invalid_character_in_create_name_help)]
|
||||
AddCrateName,
|
||||
}
|
||||
|
||||
#[derive(Subdiagnostic)]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
use crate::config::{CrateType, Input, OutFileName, OutputFilenames, OutputType};
|
||||
use crate::errors::{
|
||||
CrateNameDoesNotMatch, CrateNameEmpty, CrateNameInvalid, FileIsNotWriteable,
|
||||
InvalidCharacterInCrateName,
|
||||
InvalidCharacterInCrateName, InvalidCrateNameHelp,
|
||||
};
|
||||
use crate::Session;
|
||||
use rustc_ast::{self as ast, attr};
|
||||
|
@ -101,7 +101,16 @@ pub fn validate_crate_name(sess: &Session, s: Symbol, sp: Option<Span>) {
|
|||
continue;
|
||||
}
|
||||
err_count += 1;
|
||||
sess.emit_err(InvalidCharacterInCrateName { span: sp, character: c, crate_name: s });
|
||||
sess.emit_err(InvalidCharacterInCrateName {
|
||||
span: sp,
|
||||
character: c,
|
||||
crate_name: s,
|
||||
crate_name_help: if sp.is_none() {
|
||||
Some(InvalidCrateNameHelp::AddCrateName)
|
||||
} else {
|
||||
None
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue