@@ -1058,20 +1058,11 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
10581058 // Heuristics: show the diagnostics when there are no candidates in crate.
10591059 if let Ok ( candidate_set) = self . assemble_candidates ( stack) {
10601060 let mut no_candidates_apply = true ;
1061- {
1062- let evaluated_candidates =
1063- candidate_set. vec . iter ( ) . map ( |c| self . evaluate_candidate ( stack, & c) ) ;
1064-
1065- for ec in evaluated_candidates {
1066- match ec {
1067- Ok ( c) => {
1068- if c. may_apply ( ) {
1069- no_candidates_apply = false ;
1070- break ;
1071- }
1072- }
1073- Err ( e) => return Err ( e. into ( ) ) ,
1074- }
1061+
1062+ for c in candidate_set. vec . iter ( ) {
1063+ if self . evaluate_candidate ( stack, & c) ?. may_apply ( ) {
1064+ no_candidates_apply = false ;
1065+ break ;
10751066 }
10761067 }
10771068
@@ -3182,11 +3173,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
31823173 assert_eq ! ( tys_a. len( ) , tys_b. len( ) ) ;
31833174
31843175 // The last field of the tuple has to exist.
3185- let ( & a_last, a_mid) = if let Some ( x) = tys_a. split_last ( ) {
3186- x
3187- } else {
3188- return Err ( Unimplemented ) ;
3189- } ;
3176+ let ( & a_last, a_mid) = tys_a. split_last ( ) . ok_or ( Unimplemented ) ?;
31903177 let & b_last = tys_b. last ( ) . unwrap ( ) ;
31913178
31923179 // Check that the source tuple with the target's
0 commit comments