tree-sitter-rescript icon indicating copy to clipboard operation
tree-sitter-rescript copied to clipboard

Missing "unpack" during coercion

Open CarlOlson opened this issue 1 year ago • 0 comments

type t<'a> = float

let zero = () => 0.

let _ = {
  "value": (zero() :> t<[#Label]>),
}

Playground

(source_file [0, 0] - [7, 0]
  (type_declaration [0, 0] - [0, 18]
    (type_binding [0, 5] - [0, 18]
      name: (type_identifier [0, 5] - [0, 6])
      (type_parameters [0, 6] - [0, 10]
        (type_identifier [0, 7] - [0, 9]))
      (type_identifier [0, 13] - [0, 18])))
  (let_declaration [2, 0] - [2, 19]
    (let_binding [2, 4] - [2, 19]
      pattern: (value_identifier [2, 4] - [2, 8])
      body: (function [2, 11] - [2, 19]
        parameters: (formal_parameters [2, 11] - [2, 13])
        body: (number [2, 17] - [2, 19]))))
  (let_declaration [4, 0] - [6, 1]
    (let_binding [4, 4] - [6, 1]
      pattern: (value_identifier [4, 4] - [4, 5])
      body: (object [4, 8] - [6, 1]
        (field [5, 2] - [5, 34]
          (property_identifier [5, 2] - [5, 9]
            (string_fragment [5, 3] - [5, 8]))
          (parenthesized_expression [5, 11] - [5, 34]
            (binary_expression [5, 12] - [5, 33]
              left: (binary_expression [5, 12] - [5, 32]
                left: (coercion_expression [5, 12] - [5, 23]
                  left: (call_expression [5, 12] - [5, 18]
                    function: (value_identifier [5, 12] - [5, 16])
                    arguments: (arguments [5, 16] - [5, 18]))
                  right: (type_identifier [5, 22] - [5, 23]))
                right: (array [5, 24] - [5, 32]
                  (polyvar [5, 25] - [5, 31]
                    (polyvar_identifier [5, 25] - [5, 31]))))
              right: (value_identifier [5, 33] - [5, 33]))))))))
Test.res           0.36 ms         248 bytes/ms (MISSING "unpack" [5, 33] - [5, 33])

CarlOlson avatar Jun 27 '24 09:06 CarlOlson