summaryrefslogtreecommitdiffstats
path: root/tests/ui/mut/mutable-enum-indirect.rs
blob: 502859c041353cf37afb813090a19f68fe87c8a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Tests that an `&` pointer to something inherently mutable is itself
// to be considered mutable.

#![feature(negative_impls)]

use std::marker::Sync;

struct NoSync;
impl !Sync for NoSync {}

enum Foo { A(NoSync) }

fn bar<T: Sync>(_: T) {}

fn main() {
    let x = Foo::A(NoSync);
    bar(&x);
    //~^ ERROR `NoSync` cannot be shared between threads safely [E0277]
}