123456789_123456789_123456789_123456789_123456789_

Class: RBS::Types::Bases::Base

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Super Chains via Extension / Inclusion / Inheritance
Instance Chain:
Inherits: Object
Defined in: lib/rbs/types.rb

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(location:) ⇒ Base

[ GitHub ]

  
# File 'lib/rbs/types.rb', line 36

def initialize(location:)
  @location = location
end

Instance Attribute Details

#location (readonly)

[ GitHub ]

  
# File 'lib/rbs/types.rb', line 34

attr_reader :location

Instance Method Details

#==(other) Also known as: #eql?

[ GitHub ]

  
# File 'lib/rbs/types.rb', line 40

def ==(other)
  other.is_a?(self.class)
end

#eql?(other)

[ GitHub ]

  
# File 'lib/rbs/types.rb', line 48

alias eql? ==

#hash

[ GitHub ]

  
# File 'lib/rbs/types.rb', line 44

def hash
  self.class.hash
end

#to_json(state = _ = nil)

[ GitHub ]

  
# File 'lib/rbs/types.rb', line 55

def to_json(state = _ = nil)
  klass = to_s.to_sym
  { class: klass, location: location }.to_json(state)
end

#to_s(level = 0)

[ GitHub ]

  
# File 'lib/rbs/types.rb', line 60

def to_s(level = 0)
  case self
  when Types::Bases::Bool
    'bool'
  when Types::Bases::Void
    'void'
  when Types::Bases::Any
    'untyped'
  when Types::Bases::Nil
    'nil'
  when Types::Bases::Top
    'top'
  when Types::Bases::Bottom
    'bot'
  when Types::Bases::Self
    'self'
  when Types::Bases::Instance
    'instance'
  when Types::Bases::Class
    'class'
  else
    raise "Unexpected base type: #{inspect}"
  end
end