Breaking
- The
bazel-out
directory is no longer automatically excluded from results to allow for the detection of unused code in generated files. Use--report-exclude "**/bazel-out/**/*"
to apply the previous behavior.
Enhancements
- Added the
--write-results <file>
option. - Added the
github-markdown
output format. - Added the ability to override the result location and kind with a comment command. This can be used in cases where the unused code exists in a generated source file, but the code to be removed exists in another file.
// periphery:override location="some/dir/en.lproj/Feature.strings:1:1" kind="localized string" var generatedProperty: String = "abc123"
some/dir/en.lproj/Feature.strings:1:1: warning: Localized string 'generatedProperty' is unused
Bug Fixes
- Fix unused import false-positives where the only referenced declaration is generated by a macro.
- Fix building with Bazel on Linux by excluding Xcode support.
- Fix slow baseline filtering for large projects with many results.
- Fix inconsistent unused parameter results when the function is declared in a file that is a member of multiple targets.
- Fix inconsistent results caused by identical extensions declared in different modules.
- Static
@_dynamicReplacement
members are now retained. - Fix possible concurrent mutation crash when accessing filename matching configuration options.