// xfail-test // FIXME (Issue #2711): + should allow immutable or mutable vectors on // the right hand side in all cases. We are getting compiler errors // about this now, so I'm xfailing the test for now. -eholk fn add(i: ~[int], m: ~[mut int], c: ~[const int]) { // Check that: // (1) vectors of any two mutabilities can be added // (2) result has mutability of lhs add(i + ~[3], m + ~[3], ~[3]); add(i + ~[mut 3], m + ~[mut 3], ~[mut 3]); add(i + i, m + i, i); add(i + m, m + m, m); add(i + c, m + c, c); add(m + ~[3], //! ERROR mismatched types m + ~[3], m + ~[3]); add(i + ~[3], i + ~[3], //! ERROR mismatched types i + ~[3]); add(c + ~[3], //! ERROR mismatched types //!^ ERROR binary operation + cannot be applied c + ~[3], //! ERROR binary operation + cannot be applied //!^ mismatched types ~[3]); add(m + ~[mut 3], //! ERROR mismatched types m + ~[mut 3], m + ~[mut 3]); add(i + ~[mut 3], i + ~[mut 3], //! ERROR mismatched types i + ~[mut 3]); add(c + ~[mut 3], //! ERROR binary operation + cannot be applied //!^ mismatched types c + ~[mut 3], //! ERROR binary operation + cannot be applied //!^ mismatched types ~[mut 3]); add(m + i, //! ERROR mismatched types m + i, m + i); add(i + i, i + i, //! ERROR mismatched types i + i); add(c + i, //! ERROR binary operation + cannot be applied //!^ ERROR mismatched types c + i, //! ERROR binary operation + cannot be applied //!^ ERROR mismatched types i); add(m + m, //! ERROR mismatched types m + m, m + m); add(i + m, i + m, //! ERROR mismatched types i + m); add(c + m, //! ERROR binary operation + cannot be applied //!^ ERROR mismatched types c + m, //! ERROR binary operation + cannot be applied //!^ ERROR mismatched types m); add(m + c, //! ERROR mismatched types m + c, m + c); add(i + c, i + c, //! ERROR mismatched types i + c); add(c + c, //! ERROR binary operation + cannot be applied //!^ ERROR mismatched types c + c, //! ERROR binary operation + cannot be applied //!^ ERROR mismatched types c); } fn main() { }