---
source: tests/spec/complex_op_resolution.rs
expression: test_ctx.prog_ctx.op_ctx
---
infix_operator_properties:
  "&&":
    precedence: 2
    associativity: Left
    range:
      start: 172
      end: 211
  "*":
    precedence: 6
    associativity: Left
    range:
      start: 754
      end: 793
  +:
    precedence: 5
    associativity: Left
    range:
      start: 610
      end: 649
  "==":
    precedence: 3
    associativity: Left
    range:
      start: 321
      end: 360
  ">":
    precedence: 4
    associativity: Left
    range:
      start: 466
      end: 505
  "||":
    precedence: 1
    associativity: Left
    range:
      start: 24
      end: 63
infix_operators:
  0:
    symbol: "||"
    namespace_id: 0
    lhs:
      label: ~
      name: lhs
      var_id: 0
      value_type:
        Primitive: Bool
      def_val: ~
      range:
        start: 80
        end: 89
    rhs:
      label: ~
      name: rhs
      var_id: 1
      value_type:
        Primitive: Bool
      def_val: ~
      range:
        start: 91
        end: 100
    return_type:
      Primitive: Bool
    block:
      body:
        - Return:
            value:
              kind:
                BuiltinFuncCall:
                  id: 48
                  args:
                    - kind:
                        Identifier: 0
                      value_type:
                        Primitive: Bool
                      range:
                        start: 135
                        end: 138
                    - kind:
                        Identifier: 1
                      value_type:
                        Primitive: Bool
                      range:
                        start: 140
                        end: 143
              value_type:
                Primitive: Bool
              range:
                start: 123
                end: 144
      scope_id: 2
    range:
      start: 66
      end: 146
  1:
    symbol: "&&"
    namespace_id: 0
    lhs:
      label: ~
      name: lhs
      var_id: 2
      value_type:
        Primitive: Bool
      def_val: ~
      range:
        start: 228
        end: 237
    rhs:
      label: ~
      name: rhs
      var_id: 3
      value_type:
        Primitive: Bool
      def_val: ~
      range:
        start: 239
        end: 248
    return_type:
      Primitive: Bool
    block:
      body:
        - Return:
            value:
              kind:
                BuiltinFuncCall:
                  id: 47
                  args:
                    - kind:
                        Identifier: 2
                      value_type:
                        Primitive: Bool
                      range:
                        start: 284
                        end: 287
                    - kind:
                        Identifier: 3
                      value_type:
                        Primitive: Bool
                      range:
                        start: 289
                        end: 292
              value_type:
                Primitive: Bool
              range:
                start: 271
                end: 293
      scope_id: 3
    range:
      start: 214
      end: 295
  2:
    symbol: "=="
    namespace_id: 0
    lhs:
      label: ~
      name: lhs
      var_id: 4
      value_type:
        Primitive: Int
      def_val: ~
      range:
        start: 377
        end: 385
    rhs:
      label: ~
      name: rhs
      var_id: 5
      value_type:
        Primitive: Int
      def_val: ~
      range:
        start: 387
        end: 395
    return_type:
      Primitive: Bool
    block:
      body:
        - Return:
            value:
              kind:
                BuiltinFuncCall:
                  id: 41
                  args:
                    - kind:
                        Identifier: 4
                      value_type:
                        Primitive: Int
                      range:
                        start: 430
                        end: 433
                    - kind:
                        Identifier: 5
                      value_type:
                        Primitive: Int
                      range:
                        start: 435
                        end: 438
              value_type:
                Primitive: Bool
              range:
                start: 418
                end: 439
      scope_id: 4
    range:
      start: 363
      end: 441
  3:
    symbol: ">"
    namespace_id: 0
    lhs:
      label: ~
      name: lhs
      var_id: 6
      value_type:
        Primitive: Int
      def_val: ~
      range:
        start: 521
        end: 529
    rhs:
      label: ~
      name: rhs
      var_id: 7
      value_type:
        Primitive: Int
      def_val: ~
      range:
        start: 531
        end: 539
    return_type:
      Primitive: Bool
    block:
      body:
        - Return:
            value:
              kind:
                BuiltinFuncCall:
                  id: 43
                  args:
                    - kind:
                        Identifier: 6
                      value_type:
                        Primitive: Int
                      range:
                        start: 574
                        end: 577
                    - kind:
                        Identifier: 7
                      value_type:
                        Primitive: Int
                      range:
                        start: 579
                        end: 582
              value_type:
                Primitive: Bool
              range:
                start: 562
                end: 583
      scope_id: 5
    range:
      start: 508
      end: 585
  4:
    symbol: +
    namespace_id: 0
    lhs:
      label: ~
      name: lhs
      var_id: 8
      value_type:
        Primitive: Int
      def_val: ~
      range:
        start: 665
        end: 673
    rhs:
      label: ~
      name: rhs
      var_id: 9
      value_type:
        Primitive: Int
      def_val: ~
      range:
        start: 675
        end: 683
    return_type:
      Primitive: Int
    block:
      body:
        - Return:
            value:
              kind:
                BuiltinFuncCall:
                  id: 31
                  args:
                    - kind:
                        Identifier: 8
                      value_type:
                        Primitive: Int
                      range:
                        start: 718
                        end: 721
                    - kind:
                        Identifier: 9
                      value_type:
                        Primitive: Int
                      range:
                        start: 723
                        end: 726
              value_type:
                Primitive: Int
              range:
                start: 705
                end: 727
      scope_id: 6
    range:
      start: 652
      end: 729
  5:
    symbol: "*"
    namespace_id: 0
    lhs:
      label: ~
      name: lhs
      var_id: 10
      value_type:
        Primitive: Int
      def_val: ~
      range:
        start: 809
        end: 817
    rhs:
      label: ~
      name: rhs
      var_id: 11
      value_type:
        Primitive: Int
      def_val: ~
      range:
        start: 819
        end: 827
    return_type:
      Primitive: Int
    block:
      body:
        - Return:
            value:
              kind:
                BuiltinFuncCall:
                  id: 33
                  args:
                    - kind:
                        Identifier: 10
                      value_type:
                        Primitive: Int
                      range:
                        start: 862
                        end: 865
                    - kind:
                        Identifier: 11
                      value_type:
                        Primitive: Int
                      range:
                        start: 867
                        end: 870
              value_type:
                Primitive: Int
              range:
                start: 849
                end: 871
      scope_id: 7
    range:
      start: 796
      end: 873
infix_ids:
  ? symbol: "&&"
    lhs_type:
      Primitive: Bool
    rhs_type:
      Primitive: Bool
  : 1
  ? symbol: "*"
    lhs_type:
      Primitive: Int
    rhs_type:
      Primitive: Int
  : 5
  ? symbol: +
    lhs_type:
      Primitive: Int
    rhs_type:
      Primitive: Int
  : 4
  ? symbol: "=="
    lhs_type:
      Primitive: Int
    rhs_type:
      Primitive: Int
  : 2
  ? symbol: ">"
    lhs_type:
      Primitive: Int
    rhs_type:
      Primitive: Int
  : 3
  ? symbol: "||"
    lhs_type:
      Primitive: Bool
    rhs_type:
      Primitive: Bool
  : 0
prefix_operator_properties:
  "!":
    precedence: 7
    range:
      start: 899
      end: 913
prefix_operators:
  6:
    symbol: "!"
    namespace_id: 0
    operand:
      label: ~
      name: operand
      var_id: 12
      value_type:
        Primitive: Bool
      def_val: ~
      range:
        start: 930
        end: 943
    return_type:
      Primitive: Bool
    block:
      body:
        - Return:
            value:
              kind:
                BuiltinFuncCall:
                  id: 53
                  args:
                    - kind:
                        Identifier: 12
                      value_type:
                        Primitive: Bool
                      range:
                        start: 979
                        end: 986
              value_type:
                Primitive: Bool
              range:
                start: 966
                end: 987
      scope_id: 8
    range:
      start: 916
      end: 989
prefix_ids:
  ? symbol: "!"
    operand_type:
      Primitive: Bool
  : 6
postfix_operator_properties: {}
postfix_operators: {}
postfix_ids: {}
next_operator_id: 7
