#[repr(C)]pub enum DiagnosticMessage {
Show 90 variants
FractionAfterNumeric {},
NoDigitsAfterDot {},
UnknownTypeOfPercentString {},
NumericLiteralWithoutDigits {},
UnterminatedList {},
UnterminatedRegexp {},
UnterminatedString {},
UnterminatedQuotedString {},
InvalidUnicodeEscape {},
TooLargeUnicodeCodepoint {},
InvalidUnicodeCodepoint {},
MultipleCodepointAtSingleChar {},
InvalidEscapeCharacter {},
InvalidHexEscape {},
UnterminatedHeredoc {
heredoc_id: String,
},
UnterminatedHeredocId {},
SlashRAtMiddleOfLine {},
DStarInterpretedAsArgPrefix {},
StarInterpretedAsArgPrefix {},
AmpersandInterpretedAsArgPrefix {},
TripleDotAtEol {},
ParenthesesIterpretedAsArglist {},
AmbiguousFirstArgument {
operator: u8,
},
AmbiguousOperator {
operator: String,
interpreted_as: String,
},
InvalidCharacterSyntax {
suggestion: String,
},
InvalidOctalDigit {},
TrailingCharInNumber {
c: u8,
},
EmbeddedDocumentMeetsEof {},
InvalidChar {
c: u8,
},
IncompleteCharacterSyntax {},
GvarWithoutId {},
InvalidGvarName {
c: u8,
},
IvarWithoutId {},
InvalidIvarName {
c: u8,
},
CvarWithoutId {},
InvalidCvarName {
c: u8,
},
UnknownRegexOptions {
options: String,
},
UnterminatedUnicodeEscape {},
EncodingError {
error: String,
},
InvalidMultibyteChar {},
AmbiguousTernaryOperator {
condition: String,
},
AmbiguousRegexp {},
ElseWithoutRescue {},
BeginNotAtTopLevel {},
AliasNthRef {},
CsendInsideMasgn {},
ClassOrModuleNameMustBeConstant {},
EndlessSetterDefinition {},
UnexpectedToken {
token_name: String,
},
ClassDefinitionInMethodBody {},
ModuleDefinitionInMethodBody {},
InvalidReturnInClassOrModuleBody {},
ConstArgument {},
IvarArgument {},
GvarArgument {},
CvarArgument {},
NoSuchLocalVariable {
var_name: String,
},
OrdinaryParamDefined {},
NumparamUsed {},
TokAtEolWithoutExpression {
token_name: String,
},
InvalidIdToGet {
identifier: String,
},
ForwardArgAfterRestarg {},
NoAnonymousBlockarg {},
EndInMethod {},
ComparisonAfterComparison {
comparison: String,
},
DuplicateHashKey {},
CircularArgumentReference {
arg_name: String,
},
DynamicConstantAssignment {},
CantAssignToSelf {},
CantAssignToNil {},
CantAssignToTrue {},
CantAssignToFalse {},
CantAssignToFile {},
CantAssignToLine {},
CantAssignToEncoding {},
CantAssignToNumparam {
numparam: String,
},
CantSetVariable {
var_name: String,
},
BlockGivenToYield {},
BlockAndBlockArgGiven {},
SymbolLiteralWithInterpolation {},
ReservedForNumparam {
numparam: String,
},
KeyMustBeValidAsLocalVariable {},
DuplicateVariableName {},
DuplicateKeyName {},
SingletonLiteral {},
NthRefIsTooBig {
nth_ref: String,
},
DuplicatedArgumentName {},
RegexError {
error: String,
},
InvalidSymbol {
symbol: String,
},
VoidValueExpression {},
}
Expand description
Enum of all possible diagnostic message (both warnings and errors)
Variants§
FractionAfterNumeric
Fields
Emitted for code
1.2.3
NoDigitsAfterDot
Fields
Emitted for code like
foo.2
UnknownTypeOfPercentString
Fields
Emitted for code like
%k[foo]
NumericLiteralWithoutDigits
Fields
Emitted for code like
0b
UnterminatedList
Fields
Emitted for code like
%w[foo bar
UnterminatedRegexp
Fields
Emitted for code like
/foo
UnterminatedString
Fields
Emitted for code like
"foo
UnterminatedQuotedString
Fields
Emitted for code like
%s
// ^ EOF, not "
InvalidUnicodeEscape
Fields
Emitted for code like
"\ufoo"
TooLargeUnicodeCodepoint
Fields
Emitted for code like
"\u{999999}"
InvalidUnicodeCodepoint
Fields
Emitted for code like
"\u{d800}"
MultipleCodepointAtSingleChar
Fields
Emitted for code like
?\u{41 42}
InvalidEscapeCharacter
Fields
Emitted for code like
"\M-"
InvalidHexEscape
Fields
Emitted for code like
"\xZZ"
UnterminatedHeredoc
Emitted for code like
<<-HERE
UnterminatedHeredocId
Fields
Emitted for code like
<<-"HERE
SlashRAtMiddleOfLine
Fields
Emitted for code like
eval("foo \r = 42")
DStarInterpretedAsArgPrefix
Fields
Emitted for code like (only in $VERBOSE mode)
foo **arg
StarInterpretedAsArgPrefix
Fields
Emitted for code like (only in $VERBOSE mode)
foo *arg
AmpersandInterpretedAsArgPrefix
Fields
Emitted for code like (only in $VERBOSE mode)
foo &arg
TripleDotAtEol
Fields
Emitted for code like
range = 1...
ParenthesesIterpretedAsArglist
Fields
Emitted for code like (only in $VERBOSE mode)
def m (a, b, c); end
AmbiguousFirstArgument
Emitted for code like (only in $VERBOSE mode)
m +foo
AmbiguousOperator
Fields
Emitted for code like (only in $VERBOSE mode)
1 *2
InvalidCharacterSyntax
Emitted for code like
"\M- "
InvalidOctalDigit
Fields
Emitted for code like
09
TrailingCharInNumber
Emitted for code like
0_a
EmbeddedDocumentMeetsEof
Fields
Emitted for code like
=begin
InvalidChar
Emitted for code like
eval("\x01foo")
IncompleteCharacterSyntax
Fields
It is unknown how to trigger this error. Code that triggers it in MRI can be dead.
GvarWithoutId
Fields
Emitted for code like
$
InvalidGvarName
Emitted for code like
$@
IvarWithoutId
Fields
Emitted for code like
@
InvalidIvarName
Emitted for code like
@1
CvarWithoutId
Fields
Emitted for code like
@@
InvalidCvarName
Emitted for code like
@@1
UnknownRegexOptions
Emitted for code like
/re/foo
UnterminatedUnicodeEscape
Fields
Emitted for code like
"\u{1234"
EncodingError
Emitted for code like
# encoding: foo
InvalidMultibyteChar
Fields
Emitter for code like
eval("\xFF = 42")
AmbiguousTernaryOperator
Emitted for code like
a ?AA : 2
AmbiguousRegexp
Fields
Emitted for code like
m /foo/
ElseWithoutRescue
Fields
Emitted for code like
begin; else; end
BeginNotAtTopLevel
Fields
Emitted for code like
def f; BEGIN{}; end
AliasNthRef
Fields
Emitted for code like
alias $a $1
CsendInsideMasgn
Fields
Emitted for code like
*a&.x = 0
ClassOrModuleNameMustBeConstant
Fields
Emitted for code like
module foo; end
EndlessSetterDefinition
Fields
Emitted for code like
def foo=() = 42
UnexpectedToken
Emitted for any code that produces invalid sequence of tokens
ClassDefinitionInMethodBody
Fields
Emitted for code like
def a; class Foo; end; end
ModuleDefinitionInMethodBody
Fields
Emitted for code like
def a; module Foo; end; end
InvalidReturnInClassOrModuleBody
Fields
Emitted for code like
class A; return; end
ConstArgument
Fields
Emitted for code like
def foo(Abc); end
IvarArgument
Fields
Emitted for code like
def foo(@abc); end
GvarArgument
Fields
Emitted for code like
def foo($abc); end
CvarArgument
Fields
Emitted for code like
def foo(@@abc); end
NoSuchLocalVariable
Emitted for code like
case 0; in ^a; true; end
OrdinaryParamDefined
Fields
Emitted for code like
m { |a| _1 }
NumparamUsed
Fields
Emitted for code like
foo { _1; bar { _2 }; }
TokAtEolWithoutExpression
Emitted for code like (only in $VERBOSE mode)
if
42
end
InvalidIdToGet
Emitted for code like
{ foo?: }
# or
{ foo!: }
ForwardArgAfterRestarg
Fields
Emitted for code like
def foo *rest, ...
end
NoAnonymousBlockarg
Fields
Emitted for code like
def foo(); bar(&); end
EndInMethod
Fields
Emitted for code like
def m; END {}; end
ComparisonAfterComparison
Emitted for code like (only in $VERBOSE mode)
a < b < c
DuplicateHashKey
Fields
Emitted for code like
{ 42 => value, 42 => another_value }
CircularArgumentReference
Emitted for code like
def m(foo = foo) end
DynamicConstantAssignment
Fields
Emitted for code like
def m; FOO = 1; end
CantAssignToSelf
Fields
Emitted for code like
self = foo
CantAssignToNil
Fields
Emitted for code like
nil = foo
CantAssignToTrue
Fields
Emitted for code like
true = foo
CantAssignToFalse
Fields
Emitted for code like
false = foo
CantAssignToFile
Fields
Emitted for code like
__FILE__ = foo
CantAssignToLine
Fields
Emitted for code like
__LINE__ = foo
CantAssignToEncoding
Fields
Emitted for code like
__ENCODING__ = foo
CantAssignToNumparam
Emitted for code like
proc {_1; _1 = nil}
CantSetVariable
Emitted for code like
$1 = foo
BlockGivenToYield
Fields
Emitted for code like
yield(&foo)
BlockAndBlockArgGiven
Fields
Emitted for code like
fun(&bar) do end
SymbolLiteralWithInterpolation
Fields
Emitted for code like
case a; in "#{a}": 1; end
ReservedForNumparam
Emitted for code like
_1 = 1
KeyMustBeValidAsLocalVariable
Fields
Emitted for code like
case a; in a?:; end
DuplicateVariableName
Fields
Emitted for code like
case 0; in a, a; end
DuplicateKeyName
Fields
Emitted for code like
case 0; in a: 1, a: 2; end
SingletonLiteral
Fields
Emitted for code like
def (1).foo; end
NthRefIsTooBig
Emitted for code like (only in $VERBOSE mode)
$100
DuplicatedArgumentName
Fields
Emitted for code like
def foo(aa, aa); end
RegexError
Emitted for code like
/[/
InvalidSymbol
Emitted for code like
%I"x .\xc3."
VoidValueExpression
Fields
Emitted for code like
a = return
Implementations§
Trait Implementations§
source§impl Clone for DiagnosticMessage
impl Clone for DiagnosticMessage
source§fn clone(&self) -> DiagnosticMessage
fn clone(&self) -> DiagnosticMessage
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for DiagnosticMessage
impl Debug for DiagnosticMessage
source§impl PartialEq<DiagnosticMessage> for DiagnosticMessage
impl PartialEq<DiagnosticMessage> for DiagnosticMessage
source§fn eq(&self, other: &DiagnosticMessage) -> bool
fn eq(&self, other: &DiagnosticMessage) -> bool
self
and other
values to be equal, and is used
by ==
.