Repository navigation
Check functional-interface arguments of side-effect-free methods #8204
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
Closed
smillst
wants to merge
67
commits into
typetools:master
from
smillst:side-effect-free-functional-params
Closed
Changes from all commits
Commits
Show all changes
67 commits
Select commit
Hold shift + click to select a range
1718f43
Update sideeffectfree javadoc.
smillst 84a53cd
Document purity of lambdas and functional-interface parameters
smillst fc38f89
Revert "Update sideeffectfree javadoc."
smillst f0aa2a8
Merge ../checker-framework-branch-master into siddeffectfree-spec
mernst fb2d3de
Edits
mernst d44bde9
Tweaks.
smillst 39ce816
Merge branch 'master' into siddeffectfree-spec
mernst 9d18bab
Check functional-interface arguments of side-effect-free methods
smillst 4ab0231
Fix holes and false positives in the functional-argument check
smillst d2661ba
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst 92e3d23
Check each result expression of a conditional or switch argument
smillst 6d5fa18
Do not query the members of the null type
smillst e39d069
Merge branch 'master' into side-effect-free-functional-params
smillst d26adfb
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst 3f8af7c
Suppress Interning Checker warnings on Element identity comparisons
smillst 451c1ab
Do not infer purity that would constrain functional-interface arguments
smillst 928b37f
Keep refinements in a lambda that calls a functional-interface parameter
smillst ba26020
Check a method reference like a lambda that calls the referenced method
smillst d0f2701
Check the arguments passed to a varargs functional-interface parameter
smillst 66e4fd9
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst 3163f81
Apply the purity assumptions to a method with no purity annotation
smillst 2dc8e1b
Apply the purity assumptions to a functional argument with no purity …
smillst bffe864
Merge branch 'purity-assume-unannotated' into side-effect-free-functi…
smillst f07786e
Adapt tests to the purity annotations on java.util.Comparator
smillst f8f578b
Add some purity annotations.
smillst b6349bb
Remove change log entry.
smillst 09cd558
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst 2a83216
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst 43b51bb
Fix two compilation errors
smillst a81d884
Require determinism of a void callback that is not side-effect-free
smillst db685ba
Ignore a cast of a functional argument that denotes code
smillst 8d76d27
Do not infer a purity kind that becomes required once another is disc…
smillst d3faa74
Fix nullness errors in purity inference and functional-argument checks
smillst 77b71f4
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst 0702c59
Do not apply -Aassume* options when computing purity kinds safe to infer
smillst 93e66e9
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst f95bdb7
Do not expect JavaParser nodes for a cast of a method reference
smillst a7a2cb2
Merge branch 'ajava-cast-method-reference' into side-effect-free-func…
smillst b9a395b
Document functional-parameter rules for all purity annotations
smillst 014046f
Suppress warnings.
smillst 46c83bf
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst dd494d4
Merge branch 'ajava-cast-method-reference' into side-effect-free-func…
smillst d0e37b2
Merge branch 'side-effect-free-functional-params' of github.com:smill…
smillst 275c2eb
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst 2fbd806
Restrict functional-parameter purity to what every overridden declara…
smillst dfafa84
Assert non-nullness in `functionalParameterPurity`
smillst 9e0e945
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst d08a1f2
Use renamed purity message keys in functional-parameter tests
smillst 5055d89
Update framework/src/main/java/org/checkerframework/common/basetype/B…
smillst 63f86b9
Update docs/manual/purity-checker.tex
smillst ce9c27a
Update framework/tests/all-systems/Issue6874.java
smillst e514fc1
Merge branch 'master' into side-effect-free-functional-params
smillst fbc06a9
Note that purity errors for lambdas and functional arguments require …
smillst 040e1e7
Merge branch 'master' into side-effect-free-functional-params
smillst 55dccfd
Merge branch 'master' into side-effect-free-functional-params
mernst 7b5da5a
Add test: inherited method implementing an interface method with weak…
mernst 0313140
Merge branch 'master' into side-effect-free-functional-params
smillst d77bbdc
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst 09bc9ef
Let an override assume what its own purity annotation requires of fun…
smillst f52852c
Check a functional subinterface argument against the method that impl…
smillst 8f16515
Check code cast to a functional subinterface against the method that …
smillst 8078b4e
Check an argument to a class type variable parameter against its type…
smillst bbc7530
Add a failing test for an inherited implementation of a generic inter…
smillst 256585c
Merge remote-tracking branch 'origin/master' into side-effect-free-fu…
smillst b3bb4af
Merge branch 'master' into side-effect-free-functional-params
smillst 8063daa
Check an argument to a method type variable parameter against its typ…
smillst 403df4e
Do not infer purity for a method with a parameter of an Object-bounde…
smillst File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
336 changes: 331 additions & 5 deletions
336
dataflow/src/main/java/org/checkerframework/dataflow/util/PurityChecker.java
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.