Scapegoat
Rules
This is a collection of all the Scapegoat rules created by sonar-scala in the Scapegoat rules repository.
- !isEmpty can be replaced with nonEmpty
Info
com.sksamuel.scapegoat.inspections.collections.NegationIsEmpty - !nonEmpty can be replaced with isEmpty
Info
com.sksamuel.scapegoat.inspections.collections.NegationNonEmpty - Array equals
Info
com.sksamuel.scapegoat.inspections.collections.ArrayEquals - Array passed to String.format
Major
com.sksamuel.scapegoat.inspections.string.ArraysInFormat - Avoid (j to k - 1)
Info
com.sksamuel.scapegoat.inspections.AvoidToMinusOne - Avoid Traversable.size != 0
Minor
com.sksamuel.scapegoat.inspections.collections.AvoidSizeNotEqualsZero - Avoid Traversable.size == 0
Minor
com.sksamuel.scapegoat.inspections.collections.AvoidSizeEqualsZero - Avoid operator overload
Info
com.sksamuel.scapegoat.inspections.style.AvoidOperatorOverload - Big decimal double constructor
Minor
com.sksamuel.scapegoat.inspections.math.BigDecimalDoubleConstructor - BigDecimal setScale() without rounding mode
Minor
com.sksamuel.scapegoat.inspections.math.BigDecimalScaleWithoutRoundingMode - Bounded by a final type
Minor
com.sksamuel.scapegoat.inspections.inference.BoundedByFinalType - Broken odd check
Minor
com.sksamuel.scapegoat.inspections.math.BrokenOddness - Catch exception
Minor
com.sksamuel.scapegoat.inspections.exception.CatchException - Catch fatal exception
Minor
com.sksamuel.scapegoat.inspections.exception.CatchFatal - Catch throwable
Minor
com.sksamuel.scapegoat.inspections.exception.CatchThrowable - Catching NPE
Major
com.sksamuel.scapegoat.inspections.exception.CatchNpe - Class name not recommended
Info
com.sksamuel.scapegoat.inspections.naming.ClassNames - Collection index out of bounds
Minor
com.sksamuel.scapegoat.inspections.collections.CollectionNegativeIndex - Collection naming confusion
Info
com.sksamuel.scapegoat.inspections.collections.CollectionNamingConfusion - Collection promotion to Any
Minor
com.sksamuel.scapegoat.inspections.collections.CollectionPromotionToAny - Comparing unrelated types
Major
com.sksamuel.scapegoat.inspections.equality.ComparingUnrelatedTypes - Comparision with self
Minor
com.sksamuel.scapegoat.inspections.equality.ComparisonWithSelf - Comparison to empty list
Info
com.sksamuel.scapegoat.inspections.collections.ComparisonToEmptyList - Comparison to empty set
Info
com.sksamuel.scapegoat.inspections.collections.ComparisonToEmptySet - Constant if expression
Minor
com.sksamuel.scapegoat.inspections.unneccesary.ConstantIf - Divide by one
Minor
com.sksamuel.scapegoat.inspections.math.DivideByOne - Double negation
Info
com.sksamuel.scapegoat.inspections.DoubleNegation - Duplicate import
Info
com.sksamuel.scapegoat.inspections.imports.DuplicateImport - Duplicated map key
Minor
com.sksamuel.scapegoat.inspections.collections.DuplicateMapKey - Duplicated set value
Minor
com.sksamuel.scapegoat.inspections.collections.DuplicateSetValue - Empty case class
Info
com.sksamuel.scapegoat.inspections.EmptyCaseClass - Empty catch block
Minor
com.sksamuel.scapegoat.inspections.exception.SwallowedException - Empty for loop
Minor
com.sksamuel.scapegoat.inspections.empty.EmptyFor - Empty if expression
Minor
com.sksamuel.scapegoat.inspections.empty.EmptyIfBlock - Empty interpolated string
Major
com.sksamuel.scapegoat.inspections.string.EmptyInterpolatedString - Empty method
Minor
com.sksamuel.scapegoat.inspections.empty.EmptyMethod - Empty synchronized block
Minor
com.sksamuel.scapegoat.inspections.empty.EmptySynchronizedBlock - Empty try block
Minor
com.sksamuel.scapegoat.inspections.empty.EmptyTryBlock - Empty while block
Minor
com.sksamuel.scapegoat.inspections.empty.EmptyWhileBlock - Exists simplifiable to contains
Info
com.sksamuel.scapegoat.inspections.collections.ExistsSimplifiableToContains - Finalizer without super
Minor
com.sksamuel.scapegoat.inspections.unsafe.FinalizerWithoutSuper - Floating type comparison
Major
com.sksamuel.scapegoat.inspections.equality.ComparingFloatingPointTypes - Illegal format string
Major
com.sksamuel.scapegoat.inspections.string.IllegalFormatString - Impossible Option.size condition
Major
com.sksamuel.scapegoat.inspections.option.ImpossibleOptionSizeCondition - Incorrect number of args for format
Major
com.sksamuel.scapegoat.inspections.string.IncorrectNumberOfArgsToFormat - Incorrectly named exceptions
Major
com.sksamuel.scapegoat.inspections.exception.IncorrectlyNamedExceptions - Integer mod one
Minor
com.sksamuel.scapegoat.inspections.math.ModOne - Invalid regex
Info
com.sksamuel.scapegoat.inspections.string.InvalidRegex - Java conversions
Minor
com.sksamuel.scapegoat.inspections.collections.JavaConversionsUse - List append is slow
Info
com.sksamuel.scapegoat.inspections.collections.ListAppend - List.size is O(n)
Info
com.sksamuel.scapegoat.inspections.collections.ListSize - Lonely sealed trait
Major
com.sksamuel.scapegoat.inspections.LonelySealedTrait - Looks like interpolated String
Minor
com.sksamuel.scapegoat.inspections.string.LooksLikeInterpolatedString - Match instead of a partial function
Info
com.sksamuel.scapegoat.inspections.matching.PartialFunctionInsteadOfMatch - Max parameters
Info
com.sksamuel.scapegoat.inspections.MaxParameters - Method name not recommended
Info
com.sksamuel.scapegoat.inspections.naming.MethodNames - Method returning Any
Minor
com.sksamuel.scapegoat.inspections.inference.MethodReturningAny - Missing final modifier on case class
Info
com.sksamuel.scapegoat.inspections.FinalModifierOnCaseClass - Nan comparison
Major
com.sksamuel.scapegoat.inspections.math.NanComparison - Noop override
Info
com.sksamuel.scapegoat.inspections.NoOpOverride - Null assignment
Minor
com.sksamuel.scapegoat.inspections.nulls.NullAssignment - Null parameter
Minor
com.sksamuel.scapegoat.inspections.nulls.NullParameter - Object name not recommended
Info
com.sksamuel.scapegoat.inspections.naming.ObjectNames - Parameterless methods returns unit
Minor
com.sksamuel.scapegoat.inspections.style.ParameterlessMethodReturnsUnit - Pointless type bounds
Minor
com.sksamuel.scapegoat.inspections.inference.PointlessTypeBounds - Prefer Map.empty
Info
com.sksamuel.scapegoat.inspections.collections.PreferMapEmpty - Prefer Option.isDefined instead of Option.size
Major
com.sksamuel.scapegoat.inspections.option.OptionSize - Prefer Seq.empty
Info
com.sksamuel.scapegoat.inspections.collections.PreferSeqEmpty - Prefer Set.empty
Info
com.sksamuel.scapegoat.inspections.collections.PreferSetEmpty - Product with Serializable inferred
Minor
com.sksamuel.scapegoat.inspections.inference.ProductWithSerializableInferred - PublicFinalizer
Info
com.sksamuel.scapegoat.inspections.PublicFinalizer - Redundant final modifier on a method
Info
com.sksamuel.scapegoat.inspections.RedundantFinalModifierOnMethod - Redundant final modifier on a var
Info
com.sksamuel.scapegoat.inspections.RedundantFinalModifierOnVar - Redundant finalizer
Minor
com.sksamuel.scapegoat.inspections.unneccesary.RedundantFinalizer - Repeated body of if main and else branch
Minor
com.sksamuel.scapegoat.inspections.controlflow.RepeatedIfElseBody - Repeated case body
Minor
com.sksamuel.scapegoat.inspections.matching.RepeatedCaseBody - Simplify boolean expressions
Info
com.sksamuel.scapegoat.inspections.style.SimplifyBooleanExpression - String.substring(0)
Info
com.sksamuel.scapegoat.inspections.string.SubstringZero - Strip margin on regex
Major
com.sksamuel.scapegoat.inspections.string.StripMarginOnRegex - Suspicious match on class object
Minor
com.sksamuel.scapegoat.inspections.matching.SuspiciousMatchOnClassObject - Swap sort filter
Info
com.sksamuel.scapegoat.inspections.collections.SwapSortFilter - Type shadowing
Minor
com.sksamuel.scapegoat.inspections.TypeShadowing - Unnecessary conversion
Minor
com.sksamuel.scapegoat.inspections.unneccesary.UnnecessaryConversion - Unnecessary if condition.
Info
com.sksamuel.scapegoat.inspections.unneccesary.UnnecessaryIf - Unnecessary return
Info
com.sksamuel.scapegoat.inspections.unneccesary.UnnecessaryReturnUse - Unnecessary reverse
Info
com.sksamuel.scapegoat.inspections.collections.ReverseFunc - Unreachable catch
Minor
com.sksamuel.scapegoat.inspections.exception.UnreachableCatch - Unsafe contains
Major
com.sksamuel.scapegoat.inspections.collections.UnsafeContains - Unsafe string contains
Major
com.sksamuel.scapegoat.inspections.string.UnsafeStringContains - Unused parameter
Minor
com.sksamuel.scapegoat.inspections.unneccesary.UnusedMethodParameter - Use cbrt
Info
com.sksamuel.scapegoat.inspections.math.UseCbrt - Use expm1
Info
com.sksamuel.scapegoat.inspections.math.UseExpM1 - Use log10
Info
com.sksamuel.scapegoat.inspections.math.UseLog10 - Use log1p
Info
com.sksamuel.scapegoat.inspections.math.UseLog1P - Use of Array.toString
Minor
com.sksamuel.scapegoat.inspections.string.ArraysToString - Use of Either.right or Either.left projection followed by a get
Major
com.sksamuel.scapegoat.inspections.option.EitherGet - Use of Map.get().getOrElse instead of Map.getOrElse
Major
com.sksamuel.scapegoat.inspections.collections.MapGetAndGetOrElse - Use of Option.get
Major
com.sksamuel.scapegoat.inspections.option.OptionGet - Use of Try.get
Major
com.sksamuel.scapegoat.inspections.unsafe.TryGet - Use of apply method on a non-indexed Seq
Minor
com.sksamuel.scapegoat.inspections.collections.CollectionIndexOnNonIndexedSeq - Use of asInstanceOf
Minor
com.sksamuel.scapegoat.inspections.unsafe.AsInstanceOf - Use of isInstanceOf
Minor
com.sksamuel.scapegoat.inspections.unsafe.IsInstanceOf - Use of unsafe Traversable methods.
Major
com.sksamuel.scapegoat.inspections.collections.UnsafeTraversableMethods - Use sqrt
Info
com.sksamuel.scapegoat.inspections.math.UseSqrt - Var could be val
Minor
com.sksamuel.scapegoat.inspections.unneccesary.VarCouldBeVal - Var in closure
Minor
com.sksamuel.scapegoat.inspections.VarClosure - Variable shadowing
Minor
com.sksamuel.scapegoat.inspections.VariableShadowing - While true loop
Minor
com.sksamuel.scapegoat.inspections.controlflow.WhileTrue - Zero numerator
Minor
com.sksamuel.scapegoat.inspections.math.ZeroNumerator - filter().head can throw an exception
Info
com.sksamuel.scapegoat.inspections.collections.FilterDotHead - filter().headOption instead of find()
Info
com.sksamuel.scapegoat.inspections.collections.FilterDotHeadOption - filter().isEmpty instead of !exists()
Info
com.sksamuel.scapegoat.inspections.collections.FilterDotIsEmpty - filter().size() instead of count()
Info
com.sksamuel.scapegoat.inspections.collections.FilterDotSize - filter(_.isDefined).map(_.get) instead of flatten
Info
com.sksamuel.scapegoat.inspections.collections.FilterOptionAndGet - find().isDefined() instead of exists()
Info
com.sksamuel.scapegoat.inspections.collections.FindDotIsDefined - find(x => ) != None instead of exists(x =>)
Info
com.sksamuel.scapegoat.inspections.collections.FindAndNotEqualsNoneReplaceWithExists - reverse.tail.reverse instead of init
Info
com.sksamuel.scapegoat.inspections.collections.ReverseTailReverse - reverse.take().reverse instead of takeRight
Info
com.sksamuel.scapegoat.inspections.collections.ReverseTakeReverse