Skip to main content

DiagnosticCode

Enum DiagnosticCode 

Source
pub enum DiagnosticCode {
Show 60 variants ParseError, SyntaxError, UnexpectedEof, MissingStrict, MissingWarnings, UnusedVariable, UndefinedVariable, VariableShadowing, VariableRedeclaration, DuplicateParameter, ParameterShadowsGlobal, UnusedParameter, UnquotedBareword, UninitializedVariable, MisspelledPragma, CaptureVarWithoutRegexMatch, MissingPackageDeclaration, DuplicatePackage, DuplicateSubroutine, MissingReturn, InvalidPrototype, RoleConflict, MissingPodCoverage, BarewordFilehandle, TwoArgOpen, ImplicitReturn, AssignmentInCondition, NumericComparisonWithUndef, PrintfFormatMismatch, UnreachableCode, EvalErrorFlow, DuplicateHashKey, GotoUndefinedLabel, LoopControlUndefinedLabel, DeprecatedDefined, DeprecatedArrayBase, PhaseScopedStrictPragma, PhaseScopedWarningsPragma, SecurityStringEval, SecurityBacktickExec, SecuritySignalHandler, SecuritySystemCall, SecurityExecCall, SecurityPipeOpen, SecurityReadpipe, UnusedImport, ModuleNotFound, HeredocInFormat, HeredocInBegin, HeredocDynamicDelimiter, HeredocInSourceFilter, HeredocInRegexCode, HeredocInEval, HeredocTiedHandle, VersionIncompatFeature, CriticSeverity1, CriticSeverity2, CriticSeverity3, CriticSeverity4, CriticSeverity5,
}
Expand description

Stable diagnostic codes for Perl LSP.

Each code has a fixed string representation and associated metadata.

Variants§

§

ParseError

General parse error

§

SyntaxError

Syntax error

§

UnexpectedEof

Unexpected end-of-file

§

MissingStrict

Missing ‘use strict’ pragma

§

MissingWarnings

Missing ‘use warnings’ pragma

§

UnusedVariable

Unused variable

§

UndefinedVariable

Undefined variable

§

VariableShadowing

Variable shadowing an outer declaration

§

VariableRedeclaration

Variable redeclared in the same scope

§

DuplicateParameter

Duplicate parameter in a subroutine signature

§

ParameterShadowsGlobal

Subroutine parameter shadows a global variable

§

UnusedParameter

Subroutine parameter is declared but never used

§

UnquotedBareword

Bareword used where a quoted string is expected (under strict)

§

UninitializedVariable

Variable used before being initialized

§

MisspelledPragma

Pragma name appears to be misspelled

§

CaptureVarWithoutRegexMatch

Capture variable ($1, $2, etc.) used without a preceding regex match in scope

§

MissingPackageDeclaration

Missing package declaration

§

DuplicatePackage

Duplicate package declaration

§

DuplicateSubroutine

Duplicate subroutine definition

§

MissingReturn

Missing explicit return statement

§

InvalidPrototype

Invalid character(s) in a subroutine prototype

Perl only allows $, @, %, &, *, \, ;, +, _, and spaces in old-style prototypes. Any other character triggers Perl’s “Illegal character in prototype” warning.

§

RoleConflict

Same-file Moo/Moose roles provide conflicting methods

§

MissingPodCoverage

Exported subroutine lacks POD documentation

§

BarewordFilehandle

Bareword filehandle usage

§

TwoArgOpen

Two-argument open() call

§

ImplicitReturn

Implicit return value

§

AssignmentInCondition

Assignment used where a comparison was likely intended

§

NumericComparisonWithUndef

Numeric comparison against a potentially undefined value

§

PrintfFormatMismatch

printf/sprintf format specifier count does not match argument count

§

UnreachableCode

Statement that cannot be reached due to preceding unconditional exit

§

EvalErrorFlow

$@ / $EVAL_ERROR reads that are not paired with a nearby eval/try

§

DuplicateHashKey

Duplicate key in a hash literal or hash reference constructor

§

GotoUndefinedLabel

goto LABEL references a label that does not exist in this file

§

LoopControlUndefinedLabel

next/last/redo LABEL references a label that does not exist in this file

§

DeprecatedDefined

Use of deprecated defined(@array) / defined(%hash)

§

DeprecatedArrayBase

Use of deprecated $[ array base variable

§

PhaseScopedStrictPragma

use strict appears only inside a phase block and does not affect file scope

§

PhaseScopedWarningsPragma

use warnings appears only inside a phase block and does not affect file scope

§

SecurityStringEval

String eval is a security risk

§

SecurityBacktickExec

Backtick/qx command execution detected

§

SecuritySignalHandler

Global assignment to $SIG{__DIE__} / $SIG{__WARN__}

§

SecuritySystemCall

system() call executes shell commands

§

SecurityExecCall

exec() call replaces the current process with a shell command

§

SecurityPipeOpen

Pipe-open open(FH, "|-", ...) / open(FH, "-|", ...) executes shell commands

§

SecurityReadpipe

readpipe() function call executes shell commands (equivalent to qx//)

§

UnusedImport

Module appears to be unused

§

ModuleNotFound

Module not found in workspace or configured include paths

§

HeredocInFormat

Heredoc used inside a format block

§

HeredocInBegin

Heredoc used inside a BEGIN block

§

HeredocDynamicDelimiter

Heredoc delimiter is dynamic (variable interpolation)

§

HeredocInSourceFilter

Heredoc used inside a source filter

§

HeredocInRegexCode

Heredoc used inside a regex code block

§

HeredocInEval

Heredoc used inside string eval

§

HeredocTiedHandle

Heredoc used with a tied filehandle

§

VersionIncompatFeature

Use of a Perl feature not available in the declared version

§

CriticSeverity1

Perl::Critic brutal (severity 1) violation

§

CriticSeverity2

Perl::Critic cruel (severity 2) violation

§

CriticSeverity3

Perl::Critic harsh (severity 3) violation

§

CriticSeverity4

Perl::Critic stern (severity 4) violation

§

CriticSeverity5

Perl::Critic gentle (severity 5) violation

Implementations§

Source§

impl DiagnosticCode

Source

pub fn as_str(&self) -> &'static str

Get the string representation of this code.

Source

pub fn documentation_url(&self) -> Option<&'static str>

Get the documentation URL for this code, if available.

Source

pub fn severity(&self) -> DiagnosticSeverity

Get the default severity for this diagnostic code.

Source

pub fn tags(&self) -> &'static [DiagnosticTag]

Get any diagnostic tags associated with this code.

Source

pub fn context_hint(&self) -> Option<&'static str>

Return a human-readable context hint for this diagnostic code.

Hints are short, actionable explanations that help users understand what the diagnostic means and how to resolve it. Perl::Critic codes return None because their per-policy descriptions already serve this purpose.

Source

pub fn from_message(msg: &str) -> Option<Self>

Try to infer a diagnostic code from a message.

Source

pub fn parse_code(code: &str) -> Option<Self>

Try to parse a code string into a DiagnosticCode.

Source

pub fn category(&self) -> DiagnosticCategory

Get the category of this diagnostic code.

Trait Implementations§

Source§

impl Clone for DiagnosticCode

Source§

fn clone(&self) -> DiagnosticCode

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for DiagnosticCode

Source§

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

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

impl Default for DiagnosticCode

Source§

fn default() -> DiagnosticCode

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

impl Display for DiagnosticCode

Source§

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

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

impl Hash for DiagnosticCode

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for DiagnosticCode

Source§

fn eq(&self, other: &DiagnosticCode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for DiagnosticCode

Source§

impl Eq for DiagnosticCode

Source§

impl StructuralPartialEq for DiagnosticCode

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<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<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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.