Issue #8956 has been updated by nobu (Nobuyoshi Nakada).


Additional patch for labeled assocs.

diff --git a/parse.y b/parse.y
index b0a7cc4..63b4334 100644
--- a/parse.y
+++ b/parse.y
@@ -5012,6 +5012,9 @@ trailer		: /* none */
 		;
 
 assoc_seperator	: '\n'
+		    {
+			command_start = FALSE;
+		    }
 		| ','
 		;
 

----------------------------------------
Feature #8956: Allow hash members delimited by \n inside of {}
https://bugs.ruby-lang.org/issues/8956#change-42024

Author: adamdunson (Adam Dunson)
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: 


=begin
Currently, hashes require members to be delimited by commas ((({,}))), even inside curly braces. E.g.,

  some_hash = {
    :foo => 'bar',
    :bar => 'foo',
    :baz => {
      :qux => 'quux',
      :corge => 'grault'
    }
  }

In my opinion, these commas add nothing of value to this particular example since, visually, the members are already delimited by a newline ((({\n}))). Additionally, missing a comma between members results in (({syntax error, unexpected tSYMBEG, expecting '}'})).

I propose we make these commas optional, such that the following syntax would be possible:

  some_hash = {
    :foo => 'bar'
    :bar => 'foo'
    :baz => {
      :qux => 'quux'
      :corge => 'grault'
    }
  }

This change would not affect existing hashes. Developers would be able to mix and match the old and new syntaxes as such:

  some_hash = {
    :foo => 'bar'
    :bar => 'foo'
    :baz => {
      :foo => 'bar' + 'baz'
      :bar => 'foo', :qux => 'quux'
      :corge => 'grault'
    }
  }

This change would also reduce the occurrence of syntax errors in cases where the developer temporarily replaces a value in the hash, e.g.,

  some_hash = {
    :this => 'that',
    :foo => 'not bar'#'bar',
    :those => 'the other'
  }

Finally, this change would only affect hashes inside curly braces (for hopefully obvious reasons).

I have attached a diff of my suggested changes along with a script to test a variety of use cases. I also have an open pull request on GitHub: ((<URL:https://github.com/ruby/ruby/pull/402>))

Please let me know if there's anything I've missed or that needs clarification.
=end


-- 
http://bugs.ruby-lang.org/