accrue.analysis.callgraph

## Class PreciseCallGraphVisitor

- java.lang.Object
- - polyglot.visit.NodeVisitor
  - - accrue.analysis.callgraph.PreciseCallGraphVisitor

- All Implemented Interfaces:
    java.lang.Cloneable, polyglot.util.Copy<polyglot.visit.NodeVisitor>

      public class PreciseCallGraphVisitor
      extends polyglot.visit.NodeVisitor

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface polyglot.util.Copy

      `polyglot.util.Copy.Util`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected PreciseCallGraphAnalysisUtil` | `autil`
    `protected java.util.Set<EdgeIdentifier>` | `returnSites`
    `protected java.util.Set<EdgeIdentifier>` | `throwSites`
    `protected java.util.Set<ThrowableType>` | `throwTypes`
    `protected polyglot.types.TypeSystem` | `ts`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PreciseCallGraphVisitor(PreciseCallGraphAnalysisUtil autil)`
    `PreciseCallGraphVisitor(polyglot.types.TypeSystem ts)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `polyglot.ast.Node` | `leave(polyglot.ast.Node parent, polyglot.ast.Node old, polyglot.ast.Node n, polyglot.visit.NodeVisitor v)`
    `polyglot.ast.Node` | `override(polyglot.ast.Node n)`
    `PCGAbsVal` | `performVisit(polyglot.ast.CodeNode n)`
    `protected void` | `recordCatchSites(polyglot.ast.Term n, java.util.Set<EdgeIdentifier> catchSites)`
    `protected void` | `recordReturnSources(polyglot.ast.Term n, java.util.Set<EdgeIdentifier> returnSites)`
    `java.util.Set<ThrowableType>` | `throwTypes()`

    - ### Methods inherited from class polyglot.visit.NodeVisitor

      `begin, copy, enter, enter, finish, finish, lang, leave, override, toString, visitEdge, visitEdgeNoOverride`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### autil

          protected final PreciseCallGraphAnalysisUtil autil

    - #### ts

          protected final polyglot.types.TypeSystem ts

    - #### throwTypes

          protected final java.util.Set<ThrowableType> throwTypes

    - #### throwSites

          protected final java.util.Set<EdgeIdentifier> throwSites

    - #### returnSites

          protected final java.util.Set<EdgeIdentifier> returnSites

  - ### Constructor Detail

    - #### PreciseCallGraphVisitor

          public PreciseCallGraphVisitor(PreciseCallGraphAnalysisUtil autil)

    - #### PreciseCallGraphVisitor

          public PreciseCallGraphVisitor(polyglot.types.TypeSystem ts)

  - ### Method Detail

    - #### performVisit

          public PCGAbsVal performVisit(polyglot.ast.CodeNode n)

    - #### override

          public polyglot.ast.Node override(polyglot.ast.Node n)

      Overrides:
        `override` in class `polyglot.visit.NodeVisitor`

    - #### leave

          public polyglot.ast.Node leave(polyglot.ast.Node parent,
                                polyglot.ast.Node old,
                                polyglot.ast.Node n,
                                polyglot.visit.NodeVisitor v)

      Overrides:
        `leave` in class `polyglot.visit.NodeVisitor`

    - #### throwTypes

          public java.util.Set<ThrowableType> throwTypes()

    - #### recordReturnSources

          protected void recordReturnSources(polyglot.ast.Term n,
                                 java.util.Set<EdgeIdentifier> returnSites)

    - #### recordCatchSites

          protected void recordCatchSites(polyglot.ast.Term n,
                              java.util.Set<EdgeIdentifier> catchSites)