diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/inference/question-mark-type-infer.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/test/ui/inference/question-mark-type-infer.rs b/src/test/ui/inference/question-mark-type-infer.rs new file mode 100644 index 000000000..64333a293 --- /dev/null +++ b/src/test/ui/inference/question-mark-type-infer.rs @@ -0,0 +1,15 @@ +// Test that type inference fails where there are multiple possible return types +// for the `?` operator. + +fn f(x: &i32) -> Result<i32, ()> { + Ok(*x) +} + +fn g() -> Result<Vec<i32>, ()> { + let l = [1, 2, 3, 4]; + l.iter().map(f).collect()? //~ ERROR type annotations needed +} + +fn main() { + g(); +} |