Class: RBS::Inline::AST::Annotations::ClassDecl
- Includes:
- Utils
- Defined in:
- lib/rbs/inline/ast/annotations.rb
Overview
‘@rbs class Foo`
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
: TypeName?.
-
#super_class ⇒ Object
readonly
: RBS::AST::Declarations::Class::Super?.
-
#type_params ⇒ Object
readonly
: Array.
Attributes inherited from Base
Instance Method Summary collapse
-
#initialize(tree, comments) ⇒ ClassDecl
constructor
A new instance of ClassDecl.
Methods included from Utils
#translate_super_class, #translate_type_name, #translate_type_param
Constructor Details
#initialize(tree, comments) ⇒ ClassDecl
Returns a new instance of ClassDecl.
749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 |
# File 'lib/rbs/inline/ast/annotations.rb', line 749 def initialize(tree, comments) @tree = tree @source = comments decl_tree = tree.nth_tree!(1) if type_name = translate_type_name(decl_tree.nth_tree!(1)) if type_name.class? @name = type_name end end @type_params = [] if type_params = decl_tree.nth_tree(2) params = type_params.non_trivia_trees params.shift params.pop params.each_slice(2) do |param, _comma| raise unless param.is_a?(Tree) if type_param = translate_type_param(param) @type_params << type_param end end end if super_tree = decl_tree.nth_tree(3) if type = super_tree.nth_type?(1) @super_class = translate_super_class(type) end end end |
Instance Attribute Details
#name ⇒ Object (readonly)
: TypeName?
740 741 742 |
# File 'lib/rbs/inline/ast/annotations.rb', line 740 def name @name end |
#super_class ⇒ Object (readonly)
: RBS::AST::Declarations::Class::Super?
744 745 746 |
# File 'lib/rbs/inline/ast/annotations.rb', line 744 def super_class @super_class end |
#type_params ⇒ Object (readonly)
: Array
742 743 744 |
# File 'lib/rbs/inline/ast/annotations.rb', line 742 def type_params @type_params end |