diff options
| author | Michael Woerister <michaelwoerister@gmail> | 2013-08-07 14:29:29 +0200 |
|---|---|---|
| committer | Michael Woerister <michaelwoerister@gmail> | 2013-08-07 14:30:00 +0200 |
| commit | 2c9922aa491f406d0a17631ef2f0bfc0bbf85346 (patch) | |
| tree | 67a8dd9e22edd3a57bcd5961e031ab6548605bd1 /src/test | |
| parent | 4da1cfe92369725b2e6bf34acb1fdebdbaff9339 (diff) | |
| download | rust-2c9922aa491f406d0a17631ef2f0bfc0bbf85346.tar.gz rust-2c9922aa491f406d0a17631ef2f0bfc0bbf85346.zip | |
Enable privacy check for enum methods.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/auxiliary/xc_private_method_lib.rs | 30 | ||||
| -rw-r--r-- | src/test/compile-fail/xc-private-method.rs | 10 |
2 files changed, 36 insertions, 4 deletions
diff --git a/src/test/auxiliary/xc_private_method_lib.rs b/src/test/auxiliary/xc_private_method_lib.rs index 05325c3b935..8290f62bada 100644 --- a/src/test/auxiliary/xc_private_method_lib.rs +++ b/src/test/auxiliary/xc_private_method_lib.rs @@ -1,9 +1,33 @@ #[crate_type="lib"]; -pub struct Foo { +pub struct Struct { x: int } -impl Foo { - fn new() -> Foo { Foo { x: 1 } } +impl Struct { + fn static_meth_struct() -> Struct { + Struct { x: 1 } + } + + fn meth_struct(&self) -> int { + self.x + } +} + +pub enum Enum { + Variant1(int), + Variant2(int) +} + +impl Enum { + fn static_meth_enum() -> Enum { + Variant2(10) + } + + fn meth_enum(&self) -> int { + match *self { + Variant1(x) | + Variant2(x) => x + } + } } diff --git a/src/test/compile-fail/xc-private-method.rs b/src/test/compile-fail/xc-private-method.rs index e8777a0a9f2..8314755af3b 100644 --- a/src/test/compile-fail/xc-private-method.rs +++ b/src/test/compile-fail/xc-private-method.rs @@ -4,5 +4,13 @@ extern mod xc_private_method_lib; fn main() { - let _ = xc_private_method_lib::Foo::new(); //~ ERROR function `new` is private + // normal method on struct + let _ = xc_private_method_lib::Struct{ x: 10 }.meth_struct(); //~ ERROR method `meth_struct` is private + // static method on struct + let _ = xc_private_method_lib::Struct::static_meth_struct(); //~ ERROR function `static_meth_struct` is private + + // normal method on enum + let _ = xc_private_method_lib::Variant1(20).meth_enum(); //~ ERROR method `meth_enum` is private + // static method on enum + let _ = xc_private_method_lib::Enum::static_meth_enum(); //~ ERROR function `static_meth_enum` is private } |
