@@ -35,7 +35,7 @@ use rustc_session::config::{
35
35
use rustc_session:: Session ;
36
36
use rustc_span:: source_map:: SourceMap ;
37
37
use rustc_span:: symbol:: sym;
38
- use rustc_span:: { BytePos , FileName , InnerSpan , Pos , Span } ;
38
+ use rustc_span:: { FileName , InnerSpan , Span , SpanData } ;
39
39
use rustc_target:: spec:: { MergeFunctions , SanitizerSet } ;
40
40
use tracing:: debug;
41
41
@@ -1851,7 +1851,7 @@ fn spawn_work<'a, B: ExtraBackendMethods>(
1851
1851
1852
1852
enum SharedEmitterMessage {
1853
1853
Diagnostic ( Diagnostic ) ,
1854
- InlineAsmError ( u32 , String , Level , Option < ( String , Vec < InnerSpan > ) > ) ,
1854
+ InlineAsmError ( SpanData , String , Level , Option < ( String , Vec < InnerSpan > ) > ) ,
1855
1855
Fatal ( String ) ,
1856
1856
}
1857
1857
@@ -1873,12 +1873,12 @@ impl SharedEmitter {
1873
1873
1874
1874
pub fn inline_asm_error (
1875
1875
& self ,
1876
- cookie : u32 ,
1876
+ span : SpanData ,
1877
1877
msg : String ,
1878
1878
level : Level ,
1879
1879
source : Option < ( String , Vec < InnerSpan > ) > ,
1880
1880
) {
1881
- drop ( self . sender . send ( SharedEmitterMessage :: InlineAsmError ( cookie , msg, level, source) ) ) ;
1881
+ drop ( self . sender . send ( SharedEmitterMessage :: InlineAsmError ( span , msg, level, source) ) ) ;
1882
1882
}
1883
1883
1884
1884
pub fn fatal ( & self , msg : & str ) {
@@ -1963,17 +1963,12 @@ impl SharedEmitterMain {
1963
1963
dcx. emit_diagnostic ( d) ;
1964
1964
sess. dcx ( ) . abort_if_errors ( ) ;
1965
1965
}
1966
- Ok ( SharedEmitterMessage :: InlineAsmError ( cookie , msg, level, source) ) => {
1966
+ Ok ( SharedEmitterMessage :: InlineAsmError ( span , msg, level, source) ) => {
1967
1967
assert_matches ! ( level, Level :: Error | Level :: Warning | Level :: Note ) ;
1968
- let msg = msg. strip_prefix ( "error: " ) . unwrap_or ( & msg) . to_string ( ) ;
1969
1968
let mut err = Diag :: < ( ) > :: new ( sess. dcx ( ) , level, msg) ;
1970
-
1971
- // If the cookie is 0 then we don't have span information.
1972
- if cookie != 0 {
1973
- let pos = BytePos :: from_u32 ( cookie) ;
1974
- let span = Span :: with_root_ctxt ( pos, pos) ;
1975
- err. span ( span) ;
1976
- } ;
1969
+ if !span. is_dummy ( ) {
1970
+ err. span ( span. span ( ) ) ;
1971
+ }
1977
1972
1978
1973
// Point to the generated assembly if it is available.
1979
1974
if let Some ( ( buffer, spans) ) = source {
0 commit comments