Class: RuboCop::Cop::Style::RbsInline::DataDefineWithBlock
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Style::RbsInline::DataDefineWithBlock
- Defined in:
- lib/rubocop/cop/style/rbs_inline/data_define_with_block.rb
Overview
Checks for ‘Data.define` calls with a block.
RBS::Inline does not parse the contents of ‘Data.define` blocks, so any methods defined inside will not be recognized for type checking. Instead, call `Data.define` without a block and define additional methods by reopening the class separately.
NOTE: This is a known limitation of RBS::Inline. See github.com/soutaro/rbs-inline/pull/183 for the upstream fix.
Constant Summary collapse
- MSG =
'Do not use `Data.define` with a block. RBS::Inline does not parse block contents, ' \ 'so methods defined in the block will not be recognized. ' \ 'Use a separate class definition instead.'
Instance Method Summary collapse
Instance Method Details
#on_send(node) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/rubocop/cop/style/rbs_inline/data_define_with_block.rb', line 36 def on_send(node) #: void return unless data_define?(node) block_node = node.parent return unless block_node&.block_type? add_offense(node) end |