Skip to content

Hyena Dart 1.2.2

Choose a tag to compare

@Chandram-Dutta Chandram-Dutta released this 27 Aug 17:06

Highlights

  • Parse modern Dart dot-shorthand syntax through analyzer 8.4 compatibility.
  • Accept non-error dartdoc parser diagnostics while continuing to reject syntax errors.
  • Exclude .dart_tool, build, and generated artifacts consistently.
  • Preserve inherited field implementations and their initializer dependencies in dead-code reachability.
  • Add deterministic single-package/workspace benchmarks, read-only external-repository mode, structured timing and RSS results, and a manually triggered GitHub Actions workflow.
  • Reject performance comparisons when corpus metadata or correctness signatures differ, and reject external benchmark output paths inside the target or through symlink aliases.

Evidence from pinned public repositories

  • Melos: both analyses across 110 files / 33,193 lines in a 7.53 s median; 66 dead-code candidates and 36 complexity violations.
  • Flame: complexity across 1,625 files / 165,415 lines in a 1.46 s median; 190 threshold violations.
  • Flutter packages: complexity across 3,514 files / 1.54 million lines in an 8.35 s median; 3,297 threshold violations.

The scans found concrete review leads in mature code, but findings remain triage inputs—not automatic refactoring instructions. See the tracked open-source benchmark report for methodology, pinned commits, examples, and caveats.

Known boundary

Resolved dead-code analysis of Dart 3.12 private named parameters still requires the larger analyzer 12 AST/element migration. Flame therefore has a valid complexity benchmark but no dead-code timing; failing sources were not silently excluded.

Verification

Independently verified at this exact commit on an 8-CPU large orb:

  • Formatting and dart analyze --fatal-infos: passed.
  • 101 tests: passed.
  • dart pub publish --dry-run: 0 warnings, 41 KB archive.
  • Full generated benchmark: 5 corpora, 2,705 Dart files, 14 cases, and 170 consistent action signatures.
  • Supported lower dependency bounds and Dart 3.12 compatibility checks: passed.

Benchmark comparisons are advisory until repeated hosted-runner history establishes stable regression thresholds.