@@ -262,7 +262,7 @@ impl error::Error for ExplicitBug {
262
262
}
263
263
}
264
264
265
- pub use diagnostic:: { Diagnostic , SubDiagnostic , DiagnosticStyledString } ;
265
+ pub use diagnostic:: { Diagnostic , SubDiagnostic , DiagnosticStyledString , DiagnosticId } ;
266
266
pub use diagnostic_builder:: DiagnosticBuilder ;
267
267
268
268
/// A handler deals with errors; certain errors
@@ -337,11 +337,11 @@ impl Handler {
337
337
pub fn struct_span_warn_with_code < ' a , S : Into < MultiSpan > > ( & ' a self ,
338
338
sp : S ,
339
339
msg : & str ,
340
- code : & str )
340
+ code : DiagnosticId )
341
341
-> DiagnosticBuilder < ' a > {
342
342
let mut result = DiagnosticBuilder :: new ( self , Level :: Warning , msg) ;
343
343
result. set_span ( sp) ;
344
- result. code ( code. to_owned ( ) ) ;
344
+ result. code ( code) ;
345
345
if !self . can_emit_warnings {
346
346
result. cancel ( ) ;
347
347
}
@@ -365,20 +365,24 @@ impl Handler {
365
365
pub fn struct_span_err_with_code < ' a , S : Into < MultiSpan > > ( & ' a self ,
366
366
sp : S ,
367
367
msg : & str ,
368
- code : & str )
368
+ code : DiagnosticId )
369
369
-> DiagnosticBuilder < ' a > {
370
370
let mut result = DiagnosticBuilder :: new ( self , Level :: Error , msg) ;
371
371
result. set_span ( sp) ;
372
- result. code ( code. to_owned ( ) ) ;
372
+ result. code ( code) ;
373
373
result
374
374
}
375
375
// FIXME: This method should be removed (every error should have an associated error code).
376
376
pub fn struct_err < ' a > ( & ' a self , msg : & str ) -> DiagnosticBuilder < ' a > {
377
377
DiagnosticBuilder :: new ( self , Level :: Error , msg)
378
378
}
379
- pub fn struct_err_with_code < ' a > ( & ' a self , msg : & str , code : & str ) -> DiagnosticBuilder < ' a > {
379
+ pub fn struct_err_with_code < ' a > (
380
+ & ' a self ,
381
+ msg : & str ,
382
+ code : DiagnosticId ,
383
+ ) -> DiagnosticBuilder < ' a > {
380
384
let mut result = DiagnosticBuilder :: new ( self , Level :: Error , msg) ;
381
- result. code ( code. to_owned ( ) ) ;
385
+ result. code ( code) ;
382
386
result
383
387
}
384
388
pub fn struct_span_fatal < ' a , S : Into < MultiSpan > > ( & ' a self ,
@@ -392,11 +396,11 @@ impl Handler {
392
396
pub fn struct_span_fatal_with_code < ' a , S : Into < MultiSpan > > ( & ' a self ,
393
397
sp : S ,
394
398
msg : & str ,
395
- code : & str )
399
+ code : DiagnosticId )
396
400
-> DiagnosticBuilder < ' a > {
397
401
let mut result = DiagnosticBuilder :: new ( self , Level :: Fatal , msg) ;
398
402
result. set_span ( sp) ;
399
- result. code ( code. to_owned ( ) ) ;
403
+ result. code ( code) ;
400
404
result
401
405
}
402
406
pub fn struct_fatal < ' a > ( & ' a self , msg : & str ) -> DiagnosticBuilder < ' a > {
@@ -420,7 +424,7 @@ impl Handler {
420
424
pub fn span_fatal_with_code < S : Into < MultiSpan > > ( & self ,
421
425
sp : S ,
422
426
msg : & str ,
423
- code : & str )
427
+ code : DiagnosticId )
424
428
-> FatalError {
425
429
self . emit_with_code ( & sp. into ( ) , msg, code, Fatal ) ;
426
430
FatalError
@@ -436,13 +440,13 @@ impl Handler {
436
440
result. set_span ( sp) ;
437
441
result
438
442
}
439
- pub fn span_err_with_code < S : Into < MultiSpan > > ( & self , sp : S , msg : & str , code : & str ) {
443
+ pub fn span_err_with_code < S : Into < MultiSpan > > ( & self , sp : S , msg : & str , code : DiagnosticId ) {
440
444
self . emit_with_code ( & sp. into ( ) , msg, code, Error ) ;
441
445
}
442
446
pub fn span_warn < S : Into < MultiSpan > > ( & self , sp : S , msg : & str ) {
443
447
self . emit ( & sp. into ( ) , msg, Warning ) ;
444
448
}
445
- pub fn span_warn_with_code < S : Into < MultiSpan > > ( & self , sp : S , msg : & str , code : & str ) {
449
+ pub fn span_warn_with_code < S : Into < MultiSpan > > ( & self , sp : S , msg : & str , code : DiagnosticId ) {
446
450
self . emit_with_code ( & sp. into ( ) , msg, code, Warning ) ;
447
451
}
448
452
pub fn span_bug < S : Into < MultiSpan > > ( & self , sp : S , msg : & str ) -> ! {
@@ -546,11 +550,11 @@ impl Handler {
546
550
self . abort_if_errors ( ) ;
547
551
}
548
552
}
549
- pub fn emit_with_code ( & self , msp : & MultiSpan , msg : & str , code : & str , lvl : Level ) {
553
+ pub fn emit_with_code ( & self , msp : & MultiSpan , msg : & str , code : DiagnosticId , lvl : Level ) {
550
554
if lvl == Warning && !self . can_emit_warnings {
551
555
return ;
552
556
}
553
- let mut db = DiagnosticBuilder :: new_with_code ( self , lvl, Some ( code. to_owned ( ) ) , msg) ;
557
+ let mut db = DiagnosticBuilder :: new_with_code ( self , lvl, Some ( code) , msg) ;
554
558
db. set_span ( msp. clone ( ) ) ;
555
559
db. emit ( ) ;
556
560
if !self . continue_after_error . get ( ) {
0 commit comments