Address various issues related to the crash in #402#410
Draft
Address various issues related to the crash in #402#410
Conversation
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.
Fixes #402.
I think the test for #403 was incorrectly added to the branch for #402. I've added an
@Ignoreflag to it, which we can remove when we fix that properly. I fixed some issues related to it, but the test still doesn't pass (although it no longer crashes); this PR is too big already, though, so I'll leave that for later.This PR incorporates the changes in #407 and should not be reviewed properly until after #407 is merged.
Summary of changes:
SpeciminRunnerkeep the list of previous iterations in a linked hash set, to help with debugging (I want them printed in the order they occur). This should have minimal overhead, because the number of elements in the set is small (usually < 10, even for large inputs; it is bounded by the program's longest def-use chain, like CF WPI).returnTypeFailtest case forJsonInclude.Value)updateMissingClassmethod return the class it actually updated, so that further uses of the classes don't use an malformed class that should be an outer/inner pair. This change had to be threaded through a lot ofUnsolvedSymbolVisitor, but probably fixes a few latent miscompilation bugsextendsandsuperbounds, but not?by itself); this one is related to string index out of bounds crash #403's test, not to this PR's test, but oh well