You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 26ea1c8
Browse filesBrowse the repository at this point in the historyBrowse files
Verify static and default interface method bodies (#385)
Fixes#343.
The verifier assumed every return and `this` access belonged to a class,
so static and default interface methods crashed before verification.
Return checking now uses the nearest method and its declaring type,
resolves overloads by parameter types, and keeps lambda returns separate
from an enclosing method. Interface method invocations also use their
registered contracts.
New passing cases cover the reported `String.length()` call, annotated
static/default methods, `return this`, same-arity overloads, and lambda
returns inside interface bodies. New failing cases require errors for
invalid static/default returns and a bad interface method argument.
Validation: `mvn test` passed all 391 tests, and the four new fixtures
produced their expected outcomes when run directly.
This change does not extend interface supertype contract inheritance.
Copy file name to clipboardExpand all lines: liquidjava-verifier/src/main/java/liquidjava/processor/refinement_checker/general_checkers/MethodsFunctionsChecker.java
0 commit comments