diff --git a/src/librustc/middle/typeck/check/regionck.rs b/src/librustc/middle/typeck/check/regionck.rs index dff794c548bd5..56a8aaecae281 100644 --- a/src/librustc/middle/typeck/check/regionck.rs +++ b/src/librustc/middle/typeck/check/regionck.rs @@ -413,12 +413,9 @@ fn constrain_derefs(rcx: @mut Rcx, match ty::deref(tcx, derefd_ty, true) { Some(mt) => derefd_ty = mt.ty, - None => { - tcx.sess.span_bug( - deref_expr.span, - fmt!("%?'th deref is of a non-deref'able type `%s`", - i, rcx.fcx.infcx().ty_to_str(derefd_ty))); - } + /* if this type can't be dereferenced, then there's already an error + in the session saying so. Just bail out for now */ + None => break } } } diff --git a/src/test/compile-fail/deref-non-pointer.rs b/src/test/compile-fail/deref-non-pointer.rs index 5f93faef5fc1d..7b1b0f6243ac4 100644 --- a/src/test/compile-fail/deref-non-pointer.rs +++ b/src/test/compile-fail/deref-non-pointer.rs @@ -8,9 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// error-pattern:cannot be dereferenced fn main() { - match *1 { + match *1 { //~ ERROR: cannot be dereferenced _ => { fail!(); } } }