[erlang-bugs] Updating key in empty map doesn't fail

Björn-Egil Dahlberg <>
Sun Feb 9 20:37:42 CET 2014


Thank you for reporting. I believe that this particular bug (among others)
has already been fixed:

https://github.com/erlang/otp/commit/963c06a5b72c2ac8d88a6910ee60248d6dca747d

I aim to have rc2 even more stable. =)

// Björn-Egil


2014-02-09 14:37 GMT+01:00 Lars Hesel Christensen <>:

> Hi All
>
> I'm playing around with the maps in Erlang R17 rc1, and discovered
> something unexpected (at least for me): When updating an empty map with
> a key, the runtime system doesn't complain!
>
> If I define a module with one function that updates a key in the map
> given as an argument:
>
>    -module(maps_test).
>    -compile(export_all).
>    update_key(Map) ->
>        Map#{key := val}.
>
> Then updating an existing key works as expected:
>
>    1> maps_test:update_key(#{key => hello}).
>    #{key => val}
>
> Trying to update a non-existing key in a non-empty map fails as expected
> as well:
>
>    2> maps_test:update_key(#{non_existing_key => hello}).
>    ** exception error: bad argument
>         in function  maps_test:update_key/1 (maps_test.erl, line 4)
>
> Updating a non-existing key in an emtpy-map does NOT fail as expected:
>
>    3> maps_test:update_key(#{}).
>    #{key => val}
>
> I would expect ':=' to behave the same regardless if it is operating on
> an empty map or not.
>
> Maybe this has already been noticed, discussed, explained here or
> somewhere else, but so far I didn't find anything about this behaviour.
>
> A bug, maybe?
>
> Cheers,
> Lars
> _______________________________________________
> erlang-bugs mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-bugs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20140209/4854414b/attachment.html>


More information about the erlang-bugs mailing list