org.jetbrains.kotlin.cfg
Class TailRecursionDetector

java.lang.Object
  extended by 
      extended by org.jetbrains.kotlin.cfg.TailRecursionDetector
All Implemented Interfaces:
kotlin.Function<TraverseInstructionResult>, kotlin.jvm.functions.Function1<Instruction,TraverseInstructionResult>

public class TailRecursionDetector
extends
implements kotlin.jvm.functions.Function1<Instruction,TraverseInstructionResult>


Constructor Summary
TailRecursionDetector(KtElement subroutine, Instruction start)
           
 
Method Summary
 TraverseInstructionResult invoke(Instruction instruction)
           
 java.lang.Boolean visitInstruction(Instruction instruction)
           
 java.lang.Boolean visitJump(AbstractJumpInstruction instruction)
           
 java.lang.Boolean visitMagic(MagicInstruction instruction)
           
 java.lang.Boolean visitMarkInstruction(MarkInstruction instruction)
           
 java.lang.Boolean visitMerge(MergeInstruction instruction)
           
 java.lang.Boolean visitSubroutineExit(SubroutineExitInstruction instruction)
           
 java.lang.Boolean visitSubroutineSink(SubroutineSinkInstruction instruction)
           
 java.lang.Boolean visitThrowExceptionInstruction(ThrowExceptionInstruction instruction)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TailRecursionDetector

public TailRecursionDetector(@NotNull
                             KtElement subroutine,
                             @NotNull
                             Instruction start)
Method Detail

invoke

public TraverseInstructionResult invoke(@NotNull
                                        Instruction instruction)
Specified by:
invoke in interface kotlin.jvm.functions.Function1<Instruction,TraverseInstructionResult>

visitInstruction

public java.lang.Boolean visitInstruction(@NotNull
                                          Instruction instruction)

visitSubroutineExit

public java.lang.Boolean visitSubroutineExit(@NotNull
                                             SubroutineExitInstruction instruction)

visitSubroutineSink

public java.lang.Boolean visitSubroutineSink(@NotNull
                                             SubroutineSinkInstruction instruction)

visitJump

public java.lang.Boolean visitJump(@NotNull
                                   AbstractJumpInstruction instruction)

visitThrowExceptionInstruction

public java.lang.Boolean visitThrowExceptionInstruction(@NotNull
                                                        ThrowExceptionInstruction instruction)

visitMarkInstruction

public java.lang.Boolean visitMarkInstruction(@NotNull
                                              MarkInstruction instruction)

visitMagic

public java.lang.Boolean visitMagic(@NotNull
                                    MagicInstruction instruction)

visitMerge

public java.lang.Boolean visitMerge(@NotNull
                                    MergeInstruction instruction)