diff --git a/src/terminator/mod.rs b/src/terminator/mod.rs
index a2966731491d13ae1a3047d6309e08d0c3df2872..b68c6ae5ec5cef19cda6ee2d40a227ff7027de50 100644
--- a/src/terminator/mod.rs
+++ b/src/terminator/mod.rs
@@ -112,7 +112,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
                     ty::TyFnPtr(sig) => {
                         let fn_ptr = self.eval_operand_to_primval(func)?.to_ptr()?;
                         let instance = self.memory.get_fn(fn_ptr)?;
-                        let instance_ty = instance.def.def_ty(self.tcx);
+                        let instance_ty = instance.ty(self.tcx);
                         let instance_ty = self.monomorphize(instance_ty, instance.substs);
                         match instance_ty.sty {
                             ty::TyFnDef(..) => {