Auto merge of #36131 - Florob:entry_typeck, r=eddyb

typeck: Fix error reporting of wrong entry function signatures

Expected and actual type were switched, this was introduced by
refactoring in 8eb12d91aa.
This commit is contained in:
bors 2016-11-01 23:50:05 -07:00 committed by GitHub
commit 35a1fefa88

View file

@ -194,12 +194,12 @@ fn require_c_abi_if_variadic(tcx: TyCtxt,
fn require_same_types<'a, 'tcx>(ccx: &CrateCtxt<'a, 'tcx>,
origin: TypeOrigin,
t1: Ty<'tcx>,
t2: Ty<'tcx>)
expected: Ty<'tcx>,
actual: Ty<'tcx>)
-> bool {
ccx.tcx.infer_ctxt(None, None, Reveal::NotSpecializable).enter(|infcx| {
if let Err(err) = infcx.eq_types(false, origin.clone(), t1, t2) {
infcx.report_mismatched_types(origin, t1, t2, err);
if let Err(err) = infcx.eq_types(false, origin.clone(), expected, actual) {
infcx.report_mismatched_types(origin, expected, actual, err);
false
} else {
true
@ -248,8 +248,8 @@ fn check_main_fn_ty(ccx: &CrateCtxt,
require_same_types(
ccx,
TypeOrigin::MainFunctionType(main_span),
main_t,
se_ty);
se_ty,
main_t);
}
_ => {
span_bug!(main_span,
@ -303,8 +303,8 @@ fn check_start_fn_ty(ccx: &CrateCtxt,
require_same_types(
ccx,
TypeOrigin::StartFunctionType(start_span),
start_t,
se_ty);
se_ty,
start_t);
}
_ => {
span_bug!(start_span,