@@ -267,20 +267,28 @@ impl InlinedItem {
267267
268268// FIXME: find a better place for this?
269269pub fn validate_crate_name ( sess : Option < & Session > , s : & str , sp : Option < Span > ) {
270- let say = |s : & str | {
271- match ( sp, sess) {
272- ( _, None ) => panic ! ( "{}" , s) ,
273- ( Some ( sp) , Some ( sess) ) => sess. span_fatal ( sp, s) ,
274- ( None , Some ( sess) ) => sess. fatal ( s) ,
270+ let mut err_count = 0 ;
271+ {
272+ let mut say = |s : & str | {
273+ match ( sp, sess) {
274+ ( _, None ) => panic ! ( "{}" , s) ,
275+ ( Some ( sp) , Some ( sess) ) => sess. span_err ( sp, s) ,
276+ ( None , Some ( sess) ) => sess. err ( s) ,
277+ }
278+ err_count += 1 ;
279+ } ;
280+ if s. is_empty ( ) {
281+ say ( "crate name must not be empty" ) ;
282+ }
283+ for c in s. chars ( ) {
284+ if c. is_alphanumeric ( ) { continue }
285+ if c == '_' { continue }
286+ say ( & format ! ( "invalid character `{}` in crate name: `{}`" , c, s) ) ;
275287 }
276- } ;
277- if s. is_empty ( ) {
278- say ( "crate name must not be empty" ) ;
279288 }
280- for c in s. chars ( ) {
281- if c. is_alphanumeric ( ) { continue }
282- if c == '_' { continue }
283- say ( & format ! ( "invalid character `{}` in crate name: `{}`" , c, s) ) ;
289+
290+ if err_count > 0 {
291+ sess. unwrap ( ) . abort_if_errors ( ) ;
284292 }
285293}
286294
0 commit comments