From 38c620e75829b2eb09417479aa8c1e2dd69c8d7e Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Fri, 18 Oct 2013 01:14:47 -0400 Subject: [PATCH] add feature gate for managed boxes I'll flip this on after doing a snapshot. This syntax may or may not stay around, and managed boxes are currently not very useful. They have the same overall performance characteristics as `std::rc::Rc`, but are significantly slower, allocate larger boxes and hold onto the memory beyond when it is needed due to lacking move semantics. There are currently two useful aspects of the type: * the dereference sugar, which we should implement for `Rc` * the annihilator freeing cycles at the end of the task --- src/librustc/front/feature_gate.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/librustc/front/feature_gate.rs b/src/librustc/front/feature_gate.rs index 0f8307b87e5..000dea12b07 100644 --- a/src/librustc/front/feature_gate.rs +++ b/src/librustc/front/feature_gate.rs @@ -35,6 +35,7 @@ ("struct_variant", Active), ("once_fns", Active), ("asm", Active), + ("managed_boxes", Active), // These are used to test this portion of the compiler, they don't actually // mean anything @@ -137,6 +138,15 @@ fn visit_ty(&mut self, t: &ast::Ty, _: ()) { experimental and likely to be removed"); }, + // NOTE: enable after snapshot + ast::ty_box(_) if false => { + self.gate_feature("managed_boxes", t.span, "The managed box syntax may be replaced \ + by a library type, and a garbage \ + collector is not yet implemented. \ + Consider using the `std::rc` module \ + as it performs much better as a \ + reference counting implementation."); + } _ => {} } -- 2.44.0