[5.5][ConstraintSystem] Relax the left-over information check in ComponentStep #38790
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.
Cherry-pick of #38770
Instead of crashing when constraint system ends up in an invalid state because
of a bug in the solver, let's simply fail the step and let type-checker produce a
fallback diagnostic, this is much more user-friendly in a way that it points out
exactly what happened, where it happened and asks to file a bug.
Scope: Invalid code that ends up putting constraint system into an invalid state e.g. are some active/inactive constraints are left in the system unsolved.
Main Branch PR: [ConstraintSystem] Relax the left-over information check in
ComponentStep#38770Resolves: rdar://56167233
Risk: Low
Reviewed By: @hborla @hamishknight
Testing: Tested this manually by reverting PRs that fixed abort in
ComponentStep::take, unfortunately it's not practical to add unit tests for this issue because we'd rather fix every instance of this issue right away.Resolves: rdar://56167233