]> git.lizzy.rs Git - rust.git/commitdiff
Rustup (`Clone` is now a builtin trait)
authorOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Wed, 23 Aug 2017 15:24:38 +0000 (17:24 +0200)
committerOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Wed, 23 Aug 2017 15:24:38 +0000 (17:24 +0200)
src/librustc_mir/interpret/eval_context.rs
src/librustc_mir/interpret/terminator/mod.rs

index a5f5072dc29098304f76ebdeddadc93fb2e939d8..d4b7761567de7577e95f5a74817158a002174162 100644 (file)
@@ -2270,6 +2270,12 @@ fn resolve_associated_item<'a, 'tcx>(
                 substs: rcvr_substs,
             }
         }
+        ::rustc::traits::VtableBuiltin(..) if Some(trait_id) == tcx.lang_items.clone_trait() => {
+            ty::Instance {
+                def: ty::InstanceDef::CloneShim(def_id, trait_ref.self_ty()),
+                substs: rcvr_substs
+            }
+        }
         _ => bug!("static call to invalid vtable: {:?}", vtbl),
     }
 }
index dde541ed5f7dd9ddb0ac26751a971dd090063684..c0d91cfb0d1446f5829acc5d88f92987bd5e8614 100644 (file)
@@ -297,6 +297,7 @@ fn eval_fn_call(
                 }
                 Ok(())
             }
+            ty::InstanceDef::CloneShim(..) |
             ty::InstanceDef::Item(_) => {
                 let mut args = Vec::new();
                 for arg in arg_operands {