diff --git a/src/librustc/metadata/tydecode.rs b/src/librustc/metadata/tydecode.rs index 18447e6cbc8..31561e730d5 100644 --- a/src/librustc/metadata/tydecode.rs +++ b/src/librustc/metadata/tydecode.rs @@ -551,6 +551,7 @@ fn parse_sig(st: &mut PState, conv: conv_did) -> ty::FnSig { let variadic = match next(st) { 'V' => true, 'N' => false, + r => fail!(format!("Bad variadic: {}", r)), }; let ret_ty = parse_ty(st, |x,y| conv(x,y)); ty::FnSig {binder_id: id, diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index ecb178e2c97..5072a95ddcf 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -4245,7 +4245,8 @@ pub fn normalize_ty(cx: ctxt, t: t) -> t { // are erased at trans time. ty::FnSig { binder_id: ast::DUMMY_NODE_ID, inputs: ty_fold::fold_ty_vec(self, sig.inputs), - output: self.fold_ty(sig.output) } + output: self.fold_ty(sig.output), + variadic: sig.variadic } } } } @@ -4572,7 +4573,7 @@ pub fn hash_crate_independent(tcx: ctxt, t: t, local_hash: @str) -> u64 { ReEarlyBound(*) | ReLateBound(*) | ReFree(*) | - ReStatic(*) | + ReScope(*) | ReInfer(*) => { tcx.sess.bug("non-static region found when hashing a type") }