@@ -19,6 +19,8 @@ use formality_types::{
19
19
impl super :: Check < ' _ > {
20
20
#[ context( "check_trait_impl({trait_impl:?})" ) ]
21
21
pub ( super ) fn check_trait_impl ( & self , trait_impl : & TraitImpl ) -> Fallible < ( ) > {
22
+ let TraitImpl { binder, safety : _ } = trait_impl;
23
+
22
24
let mut env = Env :: default ( ) ;
23
25
24
26
let TraitImplBoundData {
@@ -27,7 +29,7 @@ impl super::Check<'_> {
27
29
trait_parameters,
28
30
where_clauses,
29
31
impl_items,
30
- } = env. instantiate_universally ( & trait_impl . binder ) ;
32
+ } = env. instantiate_universally ( & binder) ;
31
33
32
34
let trait_ref = trait_id. with ( self_ty, trait_parameters) ;
33
35
@@ -54,19 +56,21 @@ impl super::Check<'_> {
54
56
55
57
#[ context( "check_neg_trait_impl({trait_impl:?})" ) ]
56
58
pub ( super ) fn check_neg_trait_impl ( & self , trait_impl : & NegTraitImpl ) -> Fallible < ( ) > {
59
+ let NegTraitImpl { binder, safety } = trait_impl;
60
+
57
61
let mut env = Env :: default ( ) ;
58
62
59
63
let NegTraitImplBoundData {
60
64
trait_id,
61
65
self_ty,
62
66
trait_parameters,
63
67
where_clauses,
64
- } = env. instantiate_universally ( & trait_impl . binder ) ;
68
+ } = env. instantiate_universally ( binder) ;
65
69
66
70
let trait_ref = trait_id. with ( self_ty, trait_parameters) ;
67
71
68
72
// 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 {
70
74
bail ! ( "negative impls cannot be unsafe" ) ;
71
75
}
72
76
0 commit comments