File: operator-precedence-braces-exprs.rs

package info (click to toggle)
rustc 1.88.0%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 934,128 kB
  • sloc: xml: 158,127; python: 36,062; javascript: 19,855; sh: 19,700; cpp: 18,947; ansic: 12,993; asm: 4,792; makefile: 690; lisp: 29; perl: 29; ruby: 19; sql: 11
file content (28 lines) | stat: -rw-r--r-- 608 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//! Regression test for ensuring that operator precedence is correctly handled in the presence of
//! braces
//!
//! Issue: <https://github.com/rust-lang/rust/issues/28777>

//@ run-pass

#[allow(unused_braces)]
fn main() {
    let v1 = { 1 + { 2 } * { 3 } };
    let v2 = 1 + { 2 } * { 3 };

    assert_eq!(7, v1);
    assert_eq!(7, v2);

    let v3;
    v3 = { 1 + { 2 } * { 3 } };
    let v4;
    v4 = 1 + { 2 } * { 3 };
    assert_eq!(7, v3);
    assert_eq!(7, v4);

    let v5 = { 1 + { 2 } * 3 };
    assert_eq!(7, v5);

    let v9 = { 1 + if 1 > 2 { 1 } else { 2 } * { 3 } };
    assert_eq!(7, v9);
}