Class: RBS::Definition::Method::TypeDef
- Inherits:
-
Object
- Object
- RBS::Definition::Method::TypeDef
- Defined in:
- lib/rbs/definition.rb
Instance Attribute Summary collapse
-
#annotations ⇒ Object
readonly
Returns the value of attribute annotations.
-
#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.
-
#member_annotations ⇒ Object
readonly
Returns the value of attribute member_annotations.
-
#overload_annotations ⇒ Object
readonly
Returns the value of attribute overload_annotations.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
- #comment ⇒ Object
- #hash ⇒ Object
-
#initialize(type:, member:, defined_in:, implemented_in:, overload_annotations: []) ⇒ 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:, overload_annotations: []) ⇒ TypeDef
Returns a new instance of TypeDef.
35 36 37 38 39 40 41 42 43 |
# File 'lib/rbs/definition.rb', line 35 def initialize(type:, member:, defined_in:, implemented_in:, overload_annotations: []) @type = type @member = member @defined_in = defined_in @implemented_in = implemented_in @member_annotations = member.annotations @overload_annotations = overload_annotations @annotations = member.annotations + overload_annotations end |
Instance Attribute Details
#annotations ⇒ Object (readonly)
Returns the value of attribute annotations.
33 34 35 |
# File 'lib/rbs/definition.rb', line 33 def annotations @annotations end |
#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 |
#member_annotations ⇒ Object (readonly)
Returns the value of attribute member_annotations.
31 32 33 |
# File 'lib/rbs/definition.rb', line 31 def member_annotations @member_annotations end |
#overload_annotations ⇒ Object (readonly)
Returns the value of attribute overload_annotations.
32 33 34 |
# File 'lib/rbs/definition.rb', line 32 def overload_annotations @overload_annotations 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?
45 46 47 48 49 50 51 |
# File 'lib/rbs/definition.rb', line 45 def ==(other) other.is_a?(TypeDef) && other.type == type && other.member == member && other.defined_in == defined_in && other.implemented_in == implemented_in end |
#comment ⇒ Object
59 60 61 |
# File 'lib/rbs/definition.rb', line 59 def comment member.comment end |
#hash ⇒ Object
55 56 57 |
# File 'lib/rbs/definition.rb', line 55 def hash self.class.hash ^ type.hash ^ member.hash ^ defined_in.hash ^ implemented_in.hash end |
#overload? ⇒ Boolean
67 68 69 70 71 72 73 74 |
# File 'lib/rbs/definition.rb', line 67 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
63 64 65 |
# File 'lib/rbs/definition.rb', line 63 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, overload_annotations: overload_annotations) end |