Releases · integrated-application-development/sonar-delphi
1.18.1 AddedexcludedTypes
rule property to the ObjectPassedAsInterface
rule.ObjectPassedAsInterface
.ObjectPassedAsInterface
(in addition to variables/fields).ObjectPassedAsInterface
.ObjectPassedAsInterface
analysis rule, which detects object references that are passed directly as an interface to a routine.TooManyDefaultParameters
analysis rule, which flags routines with an excessive number of default parameters.EmptyBlock
now ignores all empty blocks containing an explanatory comment.TooManyParameters
now flags routine declarations instead of implementations, improving support for methods that are virtual, abstract, or on an interface.AtomicCmpExchange128
intrinsic routine.GetTypeKind
intrinsic routine.OpenString
intrinsic type.TypeParameterNode::getTypeParameters
method.InterfaceTypeNode::getGuidExpression
method.AttributeNode::getExpression
method.IntrinsicType.OPENSTRING
enum value.RoutineName
.VarArg*
intrinsic routines.InterfaceGuidNode
node type.InterfaceTypeNode::getGuid
method, use getGuidExpression
instead.DelphiTokenType.GUID
, as the associated InterfaceGuidNode
is no longer parsed.as
casts where the type is returned from a routine invocation.System.IsManagedType
where a value is passed.sonar-scanner -X
).ExhaustiveEnumCase
analysis rule, which flags case
statements that do not handle all values in an enumeration.IterationPastHighBound
analysis rule, which flags for
loops that iterate past the end of the collection.ExplicitBitwiseNot
analysis rule, which flags potentially incorrect bitwise not
operations.EnumeratorOccurrence
type.ForInStatementNode::getEnumeratorOccurrence
method.TypeOfTypeNode::getTypeReferenceNode
method.NameReferenceNode::getFirstName
method.DelphiTokenType.TYPE_CONSTRAINT
token type.ConstraintNode
node type.ClassConstraintNode
node type.ConstructorConstraintNode
node type.RecordConstraintNode
node type.TypeConstraintNode
node type.TypeParameterNode::getConstraintNodes
method.TypeParameterType::constraintItems
method.Constraint
type.Constraint.ClassConstraint
type.Constraint.ConstructorConstraint
type.Constraint.RecordConstraint
type.Constraint.TypeConstraint
type.TabulationCharacter
.ForInStatementNode::getGetEnumeratorDeclaration
method, get the declaration through getEnumeratorOccurrence
instead.ForInStatementNode::getMoveNextDeclaration
method, get the declaration through getEnumeratorOccurrence
instead.ForInStatementNode::getCurrentDeclaration
method, get the declaration through getEnumeratorOccurrence
instead.TypeParameterNode::getTypeConstraintNodes
method, use getConstraintNodes
instead.TypeParameterType::constraints
method, use constraintItems
instead.GetEnumerator
in UnusedRoutine
.MoveNext
in UnusedRoutine
.Current
in UnusedProperty
.UnusedType
.Create
calls on types with constructor
constraints.read
, write
, and stored
specifiers of indexed properties.var
/const
declaration.type of
type declarations.ParsingError
analysis rule, which flags files where parsing failures occurred.WEAK_NATIVEINT
symbol, which is defined from Delphi 12 onward.varargs
routines:
VarArgStart
VarArgGetValue
VarArgCopy
VarArgEnd
UnusedType
.SwitchDirective.SwitchKind.TYPEADDRESS
enum member, use TYPEDADDRESS
instead.if
) in LoopExecutingAtMostOnce
and RedundantJump
.LoopExecutingAtMostOnce
.RedundantJump
.VisibilityKeywordIndentation
.var
and const
in PlatformDependentTruncation
.TrailingWhitespace
.Copy
intrinsic.E
F
K
N
S
ALLOWBIND
ALLOWISOLATION
HIGHENTROPYVA
HIGHCHARUNICODE
LARGEADDRESSAWARE
MAXPAGESIZE
NXCOMPAT
SONAME
SOPREFIX
SOSUFFIX
SOVERSION
STACKCHECKS
STRINGCHECKS
TSAWARE
TYPEDADDRESS
>=
and <=
tokens.RedundantJump
analysis rule, which flags redundant jump statements, e.g., Continue
, Exit
.LoopExecutingAtMostOnce
analysis rule, which flags loop statements that can execute at most once.excludedNames
rule property to the MixedNames
rule.RepeatStatementNode::getGuardExpression
method.RepeatStatementNode::getStatementList
method.CaseStatementNode::getSelectorExpression
method.CaseItemStatementNode::getStatement
method.>
and =
tokens were wrongly interpreted as the >=
operator.IndexLastListElement
.AnonymousMethodNode::getDeclarationSection
method.AnonymousMethodNode::getStatementBlock
method.AnonymousMethodNode::isEmpty
method.DCCReference
)DCC_UnitSearchPath
)Debugger_DebugSourcePath
)DelphiLibraryPath
/DelphiTranslatedLibraryPath
)DelphiBrowsingPath
)sonar.sources
)EmptyBlock
.EmptyRoutine
.You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4