All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.dataflow.analysis.ForwardAnalysis Maven / Gradle / Ivy

Go to download

The Checker Framework enhances Java's type system to make it more powerful and useful. This lets software developers detect and prevent errors in their Java programs. The Checker Framework includes compiler plug-ins ("checkers") that find bugs or verify their absence. It also permits you to write your own compiler plug-ins.

There is a newer version: 3.42.0-eisop4
Show newest version
package org.checkerframework.dataflow.analysis;

import org.checkerframework.checker.nullness.qual.Nullable;
import org.checkerframework.dataflow.cfg.node.ReturnNode;
import org.plumelib.util.IPair;

import java.util.List;

/**
 * This interface defines a forward analysis, given a control flow graph and a forward transfer
 * function.
 *
 * @param  the abstract value type to be tracked by the analysis
 * @param  the store type used in the analysis
 * @param  the forward transfer function type that is used to approximated runtime behavior
 */
public interface ForwardAnalysis<
                V extends AbstractValue,
                S extends Store,
                T extends ForwardTransferFunction>
        extends Analysis {

    /**
     * Get stores at return statements. These stores are transfer results at return node. Thus for a
     * forward analysis, these stores contain the analyzed flow information from entry nodes to
     * return nodes.
     *
     * @return the transfer results for each return node in the CFG
     */
    List>> getReturnStatementStores();
}