rbs-inline 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +2 -2
 - data/lib/rbs/inline/ast/annotations.rb +21 -0
 - data/lib/rbs/inline/ast/comment_lines.rb +19 -2
 - data/lib/rbs/inline/ast/declarations.rb +6 -13
 - data/lib/rbs/inline/ast/members.rb +9 -26
 - data/lib/rbs/inline/ast/tree.rb +88 -4
 - data/lib/rbs/inline/cli.rb +17 -4
 - data/lib/rbs/inline/node_utils.rb +4 -0
 - data/lib/rbs/inline/parser.rb +26 -8
 - data/lib/rbs/inline/version.rb +1 -1
 - data/lib/rbs/inline/writer.rb +81 -9
 - data/lib/rbs/inline.rb +3 -0
 - data/rbs_collection.lock.yaml +3 -7
 - data/rbs_collection.yaml +2 -0
 - data/sig/generated/rbs/inline/ast/annotations.rbs +2 -0
 - data/sig/{rbs → generated/rbs}/inline/ast/comment_lines.rbs +8 -4
 - data/sig/generated/rbs/inline/ast/declarations.rbs +4 -1
 - data/sig/generated/rbs/inline/ast/members.rbs +8 -10
 - data/sig/{rbs → generated/rbs}/inline/ast/tree.rbs +49 -21
 - data/sig/generated/rbs/inline/node_utils.rbs +11 -0
 - data/sig/generated/rbs/inline/parser.rbs +8 -4
 - data/sig/generated/rbs/inline/version.rbs +7 -0
 - data/sig/generated/rbs/inline/writer.rbs +72 -0
 - data/sig/generated/rbs/inline.rbs +7 -0
 - metadata +20 -16
 - data/sig/rbs/inline/annotation_parser.rbs +0 -0
 - data/sig/rbs/inline/node_utils.rbs +0 -7
 - data/sig/rbs/inline/writer.rbs +0 -27
 - data/sig/rbs/inline.rbs +0 -41
 - data/yard-samples/hello.rb +0 -6
 - data/yard-samples/sample1.rb +0 -26
 
    
        data/lib/rbs/inline/writer.rb
    CHANGED
    
    | 
         @@ -1,20 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # rbs_inline: enabled
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            module RBS
         
     | 
| 
       2 
4 
     | 
    
         
             
              module Inline
         
     | 
| 
       3 
5 
     | 
    
         
             
                class Writer
         
     | 
| 
       4 
     | 
    
         
            -
                  attr_reader :output
         
     | 
| 
       5 
     | 
    
         
            -
                  attr_reader :writer
         
     | 
| 
      
 6 
     | 
    
         
            +
                  attr_reader :output #:: String
         
     | 
| 
      
 7 
     | 
    
         
            +
                  attr_reader :writer #:: RBS::Writer
         
     | 
| 
       6 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
                  # @rbs buffer: String
         
     | 
| 
       7 
10 
     | 
    
         
             
                  def initialize(buffer = +"")
         
     | 
| 
       8 
11 
     | 
    
         
             
                    @output = buffer
         
     | 
| 
       9 
12 
     | 
    
         
             
                    @writer = RBS::Writer.new(out: StringIO.new(buffer))
         
     | 
| 
       10 
13 
     | 
    
         
             
                  end
         
     | 
| 
       11 
14 
     | 
    
         | 
| 
      
 15 
     | 
    
         
            +
                  # @rbs uses: Array[AST::Annotations::Use]
         
     | 
| 
      
 16 
     | 
    
         
            +
                  # @rbs decls: Array[AST::Declarations::t]
         
     | 
| 
       12 
17 
     | 
    
         
             
                  def self.write(uses, decls)
         
     | 
| 
       13 
18 
     | 
    
         
             
                    writer = Writer.new()
         
     | 
| 
       14 
19 
     | 
    
         
             
                    writer.write(uses, decls)
         
     | 
| 
       15 
20 
     | 
    
         
             
                    writer.output
         
     | 
| 
       16 
21 
     | 
    
         
             
                  end
         
     | 
| 
       17 
22 
     | 
    
         | 
| 
      
 23 
     | 
    
         
            +
                  # @rbs lines: Array[String]
         
     | 
| 
      
 24 
     | 
    
         
            +
                  # @rbs returns void
         
     | 
| 
       18 
25 
     | 
    
         
             
                  def header(*lines)
         
     | 
| 
       19 
26 
     | 
    
         
             
                    lines.each do |line|
         
     | 
| 
       20 
27 
     | 
    
         
             
                      writer.out.puts("# " + line)
         
     | 
| 
         @@ -22,6 +29,9 @@ module RBS 
     | 
|
| 
       22 
29 
     | 
    
         
             
                    writer.out.puts
         
     | 
| 
       23 
30 
     | 
    
         
             
                  end
         
     | 
| 
       24 
31 
     | 
    
         | 
| 
      
 32 
     | 
    
         
            +
                  # @rbs uses: Array[AST::Annotations::Use]
         
     | 
| 
      
 33 
     | 
    
         
            +
                  # @rbs decls: Array[AST::Declarations::t]
         
     | 
| 
      
 34 
     | 
    
         
            +
                  # @rbs returns void
         
     | 
| 
       25 
35 
     | 
    
         
             
                  def write(uses, decls)
         
     | 
| 
       26 
36 
     | 
    
         
             
                    use_dirs = uses.map do |use|
         
     | 
| 
       27 
37 
     | 
    
         
             
                      RBS::AST::Directives::Use.new(
         
     | 
| 
         @@ -37,6 +47,8 @@ module RBS 
     | 
|
| 
       37 
47 
     | 
    
         
             
                    writer.write(use_dirs + rbs)
         
     | 
| 
       38 
48 
     | 
    
         
             
                  end
         
     | 
| 
       39 
49 
     | 
    
         | 
| 
      
 50 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::t
         
     | 
| 
      
 51 
     | 
    
         
            +
                  # @rbs returns RBS::AST::Declarations::t?
         
     | 
| 
       40 
52 
     | 
    
         
             
                  def translate_decl(decl)
         
     | 
| 
       41 
53 
     | 
    
         
             
                    case decl
         
     | 
| 
       42 
54 
     | 
    
         
             
                    when AST::Declarations::ClassDecl
         
     | 
| 
         @@ -48,6 +60,8 @@ module RBS 
     | 
|
| 
       48 
60 
     | 
    
         
             
                    end
         
     | 
| 
       49 
61 
     | 
    
         
             
                  end
         
     | 
| 
       50 
62 
     | 
    
         | 
| 
      
 63 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::ClassDecl
         
     | 
| 
      
 64 
     | 
    
         
            +
                  # @rbs returns RBS::AST::Declarations::Class?
         
     | 
| 
       51 
65 
     | 
    
         
             
                  def translate_class_decl(decl)
         
     | 
| 
       52 
66 
     | 
    
         
             
                    return unless decl.class_name
         
     | 
| 
       53 
67 
     | 
    
         | 
| 
         @@ -59,12 +73,14 @@ module RBS 
     | 
|
| 
       59 
73 
     | 
    
         | 
| 
       60 
74 
     | 
    
         
             
                    decl.members.each do |member|
         
     | 
| 
       61 
75 
     | 
    
         
             
                      if member.is_a?(AST::Members::Base)
         
     | 
| 
       62 
     | 
    
         
            -
                        if rbs_member = translate_member(member)
         
     | 
| 
      
 76 
     | 
    
         
            +
                        if rbs_member = translate_member(member, decl)
         
     | 
| 
       63 
77 
     | 
    
         
             
                          members.concat rbs_member
         
     | 
| 
       64 
78 
     | 
    
         
             
                        end
         
     | 
| 
       65 
79 
     | 
    
         
             
                      end
         
     | 
| 
       66 
80 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
                      if member.is_a?(AST::Declarations:: 
     | 
| 
      
 81 
     | 
    
         
            +
                      if member.is_a?(AST::Declarations::SingletonClassDecl)
         
     | 
| 
      
 82 
     | 
    
         
            +
                        members.concat translate_singleton_decl(member)
         
     | 
| 
      
 83 
     | 
    
         
            +
                      elsif member.is_a?(AST::Declarations::Base)
         
     | 
| 
       68 
84 
     | 
    
         
             
                        if rbs = translate_decl(member)
         
     | 
| 
       69 
85 
     | 
    
         
             
                          members << rbs
         
     | 
| 
       70 
86 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -82,6 +98,8 @@ module RBS 
     | 
|
| 
       82 
98 
     | 
    
         
             
                    )
         
     | 
| 
       83 
99 
     | 
    
         
             
                  end
         
     | 
| 
       84 
100 
     | 
    
         | 
| 
      
 101 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::ModuleDecl
         
     | 
| 
      
 102 
     | 
    
         
            +
                  # @rbs returns RBS::AST::Declarations::Module?
         
     | 
| 
       85 
103 
     | 
    
         
             
                  def translate_module_decl(decl)
         
     | 
| 
       86 
104 
     | 
    
         
             
                    return unless decl.module_name
         
     | 
| 
       87 
105 
     | 
    
         | 
| 
         @@ -93,12 +111,14 @@ module RBS 
     | 
|
| 
       93 
111 
     | 
    
         | 
| 
       94 
112 
     | 
    
         
             
                    decl.members.each do |member|
         
     | 
| 
       95 
113 
     | 
    
         
             
                      if member.is_a?(AST::Members::Base)
         
     | 
| 
       96 
     | 
    
         
            -
                        if rbs_member = translate_member(member)
         
     | 
| 
      
 114 
     | 
    
         
            +
                        if rbs_member = translate_member(member, decl)
         
     | 
| 
       97 
115 
     | 
    
         
             
                          members.concat rbs_member
         
     | 
| 
       98 
116 
     | 
    
         
             
                        end
         
     | 
| 
       99 
117 
     | 
    
         
             
                      end
         
     | 
| 
       100 
118 
     | 
    
         | 
| 
       101 
     | 
    
         
            -
                      if member.is_a?(AST::Declarations:: 
     | 
| 
      
 119 
     | 
    
         
            +
                      if member.is_a?(AST::Declarations::SingletonClassDecl)
         
     | 
| 
      
 120 
     | 
    
         
            +
                        members.concat translate_singleton_decl(member)
         
     | 
| 
      
 121 
     | 
    
         
            +
                      elsif member.is_a?(AST::Declarations::Base)
         
     | 
| 
       102 
122 
     | 
    
         
             
                        if rbs = translate_decl(member)
         
     | 
| 
       103 
123 
     | 
    
         
             
                          members << rbs
         
     | 
| 
       104 
124 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -118,6 +138,8 @@ module RBS 
     | 
|
| 
       118 
138 
     | 
    
         
             
                    )
         
     | 
| 
       119 
139 
     | 
    
         
             
                  end
         
     | 
| 
       120 
140 
     | 
    
         | 
| 
      
 141 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::ConstantDecl
         
     | 
| 
      
 142 
     | 
    
         
            +
                  # @rbs returns RBS::AST::Declarations::Constant?
         
     | 
| 
       121 
143 
     | 
    
         
             
                  def translate_constant_decl(decl)
         
     | 
| 
       122 
144 
     | 
    
         
             
                    return unless decl.constant_name
         
     | 
| 
       123 
145 
     | 
    
         | 
| 
         @@ -133,18 +155,39 @@ module RBS 
     | 
|
| 
       133 
155 
     | 
    
         
             
                    )
         
     | 
| 
       134 
156 
     | 
    
         
             
                  end
         
     | 
| 
       135 
157 
     | 
    
         | 
| 
       136 
     | 
    
         
            -
                   
     | 
| 
      
 158 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::SingletonClassDecl
         
     | 
| 
      
 159 
     | 
    
         
            +
                  # @rbs returns Array[RBS::AST::Members::t]
         
     | 
| 
      
 160 
     | 
    
         
            +
                  def translate_singleton_decl(decl)
         
     | 
| 
      
 161 
     | 
    
         
            +
                    members = []
         
     | 
| 
      
 162 
     | 
    
         
            +
             
     | 
| 
      
 163 
     | 
    
         
            +
                    decl.members.each do |member|
         
     | 
| 
      
 164 
     | 
    
         
            +
                      if member.is_a?(AST::Members::Base)
         
     | 
| 
      
 165 
     | 
    
         
            +
                        if rbs_member = translate_member(member, decl)
         
     | 
| 
      
 166 
     | 
    
         
            +
                          members.concat rbs_member
         
     | 
| 
      
 167 
     | 
    
         
            +
                        end
         
     | 
| 
      
 168 
     | 
    
         
            +
                      end
         
     | 
| 
      
 169 
     | 
    
         
            +
                    end
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
                    members
         
     | 
| 
      
 172 
     | 
    
         
            +
                  end
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
                  # @rbs member: AST::Members::t
         
     | 
| 
      
 175 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl
         
     | 
| 
      
 176 
     | 
    
         
            +
                  # @rbs returns Array[RBS::AST::Members::t | RBS::AST::Declarations::t]?
         
     | 
| 
      
 177 
     | 
    
         
            +
                  def translate_member(member, decl)
         
     | 
| 
       137 
178 
     | 
    
         
             
                    case member
         
     | 
| 
       138 
179 
     | 
    
         
             
                    when AST::Members::RubyDef
         
     | 
| 
       139 
180 
     | 
    
         
             
                      if member.comments
         
     | 
| 
       140 
181 
     | 
    
         
             
                        comment = RBS::AST::Comment.new(string: member.comments.content, location: nil)
         
     | 
| 
       141 
182 
     | 
    
         
             
                      end
         
     | 
| 
       142 
183 
     | 
    
         | 
| 
      
 184 
     | 
    
         
            +
                      kind = method_kind(member, decl)
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
       143 
186 
     | 
    
         
             
                      if member.override_annotation
         
     | 
| 
       144 
187 
     | 
    
         
             
                        return [
         
     | 
| 
       145 
188 
     | 
    
         
             
                          RBS::AST::Members::MethodDefinition.new(
         
     | 
| 
       146 
189 
     | 
    
         
             
                            name: member.method_name,
         
     | 
| 
       147 
     | 
    
         
            -
                            kind:  
     | 
| 
      
 190 
     | 
    
         
            +
                            kind: kind,
         
     | 
| 
       148 
191 
     | 
    
         
             
                            overloads: [],
         
     | 
| 
       149 
192 
     | 
    
         
             
                            annotations: [],
         
     | 
| 
       150 
193 
     | 
    
         
             
                            location: nil,
         
     | 
| 
         @@ -158,7 +201,7 @@ module RBS 
     | 
|
| 
       158 
201 
     | 
    
         
             
                      [
         
     | 
| 
       159 
202 
     | 
    
         
             
                        RBS::AST::Members::MethodDefinition.new(
         
     | 
| 
       160 
203 
     | 
    
         
             
                          name: member.method_name,
         
     | 
| 
       161 
     | 
    
         
            -
                          kind:  
     | 
| 
      
 204 
     | 
    
         
            +
                          kind: kind,
         
     | 
| 
       162 
205 
     | 
    
         
             
                          overloads: member.method_overloads,
         
     | 
| 
       163 
206 
     | 
    
         
             
                          annotations: member.method_annotations,
         
     | 
| 
       164 
207 
     | 
    
         
             
                          location: nil,
         
     | 
| 
         @@ -205,6 +248,35 @@ module RBS 
     | 
|
| 
       205 
248 
     | 
    
         
             
                      end
         
     | 
| 
       206 
249 
     | 
    
         
             
                    end
         
     | 
| 
       207 
250 
     | 
    
         
             
                  end
         
     | 
| 
      
 251 
     | 
    
         
            +
             
     | 
| 
      
 252 
     | 
    
         
            +
                  private
         
     | 
| 
      
 253 
     | 
    
         
            +
             
     | 
| 
      
 254 
     | 
    
         
            +
                  # Returns the `kind` of the method definition
         
     | 
| 
      
 255 
     | 
    
         
            +
                  #
         
     | 
| 
      
 256 
     | 
    
         
            +
                  # ```rb
         
     | 
| 
      
 257 
     | 
    
         
            +
                  # def self.foo = ()    # :singleton
         
     | 
| 
      
 258 
     | 
    
         
            +
                  # class A
         
     | 
| 
      
 259 
     | 
    
         
            +
                  #   class << self
         
     | 
| 
      
 260 
     | 
    
         
            +
                  #     def bar = ()     # :singleton
         
     | 
| 
      
 261 
     | 
    
         
            +
                  #   end
         
     | 
| 
      
 262 
     | 
    
         
            +
                  # end
         
     | 
| 
      
 263 
     | 
    
         
            +
                  #
         
     | 
| 
      
 264 
     | 
    
         
            +
                  # def object.foo = ()  # Not supported (returns :instance)
         
     | 
| 
      
 265 
     | 
    
         
            +
                  # ```
         
     | 
| 
      
 266 
     | 
    
         
            +
                  #
         
     | 
| 
      
 267 
     | 
    
         
            +
                  # @rbs member: AST::Members::RubyDef
         
     | 
| 
      
 268 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl
         
     | 
| 
      
 269 
     | 
    
         
            +
                  # @rbs returns RBS::AST::Members::MethodDefinition::kind
         
     | 
| 
      
 270 
     | 
    
         
            +
                  def method_kind(member, decl)
         
     | 
| 
      
 271 
     | 
    
         
            +
                    return :singleton if decl.is_a?(AST::Declarations::SingletonClassDecl)
         
     | 
| 
      
 272 
     | 
    
         
            +
             
     | 
| 
      
 273 
     | 
    
         
            +
                    case member.node.receiver
         
     | 
| 
      
 274 
     | 
    
         
            +
                    when Prism::SelfNode
         
     | 
| 
      
 275 
     | 
    
         
            +
                      :singleton
         
     | 
| 
      
 276 
     | 
    
         
            +
                    else
         
     | 
| 
      
 277 
     | 
    
         
            +
                      :instance
         
     | 
| 
      
 278 
     | 
    
         
            +
                    end
         
     | 
| 
      
 279 
     | 
    
         
            +
                  end
         
     | 
| 
       208 
280 
     | 
    
         
             
                end
         
     | 
| 
       209 
281 
     | 
    
         
             
              end
         
     | 
| 
       210 
282 
     | 
    
         
             
            end
         
     | 
    
        data/lib/rbs/inline.rb
    CHANGED
    
    
    
        data/rbs_collection.lock.yaml
    CHANGED
    
    | 
         @@ -1,10 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            path: ".gem_rbs_collection"
         
     | 
| 
       3 
3 
     | 
    
         
             
            gems:
         
     | 
| 
       4 
     | 
    
         
            -
            - name: abbrev
         
     | 
| 
       5 
     | 
    
         
            -
              version: '0'
         
     | 
| 
       6 
     | 
    
         
            -
              source:
         
     | 
| 
       7 
     | 
    
         
            -
                type: stdlib
         
     | 
| 
       8 
4 
     | 
    
         
             
            - name: fileutils
         
     | 
| 
       9 
5 
     | 
    
         
             
              version: '0'
         
     | 
| 
       10 
6 
     | 
    
         
             
              source:
         
     | 
| 
         @@ -38,7 +34,7 @@ gems: 
     | 
|
| 
       38 
34 
     | 
    
         
             
              source:
         
     | 
| 
       39 
35 
     | 
    
         
             
                type: stdlib
         
     | 
| 
       40 
36 
     | 
    
         
             
            - name: prism
         
     | 
| 
       41 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 37 
     | 
    
         
            +
              version: 0.30.0
         
     | 
| 
       42 
38 
     | 
    
         
             
              source:
         
     | 
| 
       43 
39 
     | 
    
         
             
                type: rubygems
         
     | 
| 
       44 
40 
     | 
    
         
             
            - name: rake
         
     | 
| 
         @@ -46,11 +42,11 @@ gems: 
     | 
|
| 
       46 
42 
     | 
    
         
             
              source:
         
     | 
| 
       47 
43 
     | 
    
         
             
                type: git
         
     | 
| 
       48 
44 
     | 
    
         
             
                name: ruby/gem_rbs_collection
         
     | 
| 
       49 
     | 
    
         
            -
                revision:  
     | 
| 
      
 45 
     | 
    
         
            +
                revision: 4bf1c9687fc24cfbb30f4759653308c816f3a69f
         
     | 
| 
       50 
46 
     | 
    
         
             
                remote: https://github.com/ruby/gem_rbs_collection.git
         
     | 
| 
       51 
47 
     | 
    
         
             
                repo_dir: gems
         
     | 
| 
       52 
48 
     | 
    
         
             
            - name: rbs
         
     | 
| 
       53 
     | 
    
         
            -
              version: 3.5. 
     | 
| 
      
 49 
     | 
    
         
            +
              version: 3.5.1
         
     | 
| 
       54 
50 
     | 
    
         
             
              source:
         
     | 
| 
       55 
51 
     | 
    
         
             
                type: rubygems
         
     | 
| 
       56 
52 
     | 
    
         
             
            - name: rdoc
         
     | 
    
        data/rbs_collection.yaml
    CHANGED
    
    
| 
         @@ -4,6 +4,8 @@ module RBS 
     | 
|
| 
       4 
4 
     | 
    
         
             
              module Inline
         
     | 
| 
       5 
5 
     | 
    
         
             
                module AST
         
     | 
| 
       6 
6 
     | 
    
         
             
                  module Annotations
         
     | 
| 
      
 7 
     | 
    
         
            +
                    type t = VarType | ReturnType | Use | Inherits | Generic | ModuleSelf | Skip | Assertion | Application | RBSAnnotation | Override | IvarType | Yields | Embedded
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       7 
9 
     | 
    
         
             
                    class Base
         
     | 
| 
       8 
10 
     | 
    
         
             
                      attr_reader source: CommentLines
         
     | 
| 
       9 
11 
     | 
    
         | 
| 
         @@ -1,3 +1,5 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Generated from lib/rbs/inline/ast/comment_lines.rb with RBS::Inline
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            module RBS
         
     | 
| 
       2 
4 
     | 
    
         
             
              module Inline
         
     | 
| 
       3 
5 
     | 
    
         
             
                module AST
         
     | 
| 
         @@ -12,15 +14,17 @@ module RBS 
     | 
|
| 
       12 
14 
     | 
    
         
             
                  #
         
     | 
| 
       13 
15 
     | 
    
         
             
                  # We want to get a String of comment1 and comment2, `"Hello\nWorld".
         
     | 
| 
       14 
16 
     | 
    
         
             
                  # And want to translate a location in the string into the location in comment1 and comment2.
         
     | 
| 
       15 
     | 
    
         
            -
                  #
         
     | 
| 
       16 
17 
     | 
    
         
             
                  class CommentLines
         
     | 
| 
       17 
     | 
    
         
            -
                    attr_reader comments: Array[[Prism::Comment, Integer]]
         
     | 
| 
      
 18 
     | 
    
         
            +
                    attr_reader comments: Array[[ Prism::Comment, Integer ]]
         
     | 
| 
       18 
19 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
                     
     | 
| 
      
 20 
     | 
    
         
            +
                    # @rbs comments: Array[Prism::Comment]
         
     | 
| 
      
 21 
     | 
    
         
            +
                    def initialize: (Array[Prism::Comment] comments) -> untyped
         
     | 
| 
       20 
22 
     | 
    
         | 
| 
       21 
23 
     | 
    
         
             
                    def string: () -> String
         
     | 
| 
       22 
24 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
                     
     | 
| 
      
 25 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 26 
     | 
    
         
            +
                    # @rbs returns [Prism::Comment, Integer]?
         
     | 
| 
      
 27 
     | 
    
         
            +
                    def comment_location: (Integer index) -> [ Prism::Comment, Integer ]?
         
     | 
| 
       24 
28 
     | 
    
         
             
                  end
         
     | 
| 
       25 
29 
     | 
    
         
             
                end
         
     | 
| 
       26 
30 
     | 
    
         
             
              end
         
     | 
| 
         @@ -10,7 +10,7 @@ module RBS 
     | 
|
| 
       10 
10 
     | 
    
         
             
                      def type_name: (Prism::Node node) -> TypeName?
         
     | 
| 
       11 
11 
     | 
    
         
             
                    end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
                    type t = ClassDecl | ModuleDecl | ConstantDecl
         
     | 
| 
      
 13 
     | 
    
         
            +
                    type t = ClassDecl | ModuleDecl | ConstantDecl | SingletonClassDecl
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
                    interface _WithComments
         
     | 
| 
       16 
16 
     | 
    
         
             
                      def comments: () -> AnnotationParser::ParsingResult?
         
     | 
| 
         @@ -110,6 +110,9 @@ module RBS 
     | 
|
| 
       110 
110 
     | 
    
         | 
| 
       111 
111 
     | 
    
         
             
                      def start_line: () -> Integer
         
     | 
| 
       112 
112 
     | 
    
         
             
                    end
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
                    class SingletonClassDecl < ModuleOrClass[Prism::SingletonClassNode]
         
     | 
| 
      
 115 
     | 
    
         
            +
                    end
         
     | 
| 
       113 
116 
     | 
    
         
             
                  end
         
     | 
| 
       114 
117 
     | 
    
         
             
                end
         
     | 
| 
       115 
118 
     | 
    
         
             
              end
         
     | 
| 
         @@ -4,6 +4,12 @@ module RBS 
     | 
|
| 
       4 
4 
     | 
    
         
             
              module Inline
         
     | 
| 
       5 
5 
     | 
    
         
             
                module AST
         
     | 
| 
       6 
6 
     | 
    
         
             
                  module Members
         
     | 
| 
      
 7 
     | 
    
         
            +
                    type ruby = RubyDef | RubyAlias | RubyMixin | RubyAttr | RubyPublic | RubyPrivate
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                    type rbs = RBSIvar | RBSEmbedded
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                    type t = ruby | rbs
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
       7 
13 
     | 
    
         
             
                    class Base
         
     | 
| 
       8 
14 
     | 
    
         
             
                      attr_reader location: Prism::Location
         
     | 
| 
       9 
15 
     | 
    
         | 
| 
         @@ -44,16 +50,6 @@ module RBS 
     | 
|
| 
       44 
50 
     | 
    
         | 
| 
       45 
51 
     | 
    
         
             
                      def method_type_annotations: () -> Array[Annotations::Assertion]
         
     | 
| 
       46 
52 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
                      # Returns the `kind` of the method definition
         
     | 
| 
       48 
     | 
    
         
            -
                      #
         
     | 
| 
       49 
     | 
    
         
            -
                      # [FIXME] It only supports `self` receiver.
         
     | 
| 
       50 
     | 
    
         
            -
                      #
         
     | 
| 
       51 
     | 
    
         
            -
                      # ```rb
         
     | 
| 
       52 
     | 
    
         
            -
                      # def self.foo = ()    # :singleton
         
     | 
| 
       53 
     | 
    
         
            -
                      # def object.foo = ()  # Not supported (returns :instance)
         
     | 
| 
       54 
     | 
    
         
            -
                      # ```
         
     | 
| 
       55 
     | 
    
         
            -
                      def method_kind: () -> RBS::AST::Members::MethodDefinition::kind
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
53 
     | 
    
         
             
                      def return_type: () -> Types::t?
         
     | 
| 
       58 
54 
     | 
    
         | 
| 
       59 
55 
     | 
    
         
             
                      def var_type_hash: () -> Hash[Symbol, Types::t?]
         
     | 
| 
         @@ -84,6 +80,8 @@ module RBS 
     | 
|
| 
       84 
80 
     | 
    
         
             
                    end
         
     | 
| 
       85 
81 
     | 
    
         | 
| 
       86 
82 
     | 
    
         
             
                    class RubyMixin < RubyBase
         
     | 
| 
      
 83 
     | 
    
         
            +
                      include Declarations::ConstantUtil
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
       87 
85 
     | 
    
         
             
                      # CallNode that calls `include`, `prepend`, and `extend` method
         
     | 
| 
       88 
86 
     | 
    
         
             
                      attr_reader node: Prism::CallNode
         
     | 
| 
       89 
87 
     | 
    
         | 
| 
         @@ -1,97 +1,125 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Generated from lib/rbs/inline/ast/tree.rb with RBS::Inline
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            module RBS
         
     | 
| 
       2 
4 
     | 
    
         
             
              module Inline
         
     | 
| 
       3 
5 
     | 
    
         
             
                module AST
         
     | 
| 
       4 
6 
     | 
    
         
             
                  class Tree
         
     | 
| 
       5 
     | 
    
         
            -
                    type token = [Symbol, String]
         
     | 
| 
      
 7 
     | 
    
         
            +
                    type token = [ Symbol, String ]
         
     | 
| 
       6 
8 
     | 
    
         | 
| 
       7 
9 
     | 
    
         
             
                    type tree = token | Tree | Types::t | MethodType | nil
         
     | 
| 
       8 
10 
     | 
    
         | 
| 
       9 
11 
     | 
    
         
             
                    attr_reader trees: Array[tree]
         
     | 
| 
       10 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
                    attr_reader type: Symbol
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       11 
15 
     | 
    
         
             
                    # Children but without `tWHITESPACE` tokens
         
     | 
| 
       12 
     | 
    
         
            -
                    #
         
     | 
| 
       13 
16 
     | 
    
         
             
                    attr_reader non_trivia_trees: Array[tree]
         
     | 
| 
       14 
17 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
                     
     | 
| 
      
 18 
     | 
    
         
            +
                    # @rbs type: Symbol
         
     | 
| 
      
 19 
     | 
    
         
            +
                    def initialize: (Symbol type) -> untyped
         
     | 
| 
       16 
20 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
                     
     | 
| 
      
 21 
     | 
    
         
            +
                    # @rbs tok: tree
         
     | 
| 
      
 22 
     | 
    
         
            +
                    # @rbs returns self
         
     | 
| 
      
 23 
     | 
    
         
            +
                    def <<: (tree tok) -> self
         
     | 
| 
       18 
24 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
                     
     | 
| 
      
 25 
     | 
    
         
            +
                    # Returns the source code associated to the tree
         
     | 
| 
      
 26 
     | 
    
         
            +
                    def to_s: () -> String
         
     | 
| 
       20 
27 
     | 
    
         | 
| 
       21 
28 
     | 
    
         
             
                    # Returns n-th token from the children
         
     | 
| 
       22 
29 
     | 
    
         
             
                    #
         
     | 
| 
       23 
30 
     | 
    
         
             
                    # Raises if the value is not a token or nil.
         
     | 
| 
       24 
31 
     | 
    
         
             
                    #
         
     | 
| 
       25 
     | 
    
         
            -
                     
     | 
| 
      
 32 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 33 
     | 
    
         
            +
                    # @rbs returns token?
         
     | 
| 
      
 34 
     | 
    
         
            +
                    def nth_token: (Integer index) -> token?
         
     | 
| 
       26 
35 
     | 
    
         | 
| 
       27 
36 
     | 
    
         
             
                    # Returns n-th token from the children
         
     | 
| 
       28 
37 
     | 
    
         
             
                    #
         
     | 
| 
       29 
38 
     | 
    
         
             
                    # Returns `nil` if the value is not a token.
         
     | 
| 
       30 
39 
     | 
    
         
             
                    #
         
     | 
| 
       31 
     | 
    
         
            -
                     
     | 
| 
      
 40 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 41 
     | 
    
         
            +
                    # @rbs returns token?
         
     | 
| 
      
 42 
     | 
    
         
            +
                    def nth_token?: (Integer index) -> token?
         
     | 
| 
       32 
43 
     | 
    
         | 
| 
       33 
44 
     | 
    
         
             
                    # Returns n-th token from the children
         
     | 
| 
       34 
45 
     | 
    
         
             
                    #
         
     | 
| 
       35 
46 
     | 
    
         
             
                    # Raises if the value is not token.
         
     | 
| 
       36 
47 
     | 
    
         
             
                    #
         
     | 
| 
       37 
     | 
    
         
            -
                     
     | 
| 
      
 48 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 49 
     | 
    
         
            +
                    # @rbs returns token
         
     | 
| 
      
 50 
     | 
    
         
            +
                    def nth_token!: (Integer index) -> token
         
     | 
| 
       38 
51 
     | 
    
         | 
| 
       39 
52 
     | 
    
         
             
                    # Returns n-th tree from the children
         
     | 
| 
       40 
53 
     | 
    
         
             
                    #
         
     | 
| 
       41 
54 
     | 
    
         
             
                    # Raises if the value is not a tree or nil.
         
     | 
| 
       42 
55 
     | 
    
         
             
                    #
         
     | 
| 
       43 
     | 
    
         
            -
                     
     | 
| 
      
 56 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 57 
     | 
    
         
            +
                    # @rbs returns Tree?
         
     | 
| 
      
 58 
     | 
    
         
            +
                    def nth_tree: (Integer index) -> Tree?
         
     | 
| 
       44 
59 
     | 
    
         | 
| 
       45 
60 
     | 
    
         
             
                    # Returns n-th tree from the children
         
     | 
| 
       46 
61 
     | 
    
         
             
                    #
         
     | 
| 
       47 
62 
     | 
    
         
             
                    # Returns `nil` if the value is not a tree or nil.
         
     | 
| 
       48 
63 
     | 
    
         
             
                    #
         
     | 
| 
       49 
     | 
    
         
            -
                     
     | 
| 
      
 64 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 65 
     | 
    
         
            +
                    # @rbs returns Tree?
         
     | 
| 
      
 66 
     | 
    
         
            +
                    def nth_tree?: (Integer index) -> Tree?
         
     | 
| 
       50 
67 
     | 
    
         | 
| 
       51 
68 
     | 
    
         
             
                    # Returns n-th tree from the children
         
     | 
| 
       52 
69 
     | 
    
         
             
                    #
         
     | 
| 
       53 
70 
     | 
    
         
             
                    # Raises if the value is not a tree.
         
     | 
| 
       54 
71 
     | 
    
         
             
                    #
         
     | 
| 
       55 
     | 
    
         
            -
                     
     | 
| 
      
 72 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 73 
     | 
    
         
            +
                    # @rbs returns Tree
         
     | 
| 
      
 74 
     | 
    
         
            +
                    def nth_tree!: (Integer index) -> Tree
         
     | 
| 
       56 
75 
     | 
    
         | 
| 
       57 
76 
     | 
    
         
             
                    # Returns n-th type from the children
         
     | 
| 
       58 
77 
     | 
    
         
             
                    #
         
     | 
| 
       59 
     | 
    
         
            -
                    # Raises if the value is not a  
     | 
| 
      
 78 
     | 
    
         
            +
                    # Raises if the value is not a type or nil.
         
     | 
| 
       60 
79 
     | 
    
         
             
                    #
         
     | 
| 
       61 
     | 
    
         
            -
                     
     | 
| 
      
 80 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 81 
     | 
    
         
            +
                    # @rbs returns Types::t?
         
     | 
| 
      
 82 
     | 
    
         
            +
                    def nth_type: (Integer index) -> Types::t?
         
     | 
| 
       62 
83 
     | 
    
         | 
| 
       63 
84 
     | 
    
         
             
                    # Returns n-th type from the children
         
     | 
| 
       64 
85 
     | 
    
         
             
                    #
         
     | 
| 
       65 
86 
     | 
    
         
             
                    # Returns `nil` if the value is not a type.
         
     | 
| 
       66 
87 
     | 
    
         
             
                    #
         
     | 
| 
       67 
     | 
    
         
            -
                     
     | 
| 
      
 88 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 89 
     | 
    
         
            +
                    # @rbs returns Types::t?
         
     | 
| 
      
 90 
     | 
    
         
            +
                    def nth_type?: (Integer index) -> Types::t?
         
     | 
| 
       68 
91 
     | 
    
         | 
| 
       69 
92 
     | 
    
         
             
                    # Returns n-th type from the children
         
     | 
| 
       70 
93 
     | 
    
         
             
                    #
         
     | 
| 
       71 
94 
     | 
    
         
             
                    # Raises if the value is not a type.
         
     | 
| 
       72 
95 
     | 
    
         
             
                    #
         
     | 
| 
       73 
     | 
    
         
            -
                     
     | 
| 
      
 96 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 97 
     | 
    
         
            +
                    # @rbs returns Types::t
         
     | 
| 
      
 98 
     | 
    
         
            +
                    def nth_type!: (Integer index) -> Types::t
         
     | 
| 
       74 
99 
     | 
    
         | 
| 
       75 
100 
     | 
    
         
             
                    # Returns n-th method type from the children
         
     | 
| 
       76 
101 
     | 
    
         
             
                    #
         
     | 
| 
       77 
102 
     | 
    
         
             
                    # Raises if the value is not a method type or `nil`.
         
     | 
| 
       78 
103 
     | 
    
         
             
                    #
         
     | 
| 
       79 
     | 
    
         
            -
                     
     | 
| 
      
 104 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 105 
     | 
    
         
            +
                    # @rbs returns MethodType?
         
     | 
| 
      
 106 
     | 
    
         
            +
                    def nth_method_type: (Integer index) -> MethodType?
         
     | 
| 
       80 
107 
     | 
    
         | 
| 
       81 
108 
     | 
    
         
             
                    # Returns n-th method type from the children
         
     | 
| 
       82 
109 
     | 
    
         
             
                    #
         
     | 
| 
       83 
110 
     | 
    
         
             
                    # Returns `nil` if the value is not a method type.
         
     | 
| 
       84 
111 
     | 
    
         
             
                    #
         
     | 
| 
       85 
     | 
    
         
            -
                     
     | 
| 
      
 112 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 113 
     | 
    
         
            +
                    # @rbs returns MethodType?
         
     | 
| 
      
 114 
     | 
    
         
            +
                    def nth_method_type?: (Integer index) -> MethodType?
         
     | 
| 
       86 
115 
     | 
    
         | 
| 
       87 
116 
     | 
    
         
             
                    # Returns n-th method tree from the children
         
     | 
| 
       88 
117 
     | 
    
         
             
                    #
         
     | 
| 
       89 
118 
     | 
    
         
             
                    # Raises if the value is not a method tree.
         
     | 
| 
       90 
119 
     | 
    
         
             
                    #
         
     | 
| 
       91 
     | 
    
         
            -
                     
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
     | 
    
         
            -
                     
     | 
| 
       94 
     | 
    
         
            -
                    def to_s: () -> String
         
     | 
| 
      
 120 
     | 
    
         
            +
                    # @rbs index: Integer
         
     | 
| 
      
 121 
     | 
    
         
            +
                    # @rbs returns MethodType
         
     | 
| 
      
 122 
     | 
    
         
            +
                    def nth_method_type!: (Integer index) -> MethodType
         
     | 
| 
       95 
123 
     | 
    
         
             
                  end
         
     | 
| 
       96 
124 
     | 
    
         
             
                end
         
     | 
| 
       97 
125 
     | 
    
         
             
              end
         
     | 
| 
         @@ -30,9 +30,10 @@ module RBS 
     | 
|
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
                  def initialize: () -> void
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
                  # @rbs result: ParseResult 
     | 
| 
      
 33 
     | 
    
         
            +
                  # @rbs result: ParseResult
         
     | 
| 
      
 34 
     | 
    
         
            +
                  # @rbs opt_in: bool -- `true` for *opt-out* mode, `false` for *opt-in* mode.
         
     | 
| 
       34 
35 
     | 
    
         
             
                  # @rbs returns [Array[AST::Annotations::Use], Array[AST::Declarations::t]]?
         
     | 
| 
       35 
     | 
    
         
            -
                  def self.parse: (ParseResult 
     | 
| 
      
 36 
     | 
    
         
            +
                  def self.parse: (ParseResult result, opt_in: bool) -> [ Array[AST::Annotations::Use], Array[AST::Declarations::t] ]?
         
     | 
| 
       36 
37 
     | 
    
         | 
| 
       37 
38 
     | 
    
         
             
                  # @rbs returns AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl | nil
         
     | 
| 
       38 
39 
     | 
    
         
             
                  def current_class_module_decl: () -> (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl | nil)
         
     | 
| 
         @@ -40,9 +41,9 @@ module RBS 
     | 
|
| 
       40 
41 
     | 
    
         
             
                  # @rbs returns AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl
         
     | 
| 
       41 
42 
     | 
    
         
             
                  def current_class_module_decl!: () -> (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl)
         
     | 
| 
       42 
43 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
                  # :: (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl) { () -> void } -> void
         
     | 
| 
      
 44 
     | 
    
         
            +
                  # :: (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl | AST::Declarations::SingletonClassDecl) { () -> void } -> void
         
     | 
| 
       44 
45 
     | 
    
         
             
                  # :: (AST::Declarations::ConstantDecl) -> void
         
     | 
| 
       45 
     | 
    
         
            -
                  def push_class_module_decl: (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl) { () -> void } -> void
         
     | 
| 
      
 46 
     | 
    
         
            +
                  def push_class_module_decl: (AST::Declarations::ModuleDecl | AST::Declarations::ClassDecl | AST::Declarations::SingletonClassDecl) { () -> void } -> void
         
     | 
| 
       46 
47 
     | 
    
         
             
                                            | (AST::Declarations::ConstantDecl) -> void
         
     | 
| 
       47 
48 
     | 
    
         | 
| 
       48 
49 
     | 
    
         
             
                  # Load inner declarations and delete them from `#comments` hash
         
     | 
| 
         @@ -59,6 +60,9 @@ module RBS 
     | 
|
| 
       59 
60 
     | 
    
         
             
                  # @rbs override
         
     | 
| 
       60 
61 
     | 
    
         
             
                  def visit_class_node: ...
         
     | 
| 
       61 
62 
     | 
    
         | 
| 
      
 63 
     | 
    
         
            +
                  # @rbs override
         
     | 
| 
      
 64 
     | 
    
         
            +
                  def visit_singleton_class_node: ...
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
       62 
66 
     | 
    
         
             
                  # @rbs override
         
     | 
| 
       63 
67 
     | 
    
         
             
                  def visit_module_node: ...
         
     | 
| 
       64 
68 
     | 
    
         | 
| 
         @@ -0,0 +1,72 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Generated from lib/rbs/inline/writer.rb with RBS::Inline
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module RBS
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Inline
         
     | 
| 
      
 5 
     | 
    
         
            +
                class Writer
         
     | 
| 
      
 6 
     | 
    
         
            +
                  attr_reader output: String
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  attr_reader writer: RBS::Writer
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  # @rbs buffer: String
         
     | 
| 
      
 11 
     | 
    
         
            +
                  def initialize: (?String buffer) -> untyped
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  # @rbs uses: Array[AST::Annotations::Use]
         
     | 
| 
      
 14 
     | 
    
         
            +
                  # @rbs decls: Array[AST::Declarations::t]
         
     | 
| 
      
 15 
     | 
    
         
            +
                  def self.write: (Array[AST::Annotations::Use] uses, Array[AST::Declarations::t] decls) -> untyped
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                  # @rbs lines: Array[String]
         
     | 
| 
      
 18 
     | 
    
         
            +
                  # @rbs returns void
         
     | 
| 
      
 19 
     | 
    
         
            +
                  def header: (*String lines) -> void
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  # @rbs uses: Array[AST::Annotations::Use]
         
     | 
| 
      
 22 
     | 
    
         
            +
                  # @rbs decls: Array[AST::Declarations::t]
         
     | 
| 
      
 23 
     | 
    
         
            +
                  # @rbs returns void
         
     | 
| 
      
 24 
     | 
    
         
            +
                  def write: (Array[AST::Annotations::Use] uses, Array[AST::Declarations::t] decls) -> void
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::t
         
     | 
| 
      
 27 
     | 
    
         
            +
                  # @rbs returns RBS::AST::Declarations::t?
         
     | 
| 
      
 28 
     | 
    
         
            +
                  def translate_decl: (AST::Declarations::t decl) -> RBS::AST::Declarations::t?
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::ClassDecl
         
     | 
| 
      
 31 
     | 
    
         
            +
                  # @rbs returns RBS::AST::Declarations::Class?
         
     | 
| 
      
 32 
     | 
    
         
            +
                  def translate_class_decl: (AST::Declarations::ClassDecl decl) -> RBS::AST::Declarations::Class?
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::ModuleDecl
         
     | 
| 
      
 35 
     | 
    
         
            +
                  # @rbs returns RBS::AST::Declarations::Module?
         
     | 
| 
      
 36 
     | 
    
         
            +
                  def translate_module_decl: (AST::Declarations::ModuleDecl decl) -> RBS::AST::Declarations::Module?
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::ConstantDecl
         
     | 
| 
      
 39 
     | 
    
         
            +
                  # @rbs returns RBS::AST::Declarations::Constant?
         
     | 
| 
      
 40 
     | 
    
         
            +
                  def translate_constant_decl: (AST::Declarations::ConstantDecl decl) -> RBS::AST::Declarations::Constant?
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::SingletonClassDecl
         
     | 
| 
      
 43 
     | 
    
         
            +
                  # @rbs returns Array[RBS::AST::Members::t]
         
     | 
| 
      
 44 
     | 
    
         
            +
                  def translate_singleton_decl: (AST::Declarations::SingletonClassDecl decl) -> Array[RBS::AST::Members::t]
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  # @rbs member: AST::Members::t
         
     | 
| 
      
 47 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl
         
     | 
| 
      
 48 
     | 
    
         
            +
                  # @rbs returns Array[RBS::AST::Members::t | RBS::AST::Declarations::t]?
         
     | 
| 
      
 49 
     | 
    
         
            +
                  def translate_member: (AST::Members::t member, AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl decl) -> Array[RBS::AST::Members::t | RBS::AST::Declarations::t]?
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                  private
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                  # Returns the `kind` of the method definition
         
     | 
| 
      
 54 
     | 
    
         
            +
                  #
         
     | 
| 
      
 55 
     | 
    
         
            +
                  # ```rb
         
     | 
| 
      
 56 
     | 
    
         
            +
                  # def self.foo = ()    # :singleton
         
     | 
| 
      
 57 
     | 
    
         
            +
                  # class A
         
     | 
| 
      
 58 
     | 
    
         
            +
                  #   class << self
         
     | 
| 
      
 59 
     | 
    
         
            +
                  #     def bar = ()     # :singleton
         
     | 
| 
      
 60 
     | 
    
         
            +
                  #   end
         
     | 
| 
      
 61 
     | 
    
         
            +
                  # end
         
     | 
| 
      
 62 
     | 
    
         
            +
                  #
         
     | 
| 
      
 63 
     | 
    
         
            +
                  # def object.foo = ()  # Not supported (returns :instance)
         
     | 
| 
      
 64 
     | 
    
         
            +
                  # ```
         
     | 
| 
      
 65 
     | 
    
         
            +
                  #
         
     | 
| 
      
 66 
     | 
    
         
            +
                  # @rbs member: AST::Members::RubyDef
         
     | 
| 
      
 67 
     | 
    
         
            +
                  # @rbs decl: AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl
         
     | 
| 
      
 68 
     | 
    
         
            +
                  # @rbs returns RBS::AST::Members::MethodDefinition::kind
         
     | 
| 
      
 69 
     | 
    
         
            +
                  def method_kind: (AST::Members::RubyDef member, AST::Declarations::ClassDecl | AST::Declarations::ModuleDecl | AST::Declarations::SingletonClassDecl decl) -> RBS::AST::Members::MethodDefinition::kind
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
      
 71 
     | 
    
         
            +
              end
         
     | 
| 
      
 72 
     | 
    
         
            +
            end
         
     |