class RBS::MixinClassError

def self.check!(type_name:, env:, member:)

def self.check!(type_name:, env:, member:)
  if env.class_decl?(member.name)
    raise new(type_name: type_name, member: member)
  end
end

def initialize(type_name:, member:)

def initialize(type_name:, member:)
  @type_name = type_name
  @member = member
  super "#{Location.to_string member.location}: Cannot #{mixin_name} a class `#{member.name}` in the definition of `#{type_name}`"
end

def location

def location
  member.location
end

def mixin_name

def mixin_name
  case member
  when AST::Members::Prepend
    "prepend"
  when AST::Members::Include
    "include"
  when AST::Members::Extend
    "extend"
  else
    raise
  end
end