about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMichael Sullivan <sully@msully.net>2011-07-11 13:12:44 -0500
committerBrian Anderson <banderson@mozilla.com>2011-07-11 11:38:01 -0700
commit7340824cbcce104458d87200119b62dbfe0ef07a (patch)
treea545b2b60683d528c357dd5ed039145124bdc843 /src/test
parent418aa525107319a224a3299eae8d9c8fdfe02c13 (diff)
downloadrust-7340824cbcce104458d87200119b62dbfe0ef07a.tar.gz
rust-7340824cbcce104458d87200119b62dbfe0ef07a.zip
Fix autoderef of function calls when the function is not an lval.
As it turns out, the correct way to handle this is much simpler than what I
did originally.
Also add more tests.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/auto-deref-fn.rs1
-rw-r--r--src/test/run-pass/call-autoderef-tag.rs11
2 files changed, 12 insertions, 0 deletions
diff --git a/src/test/run-pass/auto-deref-fn.rs b/src/test/run-pass/auto-deref-fn.rs
index 6959e8e109f..8637c7d03d6 100644
--- a/src/test/run-pass/auto-deref-fn.rs
+++ b/src/test/run-pass/auto-deref-fn.rs
@@ -8,4 +8,5 @@ fn main() {
     assert(f(5) == 6);
     assert(g(8) == 9);
     assert(h(0x1badd00d) == 0x1badd00e);
+    assert((@add1)(42) == 43);
 }
diff --git a/src/test/run-pass/call-autoderef-tag.rs b/src/test/run-pass/call-autoderef-tag.rs
new file mode 100644
index 00000000000..3826b9a409c
--- /dev/null
+++ b/src/test/run-pass/call-autoderef-tag.rs
@@ -0,0 +1,11 @@
+// xfail-stage0
+tag int_fn { f(fn(int) -> int); }
+tag int_box_fn { fb(@fn(int) -> int); }
+fn add1(int i) -> int { ret i+1; }
+fn main() {
+    auto g = f(add1);
+    assert(g(4) == 5);
+    assert((f(add1))(5) == 6);
+    assert((@(f(add1)))(5) == 6);
+    assert((fb(@add1))(7) == 8);
+}