Skip to content

Commit

Permalink
Fix some missing methods/signatures in RBIs
Browse files Browse the repository at this point in the history
  • Loading branch information
paracycle committed Mar 6, 2024
1 parent bf4368d commit 1d87b8c
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 8 deletions.
2 changes: 1 addition & 1 deletion rbi/prism/compiler.rbi
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ class Prism::Compiler
sig { params(nodes: T::Array[T.nilable(Prism::Node)]).returns(T::Array[T.nilable(Result)]) }
def visit_all(nodes); end

sig { params(node: T.nilable(Prism::Node)).returns(T::Array[T.nilable(Result)]) }
sig { params(node: Prism::Node).returns(T::Array[T.nilable(Result)]) }
def visit_child_nodes(node); end
end
10 changes: 5 additions & 5 deletions rbi/prism/translation/ripper.rbi
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# typed: strict

class Prism::Translation::Ripper < Prism::Translation::RipperCompiler
class Prism::Translation::Ripper < Prism::Compiler
Result = type_member

sig { returns(T::Boolean) }
Expand All @@ -9,11 +9,11 @@ class Prism::Translation::Ripper < Prism::Translation::RipperCompiler
sig { returns(T.nilable(Result)) }
def parse; end

sig { params(source: String).returns(T.untyped) }
def self.sexp_raw(source); end
sig { params(source: String, filename: String, lineno: Integer, raise_errors: T.untyped).returns(T.untyped) }
def self.sexp_raw(source, filename = "-", lineno = 1, raise_errors: false); end

sig { params(source: String).returns(T.untyped) }
def self.sexp(source); end
sig { params(source: String, filename: String, lineno: Integer, raise_errors: T.untyped).returns(T.untyped) }
def self.sexp(source, filename = "-", lineno = 1, raise_errors: false); end
end

class Prism::Translation::Ripper::SexpBuilder < Prism::Translation::Ripper
Expand Down
5 changes: 5 additions & 0 deletions templates/lib/prism/node.rb.erb
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,11 @@ module Prism
def type
raise NoMethodError, "undefined method `type' for #{inspect}"
end

# Returns a string representation of the node.
def inspect(inspector = NodeInspector.new)
raise NoMethodError, "undefined method `inspect' for #{inspect}"
end
end
<%- nodes.each do |node| -%>
Expand Down
7 changes: 5 additions & 2 deletions templates/rbi/prism/node.rbi.erb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Prism::Node
sig { returns(String) }
def to_dot; end

sig { abstract.params(visitor: Prism::Visitor).void }
sig { abstract.params(visitor: Prism::Visitor).returns(T.untyped) }
def accept(visitor); end

sig { abstract.returns(T::Array[T.nilable(Prism::Node)]) }
Expand All @@ -39,6 +39,9 @@ class Prism::Node

sig { abstract.returns(Symbol) }
def type; end

sig { abstract.params(inspector: Prism::NodeInspector).returns(String) }
def inspect(inspector = Prism::NodeInspector.new); end
end
<%- nodes.each do |node| -%>

Expand All @@ -54,7 +57,7 @@ class Prism::<%= node.name -%> < Prism::Node
sig { params(<%= ["source: Prism::Source", *node.fields.map { |field| "#{field.name}: #{field.rbi_class}" }, "location: Prism::Location"].join(", ") %>).void }
def initialize(<%= ["source", *node.fields.map(&:name), "location"].join(", ") %>); end

sig { override.params(visitor: Prism::Visitor).void }
sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
def accept(visitor); end

sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
Expand Down

0 comments on commit 1d87b8c

Please sign in to comment.