]> git.lizzy.rs Git - rust.git/blob - tests/ui/consts/issue-67640.rs
Auto merge of #106090 - WaffleLapkin:dereffffffffff, r=Nilstrieb
[rust.git] / tests / ui / consts / issue-67640.rs
1 // compile-flags: -Z mir-opt-level=4
2 // run-pass
3
4 struct X {
5     x: isize
6 }
7
8 fn f1(a: &mut X, b: &mut isize, c: isize) -> isize {
9     let r = a.x + *b + c;
10     a.x = 0;
11     *b = 10;
12     return r;
13 }
14
15 fn f2<F>(a: isize, f: F) -> isize where F: FnOnce(isize) { f(1); return a; }
16
17 pub fn main() {
18     let mut a = X {x: 1};
19     let mut b = 2;
20     let c = 3;
21     assert_eq!(f1(&mut a, &mut b, c), 6);
22     assert_eq!(a.x, 0);
23     assert_eq!(f2(a.x, |_| a.x = 50), 0);
24 }