about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMahmut Bulut <mahmutbulut0@gmail.com>2012-10-24 18:32:36 +0300
committerMahmut Bulut <mahmutbulut0@gmail.com>2012-10-24 18:32:36 +0300
commit27fb3fe90d53ecebb874d32f02433da5e3a62a23 (patch)
tree45f7211a00e7128e2df6c0a9ff4778b04f909fe2
parent21cbc310c7cc631b39b3b08f127d19747e2a232d (diff)
downloadrust-27fb3fe90d53ecebb874d32f02433da5e3a62a23.tar.gz
rust-27fb3fe90d53ecebb874d32f02433da5e3a62a23.zip
stage2 run-pass test for #3753
-rw-r--r--src/test/run-pass/issue-3753.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/run-pass/issue-3753.rs b/src/test/run-pass/issue-3753.rs
new file mode 100644
index 00000000000..986d6a1817b
--- /dev/null
+++ b/src/test/run-pass/issue-3753.rs
@@ -0,0 +1,27 @@
+// Issue #3656
+// Issue Name: pub method preceeded by attribute can't be parsed
+// Abstract: Visibility parsing failed when compiler parsing
+
+struct Point {
+    x: float,
+    y: float
+}
+
+pub enum Shape {
+    Circle(Point, float),
+    Rectangle(Point, Point)
+}
+
+pub impl Shape {
+    pub fn area(sh: Shape) -> float {
+        match sh {
+            Circle(_, size) => float::consts::pi * size * size,
+            Rectangle(Point {x, y}, Point {x: x2, y: y2}) => (x2 - x) * (y2 - y)
+        }
+    }
+}
+
+fn main(){
+    let s = Circle(Point { x: 1f, y: 2f }, 3f);
+    io::println(fmt!("%f", s.area(s)));
+}
\ No newline at end of file