Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logical Infrastructure for final values independent from the heap #3189

Closed
wants to merge 9 commits into from

Conversation

mattulbrich
Copy link
Member

@mattulbrich mattulbrich commented Jun 29, 2023

This is a copy of Merge Request !318 at gitlab. See also there for an extensive discussion on the subject.

Constructors

This mechanism must not be used when verifying a constructor or if constructors are planned to be inlined. In these cases, final field are writable. We suggest to implement this mechanism with a taclet option such that it can be switched off -- or even switched off automatically if need be.

Example

This file that can be closed automatically with this encoding. It cannot be closed in KeY itself since the final modifier is not considered in KeY.

A.java

Remaining issues

This is work in progress. There may be parts of KeY where this change has unexpected consequences.

  • Make it a taclet option
  • Add documentation to new methods
  • OPTIONAL: Adapt welldefined checking. @mi-ki
  • OPTIONAL: Add a class FinalArray<T> which allows this for arrays too (well ...)

Side note: The variable condition \final has already been implemented by Daniel, but was not used till now. Thanks.

mattulbrich and others added 9 commits August 19, 2020 19:08
although not really elegantly engineered.
The dependency would have to be handed in too deep. I remember
the value of a flag in a thread local variable instead.
* master: (213 commits)
  fix dependencies for gradle 7+
  Add setting to disable load examples dialog window
  Fix KeYProject#1566
  fixed NPE with regroup search filter
  improved and corrected wrapLine specification and implementation
  Fixes issues with displaying syntax errors
  [Fix] Intersection construction of location sets in TemrBuilder
  adding a KeY-proven line wrapping method.
  change jetbrains annotation against jsr305 one.
  fix test cases
  fix loading problems
  Revert "restore old order"
  restore old order
  fix NPE in KeyIO.Loader
  rename lex() to createLexer()
  add comments
  switch back to ImmutableList
  remove if statement
  clean up comments
  added comment to KeYParser.g4 as requested
  ...

# Conflicts:
#	key/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/ruleSetsDeclarations.key
# Conflicts:
#	key/key.core/src/main/java/de/uka/ilkd/key/rule/UseDependencyContractRule.java
#	key/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/JMLSpecExtractor.java
#	key/key.core/src/main/java/de/uka/ilkd/key/speclang/jml/translation/JMLTranslator.java
@mattulbrich mattulbrich added Feature New feature or request Calculus labels Jun 29, 2023
@mattulbrich mattulbrich added this to the v2.12.0 milestone Jun 29, 2023
@mattulbrich mattulbrich self-assigned this Jun 29, 2023
@mattulbrich mattulbrich marked this pull request as draft June 29, 2023 07:29
@wadoon
Copy link
Member

wadoon commented Jul 4, 2023

Does this also affect the proof management tool of @WolframPfeifer? Checking whether taclet option was active, while a constructor appeared in a method-frame?

@wadoon wadoon modified the milestones: v2.12.0, v2.14.0 Jul 7, 2023
@wadoon wadoon self-requested a review October 24, 2023 01:27
@wadoon wadoon mentioned this pull request Jul 6, 2024
13 tasks
@mattulbrich mattulbrich added the Wontfix This will not be worked on label Dec 10, 2024
@mattulbrich
Copy link
Member Author

This PR has been superseded by #3495 based on the same (but rebased) code changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Calculus Feature New feature or request Wontfix This will not be worked on
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants