Disallow crate names with leading hyphens

Leading hyphens already don't work (#22661), so no code should break
from this change.

Closes #22661.
This commit is contained in:
Chris Wong 2015-02-22 20:05:05 +13:00
parent 2b01a37ec3
commit a7594f2d5b
2 changed files with 6 additions and 1 deletions

View File

@ -81,11 +81,13 @@ pub fn validate_crate_name(sess: Option<&Session>, s: &str, sp: Option<Span>) {
};
if s.len() == 0 {
err("crate name must not be empty");
} else if s.char_at(0) == '-' {
err(&format!("crate name cannot start with a hyphen: {}", s));
}
for c in s.chars() {
if c.is_alphanumeric() { continue }
if c == '_' || c == '-' { continue }
err(&format!("invalid character `{}` in crate name: `{}`", c, s)[]);
err(&format!("invalid character `{}` in crate name: `{}`", c, s));
}
match sess {
Some(sess) => sess.abort_if_errors(),

View File

@ -10,3 +10,6 @@ all:
cp foo.rs $(TMPDIR)/+foo+bar
$(RUSTC) $(TMPDIR)/+foo+bar 2>&1 \
| grep "invalid character.*in crate name:"
cp foo.rs $(TMPDIR)/-foo.rs
$(RUSTC) $(TMPDIR)/-foo.rs 2>&1 \
| grep "crate name cannot start with a hyphen:"