diff --git a/src/test/compile-fail/mode-inference-fail.rs b/src/test/compile-fail/mode-inference-fail.rs new file mode 100644 index 00000000000..732c9a4311f --- /dev/null +++ b/src/test/compile-fail/mode-inference-fail.rs @@ -0,0 +1,11 @@ +// In this test, the mode gets inferred to ++ due to the apply_int(), +// but then we get a failure in the generic apply(). + +fn apply(f: fn(A) -> A, a: A) -> A { f(a) } +fn apply_int(f: fn(int) -> int, a: int) -> int { f(a) } + +fn main() { + let f = {|i| i}; + assert apply_int(f, 2) == 2; + assert apply(f, 2) == 2; //! ERROR expected argument mode ++ +}