diff options
| author | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2017-08-23 17:24:38 +0200 |
|---|---|---|
| committer | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2017-08-23 17:24:38 +0200 |
| commit | 7b8e2c772df6c62e01ab376d2ca2b539bbc0989a (patch) | |
| tree | 355fe6db597c9ad906d01230bee4c3fb5e672a85 | |
| parent | 4cfda6ae966aafed35cc9ac00374c63f09df25df (diff) | |
| download | rust-7b8e2c772df6c62e01ab376d2ca2b539bbc0989a.tar.gz rust-7b8e2c772df6c62e01ab376d2ca2b539bbc0989a.zip | |
Rustup (`Clone` is now a builtin trait)
| -rw-r--r-- | src/librustc_mir/interpret/eval_context.rs | 6 | ||||
| -rw-r--r-- | src/librustc_mir/interpret/terminator/mod.rs | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/librustc_mir/interpret/eval_context.rs b/src/librustc_mir/interpret/eval_context.rs index a5f5072dc29..d4b7761567d 100644 --- a/src/librustc_mir/interpret/eval_context.rs +++ b/src/librustc_mir/interpret/eval_context.rs @@ -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), } } diff --git a/src/librustc_mir/interpret/terminator/mod.rs b/src/librustc_mir/interpret/terminator/mod.rs index dde541ed5f7..c0d91cfb0d1 100644 --- a/src/librustc_mir/interpret/terminator/mod.rs +++ b/src/librustc_mir/interpret/terminator/mod.rs @@ -297,6 +297,7 @@ impl<'a, 'tcx, M: Machine<'tcx>> EvalContext<'a, 'tcx, M> { } Ok(()) } + ty::InstanceDef::CloneShim(..) | ty::InstanceDef::Item(_) => { let mut args = Vec::new(); for arg in arg_operands { |
