123456789_123456789_123456789_123456789_123456789_

Class: RBS::AST::Ruby::Members::MixinMember

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Base
Instance Chain:
Inherits: RBS::AST::Ruby::Members::Base
Defined in: lib/rbs/ast/ruby/members.rb

Class Method Summary

Instance Attribute Summary

Base - Inherited

Instance Method Summary

Constructor Details

.new(buffer, node, module_name, annotation) ⇒ MixinMember

[ GitHub ]

  
# File 'lib/rbs/ast/ruby/members.rb', line 598

def initialize(buffer, node, module_name, annotation)
  super(buffer)
  @node = node
  @module_name = module_name
  @annotation = annotation
end

Instance Attribute Details

#annotation (readonly)

[ GitHub ]

  
# File 'lib/rbs/ast/ruby/members.rb', line 596

attr_reader :annotation

#module_name (readonly)

[ GitHub ]

  
# File 'lib/rbs/ast/ruby/members.rb', line 595

attr_reader :module_name

#node (readonly)

[ GitHub ]

  
# File 'lib/rbs/ast/ruby/members.rb', line 594

attr_reader :node

Instance Method Details

#location

[ GitHub ]

  
# File 'lib/rbs/ast/ruby/members.rb', line 605

def location
  rbs_location(node.location)
end

#name_location

[ GitHub ]

  
# File 'lib/rbs/ast/ruby/members.rb', line 609

def name_location
  args = node.arguments or raise
  first_arg = args.arguments.first or raise

  rbs_location(first_arg.location)
end

#type_args

[ GitHub ]

  
# File 'lib/rbs/ast/ruby/members.rb', line 616

def type_args
  annotation&.type_args || []
end

#type_fingerprint

[ GitHub ]

  
# File 'lib/rbs/ast/ruby/members.rb', line 620

def type_fingerprint
  [
    "members/mixin",
    self.class.name,
    module_name.to_s,
    annotation&.type_fingerprint
  ]
end