GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Soundness: a state change made through an alias is not seen through the original variable · Issue #337 · liquid-java/liquidjava Open Labels bugSomething isn't workingSomething isn't working DescriptionImpact: a real bug passes verification (false negative). It blocks 2 of the 48 real-code examples we built (bugs mined from open-source Java). Description After Minimal reproducer import liquidjava.specification.StateRefinement; import liquidjava.specification.StateSet; @StateSet({"open", "closed"}) class Res implements AutoCloseable { @StateRefinement(to = "open(this)") public Res() {} @StateRefinement(from = "open(this)") public void read() {} @StateRefinement(from = "open(this)", to = "closed(this)") public void close() {} } public class Repro { static void m() { Res a = new Res(); Res b = a; b.close(); a.read(); // a and b are the same object, now closed } } Expected Either aliases share one state (a state error at Actual Control: the same code without the problem construct is reported import liquidjava.specification.StateRefinement; import liquidjava.specification.StateSet; @StateSet({"open", "closed"}) class Res implements AutoCloseable { @StateRefinement(to = "open(this)") public Res() {} @StateRefinement(from = "open(this)") public void read() {} @StateRefinement(from = "open(this)", to = "closed(this)") public void close() {} } public class Control { static void m() { Res a = new Res(); a.close(); a.read(); // without the alias: reported } } Reproduced on Context Found while turning bugs mined from real open-source Java (fixed upstream or still present) into study examples for the error-message study. ActivityMetadataMetadataAssigneesLabelsbugSomething isn't workingSomething isn't working TypeProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |