# Code Quality Metrics Summary

**Files analyzed:** 83    **Languages:** Bash, Python, Rust
**Total SLOC:** 83,354  **PLOC:** 51,774  **Comments:** 14,947
**Functions/methods:** 5,811    **Classes/impls/traits:** 377
**Comment ratio:** 17.9%

## Per-language overview

| Language | Files |   SLOC | Functions | Avg MI | Avg CC | Avg Cognitive |
| -------- | ----: | -----: | --------: | -----: | -----: | ------------: |
| Bash     |     2 |    118 |         0 |   44.9 |    0.0 |           0.0 |
| Python   |     3 |    427 |         6 |   31.7 |    5.5 |           6.8 |
| Rust     |    78 | 82,809 |     5,805 |   15.1 |    1.5 |           0.4 |

## Bash

### Summary

Files: 2 | SLOC: 118 | PLOC: 50 | Comment ratio: 33.1%
Average MI: 44.9 (GOOD)

### Maintainability Index (lowest files, top-30)

| File                     |   MI | SLOC | Tokens |
| ------------------------ | ---: | ---: | -----: |
| check-grammars-crates.sh | 31.7 |   99 |    401 |
| recreate-grammars.sh     | 58.2 |   19 |     22 |

### Actionable Summary

No major quality concerns detected.

## Python

### Summary

Files: 3 | SLOC: 427 | PLOC: 186 | Comment ratio: 48.5%
Average MI: 31.7 (GOOD)

### Maintainability Index (lowest files, top-30)

| File                                                      |   MI | SLOC | Tokens |
| --------------------------------------------------------- | ---: | ---: | -----: |
| big-code-analysis-py/python/big_code_analysis/_flatten.py | 24.1 |  205 |    526 |
| split-minimal-tests.py                                    | 24.6 |  178 |    552 |
| big-code-analysis-py/python/big_code_analysis/__init__.py | 46.4 |   44 |     98 |

### Cyclomatic Complexity Hotspots

| Function              | File                                                      | Line |  CC | Cognitive | SLOC | Tokens |
| --------------------- | --------------------------------------------------------- | ---: | --: | --------: | ---: | -----: |
| `main`                | split-minimal-tests.py                                    |   84 |  11 |        18 |   91 |    363 |
| `_walk`               | big-code-analysis-py/python/big_code_analysis/_flatten.py |  131 |   7 |         7 |   32 |    225 |
| `_flatten_metrics`    | big-code-analysis-py/python/big_code_analysis/_flatten.py |  165 |   7 |        15 |   41 |    191 |
| `_parse_list_metrics` | split-minimal-tests.py                                    |   49 |   5 |         0 |   19 |     59 |
| `flatten_spaces`      | big-code-analysis-py/python/big_code_analysis/_flatten.py |   47 |   2 |         1 |   82 |     63 |
| `discover_metrics`    | split-minimal-tests.py                                    |   70 |   1 |         0 |   12 |     52 |

Average CC: 5.5 | Max: 11 | CC > 10: 1 functions | CC > 20: 0 functions

### Cognitive Complexity Hotspots

| Function           | File                                                      | Line | Cognitive |  CC | SLOC | Tokens |
| ------------------ | --------------------------------------------------------- | ---: | --------: | --: | ---: | -----: |
| `main`             | split-minimal-tests.py                                    |   84 |        18 |  11 |   91 |    363 |
| `_flatten_metrics` | big-code-analysis-py/python/big_code_analysis/_flatten.py |  165 |        15 |   7 |   41 |    191 |
| `_walk`            | big-code-analysis-py/python/big_code_analysis/_flatten.py |  131 |         7 |   7 |   32 |    225 |
| `flatten_spaces`   | big-code-analysis-py/python/big_code_analysis/_flatten.py |   47 |         1 |   2 |   82 |     63 |

### Halstead Effort Hotspots

| Function              | File                                                      |             Effort |             Volume | Est. Bugs | SLOC | Tokens |
| --------------------- | --------------------------------------------------------- | -----------------: | -----------------: | --------: | ---: | -----: |
| `main`                | split-minimal-tests.py                                    | 20425.419899925684 | 1584.0121555044407 |      0.25 |   91 |    363 |
| `_walk`               | big-code-analysis-py/python/big_code_analysis/_flatten.py |  13927.89078951683 |  801.9088636388478 |      0.19 |   32 |    225 |
| `_flatten_metrics`    | big-code-analysis-py/python/big_code_analysis/_flatten.py |  8796.024891111563 |  616.9157729060146 |      0.14 |   41 |    191 |
| `_parse_list_metrics` | split-minimal-tests.py                                    |  997.8767904307476 |  144.4295354570819 |      0.03 |   19 |     59 |
| `flatten_spaces`      | big-code-analysis-py/python/big_code_analysis/_flatten.py |  909.7240502020086 |  151.6206750336681 |      0.03 |   82 |     63 |
| `discover_metrics`    | split-minimal-tests.py                                    |  614.9244391890265 | 153.73110979725664 |      0.02 |   12 |     52 |

### Largest Functions by SLOC

| Function              | File                                                      | Line | SLOC | Tokens |  CC | Cognitive |
| --------------------- | --------------------------------------------------------- | ---: | ---: | -----: | --: | --------: |
| `main`                | split-minimal-tests.py                                    |   84 |   91 |    363 |  11 |        18 |
| `flatten_spaces`      | big-code-analysis-py/python/big_code_analysis/_flatten.py |   47 |   82 |     63 |   2 |         1 |
| `_flatten_metrics`    | big-code-analysis-py/python/big_code_analysis/_flatten.py |  165 |   41 |    191 |   7 |        15 |
| `_walk`               | big-code-analysis-py/python/big_code_analysis/_flatten.py |  131 |   32 |    225 |   7 |         7 |
| `_parse_list_metrics` | split-minimal-tests.py                                    |   49 |   19 |     59 |   5 |         0 |
| `discover_metrics`    | split-minimal-tests.py                                    |   70 |   12 |     52 |   1 |         0 |

### Actionable Summary

- **1** functions with CC > 10
- **1** functions with cognitive complexity > 15

### Functions with the most exit points (NEXITS)

| Function              | File                                                      | Line | Exits |  CC | SLOC | Tokens |
| --------------------- | --------------------------------------------------------- | ---: | ----: | --: | ---: | -----: |
| `flatten_spaces`      | big-code-analysis-py/python/big_code_analysis/_flatten.py |   47 |     2 |   2 |   82 |     63 |
| `_walk`               | big-code-analysis-py/python/big_code_analysis/_flatten.py |  131 |     1 |   7 |   32 |    225 |
| `_parse_list_metrics` | split-minimal-tests.py                                    |   49 |     1 |   5 |   19 |     59 |
| `discover_metrics`    | split-minimal-tests.py                                    |   70 |     1 |   1 |   12 |     52 |

### ABC Magnitude Hotspots

| Function              | File                                                      | Line |  ABC | SLOC | Tokens |
| --------------------- | --------------------------------------------------------- | ---: | ---: | ---: | -----: |
| `main`                | split-minimal-tests.py                                    |   84 | 23.5 |   91 |    363 |
| `_walk`               | big-code-analysis-py/python/big_code_analysis/_flatten.py |  131 | 15.7 |   32 |    225 |
| `_flatten_metrics`    | big-code-analysis-py/python/big_code_analysis/_flatten.py |  165 | 11.4 |   41 |    191 |
| `flatten_spaces`      | big-code-analysis-py/python/big_code_analysis/_flatten.py |   47 |  4.1 |   82 |     63 |
| `_parse_list_metrics` | split-minimal-tests.py                                    |   49 |  3.3 |   19 |     59 |
| `discover_metrics`    | split-minimal-tests.py                                    |   70 |  2.2 |   12 |     52 |

## Rust

### Summary

Files: 78 | SLOC: 82,809 | PLOC: 51,538 | Comment ratio: 17.8%
Average MI: 15.1 (MODERATE)

### Maintainability Index (lowest files, top-30)

| File                                        |   MI | SLOC | Tokens |
| ------------------------------------------- | ---: | ---: | -----: |
| src/output/code_climate.rs                  |  0.6 |  673 |  3,485 |
| src/c_macro.rs                              |  0.9 |  495 |  2,714 |
| big-code-analysis-cli/src/formats.rs        |  1.5 |  423 |  2,461 |
| big-code-analysis-py/src/batch.rs           |  2.3 |  604 |  2,050 |
| big-code-analysis-web/src/web/server.rs     |  4.1 |  470 |  2,946 |
| src/macros.rs                               |  5.6 |  868 |  2,941 |
| big-code-analysis-cli/src/thresholds.rs     |  6.2 |  428 |  1,809 |
| src/preproc.rs                              |  6.3 |  413 |  2,404 |
| big-code-analysis-cli/src/dispatch.rs       |  7.3 |  374 |  2,184 |
| src/output/sarif.rs                         |  7.4 |  472 |  2,861 |
| src/node.rs                                 |  7.8 |  344 |  1,851 |
| big-code-analysis-py/src/language.rs        |  8.3 |  410 |  1,611 |
| big-code-analysis-py/src/lib.rs             | 10.9 |  360 |  1,233 |
| src/metrics/mi.rs                           | 10.9 |  380 |  1,545 |
| big-code-analysis-cli/src/baseline.rs       | 11.0 |  391 |  1,357 |
| src/metric_set.rs                           | 11.6 |  326 |  1,104 |
| src/concurrent_files.rs                     | 11.7 |  319 |  1,712 |
| src/output/warning_line.rs                  | 12.2 |  347 |  1,896 |
| src/ast.rs                                  | 12.5 |  344 |  1,770 |
| src/output/csv.rs                           | 12.6 |  384 |  1,925 |
| src/langs.rs                                | 12.7 |  423 |  1,357 |
| src/parser.rs                               | 12.9 |  336 |  1,419 |
| big-code-analysis-py/src/conversion.rs      | 14.8 |  314 |  1,609 |
| src/cfg_predicate.rs                        | 15.8 |  260 |  1,058 |
| src/output/dump.rs                          | 17.1 |  234 |  1,023 |
| src/output/offenders.rs                     | 18.5 |  292 |  1,048 |
| src/output/numfmt.rs                        | 20.2 |  221 |    902 |
| src/lib.rs                                  | 20.2 |  324 |    699 |
| src/function.rs                             | 20.2 |  204 |    979 |
| big-code-analysis-cli/src/metric_catalog.rs | 20.4 |  220 |  1,127 |

### Cyclomatic Complexity Hotspots

| Function                 | File                                     | Line |  CC | Cognitive | SLOC | Tokens |
| ------------------------ | ---------------------------------------- | ---: | --: | --------: | ---: | -----: |
| `dump_tree_helper`       | src/output/dump.rs                       |   75 |  32 |        17 |   95 |    576 |
| `fix_includes`           | src/preproc.rs                           |   97 |  29 |        86 |  137 |    835 |
| `collect_offenders`      | big-code-analysis-py/src/sarif.rs        |  357 |  23 |        26 |   94 |    582 |
| `serialize`              | src/metrics/loc.rs                       |  332 |  22 |         0 |   27 |    392 |
| `lang_to_name`           | big-code-analysis-py/src/language.rs     |   44 |  21 |         1 |   30 |    186 |
| `_native`                | big-code-analysis-py/src/lib.rs          |  337 |  21 |         0 |   24 |    230 |
| `compute`                | src/metrics/npa.rs                       |  787 |  20 |        34 |  101 |    452 |
| `dump_halstead`          | src/output/dump_metrics.rs               |  160 |  19 |         2 |   38 |    417 |
| `write_language_section` | big-code-analysis-cli/src/html_report.rs |  514 |  18 |        24 |  463 |  2,295 |
| `analyze_batch`          | big-code-analysis-py/src/batch.rs        |  346 |  18 |         7 |  105 |    399 |
| `dump_metrics`           | src/output/dump_metrics.rs               |   90 |  18 |         2 |   29 |    328 |
| `metrics_inner`          | src/spaces.rs                            |  997 |  18 |        25 |  152 |    672 |
| `serialize`              | src/metrics/halstead.rs                  |   98 |  16 |         0 |   21 |    290 |
| `serialize`              | src/metrics/abc.rs                       |   95 |  15 |         0 |   20 |    273 |
| `compute`                | src/metrics/abc.rs                       |  788 |  15 |         5 |   93 |    307 |
| `fmt`                    | src/output/checkstyle.rs                 |  114 |  15 |         4 |   42 |    159 |
| `dump_space`             | src/output/dump_metrics.rs               |   57 |  15 |         5 |   32 |    270 |
| `dump_space`             | src/output/dump_ops.rs                   |   46 |  15 |         5 |   32 |    267 |
| `step_normal`            | src/c_macro.rs                           |   46 |  14 |        15 |   61 |    306 |
| `fmt`                    | src/metric_set.rs                        |  133 |  14 |         1 |   18 |    142 |
| `from_str`               | src/metric_set.rs                        |  184 |  14 |         1 |   18 |    184 |
| `dump_ops_values`        | src/output/dump_ops.rs                   |   89 |  14 |         4 |   34 |    243 |
| `rust_item_is_test_only` | src/checker.rs                           |  836 |  13 |        14 |   40 |    189 |
| `compute`                | src/metrics/cognitive.rs                 |  347 |  13 |         3 |   72 |    352 |
| `compute`                | src/metrics/npm.rs                       |  624 |  13 |        14 |   72 |    279 |
| `as_str`                 | src/suppression.rs                       |  126 |  13 |         1 |   16 |    114 |
| `run`                    | big-code-analysis-cli/src/commands.rs    |  335 |  12 |         1 |   23 |    224 |
| `act_on_file`            | big-code-analysis-cli/src/dispatch.rs    |   36 |  12 |         2 |   24 |    285 |
| `legacy_hint`            | big-code-analysis-cli/src/lib.rs         |  825 |  12 |        11 |   91 |    522 |
| `replace`                | src/c_macro.rs                           |  202 |  12 |         9 |   58 |    361 |

Average CC: 1.5 | Max: 32 | CC > 10: 51 functions | CC > 20: 6 functions

### Cognitive Complexity Hotspots

| Function                 | File                                     | Line | Cognitive |  CC | SLOC | Tokens |
| ------------------------ | ---------------------------------------- | ---: | --------: | --: | ---: | -----: |
| `fix_includes`           | src/preproc.rs                           |   97 |        86 |  29 |  137 |    835 |
| `compute`                | src/metrics/npa.rs                       |  787 |        34 |  20 |  101 |    452 |
| `collect_offenders`      | big-code-analysis-py/src/sarif.rs        |  357 |        26 |  23 |   94 |    582 |
| `metrics_inner`          | src/spaces.rs                            |  997 |        25 |  18 |  152 |    672 |
| `write_language_section` | big-code-analysis-cli/src/html_report.rs |  514 |        24 |  18 |  463 |  2,295 |
| `preprocess`             | src/preproc.rs                           |  240 |        22 |  10 |   63 |    425 |
| `compute`                | src/metrics/npm.rs                       |  409 |        18 |  11 |   42 |    270 |
| `operands_and_operators` | src/ops.rs                               |  193 |        17 |  11 |   73 |    434 |
| `dump_tree_helper`       | src/output/dump.rs                       |   75 |        17 |  32 |   95 |    576 |
| `generate_html_report`   | big-code-analysis-cli/src/html_report.rs |  364 |        16 |   8 |  149 |  1,012 |
| `ruby_walk_class_body`   | src/metrics/npa.rs                       |  559 |        16 |   9 |   32 |    206 |
| `step_normal`            | src/c_macro.rs                           |   46 |        15 |  14 |   61 |    306 |
| `get_func_space_name`    | src/getter.rs                            |  220 |        15 |   7 |   27 |    230 |
| `get_func_space_name`    | src/getter.rs                            |  274 |        15 |   7 |   27 |    230 |
| `get_func_space_name`    | src/getter.rs                            |  329 |        15 |   7 |   27 |    230 |
| `get_func_space_name`    | src/getter.rs                            |  390 |        15 |   7 |   27 |    230 |
| `compute`                | src/metrics/npa.rs                       | 1381 |        15 |  10 |   58 |    220 |
| `rust_item_is_test_only` | src/checker.rs                           |  836 |        14 |  13 |   40 |    189 |
| `rm_comments`            | src/comment_rm.rs                        |   24 |        14 |   8 |   31 |    219 |
| `get_func_space_name`    | src/getter.rs                            |  504 |        14 |   8 |   55 |    337 |
| `classify_pattern`       | src/metrics/cyclomatic.rs                |  806 |        14 |   8 |   33 |    115 |
| `compute`                | src/metrics/npa.rs                       |  959 |        14 |  11 |   61 |    252 |
| `compute`                | src/metrics/npm.rs                       |  624 |        14 |  13 |   72 |    279 |
| `write_table`            | big-code-analysis-cli/src/html_report.rs |  296 |        13 |   7 |   31 |    314 |
| `compute`                | src/metrics/npa.rs                       |  331 |        13 |   7 |   33 |    195 |
| `compute`                | src/metrics/npa.rs                       |  614 |        13 |   9 |   65 |    369 |
| `compute`                | src/metrics/npm.rs                       |  318 |        13 |   7 |   27 |    164 |
| `compute`                | src/metrics/npm.rs                       |  850 |        13 |   9 |   31 |    222 |
| `evaluate_with_policy`   | big-code-analysis-cli/src/thresholds.rs  |  362 |        12 |   9 |   52 |    244 |
| `compute`                | src/metrics/npa.rs                       |  401 |        12 |   9 |   50 |    249 |

### Halstead Effort Hotspots

| Function                                          | File                                         |             Effort |             Volume | Est. Bugs | SLOC | Tokens |
| ------------------------------------------------- | -------------------------------------------- | -----------------: | -----------------: | --------: | ---: | -----: |
| `write_language_section`                          | big-code-analysis-cli/src/html_report.rs     |  987896.8323868884 | 13119.129057544242 |      3.31 |  463 |  2,295 |
| `generate_html_report`                            | big-code-analysis-cli/src/html_report.rs     | 204966.98176862687 |  5126.817233511296 |      1.16 |  149 |  1,012 |
| `fix_includes`                                    | src/preproc.rs                               |  164908.1494492432 | 3898.3915254417716 |      1.00 |  137 |    835 |
| `metrics_inner`                                   | src/spaces.rs                                |   155297.630860683 |  3179.585114604501 |      0.96 |  152 |    672 |
| `dump_tree_helper`                                | src/output/dump.rs                           |  154213.1159250338 | 2855.7984430561814 |      0.96 |   95 |    576 |
| `metric_values`                                   | src/output/funcspace_row.rs                  | 135126.17019741316 | 2696.1794522958025 |      0.88 |  143 |    800 |
| `collect_offenders`                               | big-code-analysis-py/src/sarif.rs            |  91166.17772024416 |   2502.60095702631 |      0.68 |   94 |    582 |
| `compute`                                         | src/metrics/npa.rs                           |  86889.02988733705 |  2052.035118796759 |      0.65 |  101 |    452 |
| `simple_is_string_macro_recognises_each_language` | src/checker.rs                               |  82310.94116665021 |     5209.285188319 |      0.63 |  248 |  1,141 |
| `run_with_timeout`                                | big-code-analysis-web/src/web/server.rs      |  75817.81333806844 |  2295.025701044234 |      0.60 |   73 |    615 |
| `serialize`                                       | src/spaces.rs                                |  71744.21409959269 | 2390.1234510875033 |      0.58 |   65 |    519 |
| `preprocess`                                      | src/preproc.rs                               |  71096.49353326565 | 1878.9787576648778 |      0.57 |   63 |    425 |
| `replace`                                         | src/c_macro.rs                               |  67748.00587771143 |  1771.472092465669 |      0.55 |   58 |    361 |
| `operands_and_operators`                          | src/ops.rs                                   |  67016.90902338063 | 1878.9787576648778 |      0.55 |   73 |    434 |
| `compute_per_node`                                | src/spaces.rs                                |  60567.12541220743 | 1526.9023213161538 |      0.51 |   44 |    406 |
| `get_op_type`                                     | src/getter.rs                                |  54360.42527107703 |  3635.533203314358 |      0.48 |   86 |    659 |
| `step_normal`                                     | src/c_macro.rs                               |  53891.15579027525 | 1464.4335812574795 |      0.48 |   61 |    306 |
| `compute`                                         | src/metrics/npa.rs                           |   51251.4395440596 | 1607.8882994214775 |      0.46 |   65 |    369 |
| `legacy_hint`                                     | big-code-analysis-cli/src/lib.rs             |  48333.93310897573 | 2219.1579723077552 |      0.44 |   91 |    522 |
| `get_op_type`                                     | src/getter.rs                                |  48084.00809809446 | 3216.9277502612076 |      0.44 |   64 |    595 |
| `dump_halstead`                                   | src/output/dump_metrics.rs                   |  47928.26533729154 |  1826.667099969369 |      0.44 |   38 |    417 |
| `run`                                             | src/concurrent_files.rs                      |            46828.8 |               1626 |      0.43 |   69 |    383 |
| `compute`                                         | src/metrics/cognitive.rs                     |  45794.45992434019 | 1932.8830487546184 |      0.43 |   79 |    396 |
| `analyze_batch`                                   | big-code-analysis-py/src/batch.rs            |              44880 |               1680 |      0.42 |  105 |    399 |
| `run_parse`                                       | big-code-analysis-web/src/web/server.rs      |  44218.83113053937 | 1467.9935840907808 |      0.42 |   71 |    347 |
| `build`                                           | src/ast.rs                                   | 43767.365986958655 | 1506.4116665278793 |      0.41 |   70 |    375 |
| `compute`                                         | src/metrics/cognitive.rs                     |  43392.95246424294 | 1668.1958842088818 |      0.41 |   72 |    352 |
| `get_func_space_name`                             | src/getter.rs                                |              42768 |               1440 |      0.41 |   55 |    337 |
| `extract_summaries_inner`                         | big-code-analysis-cli/src/markdown_report.rs |  40168.33478674451 | 1014.3518885541544 |      0.39 |   47 |    371 |
| `get_filters`                                     | src/parser.rs                                |  40026.22809788235 | 1111.8396693856207 |      0.39 |   32 |    298 |

### Largest Functions by SLOC

| Function                                           | File                                     | Line | SLOC | Tokens |  CC | Cognitive |
| -------------------------------------------------- | ---------------------------------------- | ---: | ---: | -----: | --: | --------: |
| `write_language_section`                           | big-code-analysis-cli/src/html_report.rs |  514 |  463 |  2,295 |  18 |        24 |
| `simple_is_string_macro_recognises_each_language`  | src/checker.rs                           | 2233 |  248 |  1,141 |   1 |         0 |
| `metrics_inner`                                    | src/spaces.rs                            |  997 |  152 |    672 |  18 |        25 |
| `generate_html_report`                             | big-code-analysis-cli/src/html_report.rs |  364 |  149 |  1,012 |   8 |        16 |
| `metric_values`                                    | src/output/funcspace_row.rs              |   27 |  143 |    800 |   1 |         0 |
| `fix_includes`                                     | src/preproc.rs                           |   97 |  137 |    835 |  29 |        86 |
| `analyze_batch`                                    | big-code-analysis-py/src/batch.rs        |  346 |  105 |    399 |  18 |         7 |
| `compute`                                          | src/metrics/npa.rs                       |  787 |  101 |    452 |  20 |        34 |
| `dump_tree_helper`                                 | src/output/dump.rs                       |   75 |   95 |    576 |  32 |        17 |
| `collect_offenders`                                | big-code-analysis-py/src/sarif.rs        |  357 |   94 |    582 |  23 |        26 |
| `get_op_type`                                      | src/getter.rs                            | 1324 |   93 |    385 |   5 |         4 |
| `compute`                                          | src/metrics/abc.rs                       |  788 |   93 |    307 |  15 |         5 |
| `get_op_type`                                      | src/getter.rs                            | 1164 |   92 |    288 |   5 |         4 |
| `legacy_hint`                                      | big-code-analysis-cli/src/lib.rs         |  825 |   91 |    522 |  12 |        11 |
| `get_op_type`                                      | src/getter.rs                            | 1631 |   86 |    659 |   5 |         4 |
| `nested_structure_preserves_funcspace_field_order` | big-code-analysis-py/src/conversion.rs   |  179 |   85 |    414 |   1 |         0 |
| `compute`                                          | src/metrics/abc.rs                       | 1885 |   82 |    283 |   8 |         5 |
| `compute`                                          | src/metrics/cognitive.rs                 | 1346 |   79 |    396 |  11 |         1 |
| `rust_lloc`                                        | src/metrics/loc.rs                       | 2433 |   79 |     80 |   1 |         0 |
| `compute`                                          | src/metrics/abc.rs                       | 1994 |   77 |    343 |   6 |         1 |
| `compute`                                          | src/metrics/cognitive.rs                 | 1265 |   76 |    268 |  10 |         3 |
| `get_op_type`                                      | src/getter.rs                            | 1538 |   74 |    475 |   5 |         4 |
| `run_with_timeout`                                 | big-code-analysis-web/src/web/server.rs  |  382 |   73 |    615 |   3 |         2 |
| `compute`                                          | src/metrics/loc.rs                       | 1104 |   73 |    340 |   7 |         3 |
| `operands_and_operators`                           | src/ops.rs                               |  193 |   73 |    434 |  11 |        17 |
| `parse_marker`                                     | src/suppression.rs                       |  336 |   73 |    229 |   6 |         6 |
| `compute`                                          | src/metrics/cognitive.rs                 |  347 |   72 |    352 |  13 |         3 |
| `compute`                                          | src/metrics/npm.rs                       |  624 |   72 |    279 |  13 |        14 |
| `run_parse`                                        | big-code-analysis-web/src/web/server.rs  |   55 |   71 |    347 |   8 |         6 |
| `rust_blank`                                       | src/metrics/loc.rs                       | 1668 |   71 |     75 |   1 |         0 |

### Functions With Many Parameters (>3)

| Function                    | File                                                  | Args | SLOC | Tokens |
| --------------------------- | ----------------------------------------------------- | ---: | ---: | -----: |
| `write_language_section`    | big-code-analysis-cli/src/html_report.rs              |   38 |  463 |  2,295 |
| `emit_hotspot`              | big-code-analysis-cli/src/html_report.rs              |   12 |   26 |    240 |
| `generate_html_report`      | big-code-analysis-cli/src/html_report.rs              |   11 |  149 |  1,012 |
| `compute`                   | src/metrics/npa.rs                                    |   10 |   65 |    369 |
| `dump`                      | big-code-analysis-cli/src/check_format.rs             |    8 |   21 |    140 |
| `compute`                   | src/metrics/cognitive.rs                              |    8 |   72 |    352 |
| `dump_tree_helper`          | src/output/dump.rs                                    |    8 |   95 |    576 |
| `dispatch_metrics`          | big-code-analysis-cli/src/dispatch.rs                 |    7 |   29 |    216 |
| `dispatch_ops`              | big-code-analysis-cli/src/dispatch.rs                 |    7 |   29 |    182 |
| `top_n_desc`                | big-code-analysis-cli/src/markdown_report/sections.rs |    7 |   32 |    255 |
| `analyze`                   | big-code-analysis-py/src/lib.rs                       |    7 |   37 |    122 |
| `step_normal`               | src/c_macro.rs                                        |    7 |   61 |    306 |
| `compute`                   | src/metrics/loc.rs                                    |    7 |   46 |    261 |
| `compute`                   | src/metrics/loc.rs                                    |    7 |   58 |    224 |
| `compute`                   | src/metrics/npm.rs                                    |    7 |   42 |    270 |
| `compute_per_node`          | src/spaces.rs                                         |    7 |   44 |    406 |
| `run_check_walk`            | big-code-analysis-cli/src/commands.rs                 |    6 |   32 |    224 |
| `dispatch_find`             | big-code-analysis-cli/src/dispatch.rs                 |    6 |   16 |    115 |
| `dispatch_count`            | big-code-analysis-cli/src/dispatch.rs                 |    6 |   18 |    115 |
| `expand_seed_paths`         | big-code-analysis-cli/src/lib.rs                      |    6 |   40 |    264 |
| `run_walk`                  | big-code-analysis-cli/src/lib.rs                      |    6 |   19 |    183 |
| `write_mi_lowest`           | big-code-analysis-cli/src/markdown_report/sections.rs |    6 |   34 |    235 |
| `write_cyclomatic_hotspots` | big-code-analysis-cli/src/markdown_report/sections.rs |    6 |   65 |    352 |
| `write_cognitive_hotspots`  | big-code-analysis-cli/src/markdown_report/sections.rs |    6 |   43 |    243 |
| `write_halstead_hotspots`   | big-code-analysis-cli/src/markdown_report/sections.rs |    6 |   48 |    248 |
| `write_largest_by_sloc`     | big-code-analysis-cli/src/markdown_report/sections.rs |    6 |   43 |    245 |
| `write_many_params`         | big-code-analysis-cli/src/markdown_report/sections.rs |    6 |   31 |    206 |
| `write_wmc_hotspots`        | big-code-analysis-cli/src/markdown_report/sections.rs |    6 |   46 |    286 |
| `write_nexits_hotspots`     | big-code-analysis-cli/src/markdown_report/sections.rs |    6 |   35 |    241 |
| `write_abc_hotspots`        | big-code-analysis-cli/src/markdown_report/sections.rs |    6 |   33 |    224 |

### Actionable Summary

- **51** functions with CC > 10
- **11** functions with cognitive complexity > 15
- **8** functions with SLOC > 100
- **226** functions with more than 3 parameters
- **3** functions with estimated Halstead bugs > 1.0

### Class/Trait/Impl Hotspots (WMC)

| Class                      | File                                      | Line | WMC | Methods | NPA | NPM | SLOC | Tokens |
| -------------------------- | ----------------------------------------- | ---: | --: | ------: | --: | --: | ---: | -----: |
| `Node<'a>`                 | src/node.rs                               |   73 |  37 |      28 |   0 |  25 |  186 |  1,042 |
| `ElixirCode`               | src/getter.rs                             | 1451 |  26 |       7 |   0 |   0 |  164 |    877 |
| `CppCode`                  | src/getter.rs                             |  503 |  24 |       5 |   0 |   0 |   99 |    664 |
| `Stats`                    | src/metrics/loc.rs                        |  390 |  24 |      23 |   0 |  23 |  197 |    804 |
| `Stats`                    | src/metrics/abc.rs                        |  143 |  23 |      20 |   0 |  20 |  171 |    752 |
| `Stats`                    | src/metrics/loc.rs                        |  331 |  22 |       1 |   0 |   0 |   29 |    398 |
| `Stats`                    | src/metrics/halstead.rs                   |  157 |  21 |      15 |   0 |  15 |  160 |    537 |
| `RustCode`                 | src/metrics/npa.rs                        |  786 |  21 |       2 |   0 |   0 |  103 |    458 |
| `ElixirCode`               | src/checker.rs                            | 1429 |  19 |      12 |   0 |   0 |  115 |    463 |
| `Parser<T>`                | src/parser.rs                             |  121 |  19 |       9 |   0 |   0 |  102 |    579 |
| `KotlinCode`               | src/metrics/abc.rs                        |  787 |  18 |       4 |   0 |   0 |   95 |    313 |
| `Stats`                    | src/metrics/nargs.rs                      |  102 |  18 |      16 |   0 |  16 |  126 |    605 |
| `Stats`                    | src/metrics/npa.rs                        |   84 |  18 |      16 |   0 |  16 |  146 |    484 |
| `Stats`                    | src/metrics/npm.rs                        |   85 |  18 |      16 |   0 |  16 |  146 |    484 |
| `MetricKind`               | src/suppression.rs                        |   96 |  18 |       3 |   1 |   2 |   66 |    266 |
| `AggregatedFormat`         | big-code-analysis-cli/src/check_format.rs |   53 |  17 |       7 |   0 |   2 |   37 |    204 |
| `RustCode`                 | src/getter.rs                             |  433 |  17 |       4 |   0 |   0 |   69 |    472 |
| `PythonCode`               | src/metrics/cognitive.rs                  |  346 |  17 |       5 |   0 |   0 |   74 |    358 |
| `Stats`                    | src/metrics/nom.rs                        |  107 |  17 |      15 |   0 |  15 |  126 |    559 |
| `CppCode`                  | src/metrics/npm.rs                        |  623 |  17 |       3 |   0 |   0 |   74 |    285 |
| `Node<'a>`                 | src/node.rs                               |  282 |  17 |       5 |   0 |   0 |   63 |    407 |
| `Baseline`                 | big-code-analysis-cli/src/baseline.rs     |   93 |  16 |       4 |   0 |   2 |   72 |    317 |
| `ThresholdSet`             | big-code-analysis-cli/src/thresholds.rs   |  304 |  16 |       4 |   0 |   3 |  111 |    400 |
| `PythonCode`               | src/checker.rs                            |  367 |  16 |      12 |   0 |   0 |   77 |    349 |
| `RustCode`                 | src/checker.rs                            |  877 |  16 |      10 |   0 |   0 |  105 |    491 |
| `Stats`                    | src/metrics/halstead.rs                   |   97 |  16 |       1 |   0 |   0 |   23 |    296 |
| `PhpCode`                  | src/metrics/npa.rs                        |  613 |  16 |       8 |   0 |   0 |   67 |    375 |
| `ConcurrentRunner<Config>` | src/concurrent_files.rs                   |  185 |  15 |       6 |   0 |   4 |  131 |    613 |
| `Stats`                    | src/metrics/abc.rs                        |   94 |  15 |       1 |   0 |   0 |   22 |    279 |
| `Stats`                    | src/metrics/cyclomatic.rs                 |  103 |  15 |      13 |   0 |  13 |  117 |    461 |

### Functions with the most exit points (NEXITS)

| Function             | File                              | Line | Exits |  CC | SLOC | Tokens |
| -------------------- | --------------------------------- | ---: | ----: | --: | ---: | -----: |
| `serialize`          | src/metrics/loc.rs                |  332 |    21 |  22 |   27 |    392 |
| `_native`            | big-code-analysis-py/src/lib.rs   |  337 |    20 |  21 |   24 |    230 |
| `dump_tree_helper`   | src/output/dump.rs                |   75 |    20 |  32 |   95 |    576 |
| `dump_halstead`      | src/output/dump_metrics.rs        |  160 |    17 |  19 |   38 |    417 |
| `dump_metrics`       | src/output/dump_metrics.rs        |   90 |    16 |  18 |   29 |    328 |
| `serialize`          | src/metrics/halstead.rs           |   98 |    15 |  16 |   21 |    290 |
| `serialize`          | src/metrics/abc.rs                |   95 |    14 |  15 |   20 |    273 |
| `dump_ops_values`    | src/output/dump_ops.rs            |   89 |    12 |  14 |   34 |    243 |
| `serialize`          | src/metrics/nargs.rs              |   64 |    11 |  12 |   17 |    222 |
| `serialize`          | src/metrics/nom.rs                |   60 |    11 |  12 |   17 |    222 |
| `dump_space`         | src/output/dump_metrics.rs        |   57 |    11 |  15 |   32 |    270 |
| `dump_space`         | src/output/dump_ops.rs            |   46 |    11 |  15 |   32 |    267 |
| `collect_offenders`  | big-code-analysis-py/src/sarif.rs |  357 |    10 |  23 |   94 |    582 |
| `serialize`          | src/metrics/npa.rs                |   48 |    10 |  11 |   16 |    205 |
| `serialize`          | src/metrics/npm.rs                |   49 |    10 |  11 |   16 |    205 |
| `__repr__`           | big-code-analysis-py/src/batch.rs |  154 |     8 |   9 |   20 |    129 |
| `analyze_batch`      | big-code-analysis-py/src/batch.rs |  346 |     8 |  18 |  105 |    399 |
| `dump_loc`           | src/output/dump_metrics.rs        |  199 |     8 |  10 |   21 |    227 |
| `dump_npm`           | src/output/dump_metrics.rs        |  385 |     8 |  10 |   30 |    222 |
| `dump_npa`           | src/output/dump_metrics.rs        |  416 |     8 |  10 |   30 |    222 |
| `fmt`                | src/spaces.rs                     |  249 |     8 |   9 |   11 |    153 |
| `parse_native`       | src/suppression.rs                |  443 |     8 |  11 |   57 |    319 |
| `write_checkstyle`   | src/output/checkstyle.rs          |   45 |     7 |  11 |   30 |    228 |
| `dump_tokens`        | src/output/dump_metrics.rs        |  241 |     7 |   9 |   20 |    206 |
| `dump_nargs`         | src/output/dump_metrics.rs        |  288 |     7 |   9 |   20 |    206 |
| `dump_abc`           | src/output/dump_metrics.rs        |  327 |     7 |   9 |   27 |    207 |
| `dump_wmc`           | src/output/dump_metrics.rs        |  355 |     7 |   9 |   29 |    201 |
| `resolve_thresholds` | big-code-analysis-py/src/sarif.rs |  245 |     6 |   8 |   48 |    301 |
| `serialize`          | src/ast.rs                        |   72 |     6 |   7 |   12 |    127 |
| `serialize`          | src/metrics/cyclomatic.rs         |   74 |     6 |   7 |    9 |    133 |

### ABC Magnitude Hotspots

| Function                                          | File                                         | Line |   ABC | SLOC | Tokens |
| ------------------------------------------------- | -------------------------------------------- | ---: | ----: | ---: | -----: |
| `metric_values`                                   | src/output/funcspace_row.rs                  |   27 | 111.0 |  143 |    800 |
| `<anonymous>`                                     | big-code-analysis-web/src/web/server.rs      |  406 |  69.0 |   44 |    410 |
| `serialize`                                       | src/metrics/loc.rs                           |  332 |  63.0 |   27 |    392 |
| `fix_includes`                                    | src/preproc.rs                               |   97 |  60.4 |  137 |    835 |
| `dump_tree_helper`                                | src/output/dump.rs                           |   75 |  47.6 |   95 |    576 |
| `metrics_inner`                                   | src/spaces.rs                                |  997 |  47.2 |  152 |    672 |
| `collect_offenders`                               | big-code-analysis-py/src/sarif.rs            |  357 |  47.1 |   94 |    582 |
| `dump_halstead`                                   | src/output/dump_metrics.rs                   |  160 |  47.0 |   38 |    417 |
| `serialize`                                       | src/metrics/halstead.rs                      |   98 |  45.0 |   21 |    290 |
| `serialize`                                       | src/metrics/abc.rs                           |   95 |  42.0 |   20 |    273 |
| `_native`                                         | big-code-analysis-py/src/lib.rs              |  337 |  39.0 |   24 |    230 |
| `preprocess`                                      | src/preproc.rs                               |  240 |  38.1 |   63 |    425 |
| `write_language_section`                          | big-code-analysis-cli/src/html_report.rs     |  514 |  36.4 |  463 |  2,295 |
| `operands_and_operators`                          | src/ops.rs                                   |  193 |  35.5 |   73 |    434 |
| `simple_is_string_macro_recognises_each_language` | src/checker.rs                               | 2233 |  35.0 |  248 |  1,141 |
| `run`                                             | src/concurrent_files.rs                      |  246 |  34.5 |   69 |    383 |
| `generate_html_report`                            | big-code-analysis-cli/src/html_report.rs     |  364 |  33.5 |  149 |  1,012 |
| `serialize`                                       | src/metrics/nargs.rs                         |   64 |  33.0 |   17 |    222 |
| `serialize`                                       | src/metrics/nom.rs                           |   60 |  33.0 |   17 |    222 |
| `analyze_batch`                                   | big-code-analysis-py/src/batch.rs            |  346 |  33.0 |  105 |    399 |
| `parse_native`                                    | src/suppression.rs                           |  443 |  32.8 |   57 |    319 |
| `dump_metrics`                                    | src/output/dump_metrics.rs                   |   90 |  31.0 |   29 |    328 |
| `extract_summaries_inner`                         | big-code-analysis-cli/src/markdown_report.rs |   87 |  30.0 |   47 |    371 |
| `serialize`                                       | src/metrics/npa.rs                           |   48 |  30.0 |   16 |    205 |
| `serialize`                                       | src/metrics/npm.rs                           |   49 |  30.0 |   16 |    205 |
| `guess_language`                                  | src/tools.rs                                 |  416 |  27.9 |   44 |    312 |
| `legacy_hint`                                     | big-code-analysis-cli/src/lib.rs             |  825 |  26.8 |   91 |    522 |
| `compute`                                         | src/metrics/npa.rs                           |  787 |  25.8 |  101 |    452 |
| `get_filters`                                     | src/parser.rs                                |  190 |  24.4 |   32 |    298 |
| `run_parse`                                       | big-code-analysis-web/src/web/server.rs      |   55 |  23.5 |   71 |    347 |
