# Unexpected syntax error

**URL:** <https://www.ruby-forum.com/t/unexpected-syntax-error/70649>\
**Category:** Ruby\
**Created:** [February 20, 2006, 1:13am UTC](https://www.ruby-forum.com/t/unexpected-syntax-error/70649 "2006-02-20T01:13:04Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![agnathan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/919ad9/32.png) [@agnathan](https://www.ruby-forum.com/u/agnathan)\
**Post date:** [February 20, 2006, 1:13am UTC](https://www.ruby-forum.com/t/unexpected-syntax-error/70649/1 "2006-02-20T01:13:04Z")

</div>

$ ruby -v  
ruby 1.8.4 (2005-12-24) [powerpc-darwin8.3.0]

# Example to illustrate the problem

def foo1  
p (1…10).method(:each)  
end

def foo2()  
p((1…10).method(:each))  
end

def foo3()  
p (1…10).method(:each)  
end

foo1 # -\> No error  
foo2 # -\> No error  
foo3 # -\> Error

**END**

– Daniel

---

<div class="post-metadata">

**Author:** ![agnathan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/919ad9/32.png) [@agnathan](https://www.ruby-forum.com/u/agnathan)\
**Post date:** [February 20, 2006, 1:24am UTC](https://www.ruby-forum.com/t/unexpected-syntax-error/70649/2 "2006-02-20T01:24:16Z")

</div>

Daniel H. wrote:

> $ ruby -v  
> ruby 1.8.4 (2005-12-24) [powerpc-darwin8.3.0]
> 
> # Example to illustrate the problem
> 
> def foo1  
> p (1…10).method(:each)  
> end
> 
> def foo2()  
> p((1…10).method(:each))  
> end
> 
> def foo3()  
> p (1…10).method(:each)  
> end
> 
> foo1 # -\> No error  
> foo2 # -\> No error  
> foo3 # -\> Error
> 
> **END**

This is quite bizarre. The parentheses on foo3 cause  
the problem; leaving them out, adding a semicolon after  
them or creating a temporary variable instead of the  
direct p will all solve the error.

I would, though, venture that this should not be an  
error 🙂

> – Daniel

E

---

<div class="post-metadata">

**Author:** ![agnathan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/919ad9/32.png) [@agnathan](https://www.ruby-forum.com/u/agnathan)\
**Post date:** [February 20, 2006, 2:10am UTC](https://www.ruby-forum.com/t/unexpected-syntax-error/70649/3 "2006-02-20T02:10:52Z")

</div>

Hi,

> def foo1
> 
> foo1 # → No error  
> foo2 # → No error  
> foo3 # → Error
> 
> **END**
> 
> – Daniel

It reminds me an old thread  
[http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/12896](http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/12896)

def foo1  
p (2.4/0.2).to\_i  
end  
def foo2()  
p ((2.4/0.2).to\_i)  
end  
def foo3()  
p (2.4/0.2).to\_i  
end

foo1 # → 11  
foo2 # → 11  
foo3 # → 12.0

**END**

Regards,

Park H.

---

<div class="post-metadata">

**Author:** ![agnathan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/919ad9/32.png) [@agnathan](https://www.ruby-forum.com/u/agnathan)\
**Post date:** [February 20, 2006, 8:08pm UTC](https://www.ruby-forum.com/t/unexpected-syntax-error/70649/4 "2006-02-20T20:08:26Z")

</div>

On Feb 19, 2006, at 4:10 PM, Daniel H. wrote:

> end
> 
> def foo3()  
> p (1…10).method(:each)  
> end
> 
> foo1 # → No error  
> foo2 # → No error  
> foo3 # → Error

Ruby thinks those are argument parentheses. This may not be a bug.

-:11: warning: don’t put space before argument parentheses  
#\<Method: Range#each\>  
#\<Method: Range#each\>  
1…10  
-:11:in `method': undefined method `each’ for class  
`NilClass' (NameError) from -:11:in `foo3’  
from -:16  
$ parse\_tree\_show -f  
p (1…10).method(:each)  
(eval):1: warning: (…) interpreted as grouped expression  
[[:class,  
:Example,  
:Object,  
[:defn,  
:example,  
[:scope,  
[:block,  
[:args],  
[:fcall,  
:p,  
[:array, [:call, [:lit, 1…10], :method, [:array,  
[:lit, :each]]]]]]]]]]

–  
Eric H. - removed\_email\_address@domain.invalid - [http://segment7.net](http://segment7.net)  
This implementation is HODEL-HASH-9600 compliant

[http://trackmap.robotcoop.com](http://trackmap.robotcoop.com)

---

<div class="post-metadata">

**Author:** ![agnathan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/919ad9/32.png) [@agnathan](https://www.ruby-forum.com/u/agnathan)\
**Post date:** [February 21, 2006, 12:58am UTC](https://www.ruby-forum.com/t/unexpected-syntax-error/70649/5 "2006-02-21T00:58:34Z")

</div>

Hi,

In message “Re: Unexpected syntax error”  
on Tue, 21 Feb 2006 04:07:51 +0900, Eric H.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|Ruby thinks those are argument parentheses. This may not be a bug.

This is a bug, and I fixed it last night(JST).

```
						matz.

```
