From 8047c0cd68baaee21ac89ac7d933bc84b7ebcf3e Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 8 Mar 2012 15:07:35 -0800 Subject: [PATCH] rustc: Typecheck dereference operations on safe references. They require unsafe blocks for now. This will be removed once they typecheck properly. --- src/rustc/middle/typeck.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/rustc/middle/typeck.rs b/src/rustc/middle/typeck.rs index 8770a109f1db..85dbedaefcc0 100644 --- a/src/rustc/middle/typeck.rs +++ b/src/rustc/middle/typeck.rs @@ -2170,6 +2170,13 @@ fn check_expr_with_unifier(fcx: @fn_ctxt, expr: @ast::expr, unify: unifier, oper_t = inner.ty; require_unsafe(tcx.sess, fcx.purity, expr.span); } + ty::ty_rptr(_, inner) { + // FIXME: This shouldn't be unsafe for now, but we enforce it + // for now to safeguard the language until we're properly + // typechecking regions. + oper_t = inner.ty; + require_unsafe(tcx.sess, fcx.purity, expr.span); + } _ { tcx.sess.span_err(expr.span, #fmt("Type %s cannot be dereferenced",