1 // This is a package for testing comment placement by go/printer.
2 //
3 package main
4 
5 // The SZ struct; it is empty.
6 type SZ struct{}
7 
8 // The S0 struct; no field is exported.
9 type S0 struct {
10 	// contains filtered or unexported fields
11 }
12 
13 // The S1 struct; some fields are not exported.
14 type S1 struct {
15 	S0
16 	A, B, C	float	// 3 exported fields
17 	D	int	// 2 unexported fields
18 	// contains filtered or unexported fields
19 }
20 
21 // The S2 struct; all fields are exported.
22 type S2 struct {
23 	S1
24 	A, B, C	float	// 3 exported fields
25 }
26 
27 // The IZ interface; it is empty.
28 type SZ interface{}
29 
30 // The I0 interface; no method is exported.
31 type I0 interface {
32 	// contains filtered or unexported methods
33 }
34 
35 // The I1 interface; some methods are not exported.
36 type I1 interface {
37 	I0
38 	F(x float) float	// exported methods
39 	// contains filtered or unexported methods
40 }
41 
42 // The I2 interface; all methods are exported.
43 type I2 interface {
44 	I0
45 	F(x float) float	// exported method
46 	G(x float) float	// exported method
47 }
48 
49 // The S3 struct; all comments except for the last one must appear in the export.
50 type S3 struct {
51 	// lead comment for F1
52 	F1	int	// line comment for F1
53 	// lead comment for F2
54 	F2	int	// line comment for F2
55 	// contains filtered or unexported fields
56 }
57