about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-09-10 18:56:07 -0700
committerBrian Anderson <banderson@mozilla.com>2012-09-11 15:29:37 -0700
commit1203da3b9ddbf6af343fdb826b899b55a7bda053 (patch)
tree6b49a9b89d8ba29d2aeca115faecef7c321ad30d /src
parent3aa5b0cb4403e0a61a11455ac615108b67e45ccd (diff)
Remove priv sections from classes. Obsolete the syntax
Diffstat (limited to 'src')
-rw-r--r--src/libsyntax/parse/obsolete.rs22
-rw-r--r--src/libsyntax/parse/parser.rs21
-rw-r--r--src/test/auxiliary/cci_class.rs4
-rw-r--r--src/test/auxiliary/cci_class_2.rs4
-rw-r--r--src/test/auxiliary/cci_class_3.rs4
-rw-r--r--src/test/auxiliary/cci_class_4.rs4
-rw-r--r--src/test/auxiliary/cci_class_6.rs6
-rw-r--r--src/test/auxiliary/cci_class_cast.rs5
-rw-r--r--src/test/compile-fail/assign-to-method.rs4
-rw-r--r--src/test/compile-fail/class-cast-to-trait.rs4
-rw-r--r--src/test/compile-fail/class-missing-self.rs4
-rw-r--r--src/test/compile-fail/mutable-class-fields-2.rs4
-rw-r--r--src/test/compile-fail/mutable-class-fields.rs4
-rw-r--r--src/test/compile-fail/obsolete-syntax.rs7
-rw-r--r--src/test/compile-fail/private-method.rs4
-rw-r--r--src/test/run-pass/class-cast-to-trait-multiple-types.rs8
-rw-r--r--src/test/run-pass/class-cast-to-trait.rs5
-rw-r--r--src/test/run-pass/class-impl-very-parameterized-trait.rs6
-rw-r--r--src/test/run-pass/class-implement-trait-cross-crate.rs4
-rw-r--r--src/test/run-pass/class-implement-traits.rs4
-rw-r--r--src/test/run-pass/class-methods.rs4
-rw-r--r--src/test/run-pass/class-poly-methods.rs6
-rw-r--r--src/test/run-pass/class-separate-impl.rs4
-rw-r--r--src/test/run-pass/class-typarams.rs4
-rw-r--r--src/test/run-pass/classes-simple-method.rs4
-rw-r--r--src/test/run-pass/classes-simple.rs4
-rw-r--r--src/test/run-pass/classes.rs4
-rw-r--r--src/test/run-pass/private-class-field.rs4
-rw-r--r--src/test/run-pass/private-method.rs4
29 files changed, 64 insertions, 102 deletions
diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs
index 9a2b6474b19..724c824d5cd 100644
--- a/src/libsyntax/parse/obsolete.rs
+++ b/src/libsyntax/parse/obsolete.rs
@@ -20,7 +20,8 @@ pub enum ObsoleteSyntax {
     ObsoleteStructCtor,
     ObsoleteWith,
     ObsoleteClassMethod,
-    ObsoleteClassTraits
+    ObsoleteClassTraits,
+    ObsoletePrivSection
 }
 
 impl ObsoleteSyntax : cmp::Eq {
@@ -82,6 +83,11 @@ impl parser : ObsoleteReporter {
                 "implemented traits are specified on the impl, as in \
                  `impl foo : bar {`"
             ),
+            ObsoletePrivSection => (
+                "private section",
+                "the `priv` keyword is applied to individual items, methods, \
+                 and fields"
+            ),
         };
 
         self.report(sp, kind, kind_str, desc);
@@ -152,5 +158,19 @@ impl parser : ObsoleteReporter {
         }
     }
 
+    fn try_parse_obsolete_priv_section() -> bool {
+        if self.is_keyword(~"priv") && self.look_ahead(1) == token::LBRACE {
+            self.obsolete(copy self.span, ObsoletePrivSection);
+            self.eat_keyword(~"priv");
+            self.bump();
+            while self.token != token::RBRACE {
+                self.parse_single_class_item(ast::private);
+            }
+            self.bump();
+            true
+        } else {
+            false
+        }
+    }
 }
 
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 74370d005ce..0b326c14158 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -2818,22 +2818,13 @@ impl parser {
     }
 
     fn parse_class_item() -> class_contents {
+
+        if self.try_parse_obsolete_priv_section() {
+            return members(~[]);
+        }
+
         if self.eat_keyword(~"priv") {
-            // XXX: Remove after snapshot.
-            match self.token {
-                token::LBRACE => {
-                    self.bump();
-                    let mut results = ~[];
-                    while self.token != token::RBRACE {
-                        vec::push(results,
-                                  self.parse_single_class_item(private));
-                    }
-                    self.bump();
-                    return members(results);
-                }
-                _ =>
-                   return members(~[self.parse_single_class_item(private)])
-            }
+            return members(~[self.parse_single_class_item(private)])
         }
 
         if self.eat_keyword(~"pub") {
diff --git a/src/test/auxiliary/cci_class.rs b/src/test/auxiliary/cci_class.rs
index d6700f79600..b08f8def5ad 100644
--- a/src/test/auxiliary/cci_class.rs
+++ b/src/test/auxiliary/cci_class.rs
@@ -1,9 +1,7 @@
 mod kitties {
 
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 
diff --git a/src/test/auxiliary/cci_class_2.rs b/src/test/auxiliary/cci_class_2.rs
index 30b57e5fbff..bfbf58ddd11 100644
--- a/src/test/auxiliary/cci_class_2.rs
+++ b/src/test/auxiliary/cci_class_2.rs
@@ -1,9 +1,7 @@
 mod kitties {
 
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 
diff --git a/src/test/auxiliary/cci_class_3.rs b/src/test/auxiliary/cci_class_3.rs
index 53f1a356894..a16c6b4c3a9 100644
--- a/src/test/auxiliary/cci_class_3.rs
+++ b/src/test/auxiliary/cci_class_3.rs
@@ -1,9 +1,7 @@
 mod kitties {
 
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 }
diff --git a/src/test/auxiliary/cci_class_4.rs b/src/test/auxiliary/cci_class_4.rs
index 585fc09e320..32da73d14e4 100644
--- a/src/test/auxiliary/cci_class_4.rs
+++ b/src/test/auxiliary/cci_class_4.rs
@@ -1,9 +1,7 @@
 mod kitties {
 
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   mut how_hungry : int,
   name : ~str,
diff --git a/src/test/auxiliary/cci_class_6.rs b/src/test/auxiliary/cci_class_6.rs
index 272c381c73d..0d41bccfd33 100644
--- a/src/test/auxiliary/cci_class_6.rs
+++ b/src/test/auxiliary/cci_class_6.rs
@@ -1,10 +1,8 @@
 mod kitties {
 
 struct cat<U> {
-  priv {
-    mut info : ~[U],
-    mut meows : uint,
-  }
+  priv mut info : ~[U],
+  priv mut meows : uint,
 
   how_hungry : int,
 }
diff --git a/src/test/auxiliary/cci_class_cast.rs b/src/test/auxiliary/cci_class_cast.rs
index 56cf40fd968..2471c9f4ccf 100644
--- a/src/test/auxiliary/cci_class_cast.rs
+++ b/src/test/auxiliary/cci_class_cast.rs
@@ -4,10 +4,7 @@ use to_str::ToStr;
 mod kitty {
 
 struct cat {
-  priv {
-    mut meows : uint,
-  }
-
+  priv mut meows : uint,
   mut how_hungry : int,
   name : ~str,
 }
diff --git a/src/test/compile-fail/assign-to-method.rs b/src/test/compile-fail/assign-to-method.rs
index 4d63180a843..fd578ff5c4f 100644
--- a/src/test/compile-fail/assign-to-method.rs
+++ b/src/test/compile-fail/assign-to-method.rs
@@ -1,7 +1,5 @@
 struct cat {
-  priv {
-    mut meows : uint
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 }
diff --git a/src/test/compile-fail/class-cast-to-trait.rs b/src/test/compile-fail/class-cast-to-trait.rs
index 58c0bfab799..5292e301ac0 100644
--- a/src/test/compile-fail/class-cast-to-trait.rs
+++ b/src/test/compile-fail/class-cast-to-trait.rs
@@ -4,9 +4,7 @@ trait noisy {
 }
 
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   mut how_hungry : int,
   name : str,
diff --git a/src/test/compile-fail/class-missing-self.rs b/src/test/compile-fail/class-missing-self.rs
index 48a8c7a56b9..50c9ea99e0c 100644
--- a/src/test/compile-fail/class-missing-self.rs
+++ b/src/test/compile-fail/class-missing-self.rs
@@ -1,7 +1,5 @@
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 }
 
 priv impl cat {
diff --git a/src/test/compile-fail/mutable-class-fields-2.rs b/src/test/compile-fail/mutable-class-fields-2.rs
index 68eaffc7f70..ed6c2f268f4 100644
--- a/src/test/compile-fail/mutable-class-fields-2.rs
+++ b/src/test/compile-fail/mutable-class-fields-2.rs
@@ -1,8 +1,6 @@
 // error-pattern:assigning to immutable field
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 }
diff --git a/src/test/compile-fail/mutable-class-fields.rs b/src/test/compile-fail/mutable-class-fields.rs
index a78ad6aa23b..4d1bb669efc 100644
--- a/src/test/compile-fail/mutable-class-fields.rs
+++ b/src/test/compile-fail/mutable-class-fields.rs
@@ -1,8 +1,6 @@
 // error-pattern:assigning to immutable field
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 
diff --git a/src/test/compile-fail/obsolete-syntax.rs b/src/test/compile-fail/obsolete-syntax.rs
index 9a3939692f5..9f57e08cdb2 100644
--- a/src/test/compile-fail/obsolete-syntax.rs
+++ b/src/test/compile-fail/obsolete-syntax.rs
@@ -31,6 +31,13 @@ struct q : r {
     //~^ ERROR obsolete syntax: class traits
 }
 
+struct sss {
+    priv {
+    //~^ ERROR obsolete syntax: private section
+        foo: ()
+    }
+}
+
 fn obsolete_with() {
     struct S {
         foo: (),
diff --git a/src/test/compile-fail/private-method.rs b/src/test/compile-fail/private-method.rs
index d9f070fb5bd..0f489a7dc76 100644
--- a/src/test/compile-fail/private-method.rs
+++ b/src/test/compile-fail/private-method.rs
@@ -2,9 +2,7 @@
 
 mod kitties {
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 
diff --git a/src/test/run-pass/class-cast-to-trait-multiple-types.rs b/src/test/run-pass/class-cast-to-trait-multiple-types.rs
index f2e35c4cd55..f0581c2df8c 100644
--- a/src/test/run-pass/class-cast-to-trait-multiple-types.rs
+++ b/src/test/run-pass/class-cast-to-trait-multiple-types.rs
@@ -3,9 +3,7 @@ trait noisy {
 }
 
 struct dog {
-  priv {
-    barks : @mut uint,
-  }
+  priv barks : @mut uint,
 
   volume : @mut int,
 }
@@ -37,9 +35,7 @@ fn dog() -> dog {
 }
 
 struct cat {
-  priv {
-    meows : @mut uint,
-  }
+  priv meows : @mut uint,
 
   how_hungry : @mut int,
   name : ~str,
diff --git a/src/test/run-pass/class-cast-to-trait.rs b/src/test/run-pass/class-cast-to-trait.rs
index 422dd6142f0..eda5340aeed 100644
--- a/src/test/run-pass/class-cast-to-trait.rs
+++ b/src/test/run-pass/class-cast-to-trait.rs
@@ -3,10 +3,7 @@ trait noisy {
 }
 
 struct cat {
-  priv {
-    mut meows : uint,
-  }
-
+  priv mut meows : uint,
   mut how_hungry : int,
   name : ~str,
 }
diff --git a/src/test/run-pass/class-impl-very-parameterized-trait.rs b/src/test/run-pass/class-impl-very-parameterized-trait.rs
index b4d47f86e1a..70d0d8f3b3f 100644
--- a/src/test/run-pass/class-impl-very-parameterized-trait.rs
+++ b/src/test/run-pass/class-impl-very-parameterized-trait.rs
@@ -15,10 +15,8 @@ impl cat_type : cmp::Eq {
 
 // ok: T should be in scope when resolving the trait ref for map
 struct cat<T: Copy> {
-  priv {
-    // Yes, you can have negative meows
-    mut meows : int,
-  }
+  // Yes, you can have negative meows
+  priv mut meows : int,
 
   mut how_hungry : int,
   name : T,
diff --git a/src/test/run-pass/class-implement-trait-cross-crate.rs b/src/test/run-pass/class-implement-trait-cross-crate.rs
index a1c2b420c46..7be0a197d46 100644
--- a/src/test/run-pass/class-implement-trait-cross-crate.rs
+++ b/src/test/run-pass/class-implement-trait-cross-crate.rs
@@ -4,9 +4,7 @@ use cci_class_trait;
 use cci_class_trait::animals::*;
 
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   mut how_hungry : int,
   name : ~str,
diff --git a/src/test/run-pass/class-implement-traits.rs b/src/test/run-pass/class-implement-traits.rs
index e31501d02f5..aa8e52e3351 100644
--- a/src/test/run-pass/class-implement-traits.rs
+++ b/src/test/run-pass/class-implement-traits.rs
@@ -3,9 +3,7 @@ trait noisy {
 }
 
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   mut how_hungry : int,
   name : ~str,
diff --git a/src/test/run-pass/class-methods.rs b/src/test/run-pass/class-methods.rs
index d5cee133097..732e01a7c57 100644
--- a/src/test/run-pass/class-methods.rs
+++ b/src/test/run-pass/class-methods.rs
@@ -1,7 +1,5 @@
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 }
diff --git a/src/test/run-pass/class-poly-methods.rs b/src/test/run-pass/class-poly-methods.rs
index 0f07b36e6c1..7b38d0e03f9 100644
--- a/src/test/run-pass/class-poly-methods.rs
+++ b/src/test/run-pass/class-poly-methods.rs
@@ -1,8 +1,6 @@
 struct cat<U> {
-  priv {
-    mut info : ~[U],
-    mut meows : uint,
-  }
+  priv mut info : ~[U],
+  priv mut meows : uint,
 
   how_hungry : int,
 }
diff --git a/src/test/run-pass/class-separate-impl.rs b/src/test/run-pass/class-separate-impl.rs
index 47fd98b49a8..c7517ab1b3d 100644
--- a/src/test/run-pass/class-separate-impl.rs
+++ b/src/test/run-pass/class-separate-impl.rs
@@ -3,9 +3,7 @@ use to_str::*;
 use to_str::ToStr;
 
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   mut how_hungry : int,
   name : ~str,
diff --git a/src/test/run-pass/class-typarams.rs b/src/test/run-pass/class-typarams.rs
index d11b1761b3c..7512c352406 100644
--- a/src/test/run-pass/class-typarams.rs
+++ b/src/test/run-pass/class-typarams.rs
@@ -1,7 +1,5 @@
 struct cat<U> {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 }
diff --git a/src/test/run-pass/classes-simple-method.rs b/src/test/run-pass/classes-simple-method.rs
index 4cee896f23a..26ee513b338 100644
--- a/src/test/run-pass/classes-simple-method.rs
+++ b/src/test/run-pass/classes-simple-method.rs
@@ -1,7 +1,5 @@
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 }
diff --git a/src/test/run-pass/classes-simple.rs b/src/test/run-pass/classes-simple.rs
index af30fd44982..84e0fc6bb62 100644
--- a/src/test/run-pass/classes-simple.rs
+++ b/src/test/run-pass/classes-simple.rs
@@ -1,7 +1,5 @@
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 
diff --git a/src/test/run-pass/classes.rs b/src/test/run-pass/classes.rs
index 0ade8e57f9c..4911aa9b390 100644
--- a/src/test/run-pass/classes.rs
+++ b/src/test/run-pass/classes.rs
@@ -1,7 +1,5 @@
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   mut how_hungry : int,
   name : ~str,
diff --git a/src/test/run-pass/private-class-field.rs b/src/test/run-pass/private-class-field.rs
index 735545a580c..b1e3773fe0d 100644
--- a/src/test/run-pass/private-class-field.rs
+++ b/src/test/run-pass/private-class-field.rs
@@ -1,7 +1,5 @@
 struct cat {
-  priv {
-    mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 }
diff --git a/src/test/run-pass/private-method.rs b/src/test/run-pass/private-method.rs
index 23789676549..ff70fb1667c 100644
--- a/src/test/run-pass/private-method.rs
+++ b/src/test/run-pass/private-method.rs
@@ -1,7 +1,5 @@
 struct cat {
-  priv {
-      mut meows : uint,
-  }
+  priv mut meows : uint,
 
   how_hungry : int,
 }