@@ -39,7 +39,7 @@ pub(super) trait SolveIteration<I: Interner>: SolveDatabase<I> {
39
39
& mut self ,
40
40
canonical_goal : & UCanonicalGoal < I > ,
41
41
minimums : & mut Minimums ,
42
- ) -> ( Fallible < Solution < I > > , ClausePriority ) {
42
+ ) -> Fallible < Solution < I > > {
43
43
let UCanonical {
44
44
universes,
45
45
canonical :
@@ -68,14 +68,14 @@ pub(super) trait SolveIteration<I: Interner>: SolveDatabase<I> {
68
68
// or from the lowered program, which includes fallback
69
69
// clauses. We try each approach in turn:
70
70
71
- let ( prog_solution, prog_prio ) = {
71
+ let prog_solution = {
72
72
debug_span ! ( "prog_clauses" ) ;
73
73
74
74
self . solve_from_clauses ( & canonical_goal, minimums)
75
75
} ;
76
76
debug ! ( ?prog_solution) ;
77
77
78
- ( prog_solution, prog_prio )
78
+ prog_solution
79
79
}
80
80
81
81
_ => {
@@ -107,11 +107,11 @@ trait SolveIterationHelpers<I: Interner>: SolveDatabase<I> {
107
107
& mut self ,
108
108
canonical_goal : & UCanonicalGoal < I > ,
109
109
minimums : & mut Minimums ,
110
- ) -> ( Fallible < Solution < I > > , ClausePriority ) {
110
+ ) -> Fallible < Solution < I > > {
111
111
let ( infer, subst, goal) = self . new_inference_table ( canonical_goal) ;
112
112
match Fulfill :: new_with_simplification ( self , infer, subst, goal) {
113
- Ok ( fulfill) => ( fulfill. solve ( minimums) , ClausePriority :: High ) ,
114
- Err ( e) => ( Err ( e) , ClausePriority :: High ) ,
113
+ Ok ( fulfill) => fulfill. solve ( minimums) ,
114
+ Err ( e) => Err ( e) ,
115
115
}
116
116
}
117
117
@@ -122,7 +122,7 @@ trait SolveIterationHelpers<I: Interner>: SolveDatabase<I> {
122
122
& mut self ,
123
123
canonical_goal : & UCanonical < InEnvironment < DomainGoal < I > > > ,
124
124
minimums : & mut Minimums ,
125
- ) -> ( Fallible < Solution < I > > , ClausePriority ) {
125
+ ) -> Fallible < Solution < I > > {
126
126
let mut clauses = vec ! [ ] ;
127
127
128
128
let db = self . db ( ) ;
@@ -137,7 +137,7 @@ trait SolveIterationHelpers<I: Interner>: SolveDatabase<I> {
137
137
match program_clauses_that_could_match ( db, canonical_goal) {
138
138
Ok ( goal_clauses) => clauses. extend ( goal_clauses. into_iter ( ) . filter ( could_match) ) ,
139
139
Err ( Floundered ) => {
140
- return ( Ok ( Solution :: Ambig ( Guidance :: Unknown ) ) , ClausePriority :: High ) ;
140
+ return Ok ( Solution :: Ambig ( Guidance :: Unknown ) ) ;
141
141
}
142
142
}
143
143
@@ -155,7 +155,7 @@ trait SolveIterationHelpers<I: Interner>: SolveDatabase<I> {
155
155
156
156
// If we have a completely ambiguous answer, it's not going to get better, so stop
157
157
if cur_solution == Some ( ( Solution :: Ambig ( Guidance :: Unknown ) , ClausePriority :: High ) ) {
158
- return ( Ok ( Solution :: Ambig ( Guidance :: Unknown ) ) , ClausePriority :: High ) ;
158
+ return Ok ( Solution :: Ambig ( Guidance :: Unknown ) ) ;
159
159
}
160
160
161
161
let ProgramClauseData ( implication) = program_clause. data ( self . interner ( ) ) ;
@@ -184,7 +184,12 @@ trait SolveIterationHelpers<I: Interner>: SolveDatabase<I> {
184
184
debug ! ( "Error" ) ;
185
185
}
186
186
}
187
- cur_solution. map_or ( ( Err ( NoSolution ) , ClausePriority :: High ) , |( s, p) | ( Ok ( s) , p) )
187
+
188
+ if let Some ( ( s, _) ) = cur_solution {
189
+ Ok ( s)
190
+ } else {
191
+ Err ( NoSolution )
192
+ }
188
193
}
189
194
190
195
fn new_inference_table < T : Fold < I , Result = T > + HasInterner < Interner = I > + Clone > (
0 commit comments