diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2012-05-03 17:07:57 -0700 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2012-05-03 17:08:18 -0700 |
| commit | a7e0eb35819bb9171b60f2854753f7784da6a087 (patch) | |
| tree | 2412d211f8a533185669d3fc8c5c2ce02e54f952 /src/rustc | |
| parent | c6d33c3d37c0e9f8db88b7402da45506d7f44d33 (diff) | |
| download | rust-a7e0eb35819bb9171b60f2854753f7784da6a087.tar.gz rust-a7e0eb35819bb9171b60f2854753f7784da6a087.zip | |
allow enums that ref themselves via unsafe pointers
Diffstat (limited to 'src/rustc')
| -rw-r--r-- | src/rustc/middle/ty.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/rustc/middle/ty.rs b/src/rustc/middle/ty.rs index cf8f223afd9..a64c1a5a777 100644 --- a/src/rustc/middle/ty.rs +++ b/src/rustc/middle/ty.rs @@ -1475,11 +1475,14 @@ fn is_instantiable(cx: ctxt, r_ty: t) -> bool { ty_box(mt) | ty_uniq(mt) | - ty_ptr(mt) | ty_rptr(_, mt) { be type_requires(cx, seen, r_ty, mt.ty); } + ty_ptr(mt) { + false // unsafe ptrs can always be NULL + } + ty_rec(fields) { vec::any(fields) {|field| type_requires(cx, seen, r_ty, field.mt.ty) |
