]> git.lizzy.rs Git - rust.git/blob - src/test/ui/issues/issue-34053.rs
point at private fields in struct literal
[rust.git] / src / test / ui / issues / issue-34053.rs
1 // run-pass
2 use std::sync::atomic::{AtomicUsize, Ordering};
3
4 static DROP_COUNTER: AtomicUsize = AtomicUsize::new(0);
5
6 struct A(i32);
7
8 impl Drop for A {
9     fn drop(&mut self) {
10         // update global drop count
11         DROP_COUNTER.fetch_add(1, Ordering::SeqCst);
12     }
13 }
14
15 static FOO: A = A(123);
16 const BAR: A = A(456);
17
18 impl A {
19     const BAZ: A = A(789);
20 }
21
22 fn main() {
23     assert_eq!(DROP_COUNTER.load(Ordering::SeqCst), 0);
24     assert_eq!(&FOO.0, &123);
25     assert_eq!(DROP_COUNTER.load(Ordering::SeqCst), 0);
26     assert_eq!(BAR.0, 456);
27     assert_eq!(DROP_COUNTER.load(Ordering::SeqCst), 1);
28     assert_eq!(A::BAZ.0, 789);
29     assert_eq!(DROP_COUNTER.load(Ordering::SeqCst), 2);
30 }