Scalafix

Scalafix

  • User guide
  • Developer guide
  • Browse sources
  • GitHub

›Rules

Usage

  • Installation
  • Configuration
  • Suppressing rules

Rules

  • All rules
  • RemoveUnused
  • DisableSyntax
  • NoAutoTupling
  • LeakingImplicitClassVal
  • NoValInForComprehension
  • ProcedureSyntax

Misc

  • Related projects
Edit

DisableSyntax

This rule reports errors when a "disallowed" syntax is used. This is a syntactic rule, which means it does not require compilation to run unlike the Disable rule.

Example:

MyCode.scala:10: error: [DisableSyntax.throw] exceptions should be avoided,
                        consider encoding the error in the return type instead
  throw new IllegalArgumentException
  ^^^^^

Configuration

By default, this rule does not disable any particular syntax, every setting is opt-in.

NameTypeDescription
noVarsBooleanReport error for usage of vars.
noThrowsBooleanReport error for throwing exceptions.
noNullsBooleanReport error for usage of null.
noReturnsBooleanReport error for usage of return.
noAsInstanceOfBooleanReport error for usage of asInstanceOf[T] casts.
noIsInstanceOfBooleanReport error for usage of isInstanceOf[T] checks.
noXmlBooleanReport error on xml literals.
noDefaultArgsBooleanReport error on method parameters with default arguments.
noFinalValBooleanReport error on `final` modifier for val definitions, see [motivation](https://github.com/sbt/zinc/issues/227)
noFinalizeBooleanReports error when finalize is overridden.
noValPatternsBooleanReport error when pattern matching in val assignment with non-tuple patterns.
noUniversalEqualityBooleanReport error on `==` (universal equality)
noUniversalEqualityMessageStringReporter message for noUniversalEquality
regexList[Regex]Report error if the text contents of a source file matches a given regex.

Defaults

DisableSyntax.noVars = false
DisableSyntax.noThrows = false
DisableSyntax.noNulls = false
DisableSyntax.noReturns = false
DisableSyntax.noAsInstanceOf = false
DisableSyntax.noIsInstanceOf = false
DisableSyntax.noXml = false
DisableSyntax.noDefaultArgs = false
DisableSyntax.noFinalVal = false
DisableSyntax.noFinalize = false
DisableSyntax.noValPatterns = false
DisableSyntax.noUniversalEquality = false
DisableSyntax.noUniversalEqualityMessage = == is unsafe since it allows comparing two unrelated types
DisableSyntax.regex = []

Examples

DisableSyntax.noUniversalEquality = true
DisableSyntax.noUniversalEqualityMessage = "use === instead of =="
DisableSyntax.regex = [
  {
    id = "offensive"
    pattern = "[P|p]imp"
    message = "Please consider a less offensive word such as 'extension' or 'enrichment'"
  }
]
← PreviousNext →
  • Configuration
    • Defaults
    • Examples
Scalafix
Docs
Get startedRulesExtend Scalafix
Community
Chat on GitterDiscuss on Scala Users
More
GitHub
Copyright © 2018 Scala Center