Skip to content

Commit 1203da3

Browse files
committed
Remove priv sections from classes. Obsolete the syntax
1 parent 3aa5b0c commit 1203da3

29 files changed

+64
-102
lines changed

src/libsyntax/parse/obsolete.rs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ pub enum ObsoleteSyntax {
2020
ObsoleteStructCtor,
2121
ObsoleteWith,
2222
ObsoleteClassMethod,
23-
ObsoleteClassTraits
23+
ObsoleteClassTraits,
24+
ObsoletePrivSection
2425
}
2526

2627
impl ObsoleteSyntax : cmp::Eq {
@@ -82,6 +83,11 @@ impl parser : ObsoleteReporter {
8283
"implemented traits are specified on the impl, as in \
8384
`impl foo : bar {`"
8485
),
86+
ObsoletePrivSection => (
87+
"private section",
88+
"the `priv` keyword is applied to individual items, methods, \
89+
and fields"
90+
),
8591
};
8692

8793
self.report(sp, kind, kind_str, desc);
@@ -152,5 +158,19 @@ impl parser : ObsoleteReporter {
152158
}
153159
}
154160

161+
fn try_parse_obsolete_priv_section() -> bool {
162+
if self.is_keyword(~"priv") && self.look_ahead(1) == token::LBRACE {
163+
self.obsolete(copy self.span, ObsoletePrivSection);
164+
self.eat_keyword(~"priv");
165+
self.bump();
166+
while self.token != token::RBRACE {
167+
self.parse_single_class_item(ast::private);
168+
}
169+
self.bump();
170+
true
171+
} else {
172+
false
173+
}
174+
}
155175
}
156176

src/libsyntax/parse/parser.rs

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2818,22 +2818,13 @@ impl parser {
28182818
}
28192819

28202820
fn parse_class_item() -> class_contents {
2821+
2822+
if self.try_parse_obsolete_priv_section() {
2823+
return members(~[]);
2824+
}
2825+
28212826
if self.eat_keyword(~"priv") {
2822-
// XXX: Remove after snapshot.
2823-
match self.token {
2824-
token::LBRACE => {
2825-
self.bump();
2826-
let mut results = ~[];
2827-
while self.token != token::RBRACE {
2828-
vec::push(results,
2829-
self.parse_single_class_item(private));
2830-
}
2831-
self.bump();
2832-
return members(results);
2833-
}
2834-
_ =>
2835-
return members(~[self.parse_single_class_item(private)])
2836-
}
2827+
return members(~[self.parse_single_class_item(private)])
28372828
}
28382829

28392830
if self.eat_keyword(~"pub") {

src/test/auxiliary/cci_class.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
mod kitties {
22

33
struct cat {
4-
priv {
5-
mut meows : uint,
6-
}
4+
priv mut meows : uint,
75

86
how_hungry : int,
97

src/test/auxiliary/cci_class_2.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
mod kitties {
22

33
struct cat {
4-
priv {
5-
mut meows : uint,
6-
}
4+
priv mut meows : uint,
75

86
how_hungry : int,
97

src/test/auxiliary/cci_class_3.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
mod kitties {
22

33
struct cat {
4-
priv {
5-
mut meows : uint,
6-
}
4+
priv mut meows : uint,
75

86
how_hungry : int,
97
}

src/test/auxiliary/cci_class_4.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
mod kitties {
22

33
struct cat {
4-
priv {
5-
mut meows : uint,
6-
}
4+
priv mut meows : uint,
75

86
mut how_hungry : int,
97
name : ~str,

src/test/auxiliary/cci_class_6.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
mod kitties {
22

33
struct cat<U> {
4-
priv {
5-
mut info : ~[U],
6-
mut meows : uint,
7-
}
4+
priv mut info : ~[U],
5+
priv mut meows : uint,
86

97
how_hungry : int,
108
}

src/test/auxiliary/cci_class_cast.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@ use to_str::ToStr;
44
mod kitty {
55

66
struct cat {
7-
priv {
8-
mut meows : uint,
9-
}
10-
7+
priv mut meows : uint,
118
mut how_hungry : int,
129
name : ~str,
1310
}

src/test/compile-fail/assign-to-method.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
struct cat {
2-
priv {
3-
mut meows : uint
4-
}
2+
priv mut meows : uint,
53

64
how_hungry : int,
75
}

src/test/compile-fail/class-cast-to-trait.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ trait noisy {
44
}
55

66
struct cat {
7-
priv {
8-
mut meows : uint,
9-
}
7+
priv mut meows : uint,
108

119
mut how_hungry : int,
1210
name : str,

src/test/compile-fail/class-missing-self.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
struct cat {
2-
priv {
3-
mut meows : uint,
4-
}
2+
priv mut meows : uint,
53
}
64

75
priv impl cat {

src/test/compile-fail/mutable-class-fields-2.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// error-pattern:assigning to immutable field
22
struct cat {
3-
priv {
4-
mut meows : uint,
5-
}
3+
priv mut meows : uint,
64

75
how_hungry : int,
86
}

src/test/compile-fail/mutable-class-fields.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// error-pattern:assigning to immutable field
22
struct cat {
3-
priv {
4-
mut meows : uint,
5-
}
3+
priv mut meows : uint,
64

75
how_hungry : int,
86

src/test/compile-fail/obsolete-syntax.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ struct q : r {
3131
//~^ ERROR obsolete syntax: class traits
3232
}
3333

34+
struct sss {
35+
priv {
36+
//~^ ERROR obsolete syntax: private section
37+
foo: ()
38+
}
39+
}
40+
3441
fn obsolete_with() {
3542
struct S {
3643
foo: (),

src/test/compile-fail/private-method.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
mod kitties {
44
struct cat {
5-
priv {
6-
mut meows : uint,
7-
}
5+
priv mut meows : uint,
86

97
how_hungry : int,
108

src/test/run-pass/class-cast-to-trait-multiple-types.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ trait noisy {
33
}
44

55
struct dog {
6-
priv {
7-
barks : @mut uint,
8-
}
6+
priv barks : @mut uint,
97

108
volume : @mut int,
119
}
@@ -37,9 +35,7 @@ fn dog() -> dog {
3735
}
3836

3937
struct cat {
40-
priv {
41-
meows : @mut uint,
42-
}
38+
priv meows : @mut uint,
4339

4440
how_hungry : @mut int,
4541
name : ~str,

src/test/run-pass/class-cast-to-trait.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@ trait noisy {
33
}
44

55
struct cat {
6-
priv {
7-
mut meows : uint,
8-
}
9-
6+
priv mut meows : uint,
107
mut how_hungry : int,
118
name : ~str,
129
}

src/test/run-pass/class-impl-very-parameterized-trait.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ impl cat_type : cmp::Eq {
1515

1616
// ok: T should be in scope when resolving the trait ref for map
1717
struct cat<T: Copy> {
18-
priv {
19-
// Yes, you can have negative meows
20-
mut meows : int,
21-
}
18+
// Yes, you can have negative meows
19+
priv mut meows : int,
2220

2321
mut how_hungry : int,
2422
name : T,

src/test/run-pass/class-implement-trait-cross-crate.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ use cci_class_trait;
44
use cci_class_trait::animals::*;
55

66
struct cat {
7-
priv {
8-
mut meows : uint,
9-
}
7+
priv mut meows : uint,
108

119
mut how_hungry : int,
1210
name : ~str,

src/test/run-pass/class-implement-traits.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ trait noisy {
33
}
44

55
struct cat {
6-
priv {
7-
mut meows : uint,
8-
}
6+
priv mut meows : uint,
97

108
mut how_hungry : int,
119
name : ~str,

src/test/run-pass/class-methods.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
struct cat {
2-
priv {
3-
mut meows : uint,
4-
}
2+
priv mut meows : uint,
53

64
how_hungry : int,
75
}

src/test/run-pass/class-poly-methods.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
struct cat<U> {
2-
priv {
3-
mut info : ~[U],
4-
mut meows : uint,
5-
}
2+
priv mut info : ~[U],
3+
priv mut meows : uint,
64

75
how_hungry : int,
86
}

src/test/run-pass/class-separate-impl.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ use to_str::*;
33
use to_str::ToStr;
44

55
struct cat {
6-
priv {
7-
mut meows : uint,
8-
}
6+
priv mut meows : uint,
97

108
mut how_hungry : int,
119
name : ~str,

src/test/run-pass/class-typarams.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
struct cat<U> {
2-
priv {
3-
mut meows : uint,
4-
}
2+
priv mut meows : uint,
53

64
how_hungry : int,
75
}

src/test/run-pass/classes-simple-method.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
struct cat {
2-
priv {
3-
mut meows : uint,
4-
}
2+
priv mut meows : uint,
53

64
how_hungry : int,
75
}

src/test/run-pass/classes-simple.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
struct cat {
2-
priv {
3-
mut meows : uint,
4-
}
2+
priv mut meows : uint,
53

64
how_hungry : int,
75

src/test/run-pass/classes.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
struct cat {
2-
priv {
3-
mut meows : uint,
4-
}
2+
priv mut meows : uint,
53

64
mut how_hungry : int,
75
name : ~str,

src/test/run-pass/private-class-field.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
struct cat {
2-
priv {
3-
mut meows : uint,
4-
}
2+
priv mut meows : uint,
53

64
how_hungry : int,
75
}

src/test/run-pass/private-method.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
struct cat {
2-
priv {
3-
mut meows : uint,
4-
}
2+
priv mut meows : uint,
53

64
how_hungry : int,
75
}

0 commit comments

Comments
 (0)