Fix dialyzer warning in Code.format_string!/2 #14928
Open
+16
−1
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.
Closes #14927
I'm starting to dislike these fixes, especially because Dialyzer is unable to follow the real types of functions like
Keyword.pop. No matter what function we call, returning akeywordwill be enough for Dialyzer to give up checking keys altogether.Calling
Keyword.takebefore each call doesn't seem great, there's an extra performance cost for no reason since these functions don't care about the extra opts.We might as well define "open keyword" types, like we do for
format_opts(| {atom(), term()}), which correspond better to the real types of these functions (the downside is we can't catch typos in opts).