Summary
Add support for Erlang maps in cuter. Cuter already contains some of the required machinery needed for supporting maps, but it currently crashes when parsing code that uses maps.
TODO
This is a rough TODO of things that are required for maps support:
Notes
- My Erlang background is weak, so please excuse (and correct) any misuse/misunderstanding of Erlang/cuter terms.
- My hope is that this issue can help with documenting the implementation process and any design choices made along the way.
- I think it is best to split this work in parts, with separate small PRs for each new functionality subset, so as to help with testing and review.
WIP
Some early work is in https://github.com/neoaggelos/cuter/tree/maps-support
Summary
Add support for Erlang maps in cuter. Cuter already contains some of the required machinery needed for supporting maps, but it currently crashes when parsing code that uses maps.
TODO
This is a rough TODO of things that are required for maps support:
map()type in specs (in progress)c_mapandc_map_pairAST nodes in concolic execution, as well as pattern matching (ref https://github.com/erlang/otp/blob/master/lib/compiler/src/core_parse.hrl#L75-L84). This mainly revolves around extendingeval_expr/andpattern_match/. (in progress)maps:get,maps:put, ...).Notes
WIP
Some early work is in https://github.com/neoaggelos/cuter/tree/maps-support