1 // PERMUTE_ARGS:
2 // REQUIRED_ARGS: -D -Dd${RESULTS_DIR}/compilable -o-
3 // POST_SCRIPT: compilable/extra-files/ddocAny-postscript.sh
4 
5 module ddoc648;
6 
7 /// Mixin declaration
8 mixin template Mixin1()
9 {
10     /// struct S
11     struct S { }
12 }
13 
14 /// class A
15 class A
16 {
17     /// field x
18     int x;
19 
20     /// no docs for mixin statement (only for expanded members)
21     mixin Mixin1!();
22 }
23 
24 /// class AB
25 class AB
26 {
27     /// field x
28     int x;
29 
30     // no docs for mixin or its contents, must be a ddoc comment
31     mixin Mixin1!();
32 }
33 
34 /// Mixin declaration2
35 mixin template Mixin2()
36 {
37     /// struct S2
38     struct S2 { }
39 }
40 
41 /// Mixin declaration3
42 mixin template Mixin3()
43 {
44     /// another field
45     int f;
46 
47     /// no docs for mixin statement (only for expanded members)
48     mixin Mixin2!();
49 }
50 
51 /// class B1
52 class B1
53 {
54     /// no docs for mixin statement (only for expanded members)
55     mixin Mixin3!();
56 }
57 
58 
59 /// Mixin declaration3
60 mixin template Mixin4()
61 {
62     /// another field
63     int f;
64 
65     // no docs at all for non-ddoc comment
66     mixin Mixin2!();
67 }
68 
69 /// class B2
70 class B2
71 {
72     /// no docs for mixin statement (only for expanded members)
73     mixin Mixin4!();
74 }
75 
76 /// no docs for mixin statement (only for expanded members)
77 mixin Mixin3!();
78 
79 ///
80 struct TS(T)
81 {
82     mixin template MT()
83     {
84     }
85 
86     mixin MT;  /// avoid calling semantic
87 
88     ///
89     int field;
90 }