lib/rbs/definition.rb in rbs-3.6.1 vs lib/rbs/definition.rb in rbs-3.7.0.dev.1
- old
+ new
@@ -26,16 +26,22 @@
class TypeDef
attr_reader :type
attr_reader :member
attr_reader :defined_in
attr_reader :implemented_in
+ attr_reader :member_annotations
+ attr_reader :overload_annotations
+ attr_reader :annotations
- def initialize(type:, member:, defined_in:, implemented_in:)
+ 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
def ==(other)
other.is_a?(TypeDef) &&
other.type == type &&
@@ -52,16 +58,12 @@
def comment
member.comment
end
- def annotations
- member.annotations
- end
-
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)
+ TypeDef.new(type: type, member: member, defined_in: defined_in, implemented_in: implemented_in, overload_annotations: overload_annotations)
end
def overload?
case mem = member
when AST::Members::MethodDefinition
@@ -80,11 +82,11 @@
def initialize(super_method:, defs:, accessibility:, annotations: [], alias_of:)
@super_method = super_method
@defs = defs
@accessibility = accessibility
- @extra_annotations = annotations
+ @extra_annotations = []
@alias_of = alias_of
end
def ==(other)
other.is_a?(Method) &&
@@ -122,10 +124,10 @@
def comments
@comments ||= defs.map(&:comment).compact.uniq
end
def annotations
- @annotations ||= @extra_annotations + defs.flat_map {|d| d.annotations }
+ @annotations ||= defs.flat_map {|d| d.member_annotations }
end
def members
@members ||= defs.map(&:member).uniq
end