Class: RuboCop::Cop::RBS::Style::OptionalNil
- Inherits:
-
RBS::CopBase
- Object
- Base
- RBS::CopBase
- RuboCop::Cop::RBS::Style::OptionalNil
show all
- Extended by:
- AutoCorrector
- Defined in:
- lib/rubocop/cop/rbs/style/optional_nil.rb
Overview
‘nil?` is the same as `nil`.
Instance Attribute Summary
Attributes inherited from RBS::CopBase
#processed_rbs_source
Instance Method Summary
collapse
documentation_url, #investigation_rbs, #location_to_range, #on_new_investigation, #on_other_file, #on_rbs_class, #on_rbs_interface, #on_rbs_module, #on_rbs_new_investigation, #on_rbs_parsing_error, #on_rbs_private, #on_rbs_public, #parse_rbs, #rbs_buffer, #tokenize, #walk
#on_not_type, #on_type
Instance Method Details
#check_type(type) ⇒ Object
28
29
30
31
32
33
34
35
|
# File 'lib/rubocop/cop/rbs/style/optional_nil.rb', line 28
def check_type(type)
find_replacement(type) do |t, replaced|
range = location_to_range(t.location)
add_offense(range, message: "Use `#{replaced}` instead of `#{t}`") do |corrector|
corrector.replace(range, replaced.to_s)
end
end
end
|
#find_replacement(type, &block) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/rubocop/cop/rbs/style/optional_nil.rb', line 44
def find_replacement(type, &block)
case type
when ::RBS::Types::Optional
case type.type
when ::RBS::Types::Bases::Nil
block.call([type, ::RBS::Types::Bases::Nil.new(location: nil)])
else
find_replacement(type.type, &block)
end
else
type.each_type do |type|
find_replacement(type, &block)
end
end
end
|
#on_rbs_constant(const) ⇒ Object
Also known as:
on_rbs_global, on_rbs_type_alias, on_rbs_attribute, on_rbs_var
37
|
# File 'lib/rubocop/cop/rbs/style/optional_nil.rb', line 37
def on_rbs_constant(const) = check_type(const.type)
|
#on_rbs_def(decl) ⇒ Object
20
21
22
23
24
25
26
|
# File 'lib/rubocop/cop/rbs/style/optional_nil.rb', line 20
def on_rbs_def(decl)
decl.overloads.each do |overload|
overload.method_type.each_type do |type|
check_type(type)
end
end
end
|