Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What triggers the Ruby warning about ambiguous first argument?

Tags:

ruby

warnings

In Ruby 1.9.1, if you do

$VERBOSE = true
puts /m/ , 42.to_s

or if I do

$VERBOSE = true
puts /m/ , "42"

You get the warning

warning: ambiguous first argument; put parentheses or even spaces

But I don't get it if I do

$VERBOSE = true
puts "m" , 42.to_s

or

$VERBOSE = true
puts(/m/, 42.to_s)

So what specifically triggers this warning? And what more spaces could I have added to the original expression?

like image 732
Andrew Grimm Avatar asked Mar 08 '11 23:03

Andrew Grimm


1 Answers

The "problem" is that / could signify division or a regular expression. The message is generic; the parser doesn't necessarily mean that spaces would have helped a given specific expression.

like image 94
DigitalRoss Avatar answered Oct 30 '22 09:10

DigitalRoss