zac
Warning: the Inspect protocol has already been consolidated... (after adding Ash to project)
I’m relatively new to Ash – that said, it seems there are warnings popping up stemming from Ash. After adding a couple of Ash modules, I’m getting:
warning: the Inspect protocol has already been consolidated, an implementation for Walker.Sprint.ActivityStereotype has no effect. If you want to implement protocols after compilation or during tests, check the "Consolidation" section in the Protocol module documentation
lib/walker/sprint/resources/activity_stereotype.ex:1: Walker.Sprint.ActivityStereotype (module)
warning: the Inspect protocol has already been consolidated, an implementation for Walker.Sprint.ActivityStereotype has no effect. If you want to implement protocols after compilation or during tests, check the "Consolidation" section in the Protocol module documentation
lib/walker/sprint/resources/activity_stereotype.ex:1: Walker.Sprint.ActivityStereotype (module)
Compiled lib/walker/sprint/resources/activity_stereotype.ex
warning: the Inspect protocol has already been consolidated, an implementation for Walker.Sprint.Activity has no effect. If you want to implement protocols after compilation or during tests, check the "Consolidation" section in the Protocol module documentation
lib/walker/sprint/resources/activity.ex:1
warning: the Inspect protocol has already been consolidated, an implementation for Walker.Sprint.Activity has no effect. If you want to implement protocols after compilation or during tests, check the "Consolidation" section in the Protocol module documentation
lib/walker/sprint/resources/activity.ex:1
After a bit of research, I’m stumped as to what it means, and what to do about it. One pair of warnings for every new module (entity) that I’m creating. Which is leading to a lot of warnings. Anyone have a clue how to curtail these things?
I’m using Elixir 1.15.7 and Ash 2.17.4.
Marked As Solved
zac
Thanks @zachdaniel … Did a little digging and found the Protocol docs mentions that consolidation isn’t used in development (because code reloading), but does happen during compilation. You are right, adding this to the subproject:
# mix.exs
def project do
...
consolidate_protocols: Mix.env() != :dev
...
end
And then blowing away _build and .elixir_ls followed by a clean compile appears to have made the warnings go away. At least in dev.







