diff --git a/src/test/compile-fail/borrowck-unchecked-with-borrow.rs b/src/test/compile-fail/borrowck-unchecked-with-borrow.rs new file mode 100644 index 00000000000..2a5447e874b --- /dev/null +++ b/src/test/compile-fail/borrowck-unchecked-with-borrow.rs @@ -0,0 +1,33 @@ +// xfail-fast (compile-flags unsupported on windows) +// compile-flags:--borrowck=err + +fn impure(_i: int) {} + +fn foo(v: &const option) { + alt *v { + some(i) { + //!^ NOTE pure context is required due to an illegal borrow: enum variant in aliasable, mutable location + // check that unchecked alone does not override borrowck: + unchecked { + impure(i); //! ERROR access to non-pure functions prohibited in a pure context + } + } + none { + } + } +} + +fn bar(v: &const option) { + alt *v { + some(i) { + unsafe { + impure(i); + } + } + none { + } + } +} + +fn main() { +} \ No newline at end of file