Skip to content

Unsatisfiable Refinement Warning#202

Open
rcosta358 wants to merge 2 commits intomainfrom
unsatisfiable-refinement-warning
Open

Unsatisfiable Refinement Warning#202
rcosta358 wants to merge 2 commits intomainfrom
unsatisfiable-refinement-warning

Conversation

@rcosta358
Copy link
Copy Markdown
Collaborator

This PR adds a warning for unsatisfiable, self-contradictory refinements. It also avoids re-running the same satisfiability check for the same element across verifier passes.

Examples

image

@rcosta358 rcosta358 self-assigned this Apr 2, 2026
@rcosta358 rcosta358 added enhancement New feature or request error messages Related to error messages labels Apr 2, 2026
@rcosta358 rcosta358 requested a review from CatarinaGamboa April 2, 2026 16:19
Copy link
Copy Markdown
Collaborator

@CatarinaGamboa CatarinaGamboa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I need some description of our approach on this. So we check satisfiability every time that we try to get the value of a @Refinement (and skip if it already has it). But why do we need to add the vars to context? what if a refinements mentions several params that are not yet in context?

return constr;
}

private void checkRefinementSatisfiability(String refinement, Predicate predicate, CtElement element) {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

javadoc plss

CtTypeReference<?> annotationType = element instanceof CtTypedElement<?> typedElement
? typedElement.getType() : null;
if (annotationType != null && !context.hasVariable(Keys.WILDCARD))
context.addVarToContext(Keys.WILDCARD, annotationType, p, element);
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit confused, why are we adding the vars to context here? because this happens before we add them to context?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request error messages Related to error messages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants