filter for float finiteness in proc_macro2 literal construction #895
+29
−19
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.
Ran into another panic while fuzzing:
panics with
thread 'main' panicked at 'assertion failed: f.is_finite()', /home/purisame/.cargo/registry/src/github.com-1ecc6299db9ec823/proc-macro2-1.0.19/src/lib.rs:1073:9
but:
does not. Syn is calling a function that panics for non-finite floats when parsing expressions, so I've filtered those out.
Parsing non-finite floats
This also raises some other questions -- why does parsing a non-finite float work in the first place?
If we ever have f128, f80, etc. in Rust I think this behavior is fine. In which case, should the
other_suffix
case should fall back toif parsing returns an error?