-
Notifications
You must be signed in to change notification settings - Fork 25
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
Map with new equalities #3486
Map with new equalities #3486
Conversation
…ass EqualityUtils and make it more general
…operty and TermLabelsProperty
…ities # Conflicts: # key.core/src/main/java/de/uka/ilkd/key/logic/equality/ProofIrrelevancyProperty.java
…perty was asserted to be true
…ant or all term labels
# Conflicts: # key.core/src/main/java/de/uka/ilkd/key/rule/match/legacy/ElementMatcher.java
…p-with-new-equalities
There are some minor merge errors. Besides that it looks fine |
…ingSourceElementProperty
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3486 +/- ##
============================================
+ Coverage 38.10% 38.16% +0.05%
- Complexity 17181 17222 +41
============================================
Files 2107 2109 +2
Lines 127519 127643 +124
Branches 21437 21458 +21
============================================
+ Hits 48596 48710 +114
- Misses 72940 72943 +3
- Partials 5983 5990 +7 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work. Thanks!
Having a quick glance and check after this PR, the changes seem to make the taclet varcond TermLabelCondition non-functional. For example, in well-definedness checks, the according taclets (e.g., wd_Logical_Op_And and wd_Logical_Op_AndSC) are not applicable anymore. Could you maybe have a further look at this? |
That is curious as this PR should have only added hash-methods that were not used before and a HashMap wrapper that is also not yet used in any previously existing code. |
Cool, thanks in advance! |
As a starting point for me, is there any specific example or problem you looked at where these taclets were not applicable anymore, but they were previously? |
As a use case, we had for a long time the verification of the hagrid key-server. For this, we only used Integer and the symbolical equality (=) in JavaDL b/c the map theory was restricted to that. Would it now be possible to extend this example to equalities on String or even |
I just re-checked the example from two weeks ago, and apparently cannot reproduce the problem, as it seems to work fine. Hence, sorry for the false alarm, and thanks for the effort! |
Well that is nice, no problem. |
If I understand your question correctly, then the answer is no. My changes were just meant to finish hashCodeModProperty and wrap the LinkedHashMap to be used as a more efficient cache with equalsModProperty in the future. |
Related Issue
This pull request depends on PR #3459, which should be merged before reviewing this PR.
Intended Change
This PR adds the new collection
LinkedHashMapWrapper
that can be used like theLinkedHashMap
in key.core/de.uka.ilkd.key.util. The difference is, that elements are wrapped internally so thatequalsModProperty()
andhashCodeModProperty()
are used instead of the normalequals()
andhashCode()
methods.For this to work,
hashCodeModProperty()
is implemented for all properties introduced in #3459.Plan
Use general navigation structure instead of TreeWalker for hashCodeModThisPropertyType of pull request
Ensuring quality
The contributions within this pull request are licensed under GPLv2 (only) for inclusion in KeY.