lib/raap/method_property.rb in raap-0.5.0 vs lib/raap/method_property.rb in raap-0.6.0

- old
+ new

@@ -1,10 +1,10 @@ # frozen_string_literal: true module RaaP class MethodProperty - class Stats < Struct.new(:success, :skip, :exception, :break) + class Stats < Struct.new(:success, :skip, :exception, :break, keyword_init: true) def initialize(success: 0, skip: 0, exception: 0, break: false) super end end @@ -21,11 +21,11 @@ stats = Stats.new begin Timeout.timeout(@timeout) do catch(:break) do @size_step.each do |size| - call(size:, stats:).tap do |ret| + call(size: size, stats: stats).tap do |ret| case ret when Result::Success stats.success += 1 when Result::Failure # no count @@ -53,12 +53,12 @@ if @method_type.rbs.type.each_type.find { |t| t.instance_of?(::RBS::Types::Bases::Any) } RaaP.logger.info { "Skip type check since `#{@method_type.rbs}` includes `untyped`" } stats.break = true throw :break end - receiver_value = @receiver_type.to_symbolic_call(size:) - args, kwargs, block = @method_type.arguments_to_symbolic_call(size:) + receiver_value = @receiver_type.to_symbolic_call(size: size) + args, kwargs, block = @method_type.arguments_to_symbolic_call(size: size) # @type var symbolic_call: symbolic_call symbolic_call = [:call, receiver_value, @method_name, args, kwargs, block] symbolic_caller = SymbolicCaller.new(symbolic_call, allow_private: @allow_private) begin # ensure symbolic_call @@ -75,39 +75,39 @@ RaaP.logger.error("[#{e.class}] class is not supported to check `bot` type") raise end else return_value = symbolic_caller.eval - check = check_return(receiver_value:, return_value:) + check = check_return(receiver_value: receiver_value, return_value: return_value) end case check in [:success] - Result::Success.new(symbolic_call:, return_value:) + Result::Success.new(symbolic_call: symbolic_call, return_value: return_value) in [:failure] - Result::Failure.new(symbolic_call:, return_value:) + Result::Failure.new(symbolic_call: symbolic_call, return_value: return_value) in [:exception, exception] - Result::Exception.new(symbolic_call:, exception:) + Result::Exception.new(symbolic_call: symbolic_call, exception: exception) end rescue TypeError => exception - Result::Failure.new(symbolic_call:, return_value:, exception:) + Result::Failure.new(symbolic_call: symbolic_call, return_value: return_value, exception: exception) end # not ensure symbolic_call rescue NoMethodError, NotImplementedError => exception - Result::Skip.new(symbolic_call:, exception:) + Result::Skip.new(symbolic_call: symbolic_call, exception: exception) rescue NameError => e - RaaP.logger.error("[#{e.class}] #{e.detailed_message}") + RaaP.logger.warn("[#{e.class}] #{e.detailed_message}") msg = e.name.nil? ? '' : "for `#{BindCall.to_s(e.receiver)}::#{e.name}`" RaaP.logger.warn("Implementation is not found #{msg} maybe.") RaaP.logger.debug(e.backtrace&.join("\n")) stats.break = true throw :break rescue SystemStackError => exception RaaP.logger.info "Found recursive type definition." - Result::Skip.new(symbolic_call:, exception:) + Result::Skip.new(symbolic_call: symbolic_call, exception: exception) rescue => exception - Result::Exception.new(symbolic_call:, exception:) + Result::Exception.new(symbolic_call: symbolic_call, exception: exception) end def check_return(receiver_value:, return_value:) if BindCall.is_a?(receiver_value, Module) if BindCall.is_a?(return_type, ::RBS::Types::ClassSingleton) @@ -124,11 +124,11 @@ else self_class = BindCall.class(receiver_value) instance_class = BindCall.class(receiver_value) end type_check = ::RBS::Test::TypeCheck.new( - self_class:, - instance_class:, + self_class: self_class, + instance_class: instance_class, class_class: Module, builder: RBS.builder, sample_size: 100, unchecked_classes: [] )