@@ -1296,14 +1296,6 @@ impl<'cx, 'gcx, 'tcx> SelectionContext<'cx, 'gcx, 'tcx> {
12961296 } else if self . tcx ( ) . lang_items . unsize_trait ( ) == Some ( def_id) {
12971297 self . assemble_candidates_for_unsizing ( obligation, & mut candidates) ;
12981298 } else {
1299- if self . tcx ( ) . lang_items . clone_trait ( ) == Some ( def_id) {
1300- // Same builtin conditions as `Copy`, i.e. every type which has builtin support
1301- // for `Copy` also has builtin support for `Clone`, + tuples and arrays of `Clone`
1302- // types have builtin support for `Clone`.
1303- let clone_conditions = self . copy_conditions ( obligation) ;
1304- self . assemble_builtin_bound_candidates ( clone_conditions, & mut candidates) ?;
1305- }
1306-
13071299 self . assemble_closure_candidates ( obligation, & mut candidates) ?;
13081300 self . assemble_fn_pointer_candidates ( obligation, & mut candidates) ?;
13091301 self . assemble_candidates_from_impls ( obligation, & mut candidates) ?;
@@ -2172,8 +2164,8 @@ impl<'cx, 'gcx, 'tcx> SelectionContext<'cx, 'gcx, 'tcx> {
21722164
21732165 match candidate {
21742166 BuiltinCandidate { has_nested } => {
2175- let data = self . confirm_builtin_candidate ( obligation , has_nested ) ;
2176- Ok ( VtableBuiltin ( data ) )
2167+ Ok ( VtableBuiltin (
2168+ self . confirm_builtin_candidate ( obligation , has_nested ) ) )
21772169 }
21782170
21792171 ParamCandidate ( param) => {
@@ -2279,9 +2271,6 @@ impl<'cx, 'gcx, 'tcx> SelectionContext<'cx, 'gcx, 'tcx> {
22792271 _ if Some ( trait_def) == self . tcx ( ) . lang_items . copy_trait ( ) => {
22802272 self . copy_conditions ( obligation)
22812273 }
2282- _ if Some ( trait_def) == self . tcx ( ) . lang_items . clone_trait ( ) => {
2283- self . copy_conditions ( obligation)
2284- }
22852274 _ => bug ! ( "unexpected builtin trait {:?}" , trait_def)
22862275 } ;
22872276 let nested = match conditions {
@@ -2302,7 +2291,6 @@ impl<'cx, 'gcx, 'tcx> SelectionContext<'cx, 'gcx, 'tcx> {
23022291
23032292 debug ! ( "confirm_builtin_candidate: obligations={:?}" ,
23042293 obligations) ;
2305-
23062294 VtableBuiltinData { nested : obligations }
23072295 }
23082296
@@ -2610,8 +2598,8 @@ impl<'cx, 'gcx, 'tcx> SelectionContext<'cx, 'gcx, 'tcx> {
26102598
26112599 fn confirm_builtin_unsize_candidate ( & mut self ,
26122600 obligation : & TraitObligation < ' tcx > , )
2613- -> Result < VtableBuiltinData < PredicateObligation < ' tcx > > , SelectionError < ' tcx > >
2614- {
2601+ -> Result < VtableBuiltinData < PredicateObligation < ' tcx > > ,
2602+ SelectionError < ' tcx > > {
26152603 let tcx = self . tcx ( ) ;
26162604
26172605 // assemble_candidates_for_unsizing should ensure there are no late bound
0 commit comments