// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

package com.android.tools.r8.ir.code;

public abstract class DefaultInstructionVisitor<T> implements InstructionVisitor<T> {

  public T handleFieldInstruction(FieldInstruction instruction) {
    return null;
  }

  public T handleInvoke(Invoke instruction) {
    return null;
  }

  @Override
  public T visit(Add instruction) {
    return null;
  }

  @Override
  public T visit(AlwaysMaterializingDefinition instruction) {
    return null;
  }

  @Override
  public T visit(AlwaysMaterializingNop instruction) {
    return null;
  }

  @Override
  public T visit(AlwaysMaterializingUser instruction) {
    return null;
  }

  @Override
  public T visit(And instruction) {
    return null;
  }

  @Override
  public T visit(Argument instruction) {
    return null;
  }

  @Override
  public T visit(ArrayGet instruction) {
    return null;
  }

  @Override
  public T visit(ArrayLength instruction) {
    return null;
  }

  @Override
  public T visit(ArrayPut instruction) {
    return null;
  }

  @Override
  public T visit(CheckCast instruction) {
    return null;
  }

  @Override
  public T visit(Cmp instruction) {
    return null;
  }

  @Override
  public T visit(ConstClass instruction) {
    return null;
  }

  @Override
  public T visit(ConstMethodHandle instruction) {
    return null;
  }

  @Override
  public T visit(ConstMethodType instruction) {
    return null;
  }

  @Override
  public T visit(ConstNumber instruction) {
    return null;
  }

  @Override
  public T visit(ConstString instruction) {
    return null;
  }

  @Override
  public T visit(DebugLocalRead instruction) {
    return null;
  }

  @Override
  public T visit(DebugLocalsChange instruction) {
    return null;
  }

  @Override
  public T visit(DebugLocalUninitialized instruction) {
    return null;
  }

  @Override
  public T visit(DebugLocalWrite instruction) {
    return null;
  }

  @Override
  public T visit(DebugPosition instruction) {
    return null;
  }

  @Override
  public T visit(DexItemBasedConstString instruction) {
    return null;
  }

  @Override
  public T visit(Div instruction) {
    return null;
  }

  @Override
  public T visit(Dup instruction) {
    return null;
  }

  @Override
  public T visit(Dup2 instruction) {
    return null;
  }

  @Override
  public T visit(Goto instruction) {
    return null;
  }

  @Override
  public T visit(If instruction) {
    return null;
  }

  @Override
  public T visit(Inc instruction) {
    return null;
  }

  @Override
  public T visit(InstanceGet instruction) {
    return handleFieldInstruction(instruction);
  }

  @Override
  public T visit(InstanceOf instruction) {
    return null;
  }

  @Override
  public T visit(InstancePut instruction) {
    return handleFieldInstruction(instruction);
  }

  @Override
  public T visit(InvokeCustom instruction) {
    return handleInvoke(instruction);
  }

  @Override
  public T visit(InvokeDirect instruction) {
    return handleInvoke(instruction);
  }

  @Override
  public T visit(InvokeInterface instruction) {
    return handleInvoke(instruction);
  }

  @Override
  public T visit(InvokeMultiNewArray instruction) {
    return handleInvoke(instruction);
  }

  @Override
  public T visit(InvokeNewArray instruction) {
    return handleInvoke(instruction);
  }

  @Override
  public T visit(InvokePolymorphic instruction) {
    return handleInvoke(instruction);
  }

  @Override
  public T visit(InvokeStatic instruction) {
    return handleInvoke(instruction);
  }

  @Override
  public T visit(InvokeSuper instruction) {
    return handleInvoke(instruction);
  }

  @Override
  public T visit(InvokeVirtual instruction) {
    return handleInvoke(instruction);
  }

  @Override
  public T visit(Load instruction) {
    return null;
  }

  @Override
  public T visit(Monitor instruction) {
    return null;
  }

  @Override
  public T visit(Move instruction) {
    return null;
  }

  @Override
  public T visit(MoveException instruction) {
    return null;
  }

  @Override
  public T visit(Mul instruction) {
    return null;
  }

  @Override
  public T visit(Neg instruction) {
    return null;
  }

  @Override
  public T visit(NewArrayEmpty instruction) {
    return null;
  }

  @Override
  public T visit(NewArrayFilledData instruction) {
    return null;
  }

  @Override
  public T visit(NewInstance instruction) {
    return null;
  }

  @Override
  public T visit(NonNull instruction) {
    return null;
  }

  @Override
  public T visit(Not instruction) {
    return null;
  }

  @Override
  public T visit(NumberConversion instruction) {
    return null;
  }

  @Override
  public T visit(Or instruction) {
    return null;
  }

  @Override
  public T visit(Pop instruction) {
    return null;
  }

  @Override
  public T visit(Rem instruction) {
    return null;
  }

  @Override
  public T visit(Return instruction) {
    return null;
  }

  @Override
  public T visit(Shl instruction) {
    return null;
  }

  @Override
  public T visit(Shr instruction) {
    return null;
  }

  @Override
  public T visit(StaticGet instruction) {
    return handleFieldInstruction(instruction);
  }

  @Override
  public T visit(StaticPut instruction) {
    return handleFieldInstruction(instruction);
  }

  @Override
  public T visit(Store instruction) {
    return null;
  }

  @Override
  public T visit(Sub instruction) {
    return null;
  }

  @Override
  public T visit(Swap instruction) {
    return null;
  }

  @Override
  public T visit(Switch instruction) {
    return null;
  }

  @Override
  public T visit(Throw instruction) {
    return null;
  }

  @Override
  public T visit(Ushr instruction) {
    return null;
  }

  @Override
  public T visit(Xor instruction) {
    return null;
  }
}
