@@ -455,27 +455,22 @@ defmodule Module.Types.Apply do
455455
456456 defp remote_apply ( :maps , :get , _info , [ key , map ] = args_types , stack ) do
457457 case map_get ( map , key ) do
458- { _ , value } ->
459- { :ok , return ( value , args_types , stack ) }
460-
461- :badmap ->
462- { :error , badremote ( :maps , :get , 2 ) }
463-
464- :error ->
465- { :error , { :badkeydomain , map , key , nil } }
458+ { :ok , value } -> { :ok , return ( value , args_types , stack ) }
459+ :badmap -> { :error , badremote ( :maps , :get , 2 ) }
460+ :error -> { :error , { :badkeydomain , map , key , nil } }
466461 end
467462 end
468463
469464 defp remote_apply ( :maps , :update , _info , [ key , value , map ] = args_types , stack ) do
470- case map_update ( map , key , value , false ) do
465+ case map_update ( map , key , value , false , false ) do
471466 { _value , descr , _errors } -> { :ok , return ( descr , args_types , stack ) }
472467 :badmap -> { :error , badremote ( :maps , :update , 3 ) }
473468 { :error , _errors } -> { :error , { :badkeydomain , map , key , nil } }
474469 end
475470 end
476471
477472 defp remote_apply ( :maps , :take , _info , [ key , map ] = args_types , stack ) do
478- case map_update ( map , key , not_set ( ) ) do
473+ case map_update ( map , key , not_set ( ) , true , false ) do
479474 # We could suggest to use :maps.delete if the key always exists
480475 # but :maps.take/2 means calling Erlang directly, so we are fine.
481476 { value , descr , errors } ->
0 commit comments