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.



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

def initialize(location:)
  @location = location
end

Instance Attribute Details

#locationObject (readonly)

Returns the value of attribute location.



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

def location
  @location
end

Instance Method Details

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



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

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

#hashObject



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

def hash
  self.class.hash
end

#to_json(state = _ = nil) ⇒ Object



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

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

#to_s(level = 0) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/rbs/types.rb', line 59

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