fix: ProtocolEx compile error on Elixir 1.19 #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
On Elixir 1.19,
mix compilefails with:ProtocolEx.MissingRequiredProtocolDefinitionto_panpipe/1for the Pandoc document matcher (the%{"blocks" => _, "pandoc-api-version" => _}map)Although
to_panpipe/1was present in thedefimpl_exinlib/panpipe/document.ex, ProtocolEx's compile-time verification could fail to see the exported callback during compilation, causing a hard compilation failure.defimpl_exfromlib/panpipe/document.ex.Panpipe.Pandoc.AST.Node.to_panpipe/1insidelib/panpipe/ast/nodes.exusing acaseclause.This keeps the conversion logic in one place and avoids the ProtocolEx per-implementation callback verification ordering issue on Elixir 1.19.