Class: RBS::Trace::Builder
- Inherits:
-
Object
- Object
- RBS::Trace::Builder
show all
- Includes:
- Helpers
- Defined in:
- lib/rbs/trace/builder.rb
Overview
rubocop:disable Metrics/ClassLength
Instance Method Summary
collapse
Methods included from Helpers
#new_class_decl, #new_method_definition, #new_module_decl, #type_bool, #type_nil, #type_untyped, #type_void
Instance Method Details
#generics_size ⇒ Object
41
42
43
|
# File 'lib/rbs/trace/builder.rb', line 41
def generics_size
@generics_size ||= DEFAULT_GENERICS_SIZE.dup
end
|
#method_call(bind:, parameters:, void:) ⇒ Object
20
21
22
23
24
25
26
27
|
# File 'lib/rbs/trace/builder.rb', line 20
def method_call(bind:, parameters:, void:)
method_type = parse_parameters(bind, parameters)
return_type = type_void if void
[method_type, return_type].tap do |types|
stack_traces << types
end
end
|
#method_return(return_value) ⇒ Object
30
31
32
33
34
35
36
37
38
|
# File 'lib/rbs/trace/builder.rb', line 30
def method_return(return_value)
method_type, return_type = stack_traces.pop
type = return_type || parse_object(return_value)
new_type = method_type.type.with_return_type(type)
method_type = method_type.update(type: new_type)
AST::Members::MethodDefinition::Overload.new(method_type:, annotations: [])
end
|