@@ -19,6 +19,8 @@ use formality_types::{
1919impl super :: Check < ' _ > {
2020 #[ context( "check_trait_impl({trait_impl:?})" ) ]
2121 pub ( super ) fn check_trait_impl ( & self , trait_impl : & TraitImpl ) -> Fallible < ( ) > {
22+ let TraitImpl { binder, safety : _ } = trait_impl;
23+
2224 let mut env = Env :: default ( ) ;
2325
2426 let TraitImplBoundData {
@@ -27,7 +29,7 @@ impl super::Check<'_> {
2729 trait_parameters,
2830 where_clauses,
2931 impl_items,
30- } = env. instantiate_universally ( & trait_impl . binder ) ;
32+ } = env. instantiate_universally ( & binder) ;
3133
3234 let trait_ref = trait_id. with ( self_ty, trait_parameters) ;
3335
@@ -54,19 +56,21 @@ impl super::Check<'_> {
5456
5557 #[ context( "check_neg_trait_impl({trait_impl:?})" ) ]
5658 pub ( super ) fn check_neg_trait_impl ( & self , trait_impl : & NegTraitImpl ) -> Fallible < ( ) > {
59+ let NegTraitImpl { binder, safety } = trait_impl;
60+
5761 let mut env = Env :: default ( ) ;
5862
5963 let NegTraitImplBoundData {
6064 trait_id,
6165 self_ty,
6266 trait_parameters,
6367 where_clauses,
64- } = env. instantiate_universally ( & trait_impl . binder ) ;
68+ } = env. instantiate_universally ( binder) ;
6569
6670 let trait_ref = trait_id. with ( self_ty, trait_parameters) ;
6771
6872 // Negative impls are always safe (rustc E0198) regardless of the trait's safety.
69- if trait_impl . safety == Safety :: Unsafe {
73+ if * safety == Safety :: Unsafe {
7074 bail ! ( "negative impls cannot be unsafe" ) ;
7175 }
7276
0 commit comments