1 /**
2  * Documentation:  https://dlang.org/phobos/dmd_strictvisitor.html
3  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/strictvisitor.d
4  */
5 
6 module dmd.strictvisitor;
7 
8 import dmd.parsetimevisitor;
9 
10 /** The StrictVisitor asserts 0 an all visiting functions in order to
11   * make sure that all the nodes are visited.
12   */
13 extern(C++) class StrictVisitor(AST) : ParseTimeVisitor!AST
14 {
15     alias visit = ParseTimeVisitor!AST.visit;
16 
17     override void visit(AST.Dsymbol) { assert(0); }
18     override void visit(AST.AliasThis) { assert(0); }
19     override void visit(AST.Declaration) { assert(0); }
20     override void visit(AST.ScopeDsymbol) { assert(0); }
21     override void visit(AST.Import) { assert(0); }
22     override void visit(AST.AttribDeclaration) { assert(0); }
23     override void visit(AST.StaticAssert) { assert(0); }
24     override void visit(AST.DebugSymbol) { assert(0); }
25     override void visit(AST.VersionSymbol) { assert(0); }
26     override void visit(AST.VarDeclaration) { assert(0); }
27     override void visit(AST.FuncDeclaration) { assert(0); }
28     override void visit(AST.AliasDeclaration) { assert(0); }
29     override void visit(AST.TupleDeclaration) { assert(0); }
30     override void visit(AST.FuncLiteralDeclaration) { assert(0); }
31     override void visit(AST.PostBlitDeclaration) { assert(0); }
32     override void visit(AST.CtorDeclaration) { assert(0); }
33     override void visit(AST.DtorDeclaration) { assert(0); }
34     override void visit(AST.InvariantDeclaration) { assert(0); }
35     override void visit(AST.UnitTestDeclaration) { assert(0); }
36     override void visit(AST.NewDeclaration) { assert(0); }
37     override void visit(AST.StaticCtorDeclaration) { assert(0); }
38     override void visit(AST.StaticDtorDeclaration) { assert(0); }
39     override void visit(AST.SharedStaticCtorDeclaration) { assert(0); }
40     override void visit(AST.SharedStaticDtorDeclaration) { assert(0); }
41     override void visit(AST.Package) { assert(0); }
42     override void visit(AST.EnumDeclaration) { assert(0); }
43     override void visit(AST.AggregateDeclaration) { assert(0); }
44     override void visit(AST.TemplateDeclaration) { assert(0); }
45     override void visit(AST.TemplateInstance) { assert(0); }
46     override void visit(AST.Nspace) { assert(0); }
47     override void visit(AST.CompileDeclaration) { assert(0); }
48     override void visit(AST.UserAttributeDeclaration) { assert(0); }
49     override void visit(AST.LinkDeclaration) { assert(0); }
50     override void visit(AST.AnonDeclaration) { assert(0); }
51     override void visit(AST.AlignDeclaration) { assert(0); }
52     override void visit(AST.CPPMangleDeclaration) { assert(0); }
53     override void visit(AST.ProtDeclaration) { assert(0); }
54     override void visit(AST.PragmaDeclaration) { assert(0); }
55     override void visit(AST.StorageClassDeclaration) { assert(0); }
56     override void visit(AST.ConditionalDeclaration) { assert(0); }
57     override void visit(AST.DeprecatedDeclaration) { assert(0); }
58     override void visit(AST.StaticIfDeclaration) { assert(0); }
59     override void visit(AST.EnumMember) { assert(0); }
60     override void visit(AST.Module) { assert(0); }
61     override void visit(AST.StructDeclaration) { assert(0); }
62     override void visit(AST.UnionDeclaration) { assert(0); }
63     override void visit(AST.ClassDeclaration) { assert(0); }
64     override void visit(AST.InterfaceDeclaration) { assert(0); }
65     override void visit(AST.TemplateMixin) { assert(0); }
66     override void visit(AST.Parameter) { assert(0); }
67     override void visit(AST.Statement) { assert(0); }
68     override void visit(AST.ImportStatement) { assert(0); }
69     override void visit(AST.ScopeStatement) { assert(0); }
70     override void visit(AST.ReturnStatement) { assert(0); }
71     override void visit(AST.LabelStatement) { assert(0); }
72     override void visit(AST.StaticAssertStatement) { assert(0); }
73     override void visit(AST.CompileStatement) { assert(0); }
74     override void visit(AST.WhileStatement) { assert(0); }
75     override void visit(AST.ForStatement) { assert(0); }
76     override void visit(AST.DoStatement) { assert(0); }
77     override void visit(AST.ForeachRangeStatement) { assert(0); }
78     override void visit(AST.ForeachStatement) { assert(0); }
79     override void visit(AST.IfStatement) { assert(0); }
80     override void visit(AST.ScopeGuardStatement) { assert(0); }
81     override void visit(AST.ConditionalStatement) { assert(0); }
82     override void visit(AST.PragmaStatement) { assert(0); }
83     override void visit(AST.SwitchStatement) { assert(0); }
84     override void visit(AST.CaseRangeStatement) { assert(0); }
85     override void visit(AST.CaseStatement) { assert(0); }
86     override void visit(AST.DefaultStatement) { assert(0); }
87     override void visit(AST.BreakStatement) { assert(0); }
88     override void visit(AST.ContinueStatement) { assert(0); }
89     override void visit(AST.GotoDefaultStatement) { assert(0); }
90     override void visit(AST.GotoCaseStatement) { assert(0); }
91     override void visit(AST.GotoStatement) { assert(0); }
92     override void visit(AST.SynchronizedStatement) { assert(0); }
93     override void visit(AST.WithStatement) { assert(0); }
94     override void visit(AST.TryCatchStatement) { assert(0); }
95     override void visit(AST.TryFinallyStatement) { assert(0); }
96     override void visit(AST.ThrowStatement) { assert(0); }
97     override void visit(AST.AsmStatement) { assert(0); }
98     override void visit(AST.ExpStatement) { assert(0); }
99     override void visit(AST.CompoundStatement) { assert(0); }
100     override void visit(AST.CompoundDeclarationStatement) { assert(0); }
101     override void visit(AST.CompoundAsmStatement) { assert(0); }
102     override void visit(AST.InlineAsmStatement) { assert(0); }
103     override void visit(AST.Type) { assert(0); }
104     override void visit(AST.TypeBasic) { assert(0); }
105     override void visit(AST.TypeError) { assert(0); }
106     override void visit(AST.TypeNull) { assert(0); }
107     override void visit(AST.TypeVector) { assert(0); }
108     override void visit(AST.TypeEnum) { assert(0); }
109     override void visit(AST.TypeTuple) { assert(0); }
110     override void visit(AST.TypeClass) { assert(0); }
111     override void visit(AST.TypeStruct) { assert(0); }
112     override void visit(AST.TypeNext) { assert(0); }
113     override void visit(AST.TypeReference) { assert(0); }
114     override void visit(AST.TypeSlice) { assert(0); }
115     override void visit(AST.TypeDelegate) { assert(0); }
116     override void visit(AST.TypePointer) { assert(0); }
117     override void visit(AST.TypeFunction) { assert(0); }
118     override void visit(AST.TypeArray) { assert(0); }
119     override void visit(AST.TypeDArray) { assert(0); }
120     override void visit(AST.TypeAArray) { assert(0); }
121     override void visit(AST.TypeSArray) { assert(0); }
122     override void visit(AST.TypeQualified) { assert(0); }
123     override void visit(AST.TypeTraits) { assert(0); }
124     override void visit(AST.TypeIdentifier) { assert(0); }
125     override void visit(AST.TypeReturn) { assert(0); }
126     override void visit(AST.TypeTypeof) { assert(0); }
127     override void visit(AST.TypeInstance) { assert(0); }
128     override void visit(AST.Expression) { assert(0); }
129     override void visit(AST.DeclarationExp) { assert(0); }
130     override void visit(AST.IntegerExp) { assert(0); }
131     override void visit(AST.NewAnonClassExp) { assert(0); }
132     override void visit(AST.IsExp) { assert(0); }
133     override void visit(AST.RealExp) { assert(0); }
134     override void visit(AST.NullExp) { assert(0); }
135     override void visit(AST.TypeidExp) { assert(0); }
136     override void visit(AST.TraitsExp) { assert(0); }
137     override void visit(AST.StringExp) { assert(0); }
138     override void visit(AST.NewExp) { assert(0); }
139     override void visit(AST.AssocArrayLiteralExp) { assert(0); }
140     override void visit(AST.ArrayLiteralExp) { assert(0); }
141     override void visit(AST.FuncExp) { assert(0); }
142     override void visit(AST.IntervalExp) { assert(0); }
143     override void visit(AST.TypeExp) { assert(0); }
144     override void visit(AST.ScopeExp) { assert(0); }
145     override void visit(AST.IdentifierExp) { assert(0); }
146     override void visit(AST.UnaExp) { assert(0); }
147     override void visit(AST.DefaultInitExp) { assert(0); }
148     override void visit(AST.BinExp) { assert(0); }
149     override void visit(AST.DsymbolExp) { assert(0); }
150     override void visit(AST.TemplateExp) { assert(0); }
151     override void visit(AST.SymbolExp) { assert(0); }
152     override void visit(AST.VarExp) { assert(0); }
153     override void visit(AST.TupleExp) { assert(0); }
154     override void visit(AST.DollarExp) { assert(0); }
155     override void visit(AST.ThisExp) { assert(0); }
156     override void visit(AST.SuperExp) { assert(0); }
157     override void visit(AST.AddrExp) { assert(0); }
158     override void visit(AST.PreExp) { assert(0); }
159     override void visit(AST.PtrExp) { assert(0); }
160     override void visit(AST.NegExp) { assert(0); }
161     override void visit(AST.UAddExp) { assert(0); }
162     override void visit(AST.NotExp) { assert(0); }
163     override void visit(AST.ComExp) { assert(0); }
164     override void visit(AST.DeleteExp) { assert(0); }
165     override void visit(AST.CastExp) { assert(0); }
166     override void visit(AST.CallExp) { assert(0); }
167     override void visit(AST.DotIdExp) { assert(0); }
168     override void visit(AST.AssertExp) { assert(0); }
169     override void visit(AST.CompileExp) { assert(0); }
170     override void visit(AST.ImportExp) { assert(0); }
171     override void visit(AST.DotTemplateInstanceExp) { assert(0); }
172     override void visit(AST.ArrayExp) { assert(0); }
173     override void visit(AST.FuncInitExp) { assert(0); }
174     override void visit(AST.PrettyFuncInitExp) { assert(0); }
175     override void visit(AST.FileInitExp) { assert(0); }
176     override void visit(AST.LineInitExp) { assert(0); }
177     override void visit(AST.ModuleInitExp) { assert(0); }
178     override void visit(AST.CommaExp) { assert(0); }
179     override void visit(AST.PostExp) { assert(0); }
180     override void visit(AST.PowExp) { assert(0); }
181     override void visit(AST.MulExp) { assert(0); }
182     override void visit(AST.DivExp) { assert(0); }
183     override void visit(AST.ModExp) { assert(0); }
184     override void visit(AST.AddExp) { assert(0); }
185     override void visit(AST.MinExp) { assert(0); }
186     override void visit(AST.CatExp) { assert(0); }
187     override void visit(AST.ShlExp) { assert(0); }
188     override void visit(AST.ShrExp) { assert(0); }
189     override void visit(AST.UshrExp) { assert(0); }
190     override void visit(AST.EqualExp) { assert(0); }
191     override void visit(AST.InExp) { assert(0); }
192     override void visit(AST.IdentityExp) { assert(0); }
193     override void visit(AST.CmpExp) { assert(0); }
194     override void visit(AST.AndExp) { assert(0); }
195     override void visit(AST.XorExp) { assert(0); }
196     override void visit(AST.OrExp) { assert(0); }
197     override void visit(AST.LogicalExp) { assert(0); }
198     override void visit(AST.CondExp) { assert(0); }
199     override void visit(AST.AssignExp) { assert(0); }
200     override void visit(AST.BinAssignExp) { assert(0); }
201     override void visit(AST.AddAssignExp) { assert(0); }
202     override void visit(AST.MinAssignExp) { assert(0); }
203     override void visit(AST.MulAssignExp) { assert(0); }
204     override void visit(AST.DivAssignExp) { assert(0); }
205     override void visit(AST.ModAssignExp) { assert(0); }
206     override void visit(AST.PowAssignExp) { assert(0); }
207     override void visit(AST.AndAssignExp) { assert(0); }
208     override void visit(AST.OrAssignExp) { assert(0); }
209     override void visit(AST.XorAssignExp) { assert(0); }
210     override void visit(AST.ShlAssignExp) { assert(0); }
211     override void visit(AST.ShrAssignExp) { assert(0); }
212     override void visit(AST.UshrAssignExp) { assert(0); }
213     override void visit(AST.CatAssignExp) { assert(0); }
214     override void visit(AST.TemplateParameter) { assert(0); }
215     override void visit(AST.TemplateAliasParameter) { assert(0); }
216     override void visit(AST.TemplateTypeParameter) { assert(0); }
217     override void visit(AST.TemplateTupleParameter) { assert(0); }
218     override void visit(AST.TemplateValueParameter) { assert(0); }
219     override void visit(AST.TemplateThisParameter) { assert(0); }
220     override void visit(AST.Condition) { assert(0); }
221     override void visit(AST.StaticIfCondition) { assert(0); }
222     override void visit(AST.DVCondition) { assert(0); }
223     override void visit(AST.DebugCondition) { assert(0); }
224     override void visit(AST.VersionCondition) { assert(0); }
225     override void visit(AST.Initializer) { assert(0); }
226     override void visit(AST.ExpInitializer) { assert(0); }
227     override void visit(AST.StructInitializer) { assert(0); }
228     override void visit(AST.ArrayInitializer) { assert(0); }
229     override void visit(AST.VoidInitializer) { assert(0); }
230 }