Skip to content

Drop the guard hint when a call-sequence hint exists, and reword it #518

Closed

Description

@CatarinaGamboa

In A1_09 (Frame.setUndecorated needs display(host) == notDisplayable, path-dependent state) the hints include:

Guard this call with if (!host.isDisplayable()): when it returns false, display(host) == notDisplayable

Two problems:

  1. It leads to a wrong fix that the verifier accepts. Wrapping setUndecorated(true) in that guard skips the decoration in exactly the failing case (the frame stays decorated). LiquidJava accepts it, and the study's grader (analysis/check-fixes.py) marks it INCORRECT.
  2. "when it returns false" is ambiguous next to !host.isDisplayable(), which is true inside the guard.

Proposal

  • No GUARD hint when a CALL_SEQUENCE hint exists (StateHints.forCall). A1_56 keeps its guard, since it has no call-sequence hint and its guard is the reference fix.
  • Reword the guard template to Guard this call with if (<condition>); inside it, <state>.

Found in the pre-study review of the six study tasks (verification expert + UX researcher).

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    studyNeeded before the error-message user study

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions