File tree 1 file changed +9
-9
lines changed
prusti-viper/src/encoder/mir/specifications
1 file changed +9
-9
lines changed Original file line number Diff line number Diff line change @@ -161,15 +161,7 @@ pub mod trait_bounds {
161
161
let all_bounds_satisfied = param_env_constraint
162
162
. caller_bounds ( )
163
163
. iter ( )
164
- . all ( |predicate| {
165
- // Normalize any associated type projections.
166
- // This needs to be done because ghost constraints might contain "deeply nested"
167
- // associated types, e.g. `T: A<SomeAssocType = <Self as B>::OtherAssocType`
168
- // where `<Self as B>::OtherAssocType` can be normalized to some concrete type.
169
- let normalized_predicate = env. normalize_to ( predicate) ;
170
-
171
- env. evaluate_predicate ( normalized_predicate, param_env_lookup)
172
- } ) ;
164
+ . all ( |predicate| env. evaluate_predicate ( predicate, param_env_lookup) ) ;
173
165
174
166
trace ! ( "Constraint fulfilled: {all_bounds_satisfied}" ) ;
175
167
all_bounds_satisfied
@@ -208,6 +200,14 @@ pub mod trait_bounds {
208
200
param_env
209
201
) ;
210
202
203
+ // Normalize any associated type projections.
204
+ // This needs to be done because ghost constraints might contain "deeply nested"
205
+ // associated types, e.g. `T: A<SomeAssocType = <Self as B>::OtherAssocType`
206
+ // where `<Self as B>::OtherAssocType` can be normalized to some concrete type.
207
+ let param_env = env. normalize_to ( param_env) ;
208
+
209
+ trace ! ( "Constraints after normalization: {:#?}" , param_env) ;
210
+
211
211
param_env
212
212
}
213
213
You can’t perform that action at this time.
0 commit comments