rebcabin / masr

Meta ASR: replacement for aging ASDL
MIT License
4 stars 0 forks source link

`StringItem` results can be either `Character` or `Integer` #51

Open rebcabin opened 1 year ago

rebcabin commented 1 year ago

Found by bisecting false positives:

(StringItem
  (Var 5 __tmp_assign_for_loop)
  (IntegerBinOp
    (Var 5 __explicit_iterator)
    Add
    (IntegerConstant 1 (Integer 4 []))
    (Integer 4 [])
    ()  )
  (Integer 4 [])  ;; <~~???~~ type is an Integer 4 
  ()  )
(StringItem
  (Var 5 d)
  (IntegerBinOp
    (Var 5 i)
    Add
    (IntegerConstant 1 (Integer 4 []))
    (Integer 4 [])
    ()  )
  (Character 1 -2 () [])  ;; <~~???~~ type is a Character 1
  ()  )

Is this intentional? The ASDL is ambiguous:

    | StringItem(expr arg, expr idx, ttype type, expr? value)