use crate::type_of::LayoutLlvmExt;
use crate::va_arg::emit_va_arg;
use crate::value::Value;
-use rustc::hir;
use rustc::ty::layout::{self, FnAbiExt, HasTyCtxt, LayoutOf, Primitive};
use rustc::ty::{self, Ty};
use rustc::{bug, span_bug};
use rustc_codegen_ssa::mir::operand::{OperandRef, OperandValue};
use rustc_codegen_ssa::mir::place::PlaceRef;
use rustc_codegen_ssa::MemFlags;
+use rustc_hir as hir;
use rustc_target::abi::HasDataLayout;
use syntax::ast;
use rustc_codegen_ssa::common::span_invalid_monomorphization_error;
use rustc_codegen_ssa::traits::*;
-use syntax_pos::Span;
+use rustc_span::Span;
use std::cmp::Ordering;
use std::{i128, iter, u128};
span: Span,
) {
let tcx = self.tcx;
- let callee_ty = instance.ty(tcx);
+ let callee_ty = instance.monomorphic_ty(tcx);
let (def_id, substs) = match callee_ty.kind {
ty::FnDef(def_id, substs) => (def_id, substs),