Evaluate map expression and pattern matching #185
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
References #183. Support expressions and pattern matching for Erlang maps.
This PR can be reviewed and merged separately from #184, but any future work on maps greatly depends on these two PRs getting merged.
Changes
map
andmap_pair
nodes. This is required for pattern matching to work properly.{c_map, ...}
(maps) and{c_map_pair, ...}
(key-value pairs) nodes ineval_expr/6
.{c_map, ...}
(maps) and{c_map_pair, ...}
(key-value pairs) nodes inpattern_match/9
maps
standard library (maps:get
,maps:put
andis_map
).Testing
Notes
maps:get
andmaps:put
from the standard library as well. The rest of the standard library (e.g.maps:from_list
,maps:to_list
) is not straightforward to support and will be added in a separate PR.--disable-pmatch
is required, since map values are not handled.