org.jetbrains.jet.lang.cfg
Class TailRecursionDetector

java.lang.Object
  extended by org.jetbrains.jet.lang.cfg.pseudocode.InstructionVisitorWithResult<java.lang.Boolean>
      extended by org.jetbrains.jet.lang.cfg.TailRecursionDetector
All Implemented Interfaces:
kotlin.Function1<Instruction,java.lang.Boolean>, kotlin.jvm.internal.KObject

public class TailRecursionDetector
extends InstructionVisitorWithResult<java.lang.Boolean>
implements kotlin.Function1<Instruction,java.lang.Boolean>


Constructor Summary
TailRecursionDetector(JetElement subroutine, Instruction start)
           
 
Method Summary
 java.lang.Boolean invoke(Instruction instruction)
           
 java.lang.Boolean visitInstruction(Instruction instruction)
           
 java.lang.Boolean visitJump(AbstractJumpInstruction instruction)
           
 java.lang.Boolean visitMarkInstruction(MarkInstruction instruction)
           
 java.lang.Boolean visitSubroutineExit(SubroutineExitInstruction instruction)
           
 java.lang.Boolean visitSubroutineSink(SubroutineSinkInstruction instruction)
           
 java.lang.Boolean visitThrowExceptionInstruction(ThrowExceptionInstruction instruction)
           
 
Methods inherited from class org.jetbrains.jet.lang.cfg.pseudocode.InstructionVisitorWithResult
visitCallInstruction, visitCompilationErrorInstruction, visitConditionalJump, visitInstructionWithNext, visitLoadUnitValue, visitLocalFunctionDeclarationInstruction, visitNondeterministicJump, visitReadValue, visitReturnNoValue, visitReturnValue, visitSubroutineEnter, visitUnconditionalJump, visitUnsupportedElementInstruction, visitVariableDeclarationInstruction, visitWriteValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TailRecursionDetector

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

invoke

public java.lang.Boolean invoke(@NotNull
                                Instruction instruction)
Specified by:
invoke in interface kotlin.Function1<Instruction,java.lang.Boolean>

visitInstruction

public java.lang.Boolean visitInstruction(Instruction instruction)
Specified by:
visitInstruction in class InstructionVisitorWithResult<java.lang.Boolean>

visitSubroutineExit

public java.lang.Boolean visitSubroutineExit(SubroutineExitInstruction instruction)
Overrides:
visitSubroutineExit in class InstructionVisitorWithResult<java.lang.Boolean>

visitSubroutineSink

public java.lang.Boolean visitSubroutineSink(SubroutineSinkInstruction instruction)
Overrides:
visitSubroutineSink in class InstructionVisitorWithResult<java.lang.Boolean>

visitJump

public java.lang.Boolean visitJump(AbstractJumpInstruction instruction)
Overrides:
visitJump in class InstructionVisitorWithResult<java.lang.Boolean>

visitThrowExceptionInstruction

public java.lang.Boolean visitThrowExceptionInstruction(ThrowExceptionInstruction instruction)
Overrides:
visitThrowExceptionInstruction in class InstructionVisitorWithResult<java.lang.Boolean>

visitMarkInstruction

public java.lang.Boolean visitMarkInstruction(MarkInstruction instruction)
Overrides:
visitMarkInstruction in class InstructionVisitorWithResult<java.lang.Boolean>