@@ -267,20 +267,28 @@ impl InlinedItem {
267
267
268
268
// FIXME: find a better place for this?
269
269
pub 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) ) ;
275
287
}
276
- } ;
277
- if s. is_empty ( ) {
278
- say ( "crate name must not be empty" ) ;
279
288
}
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 ( ) ;
284
292
}
285
293
}
286
294
0 commit comments