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

Support general nonnil->nonnil function contract, i.e., having a single nonnil but any numbers of any, e.g. contract(_,nonnil->nonnil,_) #41

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

zzqatuber
Copy link
Contributor

Support general nonnil->nonnil function contract, i.e., having a single nonnil but any numbers of any, e.g. contract(,nonnil->nonnil,).

@codecov
Copy link

codecov bot commented Aug 18, 2023

Codecov Report

Merging #41 (881b950) into zzq/function-contracts/auto-infer (4c0f546) will decrease coverage by 0.02%.
The diff coverage is 87.68%.

@@                          Coverage Diff                          @@
##           zzq/function-contracts/auto-infer      #41      +/-   ##
=====================================================================
- Coverage                              87.56%   87.55%   -0.02%     
=====================================================================
  Files                                     54       54              
  Lines                                   8452     8547      +95     
=====================================================================
+ Hits                                    7401     7483      +82     
- Misses                                   896      906      +10     
- Partials                                 155      158       +3     
Files Changed Coverage Δ
assertion/function/analyzer.go 86.23% <78.12%> (-0.15%) ⬇️
...nction/functioncontracts/function_contracts_map.go 76.78% <80.48%> (+10.11%) ⬆️
assertion/function/functioncontracts/analyzer.go 78.57% <92.00%> (-0.07%) ⬇️
...tion/function/assertiontree/parse_expr_producer.go 96.58% <100.00%> (ø)
...tion/function/assertiontree/root_assertion_node.go 88.44% <100.00%> (+0.13%) ⬆️
assertion/function/functioncontracts/infer.go 85.40% <100.00%> (+0.81%) ⬆️

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@zzqatuber zzqatuber force-pushed the zzq/function-contracts/general-nonnil branch from ddbcbfa to 881b950 Compare August 18, 2023 22:11
yuxincs added a commit that referenced this pull request Nov 29, 2023
@zzqatuber has implemented contract support in NilAway and has merged
the manual contract support (i.e., via manual annotations such as
`//contract(nonnil->nonnil)`) in main NilAway but hidden under a flag.

After internal performance validations there are no major
performance/functionality degradations of simply enabling this feature,
therefore this PR removes the hidden flag and make it available in
NilAway.

After this PR, we will prioritize merging the automatic inference of the
function contracts (i.e., PR #40 , PR #41 , and PR #42 ).
@yuxincs yuxincs force-pushed the zzq/function-contracts/auto-infer branch from ade60da to 9a435c7 Compare February 1, 2024 04:00
@yuxincs yuxincs force-pushed the zzq/function-contracts/auto-infer branch 3 times, most recently from 53d4d87 to 1243676 Compare February 14, 2024 20:05
Base automatically changed from zzq/function-contracts/auto-infer to main February 23, 2024 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant