pub struct AnalysisResults {Show 26 fields
pub unused_files: Vec<UnusedFileFinding>,
pub unused_exports: Vec<UnusedExportFinding>,
pub unused_types: Vec<UnusedTypeFinding>,
pub private_type_leaks: Vec<PrivateTypeLeakFinding>,
pub unused_dependencies: Vec<UnusedDependencyFinding>,
pub unused_dev_dependencies: Vec<UnusedDevDependencyFinding>,
pub unused_optional_dependencies: Vec<UnusedOptionalDependencyFinding>,
pub unused_enum_members: Vec<UnusedEnumMemberFinding>,
pub unused_class_members: Vec<UnusedClassMemberFinding>,
pub unresolved_imports: Vec<UnresolvedImportFinding>,
pub unlisted_dependencies: Vec<UnlistedDependencyFinding>,
pub duplicate_exports: Vec<DuplicateExportFinding>,
pub type_only_dependencies: Vec<TypeOnlyDependencyFinding>,
pub test_only_dependencies: Vec<TestOnlyDependencyFinding>,
pub circular_dependencies: Vec<CircularDependencyFinding>,
pub boundary_violations: Vec<BoundaryViolationFinding>,
pub stale_suppressions: Vec<StaleSuppression>,
pub unused_catalog_entries: Vec<UnusedCatalogEntryFinding>,
pub empty_catalog_groups: Vec<EmptyCatalogGroupFinding>,
pub unresolved_catalog_references: Vec<UnresolvedCatalogReferenceFinding>,
pub unused_dependency_overrides: Vec<UnusedDependencyOverrideFinding>,
pub misconfigured_dependency_overrides: Vec<MisconfiguredDependencyOverrideFinding>,
pub suppression_count: usize,
pub feature_flags: Vec<FeatureFlag>,
pub export_usages: Vec<ExportUsage>,
pub entry_point_summary: Option<EntryPointSummary>,
}Expand description
Complete analysis results.
§Examples
use fallow_types::output_dead_code::UnusedFileFinding;
use fallow_types::results::{AnalysisResults, UnusedFile};
use std::path::PathBuf;
let mut results = AnalysisResults::default();
assert_eq!(results.total_issues(), 0);
assert!(!results.has_issues());
results
.unused_files
.push(UnusedFileFinding::with_actions(UnusedFile {
path: PathBuf::from("src/dead.ts"),
}));
assert_eq!(results.total_issues(), 1);
assert!(results.has_issues());Fields§
§unused_files: Vec<UnusedFileFinding>Files not reachable from any entry point. Wrapped in
UnusedFileFinding so each entry carries a typed actions array
natively, replacing the pre-2.76 post-pass injection.
unused_exports: Vec<UnusedExportFinding>Exports never imported by other modules. Wrapped in
UnusedExportFinding so each entry carries a typed actions
array natively.
unused_types: Vec<UnusedTypeFinding>Type exports never imported by other modules. Wrapped in
UnusedTypeFinding: the inner UnusedExport struct is shared
with unused_exports but the wrapper emits a type-targeted fix
description.
private_type_leaks: Vec<PrivateTypeLeakFinding>Exported symbols whose public signature references same-file private
types. Wrapped in PrivateTypeLeakFinding so each entry carries a
typed actions array natively.
unused_dependencies: Vec<UnusedDependencyFinding>Dependencies listed in package.json but never imported. Wrapped in
UnusedDependencyFinding so each entry carries a typed actions
array natively. The fix action swaps from remove-dependency to
move-dependency when used_in_workspaces is non-empty.
unused_dev_dependencies: Vec<UnusedDevDependencyFinding>Dev dependencies listed in package.json but never imported. Wrapped
in UnusedDevDependencyFinding: same bare struct as
unused_dependencies with a devDependencies-targeted fix
description.
unused_optional_dependencies: Vec<UnusedOptionalDependencyFinding>Optional dependencies listed in package.json but never imported.
Wrapped in UnusedOptionalDependencyFinding with an
optionalDependencies-targeted fix description.
unused_enum_members: Vec<UnusedEnumMemberFinding>Enum members never accessed. Wrapped in
UnusedEnumMemberFinding so each entry carries a typed actions
array natively.
unused_class_members: Vec<UnusedClassMemberFinding>Class members never accessed. Wrapped in
UnusedClassMemberFinding: same inner UnusedMember struct as
unused_enum_members, with a class-targeted fix description and the
auto_fixable: false default to reflect dependency-injection
patterns.
unresolved_imports: Vec<UnresolvedImportFinding>Import specifiers that could not be resolved. Wrapped in
UnresolvedImportFinding so each entry carries a typed actions
array natively.
unlisted_dependencies: Vec<UnlistedDependencyFinding>Dependencies used in code but not listed in package.json. Wrapped in
UnlistedDependencyFinding.
duplicate_exports: Vec<DuplicateExportFinding>Exports with the same name across multiple modules. Wrapped in
DuplicateExportFinding so each entry carries a typed actions
array natively, with the position-0 add-to-config ignoreExports
snippet wired in at wrapper construction.
type_only_dependencies: Vec<TypeOnlyDependencyFinding>Production dependencies only used via type-only imports (could be
devDependencies). Only populated in production mode. Wrapped in
TypeOnlyDependencyFinding.
test_only_dependencies: Vec<TestOnlyDependencyFinding>Production dependencies only imported by test files (could be
devDependencies). Wrapped in TestOnlyDependencyFinding.
circular_dependencies: Vec<CircularDependencyFinding>Circular dependency chains detected in the module graph. Wrapped in
CircularDependencyFinding so each entry carries a typed actions
array natively.
boundary_violations: Vec<BoundaryViolationFinding>Imports that cross architecture boundary rules. Wrapped in
BoundaryViolationFinding so each entry carries a typed actions
array natively.
stale_suppressions: Vec<StaleSuppression>Suppression comments or JSDoc tags that no longer match any issue.
unused_catalog_entries: Vec<UnusedCatalogEntryFinding>Entries in pnpm-workspace.yaml’s catalog: or catalogs: sections not
referenced by any workspace package via the catalog: protocol. Wrapped
in UnusedCatalogEntryFinding so each entry carries a typed
actions array natively, with per-instance auto_fixable derived
from hardcoded_consumers.
empty_catalog_groups: Vec<EmptyCatalogGroupFinding>Named groups under pnpm-workspace.yaml’s catalogs: section that declare
no package entries. The top-level catalog: map is not reported. Wrapped
in EmptyCatalogGroupFinding.
unresolved_catalog_references: Vec<UnresolvedCatalogReferenceFinding>Workspace package.json references to catalogs (catalog: or
catalog:<name>) that do not declare the consumed package. pnpm install
will error until the named catalog grows to include the package or the
reference is switched / removed. Wrapped in
UnresolvedCatalogReferenceFinding with the discriminated
add-catalog-entry / update-catalog-reference primary at position 0.
unused_dependency_overrides: Vec<UnusedDependencyOverrideFinding>Entries in pnpm-workspace.yaml’s overrides: section, or package.json’s
pnpm.overrides block, whose target package is not declared by any
workspace package and is not present in pnpm-lock.yaml. Default severity
is warn because projects without a readable lockfile fall back to
manifest-only checks; the hint field flags those conservative cases.
Wrapped in UnusedDependencyOverrideFinding.
misconfigured_dependency_overrides: Vec<MisconfiguredDependencyOverrideFinding>pnpm.overrides entries whose key or value does not parse as a valid
override spec (empty key, empty value, malformed selector, unbalanced
parent matcher). pnpm install will reject these. Default severity is
error. Wrapped in MisconfiguredDependencyOverrideFinding.
suppression_count: usizeNumber of suppression entries that matched an issue during analysis. Human output uses this for the suppression footer; it is skipped in machine output to avoid changing the public JSON issue contract.
feature_flags: Vec<FeatureFlag>Detected feature flag patterns. Advisory output, not included in issue counts. Skipped during default serialization: injected separately in JSON output when enabled.
export_usages: Vec<ExportUsage>Usage counts for all exports across the project. Used by the LSP for Code Lens. Not included in issue counts – this is metadata, not an issue type. Skipped during serialization: this is internal LSP data, not part of the JSON output schema.
entry_point_summary: Option<EntryPointSummary>Summary of detected entry points, grouped by discovery source. Not included in issue counts – this is informational metadata. Skipped during serialization: rendered separately in JSON output.
Implementations§
Source§impl AnalysisResults
impl AnalysisResults
Sourcepub const fn total_issues(&self) -> usize
pub const fn total_issues(&self) -> usize
Total number of issues found.
Sums across all issue categories (unused files, exports, types, dependencies, members, unresolved imports, unlisted deps, duplicates, type-only deps, circular deps, and boundary violations).
§Examples
use fallow_types::output_dead_code::{UnresolvedImportFinding, UnusedFileFinding};
use fallow_types::results::{AnalysisResults, UnresolvedImport, UnusedFile};
use std::path::PathBuf;
let mut results = AnalysisResults::default();
results
.unused_files
.push(UnusedFileFinding::with_actions(UnusedFile {
path: PathBuf::from("a.ts"),
}));
results
.unresolved_imports
.push(UnresolvedImportFinding::with_actions(UnresolvedImport {
path: PathBuf::from("b.ts"),
specifier: "./missing".to_string(),
line: 1,
col: 0,
specifier_col: 0,
}));
assert_eq!(results.total_issues(), 2);Sourcepub const fn has_issues(&self) -> bool
pub const fn has_issues(&self) -> bool
Whether any issues were found.
Sourcepub fn sort(&mut self)
pub fn sort(&mut self)
Sort all result arrays for deterministic output ordering.
Parallel collection (rayon, FxHashMap iteration) does not guarantee
insertion order, so the same project can produce different orderings
across runs. This method canonicalises every result list by sorting on
(path, line, col, name) so that JSON/SARIF/human output is stable.
Trait Implementations§
Source§impl Clone for AnalysisResults
impl Clone for AnalysisResults
Source§fn clone(&self) -> AnalysisResults
fn clone(&self) -> AnalysisResults
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AnalysisResults
impl Debug for AnalysisResults
Source§impl Default for AnalysisResults
impl Default for AnalysisResults
Source§fn default() -> AnalysisResults
fn default() -> AnalysisResults
Source§impl Serialize for AnalysisResults
impl Serialize for AnalysisResults
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for AnalysisResults
impl RefUnwindSafe for AnalysisResults
impl Send for AnalysisResults
impl Sync for AnalysisResults
impl Unpin for AnalysisResults
impl UnsafeUnpin for AnalysisResults
impl UnwindSafe for AnalysisResults
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more