You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using ets:fun2ms without including ms_transform.hrl raises a runtime error, rather than a compile error:
The parse transform is provided in the ms_transform module and the source must include file ms_transform.hrl in STDLIB for this pseudo function to work. Failing to include the hrl file in the source results in a runtime error, not a compile time error. The include file is easiest included by adding line -include_lib("stdlib/include/ms_transform.hrl"). to the source file.
Describe the solution you'd like
If elvis could spot this, and raise an error, that'd save some headaches. I understand that it probably can't be exhaustive, but it'd be nice.
The text was updated successfully, but these errors were encountered:
We can add a flag, like… method :: aggressive | naive.
With naive (the default), Elvis will only emit a warning if it finds ets:fun2ms and no include for ms_transform.hrl.
With aggressive, Elvis will emit a warning if it finds the atom fun2ms somewhere in the code and no include for ms_transform.hrl.
The parse transform only works on explicit calls to ets:fun2ms and dbg:fun2ms, based on a (very) brief skim of the code, so I don't see the need for complicating it beyond that.
Using ets:fun2ms without including ms_transform.hrl raises a runtime error, rather than a compile error:
Describe the solution you'd like
If elvis could spot this, and raise an error, that'd save some headaches. I understand that it probably can't be exhaustive, but it'd be nice.
The text was updated successfully, but these errors were encountered: