xref: /aosp_15_r20/external/ksp/api/src/main/kotlin/com/google/devtools/ksp/visitor/KSDefaultVisitor.kt (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1 /*
2  * Copyright 2020 Google LLC
3  * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 package com.google.devtools.ksp.visitor
18 
19 import com.google.devtools.ksp.symbol.*
20 
21 /**
22  * A visitor that delegates to super types for methods that are not overridden.
23  */
24 abstract class KSDefaultVisitor<D, R> : KSEmptyVisitor<D, R>() {
visitDynamicReferencenull25     override fun visitDynamicReference(reference: KSDynamicReference, data: D): R {
26         this.visitReferenceElement(reference, data)
27         return super.visitDynamicReference(reference, data)
28     }
29 
visitFilenull30     override fun visitFile(file: KSFile, data: D): R {
31         this.visitAnnotated(file, data)
32         this.visitDeclarationContainer(file, data)
33         return super.visitFile(file, data)
34     }
35 
visitFunctionDeclarationnull36     override fun visitFunctionDeclaration(function: KSFunctionDeclaration, data: D): R {
37         this.visitDeclaration(function, data)
38         this.visitDeclarationContainer(function, data)
39         return super.visitFunctionDeclaration(function, data)
40     }
41 
visitCallableReferencenull42     override fun visitCallableReference(reference: KSCallableReference, data: D): R {
43         this.visitReferenceElement(reference, data)
44         return super.visitCallableReference(reference, data)
45     }
46 
visitParenthesizedReferencenull47     override fun visitParenthesizedReference(reference: KSParenthesizedReference, data: D): R {
48         this.visitReferenceElement(reference, data)
49         return super.visitParenthesizedReference(reference, data)
50     }
51 
visitPropertyDeclarationnull52     override fun visitPropertyDeclaration(property: KSPropertyDeclaration, data: D): R {
53         this.visitDeclaration(property, data)
54         return super.visitPropertyDeclaration(property, data)
55     }
56 
visitPropertyAccessornull57     override fun visitPropertyAccessor(accessor: KSPropertyAccessor, data: D): R {
58         this.visitModifierListOwner(accessor, data)
59         this.visitAnnotated(accessor, data)
60         return super.visitPropertyAccessor(accessor, data)
61     }
62 
visitPropertyGetternull63     override fun visitPropertyGetter(getter: KSPropertyGetter, data: D): R {
64         this.visitPropertyAccessor(getter, data)
65         return super.visitPropertyGetter(getter, data)
66     }
67 
visitPropertySetternull68     override fun visitPropertySetter(setter: KSPropertySetter, data: D): R {
69         this.visitPropertyAccessor(setter, data)
70         return super.visitPropertySetter(setter, data)
71     }
72 
visitTypeAliasnull73     override fun visitTypeAlias(typeAlias: KSTypeAlias, data: D): R {
74         this.visitDeclaration(typeAlias, data)
75         return super.visitTypeAlias(typeAlias, data)
76     }
77 
visitClassDeclarationnull78     override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: D): R {
79         this.visitDeclaration(classDeclaration, data)
80         this.visitDeclarationContainer(classDeclaration, data)
81         return super.visitClassDeclaration(classDeclaration, data)
82     }
83 
visitTypeParameternull84     override fun visitTypeParameter(typeParameter: KSTypeParameter, data: D): R {
85         this.visitDeclaration(typeParameter, data)
86         return super.visitTypeParameter(typeParameter, data)
87     }
88 
visitTypeReferencenull89     override fun visitTypeReference(typeReference: KSTypeReference, data: D): R {
90         this.visitAnnotated(typeReference, data)
91         this.visitModifierListOwner(typeReference, data)
92         return super.visitTypeReference(typeReference, data)
93     }
94 
visitValueParameternull95     override fun visitValueParameter(valueParameter: KSValueParameter, data: D): R {
96         this.visitAnnotated(valueParameter, data)
97         return super.visitValueParameter(valueParameter, data)
98     }
99 
visitValueArgumentnull100     override fun visitValueArgument(valueArgument: KSValueArgument, data: D): R {
101         this.visitAnnotated(valueArgument, data)
102         return super.visitValueArgument(valueArgument, data)
103     }
104 
visitClassifierReferencenull105     override fun visitClassifierReference(reference: KSClassifierReference, data: D): R {
106         this.visitReferenceElement(reference, data)
107         return super.visitClassifierReference(reference, data)
108     }
109 
visitDefNonNullReferencenull110     override fun visitDefNonNullReference(reference: KSDefNonNullReference, data: D): R {
111         this.visitReferenceElement(reference, data)
112         return super.visitDefNonNullReference(reference, data)
113     }
114 
visitTypeArgumentnull115     override fun visitTypeArgument(typeArgument: KSTypeArgument, data: D): R {
116         this.visitAnnotated(typeArgument, data)
117         return super.visitTypeArgument(typeArgument, data)
118     }
119 
visitDeclarationnull120     override fun visitDeclaration(declaration: KSDeclaration, data: D): R {
121         this.visitAnnotated(declaration, data)
122         this.visitModifierListOwner(declaration, data)
123         return super.visitDeclaration(declaration, data)
124     }
125 
visitAnnotatednull126     override fun visitAnnotated(annotated: KSAnnotated, data: D): R {
127         this.visitNode(annotated, data)
128         return super.visitAnnotated(annotated, data)
129     }
130 
visitAnnotationnull131     override fun visitAnnotation(annotation: KSAnnotation, data: D): R {
132         this.visitNode(annotation, data)
133         return super.visitAnnotation(annotation, data)
134     }
135 
visitDeclarationContainernull136     override fun visitDeclarationContainer(declarationContainer: KSDeclarationContainer, data: D): R {
137         this.visitNode(declarationContainer, data)
138         return super.visitDeclarationContainer(declarationContainer, data)
139     }
140 
visitModifierListOwnernull141     override fun visitModifierListOwner(modifierListOwner: KSModifierListOwner, data: D): R {
142         this.visitNode(modifierListOwner, data)
143         return super.visitModifierListOwner(modifierListOwner, data)
144     }
145 
visitReferenceElementnull146     override fun visitReferenceElement(element: KSReferenceElement, data: D): R {
147         this.visitNode(element, data)
148         return super.visitReferenceElement(element, data)
149     }
150 }
151