package org.checkerframework.framework.flow; import java.util.List; import java.util.Set; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.VariableElement; import javax.lang.model.type.TypeMirror; import org.checkerframework.common.basetype.BaseTypeChecker; import org.checkerframework.framework.type.GenericAnnotatedTypeFactory; import org.checkerframework.javacutil.Pair; /** * The default org.checkerframework.dataflow analysis used in the Checker Framework. * * @author Stefan Heule */ public class CFAnalysis extends CFAbstractAnalysis<CFValue, CFStore, CFTransfer> { public CFAnalysis( BaseTypeChecker checker, GenericAnnotatedTypeFactory<CFValue, CFStore, CFTransfer, CFAnalysis> factory, List<Pair<VariableElement, CFValue>> fieldValues) { super(checker, factory, fieldValues); } @Override public CFStore createEmptyStore(boolean sequentialSemantics) { return new CFStore(this, sequentialSemantics); } @Override public CFStore createCopiedStore(CFStore s) { return new CFStore(this, s); } @Override public CFValue createAbstractValue( Set<AnnotationMirror> annotations, TypeMirror underlyingType) { return defaultCreateAbstractValue(this, annotations, underlyingType); } }