about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2014-01-31 18:25:08 -0800
committerHuon Wilson <dbau.pp+github@gmail.com>2014-02-02 01:44:50 +1100
commitc594e675eb3db25cd018d58d8fe06ef6ea2c90de (patch)
tree4520d9b24ded21fcff4dfe3712de2665d3ed779f /src/libsyntax
parent449a7a817ff58288084b49665d5186674255c949 (diff)
downloadrust-c594e675eb3db25cd018d58d8fe06ef6ea2c90de.tar.gz
rust-c594e675eb3db25cd018d58d8fe06ef6ea2c90de.zip
librustc: Remove `@str` from the language
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ext/expand.rs4
-rw-r--r--src/libsyntax/parse/obsolete.rs5
-rw-r--r--src/libsyntax/parse/parser.rs5
-rw-r--r--src/libsyntax/parse/token.rs9
-rw-r--r--src/libsyntax/util/interner.rs2
5 files changed, 17 insertions, 8 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index f7419e77ff5..d8d98b27793 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -1224,7 +1224,7 @@ mod test {
     fn run_renaming_test(t: &RenamingTest, test_idx: uint) {
         let invalid_name = token::special_idents::invalid.name;
         let (teststr, bound_connections, bound_ident_check) = match *t {
-            (ref str,ref conns, bic) => (str.to_managed(), conns.clone(), bic)
+            (ref str,ref conns, bic) => (str.to_owned(), conns.clone(), bic)
         };
         let cr = expand_crate_str(teststr.to_owned());
         // find the bindings:
@@ -1304,7 +1304,7 @@ foo_module!()
 
         let cxbinds : ~[&ast::Ident] =
             bindings.iter().filter(|b| {
-                let string = token::get_ident(b);
+                let string = token::get_ident(b.name);
                 "xx" == string.get()
             }).collect();
         let cxbind = match cxbinds {
diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs
index 04c73ce71d0..46f1f33143e 100644
--- a/src/libsyntax/parse/obsolete.rs
+++ b/src/libsyntax/parse/obsolete.rs
@@ -44,6 +44,7 @@ pub enum ObsoleteSyntax {
     ObsoleteMultipleImport,
     ObsoleteExternModAttributesInParens,
     ObsoleteManagedPattern,
+    ObsoleteManagedString,
 }
 
 impl to_bytes::IterBytes for ObsoleteSyntax {
@@ -149,6 +150,10 @@ impl ParserObsoleteMethods for Parser {
                 "use a nested `match` expression instead of a managed box \
                  pattern"
             ),
+            ObsoleteManagedString => (
+                "managed string",
+                "use `Rc<~str>` instead of a managed string"
+            ),
         };
 
         self.report(sp, kind, kind_str, desc);
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index dc16f32b872..fb679fa0460 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -2295,7 +2295,10 @@ impl Parser {
             ex = match e.node {
               ExprVec(..) |
               ExprRepeat(..) => ExprVstore(e, ExprVstoreBox),
-              ExprLit(lit) if lit_is_str(lit) => ExprVstore(e, ExprVstoreBox),
+              ExprLit(lit) if lit_is_str(lit) => {
+                  self.obsolete(self.last_span, ObsoleteManagedString);
+                  ExprVstore(e, ExprVstoreBox)
+              }
               _ => self.mk_unary(UnBox, e)
             };
           }
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs
index eb2fa151f51..fa53f021cdb 100644
--- a/src/libsyntax/parse/token.rs
+++ b/src/libsyntax/parse/token.rs
@@ -544,8 +544,8 @@ pub fn get_ident_interner() -> @IdentInterner {
 /// interner lives for the life of the task, this can be safely treated as an
 /// immortal string, as long as it never crosses between tasks.
 ///
-/// XXX(pcwalton): You must be careful about what you do in the destructors of
-/// objects stored in TLS, because they may run after the interner is
+/// FIXME(pcwalton): You must be careful about what you do in the destructors
+/// of objects stored in TLS, because they may run after the interner is
 /// destroyed. In particular, they must not access string contents. This can
 /// be fixed in the future by just leaking all strings until task death
 /// somehow.
@@ -585,8 +585,9 @@ impl InternedString {
 
 impl BytesContainer for InternedString {
     fn container_as_bytes<'a>(&'a self) -> &'a [u8] {
-        // XXX(pcwalton): This is a workaround for the incorrect signature of
-        // `BytesContainer`, which is itself a workaround for the lack of DST.
+        // FIXME(pcwalton): This is a workaround for the incorrect signature
+        // of `BytesContainer`, which is itself a workaround for the lack of
+        // DST.
         unsafe {
             let this = self.get();
             cast::transmute(this.container_as_bytes())
diff --git a/src/libsyntax/util/interner.rs b/src/libsyntax/util/interner.rs
index e20efda9c6e..fc3e55dcde2 100644
--- a/src/libsyntax/util/interner.rs
+++ b/src/libsyntax/util/interner.rs
@@ -253,7 +253,7 @@ mod tests {
 
     #[test]
     fn i3 () {
-        let i : Interner<@~str> = Interner::prefill([
+        let i : Interner<RcStr> = Interner::prefill([
             RcStr::new("Alan"),
             RcStr::new("Bob"),
             RcStr::new("Carol")