We are now delegating to the backend the job of decoding the terms instead of casting if the dtype is different from the inferred dtype. In fact we stopped to infer the type if the dtype is given.
In a nutshell, this PR:
removes the inference of type if :dtype is given.
stop casting if given dtype and inferred dtype are different, because point 1.
adds a manual decoding of terms for the functions that may accept special values (structs or integers).
The main goal is to improve performance, as discussed in #922.
This is a continuation of https://github.com/elixir-explorer/explorer/pull/923
We are now delegating to the backend the job of decoding the terms instead of casting if the dtype is different from the inferred dtype. In fact we stopped to infer the type if the dtype is given.
In a nutshell, this PR:
:dtype
is given.The main goal is to improve performance, as discussed in #922.