Fix Dialyzer failure on OTP 29#226
Merged
Merged
Conversation
OTP 29's Dialyzer flags the `seen` MapSet accumulator threaded through the private recursive `uniq_list_of/9` as an opaqueness violation, even though the set is only ever touched through the MapSet API. Mark the function as nowarn to keep CI green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Coverage Report for CI Build 8Warning No base build found for commit Coverage: 93.836%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsRequires a base build to compare against. How to fix this → Coverage Stats
💛 - Coveralls |
Date.before?/2 was only added in Elixir 1.15, but the project supports Elixir ~> 1.12. Replace it with Date.compare(max, min) == :lt, which is available in all supported versions. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
CI on
mainis failing in the Dialyzer job (Elixir 1.20 / OTP 29). OTP 29's Dialyzer flags theseenMapSetaccumulator threaded through the private recursiveuniq_list_of/9as an opaqueness violation (call_without_opaque+ opaque-term-as-argument), even though the set is only ever touched through the publicMapSetAPI.Fix
Mark
uniq_list_of/9as@dialyzer {:nowarn_function, ...}with a comment explaining why. The warnings are spurious Dialyzer opacity false-positives, not real type errors.Verification
Locally on OTP 29 / Elixir 1.20:
mix dialyzer→Total errors: 0 ... passed successfullymix compile --warnings-as-errors→ cleanmix format --check-formatted→ cleanmix test→ 127 passed🤖 Generated with Claude Code