Skip to main content

UnusedClassMemberFinding

Struct UnusedClassMemberFinding 

Source
pub struct UnusedClassMemberFinding {
    pub member: UnusedMember,
    pub actions: Vec<IssueAction>,
    pub semantic: Option<SemanticCandidateDecision>,
    pub semantic_only_candidate: bool,
    pub introduced: Option<AuditIntroduced>,
    pub effective_severity: Option<EffectiveSeverity>,
    pub reachability_caveats: Vec<ReachabilityCaveat>,
}
Expand description

Wire-shape envelope for an UnusedMember finding consumed under the unused_class_members key. Same Rust struct as UnusedEnumMemberFinding; the fix action and suppress comment carry the class-member kebab-case identifier instead.

Fields§

§member: UnusedMember

The underlying dead-code entry.

§actions: Vec<IssueAction>

Suggested next steps. Always emitted (possibly empty for forward-compat).

§semantic: Option<SemanticCandidateDecision>

Type-aware evidence for this exact candidate when requested.

§semantic_only_candidate: bool

Internal marker for a framework member that the syntactic analysis suppresses, but the semantic pass may promote after proving complete closed-world absence. Never serialized as part of the public finding.

§introduced: Option<AuditIntroduced>

Set by the audit pass when this finding is introduced relative to the merge-base.

§effective_severity: Option<EffectiveSeverity>

Gate severity of this finding after rules and overrides[].rules resolve for its path. CI formats read it for the annotation, SARIF and CodeClimate level. Absent in output from older versions. Not part of the finding identity, baseline keys or fingerprints.

§reachability_caveats: Vec<ReachabilityCaveat>

Advisory caveats on the verdict behind this finding. A class member’s usage is collected by the same reachability-free member-access walk an enum member’s is, so it takes the enum-member rule unchanged: any module this run analyzed incompletely can hold the access that credits it. Sorted, deduplicated, and omitted from the wire when empty. Never gates the finding; it does withhold the remove-class-member mutation that the type-aware pass would otherwise open.

Implementations§

Source§

impl UnusedClassMemberFinding

Source

pub fn with_actions(member: UnusedMember) -> Self

Build the wrapper from a raw UnusedMember. Class-member fixes are not auto-applied (members can be used via dependency injection or decorators), so auto_fixable is false and a context note is attached.

Source

pub const fn semantic_only_candidate(self) -> Self

Mark this finding as latent until semantic analysis proves that the framework contract does not apply and no static references exist.

Source

pub fn set_semantic_decision(&mut self, decision: SemanticCandidateDecision)

Attach the canonical semantic decision and expose the class-member fix only when the API policy granted closed-world eligibility AND this run holds the evidence for the mutation.

This is the one code path that RAISES auto_fixable on a class member, and it runs in the API layer AFTER the analysis layer stamped the run’s caveats, so it asks the gate for the same reason set_export_semantic_action does: a closed-world verdict computed over a program the run never fully read must not re-open a removal the incomplete run already withheld. The withheld note names the evidence gap rather than the semantic explanation, which stays readable on the finding’s own semantic object.

Trait Implementations§

Source§

impl CaveatedFinding for UnusedClassMemberFinding

Source§

fn set_reachability_caveats(&mut self, caveats: Vec<ReachabilityCaveat>)

Store caveats and downgrade every mutating action the gate now withholds. The field itself stays pub (a renderer test builds an already-caveated fixture directly, without running the annotation pass); every non-test writer goes through this setter instead of the field so the downgrade travels with the write.
Source§

impl Clone for UnusedClassMemberFinding

Source§

fn clone(&self) -> Self

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 UnusedClassMemberFinding

Source§

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

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

impl<'de> Deserialize<'de> for UnusedClassMemberFinding

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl GatedFinding for UnusedClassMemberFinding

Source§

fn effective_severity(&self) -> Option<EffectiveSeverity>

The gate severity, or None when no value was written.
Source§

fn set_effective_severity(&mut self, severity: Option<EffectiveSeverity>)

Write the gate severity.
Source§

impl MutationEvidence for UnusedClassMemberFinding

Source§

fn reachability_caveats(&self) -> &[ReachabilityCaveat]

The advisory caveats recorded on the reachability verdict behind this finding. Empty when the run analyzed every file it discovered.
Source§

fn may_auto_apply_mutation(&self) -> bool

Whether this finding’s mutation may be applied without a human first being told the evidence is incomplete. THE gate: never re-derive it, never widen it per surface.
Source§

impl Serialize for UnusedClassMemberFinding

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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<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 = !

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

fn try_from(value: U) -> Result<T, !>

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.