Class: RBS::Definition::Method::TypeDef
- Inherits:
-
Object
- Object
- RBS::Definition::Method::TypeDef
- Defined in:
- lib/rbs/definition.rb
Instance Attribute Summary collapse
-
#defined_in ⇒ Object
readonly
Returns the value of attribute defined_in.
-
#implemented_in ⇒ Object
readonly
Returns the value of attribute implemented_in.
-
#member ⇒ Object
readonly
Returns the value of attribute member.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
- #annotations ⇒ Object
- #comment ⇒ Object
- #hash ⇒ Object
-
#initialize(type:, member:, defined_in:, implemented_in:) ⇒ TypeDef
constructor
A new instance of TypeDef.
- #overload? ⇒ Boolean
- #update(type: self.type, member: self.member, defined_in: self.defined_in, implemented_in: self.implemented_in) ⇒ Object
Constructor Details
#initialize(type:, member:, defined_in:, implemented_in:) ⇒ TypeDef
Returns a new instance of TypeDef.
32 33 34 35 36 37 |
# File 'lib/rbs/definition.rb', line 32 def initialize(type:, member:, defined_in:, implemented_in:) @type = type @member = member @defined_in = defined_in @implemented_in = implemented_in end |
Instance Attribute Details
#defined_in ⇒ Object (readonly)
Returns the value of attribute defined_in.
29 30 31 |
# File 'lib/rbs/definition.rb', line 29 def defined_in @defined_in end |
#implemented_in ⇒ Object (readonly)
Returns the value of attribute implemented_in.
30 31 32 |
# File 'lib/rbs/definition.rb', line 30 def implemented_in @implemented_in end |
#member ⇒ Object (readonly)
Returns the value of attribute member.
28 29 30 |
# File 'lib/rbs/definition.rb', line 28 def member @member end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
27 28 29 |
# File 'lib/rbs/definition.rb', line 27 def type @type end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
39 40 41 42 43 44 45 |
# File 'lib/rbs/definition.rb', line 39 def ==(other) other.is_a?(TypeDef) && other.type == type && other.member == member && other.defined_in == defined_in && other.implemented_in == implemented_in end |
#annotations ⇒ Object
57 58 59 |
# File 'lib/rbs/definition.rb', line 57 def annotations member.annotations end |
#comment ⇒ Object
53 54 55 |
# File 'lib/rbs/definition.rb', line 53 def comment member.comment end |
#hash ⇒ Object
49 50 51 |
# File 'lib/rbs/definition.rb', line 49 def hash self.class.hash ^ type.hash ^ member.hash ^ defined_in.hash ^ implemented_in.hash end |
#overload? ⇒ Boolean
65 66 67 68 69 70 71 72 |
# File 'lib/rbs/definition.rb', line 65 def overload? case mem = member when AST::Members::MethodDefinition mem.overloading? else false end end |
#update(type: self.type, member: self.member, defined_in: self.defined_in, implemented_in: self.implemented_in) ⇒ Object
61 62 63 |
# File 'lib/rbs/definition.rb', line 61 def update(type: self.type, member: self.member, defined_in: self.defined_in, implemented_in: self.implemented_in) TypeDef.new(type: type, member: member, defined_in: defined_in, implemented_in: implemented_in) end |