/*
 * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
 * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
 */

// This file was generated automatically. See compiler/fir/tree/tree-generator/Readme.md.
// DO NOT MODIFY IT MANUALLY.

package org.jetbrains.kotlin.fir.visitors

import org.jetbrains.kotlin.fir.FirTargetElement
import org.jetbrains.kotlin.fir.contracts.*
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.references.*
import org.jetbrains.kotlin.fir.types.*

/**
 * Auto-generated by [org.jetbrains.kotlin.fir.tree.generator.printer.DefaultVisitorVoidPrinter]
 */
abstract class FirDefaultVisitorVoid : FirVisitorVoid() {
    override fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner) {
        visitTypeParameterRefsOwner(typeParametersOwner)
    }

    override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) {
        visitMemberDeclaration(callableDeclaration)
    }

    override fun visitStatement(statement: FirStatement) {
        visitAnnotationContainer(statement)
    }

    override fun visitExpression(expression: FirExpression) {
        visitStatement(expression)
    }

    override fun visitLazyExpression(lazyExpression: FirLazyExpression) {
        visitExpression(lazyExpression)
    }

    override fun visitCall(call: FirCall) {
        visitStatement(call)
    }

    override fun visitBlock(block: FirBlock) {
        visitExpression(block)
    }

    override fun visitLazyBlock(lazyBlock: FirLazyBlock) {
        visitBlock(lazyBlock)
    }

    override fun visitBooleanOperatorExpression(booleanOperatorExpression: FirBooleanOperatorExpression) {
        visitExpression(booleanOperatorExpression)
    }

    override fun <E : FirTargetElement> visitJump(jump: FirJump<E>) {
        visitExpression(jump)
    }

    override fun visitLoopJump(loopJump: FirLoopJump) {
        visitJump(loopJump)
    }

    override fun visitBreakExpression(breakExpression: FirBreakExpression) {
        visitLoopJump(breakExpression)
    }

    override fun visitContinueExpression(continueExpression: FirContinueExpression) {
        visitLoopJump(continueExpression)
    }

    override fun visitReturnExpression(returnExpression: FirReturnExpression) {
        visitJump(returnExpression)
    }

    override fun visitWhileLoop(whileLoop: FirWhileLoop) {
        visitLoop(whileLoop)
    }

    override fun visitDoWhileLoop(doWhileLoop: FirDoWhileLoop) {
        visitLoop(doWhileLoop)
    }

    override fun visitLiteralExpression(literalExpression: FirLiteralExpression) {
        visitExpression(literalExpression)
    }

    override fun visitIntegerLiteralOperatorCall(integerLiteralOperatorCall: FirIntegerLiteralOperatorCall) {
        visitFunctionCall(integerLiteralOperatorCall)
    }

    override fun visitComparisonExpression(comparisonExpression: FirComparisonExpression) {
        visitExpression(comparisonExpression)
    }

    override fun visitAugmentedAssignment(augmentedAssignment: FirAugmentedAssignment) {
        visitStatement(augmentedAssignment)
    }

    override fun visitIncrementDecrementExpression(incrementDecrementExpression: FirIncrementDecrementExpression) {
        visitExpression(incrementDecrementExpression)
    }

    override fun visitRegularClass(regularClass: FirRegularClass) {
        visitClass(regularClass)
    }

    override fun visitAnonymousObject(anonymousObject: FirAnonymousObject) {
        visitClass(anonymousObject)
    }

    override fun visitAnonymousObjectExpression(anonymousObjectExpression: FirAnonymousObjectExpression) {
        visitExpression(anonymousObjectExpression)
    }

    override fun visitTypeAlias(typeAlias: FirTypeAlias) {
        visitClassLikeDeclaration(typeAlias)
    }

    override fun visitAnonymousFunctionExpression(anonymousFunctionExpression: FirAnonymousFunctionExpression) {
        visitExpression(anonymousFunctionExpression)
    }

    override fun visitConstructedClassTypeParameterRef(constructedClassTypeParameterRef: FirConstructedClassTypeParameterRef) {
        visitTypeParameterRef(constructedClassTypeParameterRef)
    }

    override fun visitOuterClassTypeParameterRef(outerClassTypeParameterRef: FirOuterClassTypeParameterRef) {
        visitTypeParameterRef(outerClassTypeParameterRef)
    }

    override fun visitResolvedDeclarationStatus(resolvedDeclarationStatus: FirResolvedDeclarationStatus) {
        visitDeclarationStatus(resolvedDeclarationStatus)
    }

    override fun visitImplicitInvokeCall(implicitInvokeCall: FirImplicitInvokeCall) {
        visitFunctionCall(implicitInvokeCall)
    }

    override fun visitMultiDelegatedConstructorCall(multiDelegatedConstructorCall: FirMultiDelegatedConstructorCall) {
        visitDelegatedConstructorCall(multiDelegatedConstructorCall)
    }

    override fun visitReceiverParameter(receiverParameter: FirReceiverParameter) {
        visitDeclaration(receiverParameter)
    }

    override fun visitScriptReceiverParameter(scriptReceiverParameter: FirScriptReceiverParameter) {
        visitReceiverParameter(scriptReceiverParameter)
    }

    override fun visitEnumEntry(enumEntry: FirEnumEntry) {
        visitVariable(enumEntry)
    }

    override fun visitCodeFragment(codeFragment: FirCodeFragment) {
        visitDeclaration(codeFragment)
    }

    override fun visitResolvedImport(resolvedImport: FirResolvedImport) {
        visitImport(resolvedImport)
    }

    override fun visitAnnotation(annotation: FirAnnotation) {
        visitExpression(annotation)
    }

    override fun visitIndexedAccessAugmentedAssignment(indexedAccessAugmentedAssignment: FirIndexedAccessAugmentedAssignment) {
        visitStatement(indexedAccessAugmentedAssignment)
    }

    override fun visitClassReferenceExpression(classReferenceExpression: FirClassReferenceExpression) {
        visitExpression(classReferenceExpression)
    }

    override fun visitComponentCall(componentCall: FirComponentCall) {
        visitFunctionCall(componentCall)
    }

    override fun visitSmartCastExpression(smartCastExpression: FirSmartCastExpression) {
        visitExpression(smartCastExpression)
    }

    override fun visitSafeCallExpression(safeCallExpression: FirSafeCallExpression) {
        visitExpression(safeCallExpression)
    }

    override fun visitCheckedSafeCallSubject(checkedSafeCallSubject: FirCheckedSafeCallSubject) {
        visitExpression(checkedSafeCallSubject)
    }

    override fun visitCallableReferenceAccess(callableReferenceAccess: FirCallableReferenceAccess) {
        visitQualifiedAccessExpression(callableReferenceAccess)
    }

    override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression) {
        visitQualifiedAccessExpression(propertyAccessExpression)
    }

    override fun visitWrappedArgumentExpression(wrappedArgumentExpression: FirWrappedArgumentExpression) {
        visitWrappedExpression(wrappedArgumentExpression)
    }

    override fun visitSpreadArgumentExpression(spreadArgumentExpression: FirSpreadArgumentExpression) {
        visitWrappedArgumentExpression(spreadArgumentExpression)
    }

    override fun visitNamedArgumentExpression(namedArgumentExpression: FirNamedArgumentExpression) {
        visitWrappedArgumentExpression(namedArgumentExpression)
    }

    override fun visitVarargArgumentsExpression(varargArgumentsExpression: FirVarargArgumentsExpression) {
        visitExpression(varargArgumentsExpression)
    }

    override fun visitSamConversionExpression(samConversionExpression: FirSamConversionExpression) {
        visitExpression(samConversionExpression)
    }

    override fun visitResolvedQualifier(resolvedQualifier: FirResolvedQualifier) {
        visitExpression(resolvedQualifier)
    }

    override fun visitResolvedReifiedParameterReference(resolvedReifiedParameterReference: FirResolvedReifiedParameterReference) {
        visitExpression(resolvedReifiedParameterReference)
    }

    override fun visitThrowExpression(throwExpression: FirThrowExpression) {
        visitExpression(throwExpression)
    }

    override fun visitVariableAssignment(variableAssignment: FirVariableAssignment) {
        visitStatement(variableAssignment)
    }

    override fun visitWhenSubjectExpression(whenSubjectExpression: FirWhenSubjectExpression) {
        visitPropertyAccessExpression(whenSubjectExpression)
    }

    override fun visitDesugaredAssignmentValueReferenceExpression(desugaredAssignmentValueReferenceExpression: FirDesugaredAssignmentValueReferenceExpression) {
        visitExpression(desugaredAssignmentValueReferenceExpression)
    }

    override fun visitWrappedExpression(wrappedExpression: FirWrappedExpression) {
        visitExpression(wrappedExpression)
    }

    override fun visitWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression) {
        visitWrappedExpression(wrappedDelegateExpression)
    }

    override fun visitEnumEntryDeserializedAccessExpression(enumEntryDeserializedAccessExpression: FirEnumEntryDeserializedAccessExpression) {
        visitExpression(enumEntryDeserializedAccessExpression)
    }

    override fun visitNamedReference(namedReference: FirNamedReference) {
        visitReference(namedReference)
    }

    override fun visitNamedReferenceWithCandidateBase(namedReferenceWithCandidateBase: FirNamedReferenceWithCandidateBase) {
        visitNamedReference(namedReferenceWithCandidateBase)
    }

    override fun visitResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference) {
        visitNamedReference(resolvedNamedReference)
    }

    override fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference) {
        visitResolvedNamedReference(resolvedCallableReference)
    }

    override fun visitDelegateFieldReference(delegateFieldReference: FirDelegateFieldReference) {
        visitResolvedNamedReference(delegateFieldReference)
    }

    override fun visitBackingFieldReference(backingFieldReference: FirBackingFieldReference) {
        visitResolvedNamedReference(backingFieldReference)
    }

    override fun visitSuperReference(superReference: FirSuperReference) {
        visitReference(superReference)
    }

    override fun visitThisReference(thisReference: FirThisReference) {
        visitReference(thisReference)
    }

    override fun visitControlFlowGraphReference(controlFlowGraphReference: FirControlFlowGraphReference) {
        visitReference(controlFlowGraphReference)
    }

    override fun visitTypeRef(typeRef: FirTypeRef) {
        visitAnnotationContainer(typeRef)
    }

    override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef) {
        visitTypeRef(resolvedTypeRef)
    }

    override fun visitUnresolvedTypeRef(unresolvedTypeRef: FirUnresolvedTypeRef) {
        visitTypeRef(unresolvedTypeRef)
    }

    override fun visitUserTypeRef(userTypeRef: FirUserTypeRef) {
        visitUnresolvedTypeRef(userTypeRef)
    }

    override fun visitFunctionTypeRef(functionTypeRef: FirFunctionTypeRef) {
        visitUnresolvedTypeRef(functionTypeRef)
    }

    override fun visitDynamicTypeRef(dynamicTypeRef: FirDynamicTypeRef) {
        visitUnresolvedTypeRef(dynamicTypeRef)
    }

    override fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef) {
        visitTypeRef(implicitTypeRef)
    }

    override fun visitResolvedErrorReference(resolvedErrorReference: FirResolvedErrorReference) {
        visitResolvedNamedReference(resolvedErrorReference)
    }

    override fun visitIntersectionTypeRef(intersectionTypeRef: FirIntersectionTypeRef) {
        visitUnresolvedTypeRef(intersectionTypeRef)
    }

    override fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression) {
        visitQualifiedAccessExpression(thisReceiverExpression)
    }

    override fun visitSuperReceiverExpression(superReceiverExpression: FirSuperReceiverExpression) {
        visitQualifiedAccessExpression(superReceiverExpression)
    }

    override fun visitTypeProjectionWithVariance(typeProjectionWithVariance: FirTypeProjectionWithVariance) {
        visitTypeProjection(typeProjectionWithVariance)
    }

    override fun visitStarProjection(starProjection: FirStarProjection) {
        visitTypeProjection(starProjection)
    }

    override fun visitPlaceholderProjection(placeholderProjection: FirPlaceholderProjection) {
        visitTypeProjection(placeholderProjection)
    }

    override fun visitEffectDeclaration(effectDeclaration: FirEffectDeclaration) {
        visitContractElementDeclaration(effectDeclaration)
    }

    override fun visitRawContractDescription(rawContractDescription: FirRawContractDescription) {
        visitContractDescription(rawContractDescription)
    }

    override fun visitResolvedContractDescription(resolvedContractDescription: FirResolvedContractDescription) {
        visitContractDescription(resolvedContractDescription)
    }

    override fun visitLegacyRawContractDescription(legacyRawContractDescription: FirLegacyRawContractDescription) {
        visitContractDescription(legacyRawContractDescription)
    }

    override fun visitLazyContractDescription(lazyContractDescription: FirLazyContractDescription) {
        visitLegacyRawContractDescription(lazyContractDescription)
    }

    override fun visitErrorContractDescription(errorContractDescription: FirErrorContractDescription) {
        visitContractDescription(errorContractDescription)
    }

}
