@@ -664,7 +664,21 @@ impl<'a, 'tcx> Decodable<CacheDecoder<'a, 'tcx>> for ExpnId {
664664
665665 let data: ExpnData = decoder
666666 . with_position ( pos. to_usize ( ) , |decoder| decode_tagged ( decoder, TAG_EXPN_DATA ) ) ?;
667- rustc_span:: hygiene:: register_local_expn_id ( data, hash)
667+ let expn_id = rustc_span:: hygiene:: register_local_expn_id ( data, hash) ;
668+
669+ #[ cfg( debug_assertions) ]
670+ {
671+ use rustc_data_structures:: stable_hasher:: { HashStable , StableHasher } ;
672+ let mut hcx = decoder. tcx . create_stable_hashing_context ( ) ;
673+ let mut hasher = StableHasher :: new ( ) ;
674+ hcx. while_hashing_spans ( true , |hcx| {
675+ expn_id. expn_data ( ) . hash_stable ( hcx, & mut hasher)
676+ } ) ;
677+ let local_hash: u64 = hasher. finish ( ) ;
678+ debug_assert_eq ! ( hash. local_hash( ) , local_hash) ;
679+ }
680+
681+ expn_id
668682 } else {
669683 let index_guess = decoder. foreign_expn_data [ & hash] ;
670684 decoder. tcx . cstore_untracked ( ) . expn_hash_to_expn_id (
@@ -675,16 +689,7 @@ impl<'a, 'tcx> Decodable<CacheDecoder<'a, 'tcx>> for ExpnId {
675689 )
676690 } ;
677691
678- #[ cfg( debug_assertions) ]
679- {
680- use rustc_data_structures:: stable_hasher:: { HashStable , StableHasher } ;
681- let mut hcx = decoder. tcx . create_stable_hashing_context ( ) ;
682- let mut hasher = StableHasher :: new ( ) ;
683- hcx. while_hashing_spans ( true , |hcx| expn_id. expn_data ( ) . hash_stable ( hcx, & mut hasher) ) ;
684- let local_hash: u64 = hasher. finish ( ) ;
685- debug_assert_eq ! ( hash. local_hash( ) , local_hash) ;
686- }
687-
692+ debug_assert_eq ! ( expn_id. krate, krate) ;
688693 Ok ( expn_id)
689694 }
690695}
0 commit comments