module Sorbet::Eraser::Patterns
Public Instance Methods
on_command(ident, args_add_block)
click to toggle source
Calls superclass method
# File lib/sorbet/eraser/patterns.rb, line 122 def on_command(ident, args_add_block) # extend T::Sig if ident.match?("<@ident extend>") && args_add_block.match?("<args_add_block <args <const_path_ref <var_ref <@const T>> <@const Sig>>> false>") patterns << ExtendTSigPattern.new(ident.range.begin..args_add_block.range.end) end super end
on_command_call(var_ref, period, ident, args_add_block)
click to toggle source
Calls superclass method
# File lib/sorbet/eraser/patterns.rb, line 141 def on_command_call(var_ref, period, ident, args_add_block) if var_ref.match?("<var_ref <@const T>>") && period.match?("<@period .>") # T.must foo if ident.match?("<@ident must>") && args_add_block.match?(/<args_add_block <args <.+>> false>/) && args_add_block.body[0].body.length == 1 patterns << TMustNoParensPattern.new(var_ref.range.begin..args_add_block.range.end) end end super end
on_method_add_arg(call, arg_paren)
click to toggle source
Calls superclass method
# File lib/sorbet/eraser/patterns.rb, line 62 def on_method_add_arg(call, arg_paren) # T.absurd(foo) if call.match?(/<call <var_ref <@const T>> <@period \.> <@ident absurd>>/) && arg_paren.match?(/<arg_paren <args_add_block <args .+> false>>/) patterns << TAbsurdParensPattern.new(call.range.begin..arg_paren.range.end) end # T.must(foo) # T.reveal_type(foo) if call.match?(/<call <var_ref <@const T>> <@period \.> <@ident (?:must|reveal_type)>>/) && arg_paren.match?(/<arg_paren <args_add_block <args .+> false>>/) patterns << TOneArgMethodCallParensPattern.new(call.range.begin..arg_paren.range.end) end # T.assert_type!(foo, bar) # T.cast(foo, bar) # T.let(foo, bar) if call.match?(/<call <var_ref <@const T>> <@period \.> <@ident (?:assert_type!|cast|let)>>/) && arg_paren.match?(/<arg_paren <args_add_block <args .+> false>>/) patterns << TTwoArgMethodCallParensPattern.new(call.range.begin..arg_paren.range.end) end # T.bind(self, foo) if call.match?(/<call <var_ref <@const T>> <@period \.> <@ident bind>>/) && arg_paren.match?(/<arg_paren <args_add_block <args <var_ref <@kw self>> .+> false>>/) patterns << TTwoArgMethodCallParensPattern.new(call.range.begin..arg_paren.range.end) end super end
on_method_add_block(method_add_arg, block)
click to toggle source
Calls superclass method
# File lib/sorbet/eraser/patterns.rb, line 103 def on_method_add_block(method_add_arg, block) # T.type_alias { foo } if method_add_arg.match?("<call <var_ref <@const T>> <@period .> <@ident type_alias>>") && block.match?(/<brace_block <stmts .+>>/) patterns << TTypeAliasBraceBlockPattern.new(method_add_arg.range.begin..block.range.end) end super end
on_stmts_add(node, value)
click to toggle source
Calls superclass method
# File lib/sorbet/eraser/patterns.rb, line 163 def on_stmts_add(node, value) # sig { foo } if value.match?(/<method_add_block <method_add_arg <fcall <@ident sig>> <args >> <brace_block <stmts .+>>>/) patterns << SigBracesPattern.new(value.range) end super end