Alex Rivera | Logout

What triggers the Ruby warning about ambiguous first argument?

Asked 2011-03-08T23:52:29.800
18

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?

Edit
Report

1 Answer

16

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.

answered 2011-03-09T00:17:51.090

Your Answer