@@ -262,7 +262,7 @@ impl error::Error for ExplicitBug {
262262 }
263263}
264264
265- pub use diagnostic:: { Diagnostic , SubDiagnostic , DiagnosticStyledString } ;
265+ pub use diagnostic:: { Diagnostic , SubDiagnostic , DiagnosticStyledString , DiagnosticId } ;
266266pub use diagnostic_builder:: DiagnosticBuilder ;
267267
268268/// A handler deals with errors; certain errors
@@ -337,11 +337,11 @@ impl Handler {
337337 pub fn struct_span_warn_with_code < ' a , S : Into < MultiSpan > > ( & ' a self ,
338338 sp : S ,
339339 msg : & str ,
340- code : & str )
340+ code : DiagnosticId )
341341 -> DiagnosticBuilder < ' a > {
342342 let mut result = DiagnosticBuilder :: new ( self , Level :: Warning , msg) ;
343343 result. set_span ( sp) ;
344- result. code ( code. to_owned ( ) ) ;
344+ result. code ( code) ;
345345 if !self . can_emit_warnings {
346346 result. cancel ( ) ;
347347 }
@@ -365,20 +365,24 @@ impl Handler {
365365 pub fn struct_span_err_with_code < ' a , S : Into < MultiSpan > > ( & ' a self ,
366366 sp : S ,
367367 msg : & str ,
368- code : & str )
368+ code : DiagnosticId )
369369 -> DiagnosticBuilder < ' a > {
370370 let mut result = DiagnosticBuilder :: new ( self , Level :: Error , msg) ;
371371 result. set_span ( sp) ;
372- result. code ( code. to_owned ( ) ) ;
372+ result. code ( code) ;
373373 result
374374 }
375375 // FIXME: This method should be removed (every error should have an associated error code).
376376 pub fn struct_err < ' a > ( & ' a self , msg : & str ) -> DiagnosticBuilder < ' a > {
377377 DiagnosticBuilder :: new ( self , Level :: Error , msg)
378378 }
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 > {
380384 let mut result = DiagnosticBuilder :: new ( self , Level :: Error , msg) ;
381- result. code ( code. to_owned ( ) ) ;
385+ result. code ( code) ;
382386 result
383387 }
384388 pub fn struct_span_fatal < ' a , S : Into < MultiSpan > > ( & ' a self ,
@@ -392,11 +396,11 @@ impl Handler {
392396 pub fn struct_span_fatal_with_code < ' a , S : Into < MultiSpan > > ( & ' a self ,
393397 sp : S ,
394398 msg : & str ,
395- code : & str )
399+ code : DiagnosticId )
396400 -> DiagnosticBuilder < ' a > {
397401 let mut result = DiagnosticBuilder :: new ( self , Level :: Fatal , msg) ;
398402 result. set_span ( sp) ;
399- result. code ( code. to_owned ( ) ) ;
403+ result. code ( code) ;
400404 result
401405 }
402406 pub fn struct_fatal < ' a > ( & ' a self , msg : & str ) -> DiagnosticBuilder < ' a > {
@@ -420,7 +424,7 @@ impl Handler {
420424 pub fn span_fatal_with_code < S : Into < MultiSpan > > ( & self ,
421425 sp : S ,
422426 msg : & str ,
423- code : & str )
427+ code : DiagnosticId )
424428 -> FatalError {
425429 self . emit_with_code ( & sp. into ( ) , msg, code, Fatal ) ;
426430 FatalError
@@ -436,13 +440,13 @@ impl Handler {
436440 result. set_span ( sp) ;
437441 result
438442 }
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 ) {
440444 self . emit_with_code ( & sp. into ( ) , msg, code, Error ) ;
441445 }
442446 pub fn span_warn < S : Into < MultiSpan > > ( & self , sp : S , msg : & str ) {
443447 self . emit ( & sp. into ( ) , msg, Warning ) ;
444448 }
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 ) {
446450 self . emit_with_code ( & sp. into ( ) , msg, code, Warning ) ;
447451 }
448452 pub fn span_bug < S : Into < MultiSpan > > ( & self , sp : S , msg : & str ) -> ! {
@@ -546,11 +550,11 @@ impl Handler {
546550 self . abort_if_errors ( ) ;
547551 }
548552 }
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 ) {
550554 if lvl == Warning && !self . can_emit_warnings {
551555 return ;
552556 }
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) ;
554558 db. set_span ( msp. clone ( ) ) ;
555559 db. emit ( ) ;
556560 if !self . continue_after_error . get ( ) {
0 commit comments