Hyena Dart 1.2.2
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.