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 45

def initialize(location:)
  @location = location
end

Instance Attribute Details

#has_classish_type?Boolean (readonly)

[ GitHub ]

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

def has_classish_type?
  self.is_a?(Bases::Instance) || self.is_a?(Bases::Class)
end

#has_self_type?Boolean (readonly)

[ GitHub ]

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

def has_self_type?
  self.is_a?(Types::Bases::Self)
end

#location (readonly)

[ GitHub ]

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

attr_reader :location

#with_nonreturn_void?Boolean (readonly)

[ GitHub ]

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

def with_nonreturn_void?
  self.is_a?(Bases::Void)
end

Instance Method Details

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

[ GitHub ]

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

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

#eql?(other)

[ GitHub ]

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

alias eql? ==

#hash

[ GitHub ]

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

def hash
  self.class.hash
end

#to_json(state = _ = nil)

[ GitHub ]

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

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 69

def to_s(level = 0)
  case self
  when Types::Bases::Bool
    'bool'
  when Types::Bases::Void
    'void'
  when Types::Bases::Any
    raise
  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