good point. I forgot about them being optional. Of course, the example also proves the point that statement terminators facilitate better reporting of these types of errors. David Vallner wrote: > Mike Cargal wrote: >> So, IMHO, the primary cause is the absence of those pesky statement >> terminators. > > Ruby has a statement terminator, it's just optional. If this is an > issue for you, feel free to use it. > > Feeding the file: > > 1 class Foo > 2 > 3 def baz > 4 puts 'quux'; > 5 end > 6 > 7 def foo > 8 puts 'bar'; > 9 return Integer("10"; > 10 end > 11 > 12 def fred > 13 puts 'barney' > 14 end > 15 > 16 end > > to ruby results in: > > foo.rb:9: syntax error > foo.rb:16: syntax error > > And the parser fails rather cleanly on the first unclosed paren. It's > not quite as if the syntax were strict, and I'm sure some things can > slip through, but it's a help. > > Ruby isn't about enforcing rules and making decisions for you, it's > about TIMTOWDI and adopting conventions that help you personally from > the options available. > > David Vallner > >