pub enum UnplannableReason {
UnsafeLatestVersion,
NonLiteralSpan,
NoOpRewrite,
LatestFlaggedByOsv,
LatestUnverified,
}Expand description
Why a dependency crate::lsp_helpers::RequirementStatus::Outdated could not become a
writable PlannedUpdate.
Variants§
UnsafeLatestVersion
The registry’s cached latest value failed the is_safe_version_string gate.
NonLiteralSpan
The declared span does not hold the literal requirement text — a Maven
${property} reference, a Gradle DSL variable/version-catalog alias, or similar.
NoOpRewrite
The formatter’s rewrite would be a no-op (no single unambiguous rewrite exists, e.g.
deps-gradle’s {strictly}!!{preferred} shorthand).
LatestFlaggedByOsv
Issue #1517: OSV checked this exact latest version and found it affected by a
non-informational advisory (or a confirmed-malicious record) —
crate::lsp_helpers::LatestVerdict::Flagged. Writing this version into the manifest
would be the exact supply-chain exposure this variant exists to prevent; the shared
planner this variant lives in (collect_update_candidates) is used by both the LSP
code lens and deps-cli update’s default mode, so both refuse it identically.
LatestUnverified
Issue #1517: latest’s OSV status could not be verified —
crate::lsp_helpers::LatestVerdict::Unverified (never checked, a transient
failure/timeout, or the checked version has since diverged from what’s now cached as
latest). Fails closed the same way Self::LatestFlaggedByOsv does: an unverified
version is never distinguishable from a flagged one at write time, so neither is ever
planned.
Trait Implementations§
Source§impl Clone for UnplannableReason
impl Clone for UnplannableReason
impl Copy for UnplannableReason
Source§impl Debug for UnplannableReason
impl Debug for UnplannableReason
impl Eq for UnplannableReason
Source§impl PartialEq for UnplannableReason
impl PartialEq for UnplannableReason
impl StructuralPartialEq for UnplannableReason
Auto Trait Implementations§
impl Freeze for UnplannableReason
impl RefUnwindSafe for UnplannableReason
impl Send for UnplannableReason
impl Sync for UnplannableReason
impl Unpin for UnplannableReason
impl UnsafeUnpin for UnplannableReason
impl UnwindSafe for UnplannableReason
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.