Class: RuboCop::Cop::Sorbet::ForbidTEnum

Inherits:
Base
  • Object
show all
Defined in:
lib/rubocop/cop/sorbet/forbid_t_enum.rb

Overview

Disallow using T::Enum.

Examples:


# bad
class MyEnum < T::Enum
  enums do
    A = new
    B = new
  end
end

# good
class MyEnum
  A = "a"
  B = "b"
  C = "c"
end

Constant Summary collapse

MSG =
"Using `T::Enum` is deprecated in this codebase."

Instance Method Summary collapse

Instance Method Details

#on_class(node) ⇒ Object



34
35
36
# File 'lib/rubocop/cop/sorbet/forbid_t_enum.rb', line 34

def on_class(node)
  add_offense(node) if t_enum?(node.parent_class)
end

#t_enum?(node) ⇒ Object



30
31
32
# File 'lib/rubocop/cop/sorbet/forbid_t_enum.rb', line 30

def_node_matcher(:t_enum?, <<~PATTERN)
  (const (const {nil? cbase} :T) :Enum)
PATTERN