inherit_mode:
  merge:
  - Exclude

Sorbet/AllowIncompatibleOverride:
  Description: 'Disallows using `.override(allow_incompatible: true)`.'
  Enabled: true
  VersionAdded: 0.2.0

Sorbet/BindingConstantWithoutTypeAlias:
  Description: >-
                  Disallows binding the return value of `T.any`, `T.all`, `T.enum`
                  to a constant directly. To bind the value, one must use `T.type_alias`.
  Enabled: true
  VersionAdded: 0.2.0

Sorbet/CallbackConditionalsBinding:
  Description: 'Ensures callback conditionals are bound to the right type.'
  Enabled: false
  Safe: false
  VersionAdded: 0.7.0

Sorbet/CheckedTrueInSignature:
  Description: 'Disallows the usage of `checked(true)` in signatures.'
  Enabled: true
  VersionAdded: 0.2.0

Sorbet/ConstantsFromStrings:
  Description: >-
                  Forbids constant access through meta-programming.

                  For example, things like `constantize` or `const_get`
                  are forbidden.
  Enabled: true
  VersionAdded: 0.2.0

Sorbet/EnforceSigilOrder:
  Description: 'Ensures that Sorbet sigil comes first in a file.'
  Enabled: true
  VersionAdded: 0.3.4

Sorbet/EnforceSingleSigil:
  Description: 'Ensures that there is only one Sorbet sigil in a file.'
  Enabled: true
  VersionAdded: '<<next>>'

Sorbet/EnforceSignatures:
  Description: 'Ensures all methods have a valid signature.'
  Enabled: false
  VersionAdded: 0.3.4

Sorbet/FalseSigil:
  Description: 'All files must be at least at strictness `false`.'
  Enabled: true
  VersionAdded: 0.3.3
  SuggestedStrictness: "false"
  Include:
  - "**/*.{rb,rbi,rake,ru}"
  Exclude:
  - bin/**/*
  - db/**/*.rb
  - script/**/*

Sorbet/ForbidExtendTSigHelpersInShims:
  Description: 'Forbid the use of `extend T::Sig` and `extend T::Helpers` in RBI shims'
  Enabled: true
  VersionAdded: '0.6.0'
  Include:
  - "**/*.rbi"

Sorbet/ForbidRBIOutsideOfAllowedPaths:
  Description: 'Forbids RBI files outside of the allowed paths'
  Enabled: true
  VersionAdded: 0.6.1
  AllowedPaths:
  - "sorbet/rbi/**"
  Include:
  - "**/*.rbi"

Sorbet/ForbidIncludeConstLiteral:
  Description: 'Forbids include of non-literal constants.'
  Enabled: false
  VersionAdded: 0.2.0
  VersionChanged: 0.5.0

Sorbet/ForbidSuperclassConstLiteral:
  Description: 'Forbid superclasses which are non-literal constants.'
  Enabled: false
  VersionAdded: 0.2.0
  VersionChanged: 0.6.1
  Exclude:
  - db/migrate/*.rb

Sorbet/ForbidTUnsafe:
  Description: 'Forbid usage of T.unsafe.'
  Enabled: false
  VersionAdded: 0.7.0
  VersionChanged: 0.7.0

Sorbet/ForbidTUntyped:
  Description: 'Forbid usage of T.untyped'
  Enabled: false
  VersionAdded: 0.6.9
  VersionChanged: 0.7.0

Sorbet/ForbidUntypedStructProps:
  Description: >-
                  Disallows use of `T.untyped` or `T.nilable(T.untyped)` as a
                  prop type for `T::Struct` subclasses.
  Enabled: true
  VersionAdded: 0.4.0

Sorbet/HasSigil:
  Description: 'Makes the Sorbet typed sigil mandatory in all files.'
  Enabled: false
  SuggestedStrictness: "false"
  MinimumStrictness: "false"
  VersionAdded: 0.3.3
  Include:
  - "**/*.{rb,rbi,rake,ru}"
  Exclude:
  - bin/**/*
  - db/**/*.rb
  - script/**/*

Sorbet/IgnoreSigil:
  Description: 'All files must be at least at strictness `ignore`.'
  Enabled: false
  SuggestedStrictness: "ignore"
  VersionAdded: 0.3.3
  Include:
  - "**/*.{rb,rbi,rake,ru}"
  Exclude:
  - bin/**/*
  - db/**/*.rb
  - script/**/*

Sorbet/KeywordArgumentOrdering:
  Description: >-
                  Enforces a compatible keyword arguments with Sorbet.

                  All keyword arguments must be at the end of the parameters
                  list, and all keyword arguments with a default value must be
                  after those without default values.
  Enabled: true
  VersionAdded: 0.2.0

Sorbet/OneAncestorPerLine:
  Description: 'Enforces one ancestor per call to requires_ancestor'
  Enabled: false
  VersionAdded: '0.6.0'

Sorbet/SignatureBuildOrder:
  Description: >-
                  Enforces the order of parts in a signature.

                  The order is first inheritance related builders,
                  then params, then return and finally the modifier
                  such as: `abstract.params(...).returns(...).soft`.'
  Enabled: true
  VersionAdded: 0.3.0

Sorbet/SingleLineRbiClassModuleDefinitions:
  Description: 'Empty class and module definitions in RBI must be on a single line.'
  Enabled: false
  VersionAdded: '0.6.0'
  Include:
  - "**/*.rbi"

Sorbet/StrictSigil:
  Description: 'All files must be at least at strictness `strict`.'
  Enabled: false
  SuggestedStrictness: "strict"
  VersionAdded: 0.3.3
  Include:
  - "**/*.{rb,rbi,rake,ru}"
  Exclude:
  - bin/**/*
  - db/**/*.rb
  - script/**/*

Sorbet/StrongSigil:
  Description: 'All files must be at least at strictness `strong`.'
  Enabled: false
  SuggestedStrictness: "strong"
  VersionAdded: 0.3.3
  Include:
  - "**/*.{rb,rbi,rake,ru}"
  Exclude:
  - bin/**/*
  - db/**/*.rb
  - script/**/*

Sorbet/TrueSigil:
  Description: 'All files must be at least at strictness `true`.'
  Enabled: false
  SuggestedStrictness: "true"
  VersionAdded: 0.3.3
  Include:
  - "**/*.{rb,rbi,rake,ru}"
  Exclude:
  - bin/**/*
  - db/**/*.rb
  - script/**/*

Sorbet/TypeAliasName:
  Description: 'Type alias constant names must be in CamelCase.'
  Enabled: true
  VersionAdded: 0.6.6
  Include:
  - "**/*.{rb,rbi,rake,ru}"
  Exclude:
  - bin/**/*
  - db/**/*.rb
  - script/**/*

Sorbet/ValidSigil:
  Description: 'All files must have a valid sigil.'
  Enabled: true
  RequireSigilOnAllFiles: false
  SuggestedStrictness: "false"
  MinimumStrictness: "false"
  VersionAdded: 0.3.3
  Include:
  - "**/*.{rb,rbi,rake,ru}"
  Exclude:
  - bin/**/*
  - db/**/*.rb
  - script/**/*
