Ensure explicit R1CS presence checks in SR1CS adapter #417
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.
Problem: The docs for r1cs_to_sr1cs state it panics if R1CS is missing or if there is more than one predicate. The code only asserted num_predicates == 1 and then indexed to_matrices()["R1CS"] without checking presence, causing a panic due to a missing key rather than the documented precondition. r1cs_to_sr1cs_with_assignment had the same implicit panic path
Why it’s a problem: This creates a documentation/behavior mismatch and leads to non-diagnostic panics from map indexing, making failures harder to understand and violating the documented contract.
Fix: Added assert!(has_predicate(R1CS_PREDICATE_LABEL)) before matrix access in both r1cs_to_sr1cs and r1cs_to_sr1cs_with_assignment, preserving the existing num_predicates == 1 check in the former.