ruby-numo / numo-narray

Ruby/Numo::NArray - New NArray class library
http://ruby-numo.github.io/narray/
BSD 3-Clause "New" or "Revised" License
415 stars 41 forks source link

Avoiding `warning: possibly useless use of + in void context` #151

Open mrkn opened 4 years ago

mrkn commented 4 years ago

Our inplace idiom occurs warning like warning: possibly useless use of + in void context. To avoid such warnings, how do you think defining inplace=? With this method, we can write ary.inplace += 10, which don't occur such warnings.

$ cat -n inplace.rb
     1  require 'numo/narray'
     2
     3  class Numo::NArray
     4    # Dummy definition for PoC
     5    def inplace=(other)
     6      self
     7    end
     8  end
     9
    10  a = Numo::DFloat[1, 2, 3, 4, 5]
    11  a.inplace + 10   # this involves a warning
    12  a.inplace += 20  # this doesn't involve a warning
$ ruby -w inplace.rb
inplace.rb:11: warning: possibly useless use of + in void context
masa16 commented 4 years ago

This idea seems a good workaround, but it is not applicable to more complex expressions like

a.inplace * 2 + 1

Hmm...