Skip to content

Commit

Permalink
specify prism >=0.15.1 in gemspec
Browse files Browse the repository at this point in the history
  • Loading branch information
tompng committed Oct 28, 2023
1 parent b2e6b6c commit 92b2305
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 6 deletions.
2 changes: 1 addition & 1 deletion katakata_irb.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
# Uncomment to register a new dependency of your gem
spec.add_dependency 'irb', '>= 1.4.0'
spec.add_dependency 'reline', '>= 0.3.0'
spec.add_dependency 'prism', '>= 0.14.0'
spec.add_dependency 'prism', '>= 0.15.1'
spec.add_dependency 'rbs'

# For more information and examples about making a new gem, check out our
Expand Down
6 changes: 3 additions & 3 deletions lib/katakata_irb/type_analyzer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -319,10 +319,10 @@ def evaluate_index_and_write_node(node, scope) = evaluate_call_write(node, scope
def evaluate_index_or_write_node(node, scope) = evaluate_call_write(node, scope, :or, :[]=)
def evaluate_call_write(node, scope, operator, write_name)
receiver_type = evaluate node.receiver, scope
if node.respond_to? :arguments
# Prism >= 0.15.0, Call{Operator,And,Or}WriteNode does not have arguments
if write_name == :[]=
args_types, kwargs_types, block_sym_node, has_block = evaluate_call_node_arguments node, scope
else
# Call{Operator,And,Or}WriteNode does not have arguments
args_types = []
end
if block_sym_node
Expand Down Expand Up @@ -795,7 +795,7 @@ def evaluate_missing_node(_node, _scope) = KatakataIrb::Types::NIL
def evaluate_call_node_arguments(call_node, scope)
# call_node.arguments is Prism::ArgumentsNode
arguments = call_node.arguments&.arguments&.dup || []
block_arg = call_node.block.expression if call_node.respond_to?(:block) && call_node.block.is_a?(Prism::BlockArgumentNode)
block_arg = call_node.block.expression if call_node.block.is_a?(Prism::BlockArgumentNode)
kwargs = arguments.pop.elements if arguments.last.is_a?(Prism::KeywordHashNode)
args_types = arguments.map do |arg|
case arg
Expand Down
2 changes: 0 additions & 2 deletions test/test_katakata_irb.rb
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ def test_prism_node_names
ignore_class_names = [
# Not traversed
'Prism::BlockLocalVariableNode',
# Added in prism 0.15.0
'Prism::IndexAndWriteNode', 'Prism::IndexOperatorWriteNode', 'Prism::IndexOrWriteNode',
# Removed in prism > 0.15.1
'Prism::RequiredDestructuredParameterNode'
]
Expand Down

0 comments on commit 92b2305

Please sign in to comment.