diff options
author | Gopal Patel <[email protected]> | 2024-01-08 10:31:37 -0800 |
---|---|---|
committer | git <[email protected]> | 2024-02-24 03:39:22 +0000 |
commit | 7556fd937cfedbee9775b92124fcdce5c416dd50 () | |
tree | 55bca2cd9e0dce4543c8e086bda52d3c2158e1a6 | |
parent | e03e9c3644c3c5a8713e1fed547da0c0becf36de (diff) |
[ruby/prism] Split private types
https://.com/ruby/prism/commit/0209d093ec
-rw-r--r-- | lib/prism/node_ext.rb | 7 | ||||
-rw-r--r-- | lib/prism/pack.rb | 1 | ||||
-rw-r--r-- | lib/prism/parse_result.rb | 12 | ||||
-rw-r--r-- | lib/prism/parse_result/comments.rb | 1 | ||||
-rw-r--r-- | lib/prism/parse_result/newlines.rb | 6 | ||||
-rw-r--r-- | lib/prism/pattern.rb | 22 | ||||
-rw-r--r-- | lib/prism/prism.gemspec | 9 | ||||
-rw-r--r-- | prism/config.yml | 5 | ||||
-rw-r--r-- | prism/templates/lib/prism/dot_visitor.rb.erb | 2 | ||||
-rw-r--r-- | prism/templates/lib/prism/node.rb.erb | 11 | ||||
-rwxr-xr-x | prism/templates/template.rb | 27 |
11 files changed, 65 insertions, 38 deletions
@@ -169,14 +169,17 @@ module Prism class ParametersNode < Node # Mirrors the Method#parameters method. def signature - names = [] #: Array[[:req | :opt | :rest | :keyreq | :key | :keyrest | :block, Symbol] | [:rest | :keyrest | :nokey]] requireds.each do |param| names << (param.is_a?(MultiTargetNode) ? [:req] : [:req, param.name]) end optionals.each { |param| names << [:opt, param.name] } - names << [:rest, rest.name || :*] if rest posts.each do |param| names << (param.is_a?(MultiTargetNode) ? [:req] : [:req, param.name]) @@ -216,6 +216,7 @@ module Prism else source = directive.source end " #{source.ljust(source_width)} #{directive.describe}" end @@ -30,7 +30,7 @@ module Prism # Perform a byteslice on the source code using the given byte offset and # byte length. def slice(byte_offset, length) - source.byteslice(byte_offset, length) end # Binary search through the offsets to find the line number for the given @@ -52,7 +52,7 @@ module Prism # Return the character offset for the given byte offset. def character_offset(byte_offset) - source.byteslice(0, byte_offset).length end # Return the column number in characters for the given byte offset. @@ -157,12 +157,8 @@ module Prism end # Create a new location object with the given options. - def copy(**options) - Location.new( - options.fetch(:source) { source }, - options.fetch(:start_offset) { start_offset }, - options.fetch(:length) { length } - ) end # Returns a string representation of this location. @@ -150,6 +150,7 @@ module Prism target_end = target.end_offset if target.encloses?(comment) # The comment is completely contained by this target. Abandon the # binary search at this level. return nearest_targets(target.node, comment) @@ -58,7 +58,11 @@ module Prism # Walk the tree and mark nodes that are on a new line. def mark_newlines! - value.accept(Newlines.new(Array.new(1 + source.offsets.size, false))) end end end @@ -69,7 +69,14 @@ module Prism # nodes. def compile result = Prism.parse("case nil\nin #{query}\nend") - compile_node(result.value.statements.body.last.conditions.last.pattern) end # Scan the given node and all of its children for nodes that match the @@ -77,13 +84,14 @@ module Prism # matches the pattern. If no block is given, an enumerator will be returned # that will yield each node that matches the pattern. def scan(root) - return to_enum(__method__, root) unless block_given? @compiled ||= compile queue = [root] while (node = queue.shift) - yield node if @compiled.call(node) queue.concat(node.compact_child_nodes) end end @@ -174,7 +182,13 @@ module Prism preprocessed = node.elements.to_h do |element| - [element.key.unescaped.to_sym, compile_node(element.value)] end compiled_keywords = ->(other) do @@ -125,19 +125,14 @@ Gem::Specification.new do |spec| "sig/manifest.yaml", "sig/prism.rbs", "sig/prism/compiler.rbs", - "sig/prism/debug.rbs", - "sig/prism/desugar_compiler.rbs", "sig/prism/diser.rbs", "sig/prism/dot_visitor.rbs", "sig/prism/dsl.rbs", - "sig/prism/lex_compat.rbs", "sig/prism/mutation_compiler.rbs", - "sig/prism/node_ext.rbs", - "sig/prism/node_inspector.rbs", "sig/prism/node.rbs", "sig/prism/pack.rbs", - "sig/prism/parse_result/comments.rbs", - "sig/prism/parse_result/newlines.rbs", "sig/prism/pattern.rbs", "sig/prism/ripper_compat.rbs", "sig/prism/serialize.rbs", @@ -692,7 +692,6 @@ nodes: type: constant[] - name: parameters type: node? - kind: BlockParametersNode - name: body type: node? - name: opening_loc @@ -1583,8 +1582,12 @@ nodes: type: node? - name: elements type: node[] - name: rest type: node? - name: opening_loc type: location? - name: closing_loc @@ -17,7 +17,7 @@ module Prism if port "<tr><td align=\"left\" colspan=\"2\" port=\"#{name}\">#{name}</td></tr>" else - "<tr><td align=\"left\">#{name}</td><td>#{CGI.escapeHTML(value)}</td></tr>" end end end @@ -182,14 +182,9 @@ module Prism }.compact.join(", ") %>] #: Array[Prism::node | Location] end - # def copy: (**params) -> <%= node.name %> - def copy(**params) - <%= node.name %>.new( - source, - <%- (node.fields.map(&:name) + ["location"]).map do |name| -%> - params.fetch(:<%= name %>) { <%= name %> }, - <%- end -%> - ) end # def deconstruct: () -> Array[nil | Node] @@ -99,11 +99,11 @@ module Prism end def specific_kind - @options[:kind] unless @options[:kind].is_a?(Array) end def union_kind - options[:kind] if @options[:kind].is_a?(Array) end end @@ -132,7 +132,7 @@ module Prism if specific_kind "#{specific_kind}?" elsif union_kind - [union_kind, "nil"].join(" | ") else "Prism::node?" end @@ -147,7 +147,13 @@ module Prism # references and store them directly on the struct. class NodeListField < Field def rbs_class - "Array[Prism::node]" end def rbi_class @@ -157,6 +163,15 @@ module Prism def java_type "Node[]" end end # This represents a field on a node that is the ID of a string interned @@ -569,12 +584,12 @@ module Prism "src/token_type.c", "rbi/prism.rbi", "sig/prism.rbs", - "sig/prism/dot_visitor.rbs", "sig/prism/dsl.rbs", "sig/prism/mutation_compiler.rbs", "sig/prism/node.rbs", - "sig/prism/ripper_compat.rbs", "sig/prism/visitor.rbs", ] end |