about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-05-12 21:22:50 -0700
committerAlex Crichton <alex@alexcrichton.com>2014-05-13 23:59:03 -0700
commit82a8a5ebb3b3c34cd135da511641a9df28e2c30e (patch)
tree26cb0ea2ea9f95e9997e4ffb3b7428251d801212 /src
parent57f3b6ee5c7c3261592342118b05b93409e285ce (diff)
downloadrust-82a8a5ebb3b3c34cd135da511641a9df28e2c30e.tar.gz
rust-82a8a5ebb3b3c34cd135da511641a9df28e2c30e.zip
core: Document should_not_exist's existence
Explain why it should not exist, and the plan of attack for removing it.
Diffstat (limited to 'src')
-rw-r--r--src/libcore/should_not_exist.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libcore/should_not_exist.rs b/src/libcore/should_not_exist.rs
index 7ecf53a6348..9272f24da9d 100644
--- a/src/libcore/should_not_exist.rs
+++ b/src/libcore/should_not_exist.rs
@@ -8,6 +8,22 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// As noted by this file name, this file should not exist. This file should not
+// exist because it performs allocations which libcore is not allowed to do. The
+// reason for this file's existence is that the `~[T]` and `~str` types are
+// language-defined types. Traits are defined in libcore, such as `Clone`, which
+// these types need to implement, but the implementation can only be found in
+// libcore.
+//
+// Plan of attack for solving this problem:
+//
+//      1. Implement DST
+//      2. Make `Box<T>` not a language feature
+//      3. Move `Box<T>` to a separate crate, liballoc.
+//      4. Implement relevant trais in liballoc, not libcore
+//
+// Currently, no progress has been made on this list.
+
 use char::Char;
 use clone::Clone;
 use container::Container;