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