@@ -16,7 +16,7 @@ use crate::ty::{self, AdtKind, Ty, TyCtxt};
1616use rustc_hir as hir;
1717use rustc_hir:: def_id:: DefId ;
1818use rustc_span:: symbol:: Symbol ;
19- use rustc_span:: { Span , DUMMY_SP } ;
19+ use rustc_span:: { Span , SpanId , DUMMY_SP , DUMMY_SPID } ;
2020use smallvec:: SmallVec ;
2121
2222use std:: borrow:: Cow ;
@@ -568,25 +568,25 @@ pub struct VtableTraitAliasData<'tcx, N> {
568568#[ derive( Clone , Debug , PartialEq , Eq , Hash , HashStable ) ]
569569pub enum ObjectSafetyViolation {
570570 /// `Self: Sized` declared on the trait.
571- SizedSelf ( SmallVec < [ Span ; 1 ] > ) ,
571+ SizedSelf ( SmallVec < [ SpanId ; 1 ] > ) ,
572572
573573 /// Supertrait reference references `Self` an in illegal location
574574 /// (e.g., `trait Foo : Bar<Self>`).
575- SupertraitSelf ( SmallVec < [ Span ; 1 ] > ) ,
575+ SupertraitSelf ( SmallVec < [ SpanId ; 1 ] > ) ,
576576
577577 /// Method has something illegal.
578- Method ( Symbol , MethodViolationCode , Span ) ,
578+ Method ( Symbol , MethodViolationCode , SpanId ) ,
579579
580580 /// Associated const.
581- AssocConst ( Symbol , Span ) ,
581+ AssocConst ( Symbol , SpanId ) ,
582582}
583583
584584impl ObjectSafetyViolation {
585585 pub fn error_msg ( & self ) -> Cow < ' static , str > {
586586 match * self {
587587 ObjectSafetyViolation :: SizedSelf ( _) => "it requires `Self: Sized`" . into ( ) ,
588588 ObjectSafetyViolation :: SupertraitSelf ( ref spans) => {
589- if spans. iter ( ) . any ( |sp| * sp != DUMMY_SP ) {
589+ if spans. iter ( ) . any ( |sp| * sp != DUMMY_SPID ) {
590590 "it uses `Self` as a type parameter in this" . into ( )
591591 } else {
592592 "it cannot use `Self` as a type parameter in a supertrait or `where`-clause"
@@ -599,7 +599,7 @@ impl ObjectSafetyViolation {
599599 ObjectSafetyViolation :: Method (
600600 name,
601601 MethodViolationCode :: ReferencesSelfInput ( _) ,
602- DUMMY_SP ,
602+ DUMMY_SPID ,
603603 ) => format ! ( "method `{}` references the `Self` type in its parameters" , name) . into ( ) ,
604604 ObjectSafetyViolation :: Method ( name, MethodViolationCode :: ReferencesSelfInput ( _) , _) => {
605605 format ! ( "method `{}` references the `Self` type in this parameter" , name) . into ( )
@@ -620,14 +620,14 @@ impl ObjectSafetyViolation {
620620 ObjectSafetyViolation :: Method ( name, MethodViolationCode :: UndispatchableReceiver , _) => {
621621 format ! ( "method `{}`'s `self` parameter cannot be dispatched on" , name) . into ( )
622622 }
623- ObjectSafetyViolation :: AssocConst ( name, DUMMY_SP ) => {
623+ ObjectSafetyViolation :: AssocConst ( name, DUMMY_SPID ) => {
624624 format ! ( "it contains associated `const` `{}`" , name) . into ( )
625625 }
626626 ObjectSafetyViolation :: AssocConst ( ..) => "it contains this associated `const`" . into ( ) ,
627627 }
628628 }
629629
630- pub fn solution ( & self ) -> Option < ( String , Option < ( String , Span ) > ) > {
630+ pub fn solution ( & self ) -> Option < ( String , Option < ( String , SpanId ) > ) > {
631631 Some ( match * self {
632632 ObjectSafetyViolation :: SizedSelf ( _) | ObjectSafetyViolation :: SupertraitSelf ( _) => {
633633 return None ;
@@ -655,15 +655,15 @@ impl ObjectSafetyViolation {
655655 } )
656656 }
657657
658- pub fn spans ( & self ) -> SmallVec < [ Span ; 1 ] > {
659- // When `span` comes from a separate crate, it'll be `DUMMY_SP `. Treat it as `None` so
658+ pub fn spans ( & self ) -> SmallVec < [ SpanId ; 1 ] > {
659+ // When `span` comes from a separate crate, it'll be `DUMMY_SPID `. Treat it as `None` so
660660 // diagnostics use a `note` instead of a `span_label`.
661661 match self {
662662 ObjectSafetyViolation :: SupertraitSelf ( spans)
663663 | ObjectSafetyViolation :: SizedSelf ( spans) => spans. clone ( ) ,
664664 ObjectSafetyViolation :: AssocConst ( _, span)
665665 | ObjectSafetyViolation :: Method ( _, _, span)
666- if * span != DUMMY_SP =>
666+ if * span != DUMMY_SPID =>
667667 {
668668 smallvec ! [ * span]
669669 }
@@ -676,7 +676,7 @@ impl ObjectSafetyViolation {
676676#[ derive( Copy , Clone , Debug , PartialEq , Eq , Hash , HashStable ) ]
677677pub enum MethodViolationCode {
678678 /// e.g., `fn foo()`
679- StaticMethod ( Option < ( & ' static str , Span ) > ) ,
679+ StaticMethod ( Option < ( & ' static str , SpanId ) > ) ,
680680
681681 /// e.g., `fn foo(&self, x: Self)`
682682 ReferencesSelfInput ( usize ) ,
0 commit comments