Rollup merge of #73305 - crlf0710:disallow_loading_monsters, r=petrochenkov
Disallow loading crates with non-ascii identifier name. This turns off external crate loading with non-ascii identifier names. cc #55467.
This commit is contained in:
commit
3b4bec24ab
@ -452,6 +452,14 @@ impl<'a> CrateLoader<'a> {
|
|||||||
if dep.is_none() {
|
if dep.is_none() {
|
||||||
self.used_extern_options.insert(name);
|
self.used_extern_options.insert(name);
|
||||||
}
|
}
|
||||||
|
if !name.as_str().is_ascii() {
|
||||||
|
self.sess
|
||||||
|
.struct_span_err(
|
||||||
|
span,
|
||||||
|
&format!("cannot load a crate with a non-ascii name `{}`", name,),
|
||||||
|
)
|
||||||
|
.emit();
|
||||||
|
}
|
||||||
self.maybe_resolve_crate(name, span, dep_kind, dep).unwrap_or_else(|err| err.report())
|
self.maybe_resolve_crate(name, span, dep_kind, dep).unwrap_or_else(|err| err.report())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
6
src/test/ui/rfc-2457/crate_name_nonascii_forbidden-1.rs
Normal file
6
src/test/ui/rfc-2457/crate_name_nonascii_forbidden-1.rs
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#![feature(non_ascii_idents)]
|
||||||
|
|
||||||
|
extern crate ьаг; //~ ERROR cannot load a crate with a non-ascii name `ьаг`
|
||||||
|
//~| ERROR can't find crate for `ьаг`
|
||||||
|
|
||||||
|
fn main() {}
|
15
src/test/ui/rfc-2457/crate_name_nonascii_forbidden-1.stderr
Normal file
15
src/test/ui/rfc-2457/crate_name_nonascii_forbidden-1.stderr
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
error: cannot load a crate with a non-ascii name `ьаг`
|
||||||
|
--> $DIR/crate_name_nonascii_forbidden-1.rs:3:1
|
||||||
|
|
|
||||||
|
LL | extern crate ьаг;
|
||||||
|
| ^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error[E0463]: can't find crate for `ьаг`
|
||||||
|
--> $DIR/crate_name_nonascii_forbidden-1.rs:3:1
|
||||||
|
|
|
||||||
|
LL | extern crate ьаг;
|
||||||
|
| ^^^^^^^^^^^^^^^^^ can't find crate
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0463`.
|
9
src/test/ui/rfc-2457/crate_name_nonascii_forbidden-2.rs
Normal file
9
src/test/ui/rfc-2457/crate_name_nonascii_forbidden-2.rs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// compile-flags:--extern му_сгате
|
||||||
|
// edition:2018
|
||||||
|
#![feature(non_ascii_idents)]
|
||||||
|
|
||||||
|
use му_сгате::baz; //~ ERROR cannot load a crate with a non-ascii name `му_сгате`
|
||||||
|
//~| can't find crate for `му_сгате`
|
||||||
|
|
||||||
|
|
||||||
|
fn main() {}
|
15
src/test/ui/rfc-2457/crate_name_nonascii_forbidden-2.stderr
Normal file
15
src/test/ui/rfc-2457/crate_name_nonascii_forbidden-2.stderr
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
error: cannot load a crate with a non-ascii name `му_сгате`
|
||||||
|
--> $DIR/crate_name_nonascii_forbidden-2.rs:5:5
|
||||||
|
|
|
||||||
|
LL | use му_сгате::baz;
|
||||||
|
| ^^^^^^^^
|
||||||
|
|
||||||
|
error[E0463]: can't find crate for `му_сгате`
|
||||||
|
--> $DIR/crate_name_nonascii_forbidden-2.rs:5:5
|
||||||
|
|
|
||||||
|
LL | use му_сгате::baz;
|
||||||
|
| ^^^^^^^^ can't find crate
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0463`.
|
Loading…
x
Reference in New Issue
Block a user