Skip to main content

AnalysisResults

Struct AnalysisResults 

Source
pub struct AnalysisResults {
Show 27 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 re_export_cycles: Vec<ReExportCycleFinding>, 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.

§re_export_cycles: Vec<ReExportCycleFinding>

Cycles or self-loops in the re-export edge subgraph (barrel files re-exporting from each other in a loop). Wrapped in ReExportCycleFinding so each entry carries a typed actions array natively (a refactor-re-export-cycle informational primary plus a suppress-file secondary; cycles are file-scoped so a single suppression breaks the cycle).

§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: usize

Number 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

Source

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);
Source

pub const fn has_issues(&self) -> bool

Whether any issues were found.

Source

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

Source§

fn clone(&self) -> AnalysisResults

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AnalysisResults

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AnalysisResults

Source§

fn default() -> AnalysisResults

Returns the “default value” for a type. Read more
Source§

impl Serialize for AnalysisResults

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.