{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/csharplang/issues/1533","repository_url":"https://api.github.com/repos/dotnet/csharplang","labels_url":"https://api.github.com/repos/dotnet/csharplang/issues/1533/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/csharplang/issues/1533/comments","events_url":"https://api.github.com/repos/dotnet/csharplang/issues/1533/events","html_url":"https://github.com/dotnet/csharplang/issues/1533","id":323763238,"number":1533,"title":"Possible missing expression in Expression Table in language specification introduction.","user":{"login":"enntwo","id":526401,"avatar_url":"https://avatars1.githubusercontent.com/u/526401?v=4","gravatar_id":"","url":"https://api.github.com/users/enntwo","html_url":"https://github.com/enntwo","followers_url":"https://api.github.com/users/enntwo/followers","following_url":"https://api.github.com/users/enntwo/following{/other_user}","gists_url":"https://api.github.com/users/enntwo/gists{/gist_id}","starred_url":"https://api.github.com/users/enntwo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enntwo/subscriptions","organizations_url":"https://api.github.com/users/enntwo/orgs","repos_url":"https://api.github.com/users/enntwo/repos","events_url":"https://api.github.com/users/enntwo/events{/privacy}","received_events_url":"https://api.github.com/users/enntwo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-05-16T19:54:01Z","updated_at":"2018-05-17T13:16:10Z","closed_at":null,"author_association":"NONE","body":"In reference to the Expression Table in spec/introduction.md:\r\nhttps://github.com/dotnet/csharplang/blob/master/spec/introduction.md#expressions\r\n\r\nImplicitly-typed array definition expressions seem to be missing from from the summary chart here. \r\n`new[] {...};`\r\n\r\nSeeing as the three variations of object initialization expressions are provided, including the anonymous object initializer, it seems consistent to include the implicitly-typed array definition after the Array creation expression.\r\n\r\n**Assumptions**\r\n\r\nMy assumption is that is currently omitted because it is a form of the Array creation expression, rather than a separate expression (such as object creation vs. anonymous object creation):\r\n\r\n\r\n> array_creation_expression\r\n>     : 'new' non_array_type '[' expression_list ']' rank_specifier* array_initializer?\r\n>     | 'new' array_type array_initializer\r\n>     | 'new' rank_specifier array_initializer          // Implicitly-typed array definition\r\n>     ;\r\n> \r\n> object_creation_expression\r\n>     : 'new' type '(' argument_list? ')' object_or_collection_initializer?\r\n>     | 'new' type object_or_collection_initializer\r\n>     ;\r\n> \r\n> anonymous_object_creation_expression\r\n>     : 'new' anonymous_object_initializer\r\n>     ;\r\n\r\nThough my counterpoint to this assumption is that both object creation and object creation with initializer are listed on separate lines even though they are both examples of the _object_creation_expression_ above.\r\n\r\nIt is also my assumption that the table is exhaustive, I do not know if are some expressions are omitted for brevity. I understand that not all forms of every expression is shown (in general a single form of each expression is shown) but this feels like a useful inclusion, much like object creation vs. object creation with initializer.\r\n\t\r\n"},"comment":{"url":"https://api.github.com/repos/dotnet/csharplang/issues/comments/389862337","html_url":"https://github.com/dotnet/csharplang/issues/1533#issuecomment-389862337","issue_url":"https://api.github.com/repos/dotnet/csharplang/issues/1533","id":389862337,"user":{"login":"svick","id":287848,"avatar_url":"https://avatars3.githubusercontent.com/u/287848?v=4","gravatar_id":"","url":"https://api.github.com/users/svick","html_url":"https://github.com/svick","followers_url":"https://api.github.com/users/svick/followers","following_url":"https://api.github.com/users/svick/following{/other_user}","gists_url":"https://api.github.com/users/svick/gists{/gist_id}","starred_url":"https://api.github.com/users/svick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/svick/subscriptions","organizations_url":"https://api.github.com/users/svick/orgs","repos_url":"https://api.github.com/users/svick/repos","events_url":"https://api.github.com/users/svick/events{/privacy}","received_events_url":"https://api.github.com/users/svick/received_events","type":"User","site_admin":false},"created_at":"2018-05-17T13:16:10Z","updated_at":"2018-05-17T13:16:10Z","author_association":"CONTRIBUTOR","body":"> Seeing as the three variations of object initialization expressions are provided\r\n\r\nThere is actually one variant missing from the table: object initialization without parentheses: `new T{...}`."}}
{"actor":{"display_login":"svick"}}