Class Recursion<A extends it.unive.lisa.analysis.AbstractState<A>>

  • Type Parameters:
    A - the type of AbstractState contained into the analysis state

    public class Recursion<A extends it.unive.lisa.analysis.AbstractState<A>>
    extends java.lang.Object
    A recursion happening in the program.
    • Constructor Summary

      Constructors 
      Constructor Description
      Recursion​(it.unive.lisa.program.cfg.statement.call.Call invocation, ContextSensitivityToken invocationToken, it.unive.lisa.program.cfg.fixpoints.CFGFixpoint.CompoundState<A> entryState, it.unive.lisa.program.cfg.CFG recursionHead, java.util.Collection<it.unive.lisa.program.cfg.CodeMember> members)
      Builds the recursion.
    • Constructor Detail

      • Recursion

        public Recursion​(it.unive.lisa.program.cfg.statement.call.Call invocation,
                         ContextSensitivityToken invocationToken,
                         it.unive.lisa.program.cfg.fixpoints.CFGFixpoint.CompoundState<A> entryState,
                         it.unive.lisa.program.cfg.CFG recursionHead,
                         java.util.Collection<it.unive.lisa.program.cfg.CodeMember> members)
        Builds the recursion.
        Parameters:
        invocation - the call that started the recursion
        invocationToken - the active token when invocation was executed
        entryState - the entry state (prestate of invocation and poststates of its parameters) of the recursion
        recursionHead - the member of the recursion that was invoked by invocation
        members - the members that are part of the recursion
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • getInvocation

        public it.unive.lisa.program.cfg.statement.call.Call getInvocation()
        Yields the call that started this recursion by calling getRecursionHead().
        Returns:
        the call that invoked the recursion
      • getRecursionHead

        public it.unive.lisa.program.cfg.CFG getRecursionHead()
        Yields the head of the recursion, that is, the first member that was invoked from outside the recursion by getInvocation().
        Returns:
        the head of the recursion
      • getEntryState

        public it.unive.lisa.program.cfg.fixpoints.CFGFixpoint.CompoundState<A> getEntryState()
        Yields the entry state (prestate of getInvocation() together with the poststates of its parameters) that was used to start this recursion.
        Returns:
        the entry state
      • getMembers

        public java.util.Collection<it.unive.lisa.program.cfg.CodeMember> getMembers()
        Yields all the CodeMembers part of this recursion.
        Returns:
        the members
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object