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

Generalize ParsableVariable and Schemavariables #3436

Merged
merged 28 commits into from
May 22, 2024

Conversation

Drodt
Copy link
Member

@Drodt Drodt commented Mar 5, 2024

Related Issue

Intended Change

This PR moves the ParsableVariable interface to ncore, makes it no longer an Operator and renames AbstractSV to OperatorSV as this interface now handles all schema variables that may be operators.

It also handles the refactorings necessary to adapt to this change. I.e., changing types where necessary, changing how modality schema vars are matched, and some changes to the term builder.

Also fixes the Github workflow.

Type of pull request

  • Bug fix (non-breaking change which fixes an issue)
  • Refactoring (behaviour should not change or only minimally change)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • There are changes to the (Java) code
  • There are changes to the taclet rule base
  • There are changes to the deployment/CI infrastructure (gradle, github, ...)
  • Other:

Ensuring quality

  • I made sure that introduced/changed code is well documented (javadoc and inline comments).
  • I made sure that new/changed end-user features are well documented (https://github.com/KeYProject/key-docs).
  • I added new test case(s) for new functionality.
  • I have tested the feature as follows: ...
  • I have checked that runtime performance has not deteriorated.

Additional information and contact(s)

The contributions within this pull request are licensed under GPLv2 (only) for inclusion in KeY.

Copy link

codecov bot commented Mar 5, 2024

Codecov Report

Attention: Patch coverage is 48.11166% with 316 lines in your changes are missing coverage. Please review.

Project coverage is 37.96%. Comparing base (7254776) to head (07ad420).
Report is 116 commits behind head on main.

Current head 07ad420 differs from pull request most recent head a16defe

Please upload reports for the commit a16defe to get more accurate results.

Files Patch % Lines
...de/uka/ilkd/key/speclang/WellDefinednessCheck.java 0.00% 43 Missing ⚠️
...a/ilkd/key/rule/tacletbuilder/TacletGenerator.java 36.00% 32 Missing ⚠️
...ava/de/uka/ilkd/key/smt/newsmt2/SeqDefHandler.java 0.00% 17 Missing ⚠️
.../src/main/java/de/uka/ilkd/key/rule/TacletApp.java 65.90% 8 Missing and 7 partials ⚠️
...e/uka/ilkd/key/speclang/MethodWellDefinedness.java 0.00% 15 Missing ⚠️
...e/uka/ilkd/key/rule/AuxiliaryContractBuilders.java 12.50% 9 Missing and 5 partials ⚠️
.../uka/ilkd/key/speclang/DependencyContractImpl.java 13.33% 13 Missing ⚠️
.../main/java/de/uka/ilkd/key/java/TypeConverter.java 14.28% 7 Missing and 5 partials ⚠️
...c/main/java/de/uka/ilkd/key/logic/TermBuilder.java 33.33% 9 Missing and 1 partial ⚠️
.../key/speclang/FunctionalOperationContractImpl.java 65.51% 10 Missing ⚠️
... and 56 more
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #3436      +/-   ##
============================================
+ Coverage     37.86%   37.96%   +0.10%     
+ Complexity    17079    17058      -21     
============================================
  Files          2092     2081      -11     
  Lines        127596   126912     -684     
  Branches      21478    21332     -146     
============================================
- Hits          48316    48186     -130     
+ Misses        73355    72819     -536     
+ Partials       5925     5907      -18     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@unp1 unp1 self-requested a review March 7, 2024 08:29
@unp1 unp1 assigned Drodt and unp1 Mar 15, 2024
@unp1 unp1 added the RFC "Request for comments" is the appeal for making and expressing your opinion on a topic. label Mar 15, 2024
@Drodt Drodt added Review Request Waiting for review and removed RFC "Request for comments" is the appeal for making and expressing your opinion on a topic. labels May 8, 2024
@unp1 unp1 enabled auto-merge May 22, 2024 09:15
@unp1 unp1 added this pull request to the merge queue May 22, 2024
Merged via the queue into KeYProject:main with commit 55ab074 May 22, 2024
13 checks passed
@unp1 unp1 deleted the move-parsable-var branch May 22, 2024 11:32
mi-ki added a commit that referenced this pull request Jun 20, 2024
…casting TermSV to ProgramVariable not applicable
wadoon added a commit that referenced this pull request Jun 26, 2024
* refs/heads/main:
  Update key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java
  spotless
  update oracle for taclet equality test
  repair soundness of assignment2UpdateRules with checked overflows
  spotless
  Changed types in replacement map for WD taclets, since PR #3436 made casting TermSV to ProgramVariable not applicable
  Fix and test goToNext()
  Fix goToNextSibling() (thx Tobias)
  Format
  Add comments and next() method
  Remove SVSubstitute
  Clean up inheritance
  Implement missing methods
  Start implementation of traversal
  Implement cursor
  Increase Java version
  API design
  throw an error if choices used in a taclet are not declared
  correct inRange(..) predicates for overflow check semantics
  fix creating of branches for overflow checking
wadoon added a commit that referenced this pull request Jun 26, 2024
* refs/heads/main:
  Update key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java
  spotless
  update oracle for taclet equality test
  repair soundness of assignment2UpdateRules with checked overflows
  spotless
  Changed types in replacement map for WD taclets, since PR #3436 made casting TermSV to ProgramVariable not applicable
  Fix and test goToNext()
  Fix goToNextSibling() (thx Tobias)
  Format
  Add comments and next() method
  Remove SVSubstitute
  Clean up inheritance
  Implement missing methods
  Start implementation of traversal
  Implement cursor
  Increase Java version
  API design
  throw an error if choices used in a taclet are not declared
  correct inRange(..) predicates for overflow check semantics
  fix creating of branches for overflow checking
wadoon added a commit to wadoon/key that referenced this pull request Jun 26, 2024
* main: (77 commits)
  Update key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java
  spotless
  update oracle for taclet equality test
  change gradle github action to new syntax
  adding comments to jml spec factory default contracts
  repair soundness of assignment2UpdateRules with checked overflows
  spotless
  EQ version of seqSwapPreservesSeqPerm + proof
  added rule for sequences: swap preserves perm
  Changed types in replacement map for WD taclets, since PR KeYProject#3436 made casting TermSV to ProgramVariable not applicable
  spotlessing ...
  making RuleCommand work if already fully instantiated
  RuleCommand can now deal with rules that have schema variables for logical variables.
  Fix loading of taclet proof obligations (issue KeYProject#3477) * This commit fixes an NPE when loading * This commit fixes missing or inconsistent selection of loaded proof   obligation
  Code clean up (remove unused method)
  Fix loading of closed proofs (GUI threw error)
  Fix and test goToNext()
  Fix goToNextSibling() (thx Tobias)
  Format
  Add comments and next() method
  ...
wadoon added a commit that referenced this pull request Jun 26, 2024
* main: (77 commits)
  Update key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java
  spotless
  update oracle for taclet equality test
  change gradle github action to new syntax
  adding comments to jml spec factory default contracts
  repair soundness of assignment2UpdateRules with checked overflows
  spotless
  EQ version of seqSwapPreservesSeqPerm + proof
  added rule for sequences: swap preserves perm
  Changed types in replacement map for WD taclets, since PR #3436 made casting TermSV to ProgramVariable not applicable
  spotlessing ...
  making RuleCommand work if already fully instantiated
  RuleCommand can now deal with rules that have schema variables for logical variables.
  Fix loading of taclet proof obligations (issue #3477) * This commit fixes an NPE when loading * This commit fixes missing or inconsistent selection of loaded proof   obligation
  Code clean up (remove unused method)
  Fix loading of closed proofs (GUI threw error)
  Fix and test goToNext()
  Fix goToNextSibling() (thx Tobias)
  Format
  Add comments and next() method
  ...
wadoon added a commit that referenced this pull request Jul 5, 2024
* main: (33 commits)
  Update key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java
  spotless
  update oracle for taclet equality test
  change gradle github action to new syntax
  adding comments to jml spec factory default contracts
  repair soundness of assignment2UpdateRules with checked overflows
  spotless
  EQ version of seqSwapPreservesSeqPerm + proof
  added rule for sequences: swap preserves perm
  Changed types in replacement map for WD taclets, since PR #3436 made casting TermSV to ProgramVariable not applicable
  Fix and test goToNext()
  Fix goToNextSibling() (thx Tobias)
  Format
  Add comments and next() method
  Remove SVSubstitute
  Clean up inheritance
  Implement missing methods
  Start implementation of traversal
  Implement cursor
  Increase Java version
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Review Request Waiting for review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants