From: jdamon@... Date: 2016-09-13T17:11:23+00:00 Subject: [ruby-core:77263] [Ruby trunk Bug#12758] Error when passing Hash construction to function Issue #12758 has been reported by Jimi Damon. ---------------------------------------- Bug #12758: Error when passing Hash construction to function https://bugs.ruby-lang.org/issues/12758 * Author: Jimi Damon * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux] * Backport: 2.3: UNKNOWN ---------------------------------------- I apologize if this is a known issue but I couldn't find it in the search. If you have a function that can take a Hash, it behaves correctly if you pass a variable that contains the Hash compared to when you pass in a Hash construction using braces {}. Example def foo(a) puts a.class puts a end > foo [1,2] Array [1, 2] > a = { a:1 } > foo a Hash {:a=>1} # This breaks > foo { a:1 } SyntaxError: (irb):23: syntax error, unexpected ':', expecting '}' foo {a:1} ^ but this works > foo( {a:1} ) Hash {:a=>1} This is more of a bug related to consistent syntax of the language and it is something that is allowed in Groovy and Scala -- https://bugs.ruby-lang.org/ Unsubscribe: