-
Notifications
You must be signed in to change notification settings - Fork 2
KeY provider/applicant: accessible of void methods #6
Copy link
Copy link
Open
Labels
adapter/key/export-applicant`KeY` adapter, exporting from `Contract-LIB` to `KeY`, the contract is applied in `KeY`.`KeY` adapter, exporting from `Contract-LIB` to `KeY`, the contract is applied in `KeY`.adapter/key/export-provider`KeY` adapter, exporting from `Contract-LIB` to `KeY`, expecting the code to be verified with `KeY`.`KeY` adapter, exporting from `Contract-LIB` to `KeY`, expecting the code to be verified with `KeY`.bugSomething isn't workingSomething isn't working
Metadata
Metadata
Assignees
Labels
adapter/key/export-applicant`KeY` adapter, exporting from `Contract-LIB` to `KeY`, the contract is applied in `KeY`.`KeY` adapter, exporting from `Contract-LIB` to `KeY`, the contract is applied in `KeY`.adapter/key/export-provider`KeY` adapter, exporting from `Contract-LIB` to `KeY`, expecting the code to be verified with `KeY`.`KeY` adapter, exporting from `Contract-LIB` to `KeY`, expecting the code to be verified with `KeY`.bugSomething isn't workingSomething isn't working
Void methods in KeY should not have accessible clauses. While parsable, KeY throws an error when trying to prove the contract: "Dependency contracts are currently not allowed for void methods"
The reason for this is the current semantics of accessible clauses in KeY, which is roughly: "The method result only depends on the locations specified in the accessible clause". This is a subject of discussion in KeY (see KeYProject/key#3565), but for the moment, we should just not generate these clauses for void methods.