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

Optimization pipeline: switch order of fndedup and inlining #6024

Merged
merged 17 commits into from
May 22, 2024

Conversation

vaivaswatha
Copy link
Contributor

Without function deduplication, the heuristic that we have for inlining "if a function is called only once, inline it" isn't good enough because identical functions, after they're combined into one will have multiple callers, which wouldn't be so without fndedup.

Without function deduplication, the heuristic that we have for
inlining "if a function is called only once, inline it" isn't
good enough because identical functions, after they're combined into
one will have multiple callers, which wouldn't be so without fndedup.
@vaivaswatha vaivaswatha self-assigned this May 16, 2024
Copy link

Benchmark for 1b882da

Click to view benchmark
Test Base PR %
code_action 5.2±0.02ms 5.2±0.06ms 0.00%
code_lens 279.7±5.18ns 295.1±13.71ns +5.51%
compile 3.0±0.03s 3.0±0.04s 0.00%
completion 4.5±0.02ms 4.7±0.13ms +4.44%
did_change_with_caching 2.8±0.07s 2.9±0.05s +3.57%
document_symbol 958.2±28.51µs 952.9±27.26µs -0.55%
format 69.6±1.11ms 70.2±0.67ms +0.86%
goto_definition 363.8±6.72µs 398.0±6.33µs +9.40%
highlight 8.7±0.09ms 8.7±0.12ms 0.00%
hover 483.2±6.32µs 526.3±7.78µs +8.92%
idents_at_position 122.7±0.87µs 122.3±1.70µs -0.33%
inlay_hints 652.9±28.07µs 659.2±33.24µs +0.96%
on_enter 458.4±11.07ns 465.0±11.99ns +1.44%
parent_decl_at_position 3.6±0.05ms 3.6±0.03ms 0.00%
prepare_rename 357.2±12.29µs 401.6±7.18µs +12.43%
rename 9.2±0.23ms 9.3±0.19ms +1.09%
semantic_tokens 983.8±37.33µs 964.5±8.10µs -1.96%
token_at_position 354.4±3.11µs 351.8±2.62µs -0.73%
tokens_at_position 3.6±0.05ms 3.6±0.02ms 0.00%
tokens_for_file 421.3±3.40µs 421.5±4.24µs +0.05%
traverse 41.0±1.04ms 41.1±1.16ms +0.24%

Copy link

Benchmark for a6f14c0

Click to view benchmark
Test Base PR %
code_action 5.3±0.22ms 5.2±0.03ms -1.89%
code_lens 288.8±6.41ns 291.7±8.92ns +1.00%
compile 2.9±0.04s 3.0±0.10s +3.45%
completion 4.6±0.07ms 4.6±0.02ms 0.00%
did_change_with_caching 2.9±0.04s 2.8±0.06s -3.45%
document_symbol 1009.4±60.82µs 1030.1±38.08µs +2.05%
format 86.1±0.88ms 88.0±0.70ms +2.21%
goto_definition 408.7±7.64µs 363.7±6.85µs -11.01%
highlight 8.8±0.20ms 8.7±0.25ms -1.14%
hover 524.6±7.00µs 491.1±5.08µs -6.39%
idents_at_position 124.4±1.49µs 123.5±1.71µs -0.72%
inlay_hints 655.2±22.81µs 658.2±44.57µs +0.46%
on_enter 481.9±12.24ns 479.4±16.42ns -0.52%
parent_decl_at_position 3.6±0.10ms 3.6±0.03ms 0.00%
prepare_rename 402.9±3.78µs 368.2±16.59µs -8.61%
rename 9.3±0.03ms 9.2±0.19ms -1.08%
semantic_tokens 984.1±15.97µs 958.3±19.01µs -2.62%
token_at_position 361.0±4.03µs 359.3±2.65µs -0.47%
tokens_at_position 3.6±0.03ms 3.6±0.05ms 0.00%
tokens_for_file 414.6±3.16µs 429.9±2.76µs +3.69%
traverse 42.2±0.80ms 42.7±0.83ms +1.18%

This is because it relies on contract-id, which changes
with the build profile
Copy link

Benchmark for 3384e60

Click to view benchmark
Test Base PR %
code_action 5.2±0.02ms 5.2±0.10ms 0.00%
code_lens 289.9±8.17ns 289.4±6.15ns -0.17%
compile 2.9±0.02s 2.9±0.03s 0.00%
completion 4.5±0.02ms 4.6±0.09ms +2.22%
did_change_with_caching 2.8±0.03s 2.9±0.04s +3.57%
document_symbol 997.5±51.27µs 1014.1±42.14µs +1.66%
format 85.4±2.52ms 85.1±1.13ms -0.35%
goto_definition 360.0±3.00µs 364.7±6.27µs +1.31%
highlight 8.7±0.14ms 8.7±0.02ms 0.00%
hover 483.5±10.31µs 484.7±7.69µs +0.25%
idents_at_position 123.0±2.15µs 122.1±0.47µs -0.73%
inlay_hints 649.5±22.62µs 654.2±30.09µs +0.72%
on_enter 487.2±25.66ns 505.4±14.67ns +3.74%
parent_decl_at_position 3.6±0.07ms 3.6±0.03ms 0.00%
prepare_rename 362.9±9.06µs 364.2±7.60µs +0.36%
rename 9.3±0.05ms 9.3±0.08ms 0.00%
semantic_tokens 984.0±25.24µs 962.4±42.87µs -2.20%
token_at_position 357.9±3.39µs 356.4±6.67µs -0.42%
tokens_at_position 3.6±0.07ms 3.6±0.03ms 0.00%
tokens_for_file 420.9±1.82µs 416.4±2.27µs -1.07%
traverse 41.3±0.94ms 41.6±1.08ms +0.73%

Copy link

Benchmark for 9167d09

Click to view benchmark
Test Base PR %
code_action 5.2±0.31ms 5.5±0.06ms +5.77%
code_lens 285.2±12.76ns 295.9±9.00ns +3.75%
compile 3.0±0.04s 2.9±0.03s -3.33%
completion 4.6±0.10ms 4.7±0.01ms +2.17%
did_change_with_caching 2.8±0.07s 2.8±0.07s 0.00%
document_symbol 1014.3±15.86µs 948.5±25.48µs -6.49%
format 74.0±1.02ms 71.0±1.23ms -4.05%
goto_definition 436.7±12.82µs 423.8±5.91µs -2.95%
highlight 8.7±0.03ms 9.2±0.12ms +5.75%
hover 484.2±6.41µs 542.1±5.95µs +11.96%
idents_at_position 123.3±0.84µs 123.6±1.75µs +0.24%
inlay_hints 659.3±20.39µs 661.2±8.93µs +0.29%
on_enter 485.2±11.40ns 489.3±13.84ns +0.85%
parent_decl_at_position 3.6±0.04ms 3.8±0.06ms +5.56%
prepare_rename 364.2±7.50µs 427.7±38.91µs +17.44%
rename 9.3±0.10ms 9.7±0.07ms +4.30%
semantic_tokens 993.0±29.87µs 961.7±11.30µs -3.15%
token_at_position 357.1±2.23µs 353.7±3.18µs -0.95%
tokens_at_position 3.6±0.04ms 3.7±0.03ms +2.78%
tokens_for_file 416.7±7.24µs 418.0±6.32µs +0.31%
traverse 40.9±1.28ms 41.4±1.33ms +1.22%

Copy link

Benchmark for 2125336

Click to view benchmark
Test Base PR %
code_action 5.2±0.06ms 5.4±0.08ms +3.85%
code_lens 283.6±9.30ns 282.3±8.75ns -0.46%
compile 2.9±0.03s 2.9±0.05s 0.00%
completion 4.5±0.06ms 4.8±0.06ms +6.67%
did_change_with_caching 2.8±0.04s 2.7±0.05s -3.57%
document_symbol 940.3±15.74µs 971.0±15.21µs +3.26%
format 73.8±1.00ms 73.8±0.73ms 0.00%
goto_definition 358.9±5.92µs 383.2±7.41µs +6.77%
highlight 8.7±0.17ms 9.1±0.12ms +4.60%
hover 477.7±6.45µs 505.9±6.27µs +5.90%
idents_at_position 123.0±0.43µs 122.1±0.57µs -0.73%
inlay_hints 654.1±12.47µs 663.7±20.97µs +1.47%
on_enter 469.4±12.04ns 478.8±15.37ns +2.00%
parent_decl_at_position 3.6±0.02ms 3.7±0.08ms +2.78%
prepare_rename 358.4±3.72µs 383.4±4.75µs +6.98%
rename 9.2±0.17ms 9.6±0.03ms +4.35%
semantic_tokens 970.2±11.84µs 971.3±22.30µs +0.11%
token_at_position 357.8±2.48µs 360.3±2.01µs +0.70%
tokens_at_position 3.6±0.03ms 3.7±0.04ms +2.78%
tokens_for_file 414.0±2.56µs 417.5±2.29µs +0.85%
traverse 40.2±0.84ms 39.6±1.13ms -1.49%

Copy link

Benchmark for b571d41

Click to view benchmark
Test Base PR %
code_action 5.5±0.02ms 5.2±0.11ms -5.45%
code_lens 283.7±7.68ns 284.9±8.72ns +0.42%
compile 3.0±0.03s 3.0±0.04s 0.00%
completion 4.6±0.01ms 4.5±0.10ms -2.17%
did_change_with_caching 2.9±0.03s 2.8±0.04s -3.45%
document_symbol 1059.0±13.50µs 965.1±20.33µs -8.87%
format 74.3±1.02ms 74.1±1.19ms -0.27%
goto_definition 361.3±5.52µs 365.9±11.55µs +1.27%
highlight 8.8±0.02ms 8.7±0.14ms -1.14%
hover 476.3±3.70µs 486.1±6.03µs +2.06%
idents_at_position 122.3±0.35µs 123.5±0.76µs +0.98%
inlay_hints 652.0±19.24µs 650.0±21.59µs -0.31%
on_enter 451.8±20.39ns 466.4±11.76ns +3.23%
parent_decl_at_position 3.6±0.04ms 3.6±0.02ms 0.00%
prepare_rename 363.3±5.18µs 369.2±11.01µs +1.62%
rename 9.4±0.15ms 9.2±0.15ms -2.13%
semantic_tokens 957.4±16.99µs 986.1±19.71µs +3.00%
token_at_position 361.1±6.12µs 365.9±3.31µs +1.33%
tokens_at_position 3.6±0.05ms 3.6±0.03ms 0.00%
tokens_for_file 422.0±6.93µs 461.2±2.37µs +9.29%
traverse 40.2±1.57ms 40.7±1.33ms +1.24%

Copy link

Benchmark for c6b515f

Click to view benchmark
Test Base PR %
code_action 5.3±0.14ms 5.3±0.15ms 0.00%
code_lens 284.8±7.61ns 285.1±9.39ns +0.11%
compile 3.1±0.04s 3.0±0.03s -3.23%
completion 4.7±0.11ms 4.8±0.26ms +2.13%
did_change_with_caching 2.9±0.08s 2.8±0.03s -3.45%
document_symbol 1136.6±33.81µs 1080.4±29.73µs -4.94%
format 75.0±0.69ms 74.6±1.93ms -0.53%
goto_definition 366.2±7.26µs 382.0±4.26µs +4.31%
highlight 9.0±0.27ms 8.8±0.08ms -2.22%
hover 483.7±4.64µs 500.2±11.31µs +3.41%
idents_at_position 125.9±0.63µs 122.6±1.46µs -2.62%
inlay_hints 660.1±34.28µs 679.0±28.60µs +2.86%
on_enter 447.5±16.46ns 464.6±13.42ns +3.82%
parent_decl_at_position 3.7±0.08ms 3.7±0.09ms 0.00%
prepare_rename 367.7±7.57µs 380.3±5.76µs +3.43%
rename 9.4±0.16ms 9.5±0.26ms +1.06%
semantic_tokens 970.0±21.28µs 1013.8±28.29µs +4.52%
token_at_position 352.1±4.01µs 369.5±3.31µs +4.94%
tokens_at_position 3.6±0.05ms 3.7±0.08ms +2.78%
tokens_for_file 421.9±2.79µs 421.4±2.49µs -0.12%
traverse 42.0±1.47ms 42.2±1.71ms +0.48%

Copy link

Benchmark for ee6e7bf

Click to view benchmark
Test Base PR %
code_action 5.2±0.06ms 5.3±0.22ms +1.92%
code_lens 285.9±13.33ns 287.0±14.11ns +0.38%
compile 2.9±0.03s 3.0±0.04s +3.45%
completion 4.5±0.09ms 4.5±0.08ms 0.00%
did_change_with_caching 2.8±0.04s 2.8±0.02s 0.00%
document_symbol 943.9±18.61µs 1031.4±43.54µs +9.27%
format 74.0±1.36ms 74.0±2.21ms 0.00%
goto_definition 364.4±6.88µs 359.5±3.28µs -1.34%
highlight 8.7±0.02ms 8.7±0.16ms 0.00%
hover 480.6±4.74µs 474.5±3.56µs -1.27%
idents_at_position 123.4±0.36µs 123.8±0.44µs +0.32%
inlay_hints 661.6±30.05µs 647.9±14.64µs -2.07%
on_enter 448.3±7.21ns 462.4±7.53ns +3.15%
parent_decl_at_position 3.6±0.04ms 3.6±0.03ms 0.00%
prepare_rename 360.5±6.50µs 356.2±4.10µs -1.19%
rename 9.3±0.04ms 9.2±0.02ms -1.08%
semantic_tokens 986.0±17.57µs 982.8±28.19µs -0.32%
token_at_position 354.1±3.65µs 360.1±1.68µs +1.69%
tokens_at_position 3.6±0.03ms 3.6±0.05ms 0.00%
tokens_for_file 411.7±1.41µs 415.2±2.49µs +0.85%
traverse 39.6±1.28ms 40.7±1.11ms +2.78%

Copy link

Benchmark for 715f067

Click to view benchmark
Test Base PR %
code_action 5.2±0.10ms 5.2±0.11ms 0.00%
code_lens 283.8±8.61ns 284.5±5.67ns +0.25%
compile 3.0±0.04s 2.9±0.04s -3.33%
completion 4.6±0.03ms 4.5±0.07ms -2.17%
did_change_with_caching 2.8±0.06s 2.8±0.04s 0.00%
document_symbol 1024.4±33.14µs 947.2±18.75µs -7.54%
format 74.0±0.58ms 72.9±1.00ms -1.49%
goto_definition 374.5±6.72µs 366.8±5.91µs -2.06%
highlight 8.7±0.15ms 8.8±0.22ms +1.15%
hover 492.8±5.45µs 487.3±7.87µs -1.12%
idents_at_position 123.5±0.43µs 125.1±0.78µs +1.30%
inlay_hints 661.3±34.34µs 658.4±11.43µs -0.44%
on_enter 440.0±4.21ns 451.8±11.13ns +2.68%
parent_decl_at_position 3.6±0.29ms 3.6±0.11ms 0.00%
prepare_rename 372.0±10.83µs 364.8±4.67µs -1.94%
rename 9.2±0.02ms 9.3±0.13ms +1.09%
semantic_tokens 981.4±8.25µs 984.0±10.35µs +0.26%
token_at_position 361.6±2.12µs 365.6±2.72µs +1.11%
tokens_at_position 3.6±0.05ms 3.6±0.04ms 0.00%
tokens_for_file 413.9±5.07µs 464.7±1.63µs +12.27%
traverse 40.1±0.90ms 40.1±1.74ms 0.00%

Copy link

Benchmark for 1dfaaec

Click to view benchmark
Test Base PR %
code_action 5.4±0.02ms 5.4±0.18ms 0.00%
code_lens 281.2±5.41ns 287.3±7.27ns +2.17%
compile 3.1±0.03s 3.0±0.04s -3.23%
completion 4.7±0.08ms 4.6±0.12ms -2.13%
did_change_with_caching 2.9±0.04s 2.9±0.03s 0.00%
document_symbol 990.8±29.40µs 987.0±32.77µs -0.38%
format 74.1±0.64ms 74.3±0.95ms +0.27%
goto_definition 369.6±8.14µs 372.6±6.06µs +0.81%
highlight 9.1±0.05ms 8.8±0.20ms -3.30%
hover 495.0±5.41µs 498.0±7.71µs +0.61%
idents_at_position 122.6±0.40µs 123.7±0.76µs +0.90%
inlay_hints 671.7±26.22µs 693.3±102.66µs +3.22%
on_enter 462.8±14.43ns 468.1±17.50ns +1.15%
parent_decl_at_position 3.7±0.03ms 3.6±0.03ms -2.70%
prepare_rename 364.0±4.10µs 371.5±7.05µs +2.06%
rename 9.7±0.12ms 9.3±0.18ms -4.12%
semantic_tokens 963.5±14.11µs 996.5±22.03µs +3.43%
token_at_position 355.7±4.41µs 368.9±1.64µs +3.71%
tokens_at_position 3.7±0.04ms 3.6±0.04ms -2.70%
tokens_for_file 419.0±4.00µs 424.6±3.98µs +1.34%
traverse 40.9±1.07ms 41.6±0.95ms +1.71%

@vaivaswatha
Copy link
Contributor Author

Code size impact on our testsuite:

Click here for the numbers
test before after reduction%
should_pass/return_in_strange_positions 960 960 0
should_pass/payable_non_zero_coins 1688 1664 1.4218009478673
should_pass/superabi_contract_calls 4960 4512 9.03225806451613
should_pass/superabi_supertrait_same_methods 5184 4736 8.64197530864197
should_pass/stdlib/vec 112328 116880 -4.05241791895164
should_pass/stdlib/alloc_test 1176 1176 0
should_pass/stdlib/vec_swap 25352 28696 -13.1902808456926
should_pass/stdlib/intrinsics 1088 1088 0
should_pass/stdlib/ge_test 624 624 0
should_pass/stdlib/assert_ne_revert 632 704 -11.3924050632911
should_pass/stdlib/assert_eq 8648 8680 -0.370027752081406
should_pass/stdlib/u128_log_test 5536 5608 -1.30057803468208
should_pass/stdlib/u128_root_test 5368 5256 2.08643815201192
should_pass/stdlib/raw_ptr 5640 6296 -11.6312056737589
should_pass/stdlib/identity_eq 2888 2736 5.26315789473684
should_pass/stdlib/eq_custom_type 760 760 0
should_pass/stdlib/contract_id_type 800 800 0
should_pass/stdlib/option_eq 14656 12832 12.4454148471616
should_pass/stdlib/option 32576 25752 20.9479371316306
should_pass/stdlib/eq_generic 224 224 0
should_pass/stdlib/u128_div_test 3184 3312 -4.02010050251256
should_pass/stdlib/generic_empty_struct_with_constraint 224 224 0
should_pass/stdlib/u128_test 7592 7712 -1.58061116965227
should_pass/stdlib/assert_test 632 632 0
should_pass/stdlib/result 8432 10064 -19.3548387096774
should_pass/stdlib/contract_id_test 664 776 -16.8674698795181
should_pass/stdlib/assert_ne 8456 8400 0.662251655629139
should_pass/stdlib/address_test 4304 4408 -2.41635687732342
should_pass/stdlib/storage_vec_insert 11568 9000 22.1991701244813
should_pass/stdlib/block_height 384 384 0
should_pass/stdlib/u128_mul_test 1808 1808 0
should_pass/stdlib/if_type_revert 368 368 0
should_pass/stdlib/b512_test 3768 3752 0.424628450106157
should_pass/stdlib/sha256 2040 3464 -69.8039215686274
should_pass/stdlib/assert_eq_revert 648 720 -11.1111111111111
should_pass/stdlib/chess 2128 2128 0
should_pass/stdlib/require 2648 1880 29.0030211480363
should_pass/stdlib/b512_struct_alignment 816 816 0
should_pass/stdlib/iterator 3296 3112 5.58252427184466
should_pass/stdlib/raw_slice 1048 1288 -22.9007633587786
should_pass/test_contracts/nested_struct_args_contract 1952 1872 4.0983606557377
should_pass/test_contracts/abi_with_generic_types 7272 5384 25.962596259626
should_pass/test_contracts/basic_storage 79896 50776 36.4473815960749
should_pass/test_contracts/storage_access_contract 84072 43608 48.1301741364545
should_pass/test_contracts/return_struct 4848 6288 -29.7029702970297
should_pass/test_contracts/array_of_structs_contract 4504 4776 -6.03907637655417
should_pass/test_contracts/auth_testing_contract 1352 1424 -5.32544378698225
should_pass/test_contracts/issue_1512_repro 3280 3440 -4.87804878048781
should_pass/test_contracts/abi_with_same_name_types 2144 2080 2.98507462686567
should_pass/test_contracts/context_testing_contract 5240 5560 -6.10687022900763
should_pass/test_contracts/storage_namespace 79896 50776 36.4473815960749
should_pass/test_contracts/increment_contract 5064 4688 7.42496050552923
should_pass/test_contracts/multiple_impl 1536 1936 -26.0416666666667
should_pass/test_contracts/abi_with_tuples_contract 2864 2424 15.3631284916201
should_pass/test_contracts/contract_with_type_aliases 8912 5368 39.7666068222621
should_pass/test_contracts/test_fuel_coin_contract 5256 5232 0.45662100456621
should_pass/test_contracts/storage_enum_contract 26376 28952 -9.76645435244162
should_pass/test_contracts/balance_test_contract 1352 1432 -5.91715976331361
should_pass/evm/evm_basic 224 224 0
should_pass/blanket_impl_u16 344 344 0
should_pass/empty_fields_in_storage_struct 85600 31224 63.5233644859813
should_pass/forc/dependency_package_field 368 368 0
should_pass/forc/workspace_building 24 24 0
should_pass/forc/parent_pkg_manifest/contract_a 1360 1432 -5.29411764705882
should_pass/forc/dependency_patching 336 336 0
should_pass/forc/contract_dependencies/contract_c 1360 1432 -5.29411764705882
should_pass/forc/contract_dependencies/contract_b 1360 1432 -5.29411764705882
should_pass/forc/contract_dependencies/contract_a 1504 1584 -5.31914893617021
should_pass/conditional_compilation/run 344 344 0
should_pass/language/where_clause_functions 2696 2864 -6.23145400593472
should_pass/language/basic_func_decl 408 408 0
should_pass/language/associated_const_trait_impl_method 352 352 0
should_pass/language/left_to_right_func_args_evaluation 568 568 0
should_pass/language/out_of_order_decl 352 352 0
should_pass/language/where_clause_traits 328 328 0
should_pass/language/references/reassigning_via_references_passed_and_returned_to_and_from_functions 91760 47288 48.4655623365301
should_pass/language/references/reassigning_via_references_in_aggregates 11624 6392 45.0103234686855
should_pass/language/references/referencing_function_parameters 8096 6080 24.901185770751
should_pass/language/references/referencing_expressions 13408 9520 28.9976133651551
should_pass/language/references/references_and_type_aliases 1112 1144 -2.87769784172662
should_pass/language/references/references_in_asm_blocks 5464 3336 38.9458272327965
should_pass/language/references/mutability_of_references 1712 1712 0
should_pass/language/references/dereferencing_operator_dot_on_tuples 306176 145008 52.6390050167224
should_pass/language/references/passing_and_returning_references_to_and_from_functions 53960 26528 50.8376575240919
should_pass/language/references/type_unification_of_references 4472 4472 0
should_pass/language/references/dereferencing_control_flow_expressions 1744 1736 0.458715596330275
should_pass/language/references/referencing_parts_of_aggregates 10448 6296 39.739663093415
should_pass/language/references/dereferencing_operator_index 205192 103392 49.6120706460291
should_pass/language/references/dereferencing_operator_star 524208 245224 53.2200958398193
should_pass/language/references/reassigning_via_references_to_values 25296 16792 33.617963314358
should_pass/language/references/referencing_references 2728 1792 34.3108504398827
should_pass/language/references/references_in_aggregates 9360 5752 38.5470085470086
should_pass/language/references/referencing_control_flow_expressions 1144 1144 0
should_pass/language/references/references_and_generics 4320 4320 0
should_pass/language/references/reassigning_via_references_to_expressions 83648 46832 44.0130068859985
should_pass/language/references/dereferencing_operator_dot_on_structs 306176 145008 52.6390050167224
should_pass/language/references/impl_reference_types 14328 9944 30.5974316024567
should_pass/language/references/referencing_local_vars_and_values 99520 47008 52.7652733118971
should_pass/language/integer_type_inference 1544 1720 -11.3989637305699
should_pass/language/numeric_constants 824 824 0
should_pass/language/mutable_arrays_struct 448 448 0
should_pass/language/same_const_name_lib 24 24 0
should_pass/language/associated_type_iterator 1952 2368 -21.3114754098361
should_pass/language/match_expressions_unreachable_last_arm 4008 4008 0
should_pass/language/multi_item_import 328 328 0
should_pass/language/ref_mutable_arrays_inline 416 416 0
should_pass/language/u256/u256_operators 5736 6008 -4.74198047419805
should_pass/language/module_dep 24 24 0
should_pass/language/generic_inside_generic 464 464 0
should_pass/language/associated_const_trait_method 352 352 0
should_pass/language/struct_instantiation 3480 3480 0
should_pass/language/module_dep_multiple 24 24 0
should_pass/language/method_indirect_inference 736 736 0
should_pass/language/where_clause_generic_tuple 360 360 0
should_pass/language/generic_impl_self 3336 3608 -8.15347721822542
should_pass/language/retd_struct 872 872 0
should_pass/language/fallback_only 4040 3072 23.960396039604
should_pass/language/generic_impl_self_where 3008 3136 -4.25531914893617
should_pass/language/chained_if_let 464 464 0
should_pass/language/test_multiple_attributes 24 24 0
should_pass/language/generic_type_inference 4384 5088 -16.0583941605839
should_pass/language/blanket_trait 336 336 0
should_pass/language/retd_zero_len_array 224 224 0
should_pass/language/asm_expr_basic 584 584 0
should_pass/language/associated_const_impl_local_same_name 360 360 0
should_pass/language/unit_type_variants 712 712 0
should_pass/language/generic_struct 360 360 0
should_pass/language/binary_and_hex_literals 336 336 0
should_pass/language/trait_method_qualified 600 600 0
should_pass/language/ops 10032 10032 0
should_pass/language/generic_result_method 840 784 6.66666666666667
should_pass/language/tuple_field_reassignment 1184 1184 0
should_pass/language/associated_const_impl_self 352 352 0
should_pass/language/predicate_while 96 96 0
should_pass/language/retd_small_array 480 480 0
should_pass/language/insert_element_reg_reuse 3216 3808 -18.407960199005
should_pass/language/args_on_stack 1832 1928 -5.24017467248908
should_pass/language/where_clause_methods 2632 2792 -6.0790273556231
should_pass/language/tuple_trait 448 448 0
should_pass/language/ref_mutable_fn_args_struct_assign 384 384 0
should_pass/language/for_loops 5256 5920 -12.6331811263318
should_pass/language/zero_field_types 344 344 0
should_pass/language/method_on_empty_struct 336 336 0
should_pass/language/largeint_sroa 704 776 -10.2272727272727
should_pass/language/nested_while_and_if 504 504 0
should_pass/language/generic_functions 352 352 0
should_pass/language/associated_const_trait 352 352 0
should_pass/language/eq_intrinsic 1256 1256 0
should_pass/language/match_expressions_unreachable_middle_arm 4712 4712 0
should_pass/language/use_full_path_names 352 352 0
should_pass/language/associated_const_abi_default 352 352 0
should_pass/language/struct_field_reassignment 336 336 0
should_pass/language/builtin_type_method_call 368 368 0
should_pass/language/far_jumps/single_blob 1048952 1048952 0
should_pass/language/far_jumps/many_blobs 11640608 11640608 0
should_pass/language/gtf_intrinsic 1000 1000 0
should_pass/language/diverging_exprs 2800 2800 0
should_pass/language/mut_ref_empty_type 1160 1048 9.6551724137931
should_pass/language/nested_struct_destructuring 344 344 0
should_pass/language/trait_nested 848 920 -8.49056603773585
should_pass/language/many_stack_variables 1056 1056 0
should_pass/language/abort_control_flow_good 72 72 0
should_pass/language/test_attribute 24 24 0
should_pass/language/use_absolute_path 376 376 0
should_pass/language/import_with_different_callpaths 2992 3456 -15.5080213903743
should_pass/language/raw_ptr/vec_ret 1232 1336 -8.44155844155844
should_pass/language/raw_ptr/raw_ptr_ret ...     #DIV/0!
should_pass/language/where_clause_structs 640 720 -12.5
should_pass/language/aliased_imports 448 448 0
should_pass/language/prelude_access 224 224 0
should_pass/language/match_expressions_nested 2056 2128 -3.50194552529183
should_pass/language/b256_bitwise_ops 8448 8448 0
should_pass/language/empty_method_initializer 1064 1064 0
should_pass/language/main_args/main_args_ref 624 624 0
should_pass/language/main_args/main_args_various_types 2920 2960 -1.36986301369863
should_pass/language/main_args/main_args_empty 344 344 0
should_pass/language/main_args/main_args_two_u64 680 680 0
should_pass/language/main_args/main_args_generics 1840 1680 8.69565217391304
should_pass/language/main_args/main_args_one_u64 600 600 0
should_pass/language/main_args/main_args_ref_ref 816 808 0.980392156862745
should_pass/language/main_args/main_args_ref_copy 792 712 10.1010101010101
should_pass/language/enum_padding 1744 1720 1.37614678899083
should_pass/language/associated_const_abi 352 352 0
should_pass/language/local_impl_for_ord 336 336 0
should_pass/language/associated_const_trait_default 368 368 0
should_pass/language/enum_init_fn_call 800 800 0
should_pass/language/diagnose_unknown_annotations 1952 1960 -0.40983606557377
should_pass/language/import_method_from_other_file 688 840 -22.093023255814
should_pass/language/match_expressions_or 14744 14800 -0.379815518176885
should_pass/language/struct_destructuring 480 480 0
should_pass/language/import_star_name_clash 3312 3424 -3.38164251207729
should_pass/language/mutable_arrays_multiple_nested 464 464 0
should_pass/language/logging 4248 3888 8.47457627118644
should_pass/language/is_reference_type 864 864 0
should_pass/language/non_literal_const_decl 344 344 0
should_pass/language/array_basics 1168 1168 0
should_pass/language/generic_where_in_impl_self 528 528 0
should_pass/language/supertraits_with_trait_methods 520 520 0
should_pass/language/tuple_in_struct 1120 1120 0
should_pass/language/impl_self_method 368 368 0
should_pass/language/match_expressions_rest 2416 2416 0
should_pass/language/tuple_types 360 360 0
should_pass/language/impl_self_method_order 368 368 0
should_pass/language/enum_if_let 888 888 0
should_pass/language/match_expressions 1704 1704 0
should_pass/language/basic_predicate 48 48 0
should_pass/language/new_allocator_test 1152 1152 0
should_pass/language/op_precedence 384 384 0
should_pass/language/enum_if_let_large_type 728 728 0
should_pass/language/is_prime 1392 1392 0
should_pass/language/method_unambiguous 720 720 0
should_pass/language/match_expressions_structs 504 504 0
should_pass/language/match_expressions_with_self 664 664 0
should_pass/language/ref_mutable_fn_args_call 352 352 0
should_pass/language/array_generics 440 440 0
should_pass/language/smo 2056 2072 -0.778210116731518
should_pass/language/typeinfo_custom_callpath2 312 312 0
should_pass/language/where_clause_generic_traits 744 1080 -45.1612903225806
should_pass/language/mutable_arrays_enum 440 440 0
should_pass/language/ref_mutable_fn_args_bool 360 360 0
should_pass/language/supertraits 4080 7112 -74.3137254901961
should_pass/language/const_inits 3640 3640 0
should_pass/language/tuple_access 480 480 0
should_pass/language/trait_method_generic_qualified 336 336 0
should_pass/language/associated_type_parameter 352 352 0
should_pass/language/tuple_single_element 400 400 0
should_pass/language/bool_and_or 440 440 0
should_pass/language/associated_type_fully_qualified 1224 1216 0.65359477124183
should_pass/language/associated_type_container 1856 2264 -21.9827586206897
should_pass/language/contract_caller_dynamic_address 2488 2400 3.53697749196141
should_pass/language/module_dep_self 24 24 0
should_pass/language/name_resolution_after_monomorphization 400 400 0
should_pass/language/associated_type_container_in_library 1856 2264 -21.9827586206897
should_pass/language/type_alias 4104 4104 0
should_pass/language/mutable_arrays_swap 416 416 0
should_pass/language/break_and_continue_block_ret 280 280 0
should_pass/language/main_returns_unit 224 224 0
should_pass/language/unary_not_basic_2 448 448 0
should_pass/language/mutable_and_initd 440 440 0
should_pass/language/method_type_args 224 224 0
should_pass/language/raw_identifiers 456 456 0
should_pass/language/mega_example 14488 13472 7.01270016565433
should_pass/language/match_expressions_constants 1712 1712 0
should_pass/language/generic_structs 384 680 -77.0833333333333
should_pass/language/predicate_while_dep 96 96 0
should_pass/language/unary_not_basic 424 424 0
should_pass/language/b256_ops 5008 4576 8.62619808306709
should_pass/language/const_decl_with_call_path 696 696 0
should_pass/language/generic_where_in_impl_self2 536 536 0
should_pass/language/const_decl_literal 360 360 0
should_pass/language/reassignment_operators 776 776 0
should_pass/language/attributes_warnings 224 224 0
should_pass/language/mutable_arrays 416 416 0
should_pass/language/match_expressions_unreachable_catch_all_last_arm 3512 3512 0
should_pass/language/memcpy 592 592 0
should_pass/language/deprecated 24 24 0
should_pass/language/ret_string_in_struct 416 416 0
should_pass/language/enum_destructuring 408 408 0
should_pass/language/associated_type_and_associated_const 352 352 0
should_pass/language/associated_type_method 352 352 0
should_pass/language/implicit_casting 344 344 0
should_pass/language/where_clause_enums 864 856 0.925925925925926
should_pass/language/valid_impurity 1360 1496 -10
should_pass/language/contract_caller_as_ret 1360 1432 -5.29411764705882
should_pass/language/associated_type_ascription 352 352 0
should_pass/language/match_expressions_inside_generic_functions 1592 1592 0
should_pass/language/str_slice 432 432 0
should_pass/language/match_expressions_explicit_rets 408 408 0
should_pass/language/binop_intrinsics 2304 2304 0
should_pass/language/match_expressions_mismatched 400 400 0
should_pass/language/funcs_with_generic_types 336 336 0
should_pass/language/trait_import_with_star 240 240 0
should_pass/language/match_expressions_unreachable_catch_all_middle_arm 6272 6272 0
should_pass/language/if_let_no_side_effects 608 608 0
should_pass/language/b256_bad_jumps 352 352 0
should_pass/language/bitwise_not 680 680 0
should_pass/language/dummy_method_issue 352 448 -27.2727272727273
should_pass/language/prelude_access2 224 224 0
should_pass/language/enum_in_fn_decl 440 440 0
should_pass/language/enum_type_inference 344 344 0
should_pass/language/size_of 616 616 0
should_pass/language/associated_const_impl_self_order 352 352 0
should_pass/language/const_decl_and_use_in_library 360 360 0
should_pass/language/typeinfo_custom_callpath 312 312 0
should_pass/language/struct_init_reorder 360 360 0
should_pass/language/tuple_desugaring 512 512 0
should_pass/language/match_expressions_simple 848 848 0
should_pass/language/inline_if_expr_const 312 312 0
should_pass/language/associated_const_impl_multiple 352 352 0
should_pass/language/enum_variant_imports 528 528 0
should_pass/language/if_elseif_enum 968 968 0
should_pass/language/where_clause_impls 864 960 -11.1111111111111
should_pass/language/generic_tuple_trait 920 1088 -18.2608695652174
should_pass/language/mutable_arrays_nested 496 496 0
should_pass/language/generic_traits 2016 1800 10.7142857142857
should_pass/language/associated_const_impl 352 352 0
should_pass/language/modulo_uint_test 880 880 0
should_pass/language/implicit_return 352 352 0
should_pass/language/fqp_in_lib 392 392 0
should_pass/language/retd_b256 448 448 0
should_pass/language/generic_transpose 1136 1136 0
should_pass/language/complex_cfg 984 1064 -8.13008130081301
should_pass/language/struct_field_access 384 384 0
should_pass/language/redundant_return 360 360 0
should_pass/language/asm_without_return 232 232 0
should_pass/language/associated_const_abi_multiple 352 352 0
should_pass/language/while_loops 784 784 0
should_pass/language/same_const_name 1104 1112 -0.72463768115942
should_pass/language/self_impl_reassignment 1208 1208 0
should_pass/language/reassignment_rhs_lhs_evaluation_order 1088 1248 -14.7058823529412
should_pass/language/associated_const_trait_const 336 336 0
should_pass/language/match_expressions_enums 4400 4400 0
should_pass/language/smo_opcode 416 416 0
should_pass/language/import_trailing_comma 392 392 0
should_pass/language/enum_instantiation 4448 4448 0
should_pass/language/trait_method_ascription_disambiguate 336 336 0
should_pass/language/eq_and_neq 2328 2616 -12.3711340206186
should_pass/language/tuple_indexing 392 392 0
should_pass/language/ref_mutable_fn_args_struct 368 368 0
should_pass/language/revert_in_first_if_branch 280 280 0
should_pass/language/ref_mutable_arrays 416 416 0
should_pass/language/nested_structs 2064 2064 0
should_pass/language/typeinfo_custom_callpath_with_import 360 360 0
should_pass/language/multi_impl_self 344 344 0
should_pass/language/generic_struct_instantiation 336 336 0
should_pass/language/generic_trait_constraints 1184 1408 -18.9189189189189
should_pass/language/primitive_type_argument 344 344 0
should_pass/language/fix_opcode_bug 456 456 0
should_pass/language/arg_demotion_inline 1568 1640 -4.59183673469388
should_pass/language/ret_small_string 392 392 0
should_pass/language/doc_comments 1352 1432 -5.91715976331361
should_pass/language/match_expressions_empty_enums 344 344 0
should_pass/language/const_decl_in_library 424 424 0
should_pass/language/generics_in_contract 4616 5728 -24.0901213171577
should_pass/language/if_implicit_unit 224 224 0
should_pass/language/impure_ifs 1680 1680 0
should_pass/language/break_and_continue 1216 1240 -1.97368421052632
should_pass/language/ref_mutable_fn_args_u32 376 376 0
should_pass/storage_into 2816 3504 -24.4318181818182
should_pass/resolve_local_items_that_shadow_imports 272 272 0
should_pass/break_in_strange_positions 1736 1736 0
should_pass/multiple_supertraits_for_abis 2568 2488 3.11526479750779
should_pass/continue_in_strange_positions 1736 1736 0
should_pass/supertraits_for_abis_diamond 2592 2512 3.08641975308642
should_pass/superabi_diamond 2584 2504 3.09597523219814
should_pass/supertraits_via_self 520 520 0
should_pass/supertraits_for_abis 2208 2232 -1.08695652173913
should_pass/dca/alias_type_ascription 224 224 0
should_pass/dca/alias_type_ascription_generic 224 224 0
should_pass/dca/constant_decl_expr 352 352 0
should_pass/dca/impl_unused_fn 368 368 0
should_pass/dca/log_stdlib 640 792 -23.75
should_pass/dca/unused_trait 224 224 0
should_pass/dca/impl_self_alias 224 224 0
should_pass/dca/impl_trait_single 360 360 0
should_pass/dca/trait_method 224 224 0
should_pass/dca/unused_free_fn 224 224 0
should_pass/dca/unused_variable_in_free_fn 224 224 0
should_pass/dca/revert 40 40 0
should_pass/dca/unused_variable 224 224 0
should_pass/dca/impl_trait_multiple 360 360 0
should_pass/dca/contract/superabi_contract_calls 2832 2688 5.08474576271187
should_pass/dca/contract/unused_struct_field 1736 1792 -3.2258064516129
should_pass/dca/contract/unused_struct_field_enum 1960 2072 -5.71428571428571
should_pass/dca/contract/abi_fn_params 2000 2144 -7.2
should_pass/dca/contract/unused_struct_field_array 1848 1904 -3.03030303030303
should_pass/dca/contract/unused_struct_field_tuple 1736 1792 -3.2258064516129
should_pass/dca/unused_struct 224 224 0
should_pass/dca/func_param 224 224 0
should_pass/dca/alias_unused 224 224 0
should_pass/dca/multiple_fns_same_name 224 224 0
should_pass/dca/allow_dead_code 264 264 0
should_pass/dca/trait_method_neq 440 440 0
should_pass/dca/all_paths_return 416 416 0
should_pass/dca/unused_fields 336 336 0
should_pass/dca/impl_self_alias2 224 224 0
should_pass/dca/alias_lib 288 288 0
should_pass/dca/multiple_enums_same_name 224 224 0
should_pass/dca/generic_fn_trait_constraint 224 224 0
should_pass/dca/library/fn_params_impl 24 24 0
should_pass/dca/library/fn_params_free 24 24 0
should_pass/dca/library/unused_priv_free_fn 24 24 0
should_pass/dca/library/unused_pub_free_fn 24 24 0
should_pass/dca/library/fn_params_trait 24 24 0
should_pass/dca/reassignment_lhs 248 248 0
should_pass/dca/constant_while 232 232 0
should_pass/dca/constant_struct 360 360 0
should_pass/dca/unused_enum 224 224 0
should_pass/dca/impl_self 224 224 0
should_pass/dca/log_intrinsic 640 792 -23.75
should_pass/dca/struct_field_no_warning 656 656 0
should_pass/dca/trait_method_lib 24 24 0
should_pass/supertraits_for_abis_ownable 20936 12232 41.5743217424532
should_pass/return_into 1104 1608 -45.6521739130435
should_pass/unit_tests/script_multi_test 512 728 -42.1875
should_pass/unit_tests/nested_libs 1176 1248 -6.12244897959184
should_pass/unit_tests/contract_multi_test 4808 4480 6.82196339434276
should_pass/unit_tests/script-contract-calls 1344 1424 -5.95238095238095
should_pass/unit_tests/lib_single_test 112 112 0
should_pass/unit_tests/aggr_indexing 9416 7728 17.9269328802039
should_pass/unit_tests/log_decode 1256 1048 16.5605095541401
should_pass/unit_tests/predicate_with_nested_libs 536 608 -13.4328358208955
should_pass/unit_tests/script_with_nested_libs 1368 1376 -0.584795321637427
should_pass/unit_tests/should_revert 88 160 -81.8181818181818
should_pass/unit_tests/contract_with_nested_libs 2392 2480 -3.67892976588629
should_pass/unit_tests/stack_indexing_overflow 6144 5096 17.0572916666667
should_pass/unit_tests/lib_multi_test 896 1080 -20.5357142857143
should_pass/unit_tests/contract-multi-contract-calls 1344 1424 -5.95238095238095
should_pass/unit_tests/predicate_multi_test 256 264 -3.125
should_pass/unit_tests/regalloc_spill 1296 1296 0
should_pass/non_payable_implicit_zero_coins 2032 1984 2.36220472440945
should_pass/test_abis/abi_impl_methods_in_json_abi 1880 2016 -7.23404255319149
should_pass/test_abis/abi_impl_methods_callable 3016 2856 5.30503978779841
should_pass/static_analysis/cei_pattern_violation_in_struct 3912 5080 -29.8568507157464
should_pass/static_analysis/cei_pattern_violation 3456 4512 -30.5555555555556
should_pass/static_analysis/cei_pattern_violation_in_match_statement-1 4408 5744 -30.3085299455535
should_pass/static_analysis/cei_pattern_violation_in_if_statement-2 3928 5088 -29.5315682281059
should_pass/static_analysis/cei_pattern_violation_in_while_loop-1 3928 5120 -30.3462321792261
should_pass/static_analysis/cei_pattern_violation_in_while_loop-3 3928 5120 -30.3462321792261
should_pass/static_analysis/cei_pattern_violation_storage_var_read 3936 5200 -32.1138211382114
should_pass/static_analysis/cei_pattern_violation_in_codeblocks_other_than_in_functions 3912 5080 -29.8568507157464
should_pass/static_analysis/cei_pattern_violation_in_func_app-3 3912 5080 -29.8568507157464
should_pass/static_analysis/cei_pattern_violation_in_func_app-1 3912 5080 -29.8568507157464
should_pass/static_analysis/storage_annotations_unused_write 1344 1416 -5.35714285714286
should_pass/static_analysis/cei_pattern_violation_in_asm_block_smo 2672 3456 -29.3413173652695
should_pass/static_analysis/cei_pattern_violation_in_asm_block 2696 3480 -29.080118694362
should_pass/static_analysis/cei_pattern_violation_in_intrinsic_call 3912 5080 -29.8568507157464
should_pass/static_analysis/storage_annotations_unused_read 1344 1416 -5.35714285714286
should_pass/static_analysis/cei_pattern_violation_storage_map_and_vec 12360 13728 -11.0679611650485
should_pass/static_analysis/cei_pattern_violation_in_asm_block_tro 4064 5440 -33.8582677165354
should_pass/static_analysis/cei_pattern_violation_in_while_loop-2 3928 5120 -30.3462321792261
should_pass/static_analysis/cei_pattern_violation_smo_intrinsic 2752 3632 -31.9767441860465
should_pass/static_analysis/storage_annotations_unused_read_and_write 1344 1416 -5.35714285714286
should_pass/static_analysis/cei_pattern_violation_in_standalone_function 3456 4576 -32.4074074074074
should_pass/static_analysis/cei_pattern_violation_in_asm_block_read 2984 3672 -23.0563002680965
should_pass/static_analysis/cei_pattern_violation_in_while_loop-4 3928 5120 -30.3462321792261
should_pass/static_analysis/cei_pattern_violation_in_asm_block_tr 4064 5440 -33.8582677165354
should_pass/static_analysis/cei_pattern_violation_in_tuple 3912 5080 -29.8568507157464
should_pass/static_analysis/cei_pattern_violation_in_asm_block_bal 2648 3440 -29.9093655589124
should_pass/static_analysis/cei_pattern_violation_more_complex_logic 40680 25008 38.5250737463127
should_pass/static_analysis/cei_pattern_violation_storage_struct_read 3696 5152 -39.3939393939394
should_pass/static_analysis/cei_pattern_violation_storage_var_update 3568 4784 -34.0807174887892
should_pass/static_analysis/cei_pattern_violation_in_if_statement-1 3944 5120 -29.8174442190669
should_pass/static_analysis/cei_pattern_violation_in_func_app-2 3912 5080 -29.8568507157464
should_pass/superabi 1880 2016 -7.23404255319149
should_pass/non_payable_zero_coins_let_binding 2040 1992 2.35294117647059
should_pass/superabi_diamond_impl 2584 2504 3.09597523219814

@vaivaswatha vaivaswatha marked this pull request as ready for review May 22, 2024 14:01
@IGI-111 IGI-111 added the breaking May cause existing user code to break. Requires a minor or major release. label May 22, 2024
@IGI-111 IGI-111 requested a review from a team May 22, 2024 14:23
@vaivaswatha vaivaswatha enabled auto-merge (squash) May 22, 2024 14:59
Copy link
Contributor

@jjcnn jjcnn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nothing to report - LGTM.

@vaivaswatha vaivaswatha merged commit 7ee627c into master May 22, 2024
38 checks passed
@vaivaswatha vaivaswatha deleted the vaivaswatha/fndedup_inline branch May 22, 2024 15:16
IGI-111 pushed a commit that referenced this pull request May 29, 2024
## Description
After changes to the pipeline sequence in #6024, there were some
regressions. This change mitigates that to an extent.

Closes #6047 

<details>
  <summary>Click here for the numbers</summary>

test | before | after | %reduction
-- | -- | -- | --
should_pass/return_in_strange_positions | 768 | 280 | 63.5416666666667
should_pass/payable_non_zero_coins | 1584 | 1584 | 0
should_pass/superabi_contract_calls | 4512 | 4512 | 0
should_pass/superabi_supertrait_same_methods | 4736 | 4736 | 0
should_pass/stdlib/vec | 107304 | 107096 | 0.193841795273242
should_pass/stdlib/alloc_test | 928 | 824 | 11.2068965517241
should_pass/stdlib/vec_swap | 25680 | 23792 | 7.35202492211838
should_pass/stdlib/intrinsics | 896 | 272 | 69.6428571428571
should_pass/stdlib/ge_test | 560 | 560 | 0
should_pass/stdlib/assert_ne_revert | 560 | 560 | 0
should_pass/stdlib/assert_eq | 7784 | 6416 | 17.5745118191161
should_pass/stdlib/u128_log_test | 4768 | 4568 | 4.19463087248322
should_pass/stdlib/u128_root_test | 4488 | 4400 | 1.96078431372549
should_pass/stdlib/raw_ptr | 5000 | 4512 | 9.76
should_pass/stdlib/identity_eq | 2456 | 2424 | 1.30293159609121
should_pass/stdlib/eq_custom_type | 672 | 672 | 0
should_pass/stdlib/contract_id_type | 648 | 592 | 8.64197530864197
should_pass/stdlib/option_eq | 11704 | 12240 | -4.57963089542037
should_pass/stdlib/option | 24000 | 22912 | 4.53333333333333
should_pass/stdlib/eq_generic | 176 | 176 | 0
should_pass/stdlib/u128_div_test | 2800 | 2720 | 2.85714285714286
should_pass/stdlib/generic_empty_struct_with_constraint | 176 | 176 | 0
should_pass/stdlib/u128_test | 6744 | 6512 | 3.44009489916963
should_pass/stdlib/assert_test | 512 | 272 | 46.875
should_pass/stdlib/result | 9720 | 8944 | 7.98353909465021
should_pass/stdlib/contract_id_test | 648 | 592 | 8.64197530864197
should_pass/stdlib/assert_ne | 6352 | 6120 | 3.65239294710327
should_pass/stdlib/address_test | 4320 | 4144 | 4.07407407407407
should_pass/stdlib/storage_vec_insert | 9000 | 9000 | 0
should_pass/stdlib/block_height | 312 | 312 | 0
should_pass/stdlib/u128_mul_test | 1536 | 1448 | 5.72916666666667
should_pass/stdlib/if_type_revert | 32 | 32 | 0
should_pass/stdlib/b512_test | 3472 | 3352 | 3.45622119815668
should_pass/stdlib/sha256 | 3184 | 2168 | 31.9095477386935
should_pass/stdlib/assert_eq_revert | 568 | 568 | 0
should_pass/stdlib/chess | 2048 | 2048 | 0
should_pass/stdlib/require | 1256 | 1168 | 7.00636942675159
should_pass/stdlib/b512_struct_alignment | 728 | 728 | 0
should_pass/stdlib/iterator | 2872 | 2640 | 8.07799442896936
should_pass/stdlib/raw_slice | 1056 | 960 | 9.09090909090909
should_pass/test_contracts/nested_struct_args_contract | 1352 | 1352 | 0
should_pass/test_contracts/abi_with_generic_types | 4240 | 4240 | 0
should_pass/test_contracts/basic_storage | 41312 | 33744 |
18.3191324554609
should_pass/test_contracts/storage_access_contract | 37696 | 34136 |
9.44397283531409
should_pass/test_contracts/return_struct | 4584 | 3328 |
27.3996509598604
should_pass/test_contracts/array_of_structs_contract | 4200 | 3680 |
12.3809523809524
should_pass/test_contracts/auth_testing_contract | 952 | 952 | 0
should_pass/test_contracts/issue_1512_repro | 2704 | 2528 |
6.50887573964497
should_pass/test_contracts/abi_with_same_name_types | 1504 | 1416 |
5.85106382978723
should_pass/test_contracts/context_testing_contract | 4672 | 4240 |
9.24657534246575
should_pass/test_contracts/storage_namespace | 41312 | 33744 |
18.3191324554609
should_pass/test_contracts/increment_contract | 4504 | 4248 |
5.68383658969805
should_pass/test_contracts/multiple_impl | 1512 | 1240 | 17.989417989418
should_pass/test_contracts/abi_with_tuples_contract | 1936 | 1936 | 0
should_pass/test_contracts/contract_with_type_aliases | 4032 | 4032 | 0
should_pass/test_contracts/test_fuel_coin_contract | 4144 | 3400 |
17.953667953668
should_pass/test_contracts/storage_enum_contract | 24560 | 20744 |
15.5374592833876
should_pass/test_contracts/balance_test_contract | 952 | 952 | 0
should_pass/evm/evm_basic | 176 | 176 | 0
should_pass/blanket_impl_u16 | 288 | 288 | 0
should_pass/empty_fields_in_storage_struct | 31224 | 31224 | 0
should_pass/forc/dependency_package_field | 272 | 272 | 0
should_pass/forc/workspace_building | 24 | 24 | 0
should_pass/forc/parent_pkg_manifest/contract_a | 960 | 960 | 0
should_pass/forc/dependency_patching | 272 | 272 | 0
should_pass/forc/contract_dependencies/contract_c | 960 | 960 | 0
should_pass/forc/contract_dependencies/contract_b | 960 | 960 | 0
should_pass/forc/contract_dependencies/contract_a | 1104 | 1104 | 0
should_pass/conditional_compilation/run | 288 | 288 | 0
should_pass/language/where_clause_functions | 2216 | 2072 |
6.49819494584837
should_pass/language/basic_func_decl | 272 | 272 | 0
should_pass/language/associated_const_trait_impl_method | 296 | 296 | 0
should_pass/language/left_to_right_func_args_evaluation | 304 | 304 | 0
should_pass/language/out_of_order_decl | 280 | 280 | 0
should_pass/language/where_clause_traits | 264 | 264 | 0

should_pass/language/references/reassigning_via_references_passed_and_returned_to_and_from_functions
| 41144 | 39816 | 3.22768811977445

should_pass/language/references/reassigning_via_references_in_aggregates
| 5696 | 5176 | 9.12921348314607
should_pass/language/references/referencing_function_parameters | 4584 |
3936 | 14.1361256544503
should_pass/language/references/referencing_expressions | 8840 | 7960 |
9.95475113122172
should_pass/language/references/references_and_type_aliases | 792 | 712
| 10.1010101010101
should_pass/language/references/references_in_asm_blocks | 2592 | 2192 |
15.4320987654321
should_pass/language/references/mutability_of_references | 1392 | 904 |
35.0574712643678
should_pass/language/references/dereferencing_operator_dot_on_tuples |
135552 | 125072 | 7.73135033050047

should_pass/language/references/passing_and_returning_references_to_and_from_functions
| 19224 | 15968 | 16.9371618809821
should_pass/language/references/type_unification_of_references | 3984 |
3432 | 13.855421686747
should_pass/language/references/dereferencing_control_flow_expressions |
1672 | 1168 | 30.1435406698565
should_pass/language/references/referencing_parts_of_aggregates | 7144 |
6928 | 3.02351623740202
should_pass/language/references/dereferencing_operator_index | 99032 |
92480 | 6.61604329913563
should_pass/language/references/dereferencing_operator_star | 173776 |
151312 | 12.9269864653347
should_pass/language/references/reassigning_via_references_to_values |
14840 | 14184 | 4.42048517520216
should_pass/language/references/referencing_references | 1512 | 1104 |
26.984126984127
should_pass/language/references/references_in_aggregates | 4504 | 3904 |
13.3214920071048
should_pass/language/references/referencing_control_flow_expressions |
1080 | 792 | 26.6666666666667
should_pass/language/references/references_and_generics | 3744 | 3560 |
4.91452991452992

should_pass/language/references/reassigning_via_references_to_expressions
| 42600 | 37352 | 12.3192488262911
should_pass/language/references/dereferencing_operator_dot_on_structs |
135552 | 125072 | 7.73135033050047
should_pass/language/references/impl_reference_types | 8264 | 7896 |
4.45304937076476
should_pass/language/references/referencing_local_vars_and_values |
40104 | 36456 | 9.09634949132256
should_pass/language/integer_type_inference | 1512 | 1512 | 0
should_pass/language/numeric_constants | 632 | 272 | 56.9620253164557
should_pass/language/mutable_arrays_struct | 288 | 288 | 0
should_pass/language/same_const_name_lib | 24 | 24 | 0
should_pass/language/associated_type_iterator | 2152 | 1960 |
8.92193308550186
should_pass/language/match_expressions_unreachable_last_arm | 2968 |
2968 | 0
should_pass/language/multi_item_import | 264 | 264 | 0
should_pass/language/ref_mutable_arrays_inline | 288 | 288 | 0
should_pass/language/u256/u256_abi | 1072 | 768 | 28.3582089552239
should_pass/language/u256/u256_operators | 6008 | 6008 | 0
should_pass/language/module_dep | 24 | 24 | 0
should_pass/language/generic_inside_generic | 376 | 376 | 0
should_pass/language/associated_const_trait_method | 296 | 296 | 0
should_pass/language/struct_instantiation | 2536 | 2320 |
8.51735015772871
should_pass/language/module_dep_multiple | 24 | 24 | 0
should_pass/language/method_indirect_inference | 552 | 552 | 0
should_pass/language/where_clause_generic_tuple | 280 | 280 | 0
should_pass/language/generic_impl_self | 2848 | 2688 | 5.61797752808989
should_pass/language/retd_struct | 728 | 728 | 0
should_pass/language/fallback_only | 2256 | 1672 | 25.886524822695
should_pass/language/generic_impl_self_where | 2544 | 2392 |
5.9748427672956
should_pass/language/chained_if_let | 400 | 400 | 0
should_pass/language/test_multiple_attributes | 24 | 24 | 0
should_pass/language/generic_type_inference | 4024 | 3408 |
15.3081510934394
should_pass/language/blanket_trait | 272 | 272 | 0
should_pass/language/retd_zero_len_array | 176 | 176 | 0
should_pass/language/asm_expr_basic | 496 | 416 | 16.1290322580645
should_pass/language/associated_const_impl_local_same_name | 296 | 296 |
0
should_pass/language/unit_type_variants | 624 | 624 | 0
should_pass/language/generic_struct | 288 | 288 | 0
should_pass/language/binary_and_hex_literals | 272 | 272 | 0
should_pass/language/trait_method_qualified | 488 | 272 |
44.2622950819672
should_pass/language/ops | 6072 | 376 | 93.8076416337286
should_pass/language/generic_result_method | 720 | 656 |
8.88888888888889
should_pass/language/tuple_field_reassignment | 488 | 488 | 0
should_pass/language/associated_const_impl_self | 296 | 296 | 0
should_pass/language/predicate_while | 80 | 80 | 0
should_pass/language/retd_small_array | 384 | 384 | 0
should_pass/language/insert_element_reg_reuse | 3336 | 2464 |
26.1390887290168
should_pass/language/args_on_stack | 1656 | 1600 | 3.38164251207729
should_pass/language/where_clause_methods | 2264 | 2104 |
7.06713780918728
should_pass/language/tuple_trait | 368 | 368 | 0
should_pass/language/ref_mutable_fn_args_struct_assign | 280 | 280 | 0
should_pass/language/for_loops | 5104 | 4456 | 12.6959247648903
should_pass/language/zero_field_types | 288 | 288 | 0
should_pass/language/method_on_empty_struct | 272 | 272 | 0
should_pass/language/largeint_sroa | 776 | 776 | 0
should_pass/language/nested_while_and_if | 400 | 400 | 0
should_pass/language/generic_functions | 272 | 272 | 0
should_pass/language/configurable_consts | 15128 | 13448 |
11.1052353252248
should_pass/language/associated_const_trait | 296 | 296 | 0
should_pass/language/eq_intrinsic | 816 | 288 | 64.7058823529412
should_pass/language/match_expressions_unreachable_middle_arm | 3376 |
3376 | 0
should_pass/language/use_full_path_names | 296 | 296 | 0
should_pass/language/associated_const_abi_default | 296 | 296 | 0
should_pass/language/struct_field_reassignment | 272 | 272 | 0
should_pass/language/builtin_type_method_call | 288 | 288 | 0
should_pass/language/far_jumps/single_blob | 1048896 | 1048896 | 0
should_pass/language/far_jumps/many_blobs | 11640520 | 11640520 | 0
should_pass/language/gtf_intrinsic | 696 | 624 | 10.3448275862069
should_pass/language/diverging_exprs | 1944 | 1104 | 43.2098765432099
should_pass/language/mut_ref_empty_type | 880 | 712 | 19.0909090909091
should_pass/language/nested_struct_destructuring | 272 | 272 | 0
should_pass/language/trait_nested | 832 | 832 | 0
should_pass/language/many_stack_variables | 936 | 936 | 0
should_pass/language/abort_control_flow_good | 48 | 48 | 0
should_pass/language/test_attribute | 24 | 24 | 0
should_pass/language/use_absolute_path | 272 | 272 | 0
should_pass/language/import_with_different_callpaths | 2856 | 2696 |
5.60224089635854
should_pass/language/raw_ptr/vec_ret | 1072 | 1072 | 0
should_pass/language/raw_ptr/raw_ptr_ret ... |   |   | #DIV/0!
should_pass/language/where_clause_structs | 608 | 536 | 11.8421052631579
should_pass/language/aliased_imports | 328 | 328 | 0
should_pass/language/prelude_access | 176 | 176 | 0
should_pass/language/match_expressions_nested | 1912 | 1744 |
8.78661087866109
should_pass/language/b256_bitwise_ops | 6320 | 6800 | -7.59493670886076
should_pass/language/empty_method_initializer | 936 | 936 | 0
should_pass/language/main_args/main_args_ref | 296 | 296 | 0
should_pass/language/main_args/main_args_various_types | 2424 | 2352 |
2.97029702970297
should_pass/language/main_args/main_args_empty | 288 | 288 | 0
should_pass/language/main_args/main_args_two_u64 | 416 | 416 | 0
should_pass/language/main_args/main_args_generics | 968 | 968 | 0
should_pass/language/main_args/main_args_one_u64 | 288 | 288 | 0
should_pass/language/main_args/main_args_ref_ref | 528 | 464 |
12.1212121212121
should_pass/language/main_args/main_args_ref_copy | 432 | 432 | 0
should_pass/language/enum_padding | 1560 | 1560 | 0
should_pass/language/associated_const_abi | 296 | 296 | 0
should_pass/language/local_impl_for_ord | 272 | 272 | 0
should_pass/language/associated_const_trait_default | 304 | 304 | 0
should_pass/language/enum_init_fn_call | 616 | 544 | 11.6883116883117
should_pass/language/diagnose_unknown_annotations | 1480 | 1480 | 0
should_pass/language/import_method_from_other_file | 720 | 656 |
8.88888888888889
should_pass/language/match_expressions_or | 10424 | 9528 |
8.59554873369148
should_pass/language/struct_destructuring | 400 | 400 | 0
should_pass/language/import_star_name_clash | 2656 | 2544 |
4.21686746987952
should_pass/language/mutable_arrays_multiple_nested | 272 | 272 | 0
should_pass/language/logging | 3480 | 3344 | 3.90804597701149
should_pass/language/is_reference_type | 800 | 272 | 66
should_pass/language/non_literal_const_decl | 288 | 288 | 0
should_pass/language/array_basics | 800 | 800 | 0
should_pass/language/generic_where_in_impl_self | 464 | 464 | 0
should_pass/language/supertraits_with_trait_methods | 352 | 352 | 0
should_pass/language/tuple_in_struct | 792 | 680 | 14.1414141414141
should_pass/language/impl_self_method | 304 | 304 | 0
should_pass/language/match_expressions_rest | 1888 | 1768 |
6.35593220338983
should_pass/language/tuple_types | 304 | 304 | 0
should_pass/language/impl_self_method_order | 304 | 304 | 0
should_pass/language/enum_if_let | 808 | 728 | 9.9009900990099
should_pass/language/match_expressions | 1120 | 872 | 22.1428571428571
should_pass/language/basic_predicate | 48 | 48 | 0
should_pass/language/new_allocator_test | 960 | 824 | 14.1666666666667
should_pass/language/op_precedence | 264 | 264 | 0
should_pass/language/enum_if_let_large_type | 672 | 672 | 0
should_pass/language/is_prime | 1280 | 1168 | 8.75
should_pass/language/method_unambiguous | 576 | 512 | 11.1111111111111
should_pass/language/match_expressions_structs | 392 | 392 | 0
should_pass/language/match_expressions_with_self | 480 | 416 |
13.3333333333333
should_pass/language/ref_mutable_fn_args_call | 296 | 296 | 0
should_pass/language/array_generics | 352 | 352 | 0
should_pass/language/smo | 1880 | 1880 | 0
should_pass/language/typeinfo_custom_callpath2 | 224 | 224 | 0
should_pass/language/where_clause_generic_traits | 1144 | 872 |
23.7762237762238
should_pass/language/mutable_arrays_enum | 344 | 344 | 0
should_pass/language/ref_mutable_fn_args_bool | 296 | 296 | 0
should_pass/language/supertraits | 8168 | 7224 | 11.5572967678746
should_pass/language/const_inits | 2592 | 1832 | 29.320987654321
should_pass/language/tuple_access | 424 | 424 | 0
should_pass/language/trait_method_generic_qualified | 392 | 392 | 0
should_pass/language/associated_type_parameter | 296 | 296 | 0
should_pass/language/tuple_single_element | 320 | 320 | 0
should_pass/language/bool_and_or | 328 | 328 | 0
should_pass/language/associated_type_fully_qualified | 1288 | 552 |
57.1428571428571
should_pass/language/associated_type_container | 2064 | 1872 |
9.30232558139535
should_pass/language/contract_caller_dynamic_address | 1760 | 1760 | 0
should_pass/language/module_dep_self | 24 | 24 | 0
should_pass/language/name_resolution_after_monomorphization | 320 | 320
| 0
should_pass/language/associated_type_container_in_library | 2064 | 1872
| 9.30232558139535
should_pass/language/type_alias | 3920 | 3768 | 3.87755102040816
should_pass/language/mutable_arrays_swap | 288 | 288 | 0
should_pass/language/break_and_continue_block_ret | 40 | 40 | 0
should_pass/language/main_returns_unit | 176 | 176 | 0
should_pass/language/unary_not_basic_2 | 272 | 272 | 0
should_pass/language/mutable_and_initd | 376 | 376 | 0
should_pass/language/method_type_args | 176 | 176 | 0
should_pass/language/raw_identifiers | 400 | 400 | 0
should_pass/language/mega_example | 10624 | 9712 | 8.58433734939759
should_pass/language/match_expressions_constants | 744 | 424 |
43.010752688172
should_pass/language/generic_structs | 568 | 568 | 0
should_pass/language/predicate_while_dep | 80 | 80 | 0
should_pass/language/unary_not_basic | 272 | 272 | 0
should_pass/language/b256_ops | 4312 | 3792 | 12.0593692022263
should_pass/language/const_decl_with_call_path | 528 | 488 |
7.57575757575758
should_pass/language/generic_where_in_impl_self2 | 464 | 464 | 0
should_pass/language/const_decl_literal | 288 | 288 | 0
should_pass/language/reassignment_operators | 496 | 272 |
45.1612903225806
should_pass/language/attributes_warnings | 176 | 176 | 0
should_pass/language/mutable_arrays | 288 | 288 | 0
should_pass/language/match_expressions_unreachable_catch_all_last_arm |
2184 | 2184 | 0
should_pass/language/memcpy | 424 | 424 | 0
should_pass/language/deprecated | 24 | 24 | 0
should_pass/language/ret_string_in_struct | 344 | 344 | 0
should_pass/language/enum_destructuring | 344 | 344 | 0
should_pass/language/associated_type_and_associated_const | 296 | 296 |
0
should_pass/language/associated_type_method | 296 | 296 | 0
should_pass/language/implicit_casting | 288 | 288 | 0
should_pass/language/where_clause_enums | 768 | 696 | 9.375
should_pass/language/valid_impurity | 1024 | 960 | 6.25
should_pass/language/contract_caller_as_ret | 960 | 960 | 0
should_pass/language/associated_type_ascription | 296 | 296 | 0
should_pass/language/match_expressions_inside_generic_functions | 816 |
488 | 40.1960784313726
should_pass/language/str_slice | 360 | 360 | 0
should_pass/language/match_expressions_explicit_rets | 272 | 272 | 0
should_pass/language/binop_intrinsics | 1344 | 288 | 78.5714285714286
should_pass/language/match_expressions_mismatched | 344 | 344 | 0
should_pass/language/funcs_with_generic_types | 272 | 272 | 0
should_pass/language/trait_import_with_star | 184 | 184 | 0
should_pass/language/match_expressions_unreachable_catch_all_middle_arm
| 1840 | 1832 | 0.434782608695652
should_pass/language/if_let_no_side_effects | 496 | 432 |
12.9032258064516
should_pass/language/b256_bad_jumps | 272 | 272 | 0
should_pass/language/bitwise_not | 440 | 272 | 38.1818181818182
should_pass/language/dummy_method_issue | 448 | 448 | 0
should_pass/language/prelude_access2 | 176 | 176 | 0
should_pass/language/enum_in_fn_decl | 368 | 368 | 0
should_pass/language/enum_type_inference | 288 | 288 | 0
should_pass/language/size_of | 496 | 272 | 45.1612903225806
should_pass/language/associated_const_impl_self_order | 296 | 296 | 0
should_pass/language/const_decl_and_use_in_library | 288 | 288 | 0
should_pass/language/typeinfo_custom_callpath | 224 | 224 | 0
should_pass/language/struct_init_reorder | 280 | 280 | 0
should_pass/language/tuple_desugaring | 360 | 360 | 0
should_pass/language/match_expressions_simple | 432 | 400 |
7.40740740740741
should_pass/language/inline_if_expr_const | 176 | 176 | 0
should_pass/language/associated_const_impl_multiple | 296 | 296 | 0
should_pass/language/enum_variant_imports | 472 | 392 | 16.9491525423729
should_pass/language/if_elseif_enum | 720 | 720 | 0
should_pass/language/where_clause_impls | 736 | 560 | 23.9130434782609
should_pass/language/generic_tuple_trait | 912 | 808 | 11.4035087719298
should_pass/language/mutable_arrays_nested | 272 | 272 | 0
should_pass/language/generic_traits | 1488 | 1416 | 4.83870967741936
should_pass/language/associated_const_impl | 296 | 296 | 0
should_pass/language/modulo_uint_test | 536 | 272 | 49.2537313432836
should_pass/language/implicit_return | 288 | 288 | 0
should_pass/language/fqp_in_lib | 296 | 296 | 0
should_pass/language/retd_b256 | 360 | 360 | 0
should_pass/language/generic_transpose | 928 | 864 | 6.89655172413793
should_pass/language/complex_cfg | 912 | 912 | 0
should_pass/language/struct_field_access | 280 | 280 | 0
should_pass/language/redundant_return | 272 | 272 | 0
should_pass/language/asm_without_return | 184 | 184 | 0
should_pass/language/associated_const_abi_multiple | 296 | 296 | 0
should_pass/language/while_loops | 624 | 552 | 11.5384615384615
should_pass/language/same_const_name | 848 | 248 | 70.7547169811321
should_pass/language/self_impl_reassignment | 1040 | 960 |
7.69230769230769
should_pass/language/reassignment_rhs_lhs_evaluation_order | 1240 | 872
| 29.6774193548387
should_pass/language/associated_const_trait_const | 272 | 272 | 0
should_pass/language/match_expressions_enums | 3728 | 3488 |
6.43776824034335
should_pass/language/smo_opcode | 352 | 352 | 0
should_pass/language/import_trailing_comma | 280 | 280 | 0
should_pass/language/enum_instantiation | 4368 | 3744 | 14.2857142857143
should_pass/language/trait_method_ascription_disambiguate | 392 | 392 |
0
should_pass/language/eq_and_neq | 2648 | 2008 | 24.1691842900302
should_pass/language/tuple_indexing | 296 | 296 | 0
should_pass/language/ref_mutable_fn_args_struct | 288 | 288 | 0
should_pass/language/revert_in_first_if_branch | 48 | 48 | 0
should_pass/language/ref_mutable_arrays | 288 | 288 | 0
should_pass/language/nested_structs | 1416 | 1240 | 12.4293785310734
should_pass/language/typeinfo_custom_callpath_with_import | 240 | 240 |
0
should_pass/language/multi_impl_self | 288 | 288 | 0
should_pass/language/generic_struct_instantiation | 272 | 272 | 0
should_pass/language/generic_trait_constraints | 1264 | 1064 |
15.8227848101266
should_pass/language/primitive_type_argument | 288 | 288 | 0
should_pass/language/fix_opcode_bug | 288 | 288 | 0
should_pass/language/arg_demotion_inline | 1152 | 1152 | 0
should_pass/language/ret_small_string | 304 | 304 | 0
should_pass/language/doc_comments | 952 | 952 | 0
should_pass/language/match_expressions_empty_enums | 288 | 288 | 0
should_pass/language/const_decl_in_library | 312 | 304 |
2.56410256410256
should_pass/language/generics_in_contract | 4688 | 3608 |
23.037542662116
should_pass/language/if_implicit_unit | 176 | 176 | 0
should_pass/language/impure_ifs | 1312 | 1080 | 17.6829268292683
should_pass/language/break_and_continue | 960 | 888 | 7.5
should_pass/language/ref_mutable_fn_args_u32 | 320 | 320 | 0
should_pass/storage_into | 2256 | 1704 | 24.468085106383
should_pass/resolve_local_items_that_shadow_imports | 320 | 320 | 0
should_pass/break_in_strange_positions | 1184 | 768 | 35.1351351351351
should_pass/multiple_supertraits_for_abis | 2048 | 1864 | 8.984375
should_pass/continue_in_strange_positions | 1472 | 1344 |
8.69565217391304
should_pass/supertraits_for_abis_diamond | 2072 | 1888 |
8.88030888030888
should_pass/superabi_diamond | 2064 | 1880 | 8.91472868217054
should_pass/supertraits_via_self | 160 | 160 | 0
should_pass/supertraits_for_abis | 1800 | 1616 | 10.2222222222222
should_pass/dca/alias_type_ascription | 176 | 176 | 0
should_pass/dca/alias_type_ascription_generic | 176 | 176 | 0
should_pass/dca/constant_decl_expr | 288 | 288 | 0
should_pass/dca/impl_unused_fn | 296 | 296 | 0
should_pass/dca/log_stdlib | 752 | 752 | 0
should_pass/dca/unused_trait | 176 | 176 | 0
should_pass/dca/impl_self_alias | 176 | 176 | 0
should_pass/dca/impl_trait_single | 272 | 272 | 0
should_pass/dca/trait_method | 176 | 176 | 0
should_pass/dca/unused_free_fn | 176 | 176 | 0
should_pass/dca/unused_variable_in_free_fn | 176 | 176 | 0
should_pass/dca/revert | 32 | 32 | 0
should_pass/dca/unused_variable | 176 | 176 | 0
should_pass/dca/impl_trait_multiple | 272 | 272 | 0
should_pass/dca/contract/superabi_contract_calls | 2648 | 1872 |
29.3051359516616
should_pass/dca/contract/unused_struct_field | 1216 | 1216 | 0
should_pass/dca/contract/unused_struct_field_enum | 1472 | 1472 | 0
should_pass/dca/contract/abi_fn_params | 1712 | 1440 | 15.8878504672897
should_pass/dca/contract/unused_struct_field_array | 1296 | 1296 | 0
should_pass/dca/contract/unused_struct_field_tuple | 1216 | 1216 | 0
should_pass/dca/unused_struct | 176 | 176 | 0
should_pass/dca/func_param | 176 | 176 | 0
should_pass/dca/alias_unused | 176 | 176 | 0
should_pass/dca/multiple_fns_same_name | 176 | 176 | 0
should_pass/dca/allow_dead_code | 176 | 176 | 0
should_pass/dca/trait_method_neq | 368 | 368 | 0
should_pass/dca/all_paths_return | 272 | 272 | 0
should_pass/dca/unused_fields | 272 | 272 | 0
should_pass/dca/impl_self_alias2 | 176 | 176 | 0
should_pass/dca/alias_lib | 232 | 232 | 0
should_pass/dca/multiple_enums_same_name | 176 | 176 | 0
should_pass/dca/generic_fn_trait_constraint | 176 | 176 | 0
should_pass/dca/library/fn_params_impl | 24 | 24 | 0
should_pass/dca/library/fn_params_free | 24 | 24 | 0
should_pass/dca/library/unused_priv_free_fn | 24 | 24 | 0
should_pass/dca/library/unused_pub_free_fn | 24 | 24 | 0
should_pass/dca/library/fn_params_trait | 24 | 24 | 0
should_pass/dca/reassignment_lhs | 200 | 200 | 0
should_pass/dca/constant_while | 176 | 176 | 0
should_pass/dca/constant_struct | 288 | 288 | 0
should_pass/dca/unused_enum | 176 | 176 | 0
should_pass/dca/impl_self | 176 | 176 | 0
should_pass/dca/log_intrinsic | 752 | 752 | 0
should_pass/dca/struct_field_no_warning | 296 | 296 | 0
should_pass/dca/trait_method_lib | 24 | 24 | 0
should_pass/supertraits_for_abis_ownable | 9968 | 8184 |
17.8972712680578
should_pass/return_into | 1352 | 880 | 34.9112426035503
should_pass/unit_tests/script_multi_test | 728 | 728 | 0
should_pass/unit_tests/nested_libs | 1248 | 1248 | 0
should_pass/unit_tests/contract_multi_test | 4480 | 4480 | 0
should_pass/unit_tests/script-contract-calls | 1424 | 1424 | 0
should_pass/unit_tests/lib_single_test | 112 | 112 | 0
should_pass/unit_tests/aggr_indexing | 7728 | 7728 | 0
should_pass/unit_tests/log_decode | 1048 | 1048 | 0
should_pass/unit_tests/workspace_test | 728 | 728 | 0
should_pass/unit_tests/predicate_with_nested_libs | 608 | 608 | 0
should_pass/unit_tests/script_with_nested_libs | 1376 | 1376 | 0
should_pass/unit_tests/should_revert | 160 | 160 | 0
should_pass/unit_tests/contract_with_nested_libs | 2480 | 2480 | 0
should_pass/unit_tests/stack_indexing_overflow | 5096 | 5096 | 0
should_pass/unit_tests/lib_multi_test | 1080 | 1080 | 0
should_pass/unit_tests/contract-multi-contract-calls | 1424 | 1424 | 0
should_pass/unit_tests/predicate_multi_test | 264 | 264 | 0
should_pass/unit_tests/regalloc_spill | 672 | 672 | 0
should_pass/blanket_impl | 288 | 288 | 0
should_pass/non_payable_implicit_zero_coins | 1864 | 1864 | 0
should_pass/test_abis/abi_impl_methods_in_json_abi | 1576 | 1392 |
11.6751269035533
should_pass/test_abis/abi_impl_methods_callable | 2856 | 2856 | 0
should_pass/static_analysis/cei_pattern_violation_in_struct | 4216 |
2816 | 33.2068311195446
should_pass/static_analysis/cei_pattern_violation | 3688 | 2520 |
31.6702819956616
should_pass/static_analysis/cei_pattern_violation_in_match_statement-1 |
4696 | 3168 | 32.5383304940375
should_pass/static_analysis/cei_pattern_violation_in_if_statement-2 |
4216 | 2816 | 33.2068311195446
should_pass/static_analysis/cei_pattern_violation_in_while_loop-1 | 4048
| 2648 | 34.5849802371541
should_pass/static_analysis/cei_pattern_violation_in_while_loop-3 | 4048
| 2648 | 34.5849802371541
should_pass/static_analysis/cei_pattern_violation_storage_var_read |
4480 | 3000 | 33.0357142857143

should_pass/static_analysis/cei_pattern_violation_in_codeblocks_other_than_in_functions
| 4216 | 2816 | 33.2068311195446
should_pass/static_analysis/cei_pattern_violation_in_func_app-3 | 4216 |
2816 | 33.2068311195446
should_pass/static_analysis/cei_pattern_violation_in_func_app-1 | 4216 |
2816 | 33.2068311195446
should_pass/static_analysis/storage_annotations_unused_write | 944 | 944
| 0
should_pass/static_analysis/cei_pattern_violation_in_asm_block_smo |
3000 | 2168 | 27.7333333333333
should_pass/static_analysis/cei_pattern_violation_in_asm_block | 3024 |
2192 | 27.5132275132275
should_pass/static_analysis/cei_pattern_violation_in_intrinsic_call |
4216 | 2816 | 33.2068311195446
should_pass/static_analysis/storage_annotations_unused_read | 944 | 944
| 0
should_pass/static_analysis/cei_pattern_violation_storage_map_and_vec |
11136 | 7760 | 30.316091954023
should_pass/static_analysis/cei_pattern_violation_in_asm_block_tro |
4544 | 3328 | 26.7605633802817
should_pass/static_analysis/cei_pattern_violation_in_while_loop-2 | 4048
| 2648 | 34.5849802371541
should_pass/static_analysis/cei_pattern_violation_smo_intrinsic | 3176 |
2256 | 28.9672544080605
should_pass/static_analysis/storage_annotations_unused_read_and_write |
944 | 944 | 0

should_pass/static_analysis/cei_pattern_violation_in_standalone_function
| 3752 | 2520 | 32.8358208955224
should_pass/static_analysis/cei_pattern_violation_in_asm_block_read |
3272 | 2352 | 28.1173594132029
should_pass/static_analysis/cei_pattern_violation_in_while_loop-4 | 4048
| 2648 | 34.5849802371541
should_pass/static_analysis/cei_pattern_violation_in_asm_block_tr | 4544
| 3328 | 26.7605633802817
should_pass/static_analysis/cei_pattern_violation_in_tuple | 4216 | 2816
| 33.2068311195446
should_pass/static_analysis/cei_pattern_violation_in_asm_block_bal |
2976 | 2152 | 27.6881720430107
should_pass/static_analysis/cei_pattern_violation_more_complex_logic |
21008 | 17000 | 19.0784463061691
should_pass/static_analysis/cei_pattern_violation_storage_struct_read |
4280 | 2760 | 35.5140186915888
should_pass/static_analysis/cei_pattern_violation_storage_var_update |
3952 | 2672 | 32.3886639676113
should_pass/static_analysis/cei_pattern_violation_in_if_statement-1 |
4240 | 2840 | 33.0188679245283
should_pass/static_analysis/cei_pattern_violation_in_func_app-2 | 4216 |
2816 | 33.2068311195446
should_pass/superabi | 1576 | 1392 | 11.6751269035533
should_pass/non_payable_zero_coins_let_binding | 1864 | 1864 | 0
should_pass/superabi_diamond_impl | 2064 | 1880 | 8.91472868217054

</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking May cause existing user code to break. Requires a minor or major release.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants