// 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() { }