@@ -75,8 +75,6 @@ pub(crate) struct Fulfill<'s, 'db, I: Interner> {
7575 /// The remaining goals to prove or refute
7676 obligations : Vec < Obligation < I > > ,
7777
78- priority : ClausePriority ,
79-
8078 /// Lifetime constraints that must be fulfilled for a solution to be fully
8179 /// validated.
8280 constraints : HashSet < InEnvironment < Constraint < I > > > ,
@@ -91,7 +89,6 @@ impl<'s, 'db, I: Interner> Fulfill<'s, 'db, I> {
9189 pub ( crate ) fn new < T : Fold < I , I , Result = T > + HasInterner < Interner = I > + Clone > (
9290 solver : & ' s mut Solver < ' db , I > ,
9391 ucanonical_goal : & UCanonical < InEnvironment < T > > ,
94- priority : ClausePriority ,
9592 ) -> ( Self , Substitution < I > , InEnvironment < T :: Result > ) {
9693 let ( infer, subst, canonical_goal) = InferenceTable :: from_canonical (
9794 solver. program . interner ( ) ,
@@ -102,7 +99,6 @@ impl<'s, 'db, I: Interner> Fulfill<'s, 'db, I> {
10299 solver,
103100 infer,
104101 obligations : vec ! [ ] ,
105- priority,
106102 constraints : HashSet :: new ( ) ,
107103 cannot_prove : false ,
108104 } ;
@@ -225,8 +221,7 @@ impl<'s, 'db, I: Interner> Fulfill<'s, 'db, I> {
225221 quantified,
226222 universes,
227223 } = self . infer . u_canonicalize ( interner, & quantified) ;
228- let ( result, new_priority) = self . solver . solve_goal ( quantified, minimums) ;
229- self . priority = self . priority & new_priority;
224+ let result = self . solver . solve_goal ( quantified, minimums) ;
230225 Ok ( PositiveSolution {
231226 free_vars,
232227 universes,
@@ -255,7 +250,7 @@ impl<'s, 'db, I: Interner> Fulfill<'s, 'db, I> {
255250 . infer
256251 . u_canonicalize ( self . solver . program . interner ( ) , & canonicalized) ;
257252 let mut minimums = Minimums :: new ( ) ; // FIXME -- minimums here seems wrong
258- if let ( Ok ( solution) , _priority ) = self . solver . solve_goal ( quantified, & mut minimums) {
253+ if let Ok ( solution) = self . solver . solve_goal ( quantified, & mut minimums) {
259254 if solution. is_unique ( ) {
260255 Err ( NoSolution )
261256 } else {
@@ -384,14 +379,14 @@ impl<'s, 'db, I: Interner> Fulfill<'s, 'db, I> {
384379 mut self ,
385380 subst : Substitution < I > ,
386381 minimums : & mut Minimums ,
387- ) -> ( Fallible < Solution < I > > , ClausePriority ) {
382+ ) -> Fallible < Solution < I > > {
388383 let outcome = match self . fulfill ( minimums) {
389384 Ok ( o) => o,
390- Err ( e) => return ( Err ( e) , self . priority ) ,
385+ Err ( e) => return Err ( e) ,
391386 } ;
392387
393388 if self . cannot_prove {
394- return ( Ok ( Solution :: Ambig ( Guidance :: Unknown ) ) , self . priority ) ;
389+ return Ok ( Solution :: Ambig ( Guidance :: Unknown ) ) ;
395390 }
396391
397392 if outcome. is_complete ( ) {
@@ -403,7 +398,7 @@ impl<'s, 'db, I: Interner> Fulfill<'s, 'db, I> {
403398 self . solver . program . interner ( ) ,
404399 & ConstrainedSubst { subst, constraints } ,
405400 ) ;
406- return ( Ok ( Solution :: Unique ( constrained. quantified ) ) , self . priority ) ;
401+ return Ok ( Solution :: Unique ( constrained. quantified ) ) ;
407402 }
408403
409404 // Otherwise, we have (positive or negative) obligations remaining, but
@@ -433,15 +428,12 @@ impl<'s, 'db, I: Interner> Fulfill<'s, 'db, I> {
433428 let subst = self
434429 . infer
435430 . canonicalize ( self . solver . program . interner ( ) , & subst) ;
436- return (
437- Ok ( Solution :: Ambig ( Guidance :: Suggested ( subst. quantified ) ) ) ,
438- self . priority ,
439- ) ;
431+ return Ok ( Solution :: Ambig ( Guidance :: Suggested ( subst. quantified ) ) ) ;
440432 }
441433 }
442434 }
443435
444- ( Ok ( Solution :: Ambig ( Guidance :: Unknown ) ) , self . priority )
436+ Ok ( Solution :: Ambig ( Guidance :: Unknown ) )
445437 } else {
446438 // While we failed to prove the goal, we still learned that
447439 // something had to hold. Here's an example where this happens:
@@ -466,10 +458,7 @@ impl<'s, 'db, I: Interner> Fulfill<'s, 'db, I> {
466458 let subst = self
467459 . infer
468460 . canonicalize ( self . solver . program . interner ( ) , & subst) ;
469- (
470- Ok ( Solution :: Ambig ( Guidance :: Definite ( subst. quantified ) ) ) ,
471- self . priority ,
472- )
461+ Ok ( Solution :: Ambig ( Guidance :: Definite ( subst. quantified ) ) )
473462 }
474463 }
475464
0 commit comments