Skip to content
  • Koichi Sasada's avatar
    ab7ab9e4
    `Warning[:strict_unused_block]` · ab7ab9e4
    Koichi Sasada authored
    to show unused block warning strictly.
    
    ```ruby
    class C
      def f = nil
    end
    
    class D
      def f = yield
    end
    
    [C.new, D.new].each{|obj| obj.f{}}
    ```
    
    In this case, `D#f` accepts a block. However `C#f` doesn't
    accept a block. There are some cases passing a block with
    `obj.f{}` where `obj` is `C` or `D`. To avoid warnings on
    such cases, "unused block warning" will be warned only if
    there is not same name which accepts a block.
    On the above example, `C.new.f{}` doesn't show any warnings
    because there is a same name `D#f` which accepts a block.
    
    We call this default behavior as "relax mode".
    
    `strict_unused_block` new warning category changes from
    "relax mode" to "strict mode", we don't check same name
    methods and `C.new.f{}` will be warned.
    
    [Feature #15554]
    ab7ab9e4
    `Warning[:strict_unused_block]`
    Koichi Sasada authored
    to show unused block warning strictly.
    
    ```ruby
    class C
      def f = nil
    end
    
    class D
      def f = yield
    end
    
    [C.new, D.new].each{|obj| obj.f{}}
    ```
    
    In this case, `D#f` accepts a block. However `C#f` doesn't
    accept a block. There are some cases passing a block with
    `obj.f{}` where `obj` is `C` or `D`. To avoid warnings on
    such cases, "unused block warning" will be warned only if
    there is not same name which accepts a block.
    On the above example, `C.new.f{}` doesn't show any warnings
    because there is a same name `D#f` which accepts a block.
    
    We call this default behavior as "relax mode".
    
    `strict_unused_block` new warning category changes from
    "relax mode" to "strict mode", we don't check same name
    methods and `C.new.f{}` will be warned.
    
    [Feature #15554]
Loading