accrue.analysis.preciseExceptions

## Class PreciseExAnalysisUtil

- java.lang.Object
- - accrue.analysis.interprocanalysis.AnalysisUtil<PreciseExAbsVal>
  - - accrue.analysis.preciseExceptions.PreciseExAnalysisUtil

-     public class PreciseExAnalysisUtil
      extends AnalysisUtil<PreciseExAbsVal>

- - ### Field Summary

    - ### Fields inherited from class accrue.analysis.interprocanalysis.AnalysisUtil

      `extInfo, instanceInitializersChecked, workQueue`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PreciseExAnalysisUtil(WorkQueue<PreciseExAbsVal> workQueue, AnalysisUnit currentAnalysisUnit, AccrueExtensionInfo extInfo)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ExitMap<PreciseExAbsVal>` | `analyze(polyglot.ast.CodeNode n, PreciseExAbsVal before)` Analyze the given code with the given current analysis results
    `ExitMap<PreciseExAbsVal>` | `analyzeInitializers(PreciseExAbsVal input)` Analyze the initializers for the current analysis unit given the current analysis results
    `PreciseExAbsVal` | `call(polyglot.types.ConstructorInstance ci, polyglot.ast.New n)` Process a constructor call from a new expression
    `PreciseExAbsVal` | `call(polyglot.types.MethodInstance mi, polyglot.ast.Call n)`
    `PreciseExAbsVal` | `constructorCall(polyglot.types.ConstructorInstance ci, polyglot.ast.ConstructorCall n)` Process a constructor call to this() or super(), i.e., from within a constructor.
    `protected PreciseExLibrarySignature` | `getSignatureForMissingCode(polyglot.types.ProcedureInstance pi)`

    - ### Methods inherited from class accrue.analysis.interprocanalysis.AnalysisUtil

      `abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocationsForArray, abstractLocationsForArray, abstractLocationsForArray, abstractLocationsImplicitTarget, analysisName, analyzeStaticInitializers, createExitMap, currentAnalysisUnit, currentClass, currentContext, extensionInfo, instanceInitializers, leq, maybeRecursiveCall, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsToGraph, pointsToThis, process, recordMissingCode, typeSystem, upperBound, workQueue`

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

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

- - ### Constructor Detail

    - #### PreciseExAnalysisUtil

          public PreciseExAnalysisUtil(WorkQueue<PreciseExAbsVal> workQueue,
                               AnalysisUnit currentAnalysisUnit,
                               AccrueExtensionInfo extInfo)

  - ### Method Detail

    - #### analyze

          public ExitMap<PreciseExAbsVal> analyze(polyglot.ast.CodeNode n,
                                         PreciseExAbsVal before)
                                           throws polyglot.types.SemanticException

      Description copied from class: `AnalysisUtil`
      Analyze the given code with the given current analysis results
      Specified by:
        `analyze` in class `AnalysisUtil<PreciseExAbsVal>`
      Parameters:
        `n` - Code to analyze
        `before` - analysis result before analyzing the given code
      Returns:
        Map from exit condition to analysis result
      Throws:
        `polyglot.types.SemanticException` - thrown if the analysis fails

    - #### analyzeInitializers

          public ExitMap<PreciseExAbsVal> analyzeInitializers(PreciseExAbsVal input)
                                                       throws polyglot.types.SemanticException

      Description copied from class: `AnalysisUtil`
      Analyze the initializers for the current analysis unit given the current analysis results
      Overrides:
        `analyzeInitializers` in class `AnalysisUtil<PreciseExAbsVal>`
      Parameters:
        `input` - current analysis results
      Returns:
        Map from exit condition to analysis result
      Throws:
        `polyglot.types.SemanticException` - thrown if the analysis fails

    - #### call

          public PreciseExAbsVal call(polyglot.types.MethodInstance mi,
                             polyglot.ast.Call n)

    - #### call

          public PreciseExAbsVal call(polyglot.types.ConstructorInstance ci,
                             polyglot.ast.New n)

      Process a constructor call from a new expression
      Parameters:
        `ci` -
        `n` -
      Returns:

    - #### constructorCall

          public PreciseExAbsVal constructorCall(polyglot.types.ConstructorInstance ci,
                                        polyglot.ast.ConstructorCall n)

      Process a constructor call to this() or super(), i.e., from within a constructor.
      Parameters:
        `ci` -
      Returns:

    - #### getSignatureForMissingCode

          protected PreciseExLibrarySignature getSignatureForMissingCode(polyglot.types.ProcedureInstance pi)