From a36b5b99cca834aa4968d7aaa81f5e5565f7c461 Mon Sep 17 00:00:00 2001
From: Robert Griesemer &T
when the element type is *T
.
[...]Point{{1.5, -3.5}, {0, 0}} // same as [...]Point{Point{1.5, -3.5}, Point{0, 0}} [][]int{{1, 2, 3}, {4, 5}} // same as [][]int{[]int{1, 2, 3}, []int{4, 5}} @@ -2278,13 +2276,13 @@ the&T
when the element type is*T
.A parsing ambiguity arises when a composite literal using the -TypeName form of the LiteralType appears between the -keyword and the opening brace of the block of an -"if", "for", or "switch" statement, because the braces surrounding -the expressions in the literal are confused with those introducing -the block of statements. To resolve the ambiguity in this rare case, -the composite literal must appear within -parentheses. +TypeName form of the LiteralType appears as an operand between the +keyword and the opening brace of the block +of an "if", "for", or "switch" statement, and the composite literal +is not enclosed in parentheses, square brackets, or curly braces. +In this rare case, the opening brace of the literal is erroneously parsed +as the one introducing the block of statements. To resolve the ambiguity, +the composite literal must appear within parentheses.
-- 2.48.1