class Steep::TypeInference::MethodParams::BaseParameter

def ==(other)

def ==(other)
  other.class == self.class &&
    other.name == name &&
    other.type == type &&
    other.value == value &&
    other.node == node
end

def hash

def hash
  self.class.hash ^ name.hash ^ type.hash ^ value.hash ^ node.hash
end

def initialize(name:, type:, node:)

def initialize(name:, type:, node:)
  @name = name
  @type = type
  @node = node
end

def optional?

def optional?
  case node.type
  when :optarg, :kwoptarg
    true
  else
    false
  end
end

def untyped?

def untyped?
  !type
end

def value

def value
  case node.type
  when :optarg, :kwoptarg
    node.children[1]
  end
end

def var_type

def var_type
  type || AST::Builtin.any_type
end