@@ -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