diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-03-08 15:07:35 -0800 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-03-08 15:08:26 -0800 |
| commit | 8047c0cd68baaee21ac89ac7d933bc84b7ebcf3e (patch) | |
| tree | d3292fadb293ca593ec8fb1e3991a929cc160d38 /src | |
| parent | 57596cbe53e826feec2d0fba5293249306d70403 (diff) | |
| download | rust-8047c0cd68baaee21ac89ac7d933bc84b7ebcf3e.tar.gz rust-8047c0cd68baaee21ac89ac7d933bc84b7ebcf3e.zip | |
rustc: Typecheck dereference operations on safe references.
They require unsafe blocks for now. This will be removed once they typecheck properly.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rustc/middle/typeck.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/rustc/middle/typeck.rs b/src/rustc/middle/typeck.rs index 8770a109f1d..85dbedaefcc 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", |
