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

Inherits:
Object
  • Object
show all
Includes:
EmptyEachType, NoFreeVariables, NoSubst, NoTypeName
Defined in:
lib/rbs/types.rb

Direct Known Subclasses

Any, Bool, Bottom, Class, Instance, Nil, Self, Top, Void

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from NoTypeName

#map_type_name

Methods included from EmptyEachType

#each_type

Methods included from NoSubst

#sub

Methods included from NoFreeVariables

#free_variables

Constructor Details

#initialize(location:) ⇒ Base

Returns a new instance of Base.



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

def initialize(location:)
  @location = location
end

Instance Attribute Details

#locationObject (readonly)

Returns the value of attribute location.



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

def location
  @location
end

Instance Method Details

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



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

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

#hashObject



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

def hash
  self.class.hash
end

#to_json(state = _ = nil) ⇒ Object



55
56
57
58
# 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) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 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