1// Copyright 2012 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// This is a package for testing comment placement by go/printer.
6package main
7
8// Test cases for idempotent comment formatting (was issue 1835).
9/*
10c1a
11*/
12/*
13 c1b
14*/
15/* foo
16c1c
17*/
18/* foo
19 c1d
20*/
21/*
22c1e
23foo */
24/*
25 c1f
26 foo */
27
28func f() {
29 /*
30 c2a
31 */
32 /*
33 c2b
34 */
35 /* foo
36 c2c
37 */
38 /* foo
39 c2d
40 */
41 /*
42 c2e
43 foo */
44 /*
45 c2f
46 foo */
47}
48
49func g() {
50 /*
51 c3a
52 */
53 /*
54 c3b
55 */
56 /* foo
57 c3c
58 */
59 /* foo
60 c3d
61 */
62 /*
63 c3e
64 foo */
65 /*
66 c3f
67 foo */
68}
69
70// Test case taken literally from issue 1835.
71func main() {
72 /*
73 prints test 5 times
74 */
75 for i := 0; i < 5; i++ {
76 println("test")
77 }
78}
79
80func issue5623() {
81L:
82 _ = yyyyyyyyyyyyyyyy // comment - should be aligned
83 _ = xxxxxxxxxxxxxxxxxxxxxxxxxxxx /* comment */
84
85 _ = yyyyyyyyyyyyyyyy /* comment - should be aligned */
86 _ = xxxxxxxxxxxxxxxxxxxxxxxxxxxx // comment
87
88LLLLLLL:
89 _ = yyyyyyyyyyyyyyyy // comment - should be aligned
90 _ = xxxxxxxxxxxxxxxxxxxxxxxxxxxx // comment
91
92LL:
93LLLLL:
94 _ = xxxxxxxxxxxxxxxxxxxxxxxxxxxx /* comment */
95 _ = yyyyyyyyyyyyyyyy /* comment - should be aligned */
96
97 _ = xxxxxxxxxxxxxxxxxxxxxxxxxxxx // comment
98 _ = yyyyyyyyyyyyyyyy // comment - should be aligned
99
100 // test case from issue
101label:
102 mask := uint64(1)<<c - 1 // Allocation mask
103 used := atomic.LoadUint64(&h.used) // Current allocations
104}
105
106// Test cases for issue 18782
107var _ = [][]int{
108 /* a, b, c, d, e */
109 /* a */ {0, 0, 0, 0, 0},
110 /* b */ {0, 5, 4, 4, 4},
111 /* c */ {0, 4, 5, 4, 4},
112 /* d */ {0, 4, 4, 5, 4},
113 /* e */ {0, 4, 4, 4, 5},
114}
115
116var _ = T{ /* a */ 0}
117
118var _ = T{ /* a */ /* b */ 0}
119
120var _ = T{ /* a */ /* b */
121 /* c */ 0,
122}
123
124var _ = T{ /* a */ /* b */
125 /* c */
126 /* d */ 0,
127}
128
129var _ = T{
130 /* a */
131 /* b */ 0,
132}
133
134var _ = T{ /* a */ {}}
135
136var _ = T{ /* a */ /* b */ {}}
137
138var _ = T{ /* a */ /* b */
139 /* c */ {},
140}
141
142var _ = T{ /* a */ /* b */
143 /* c */
144 /* d */ {},
145}
146
147var _ = T{
148 /* a */
149 /* b */ {},
150}
151
152var _ = []T{
153 func() {
154 var _ = [][]int{
155 /* a, b, c, d, e */
156 /* a */ {0, 0, 0, 0, 0},
157 /* b */ {0, 5, 4, 4, 4},
158 /* c */ {0, 4, 5, 4, 4},
159 /* d */ {0, 4, 4, 5, 4},
160 /* e */ {0, 4, 4, 4, 5},
161 }
162 },
163}
View as plain text