org.qbicc.plugin.reachability.ReachabilityAnalysis Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of qbicc-plugin-reachability Show documentation
Show all versions of qbicc-plugin-reachability Show documentation
Support for evaluating program reachability
package org.qbicc.plugin.reachability;
import org.qbicc.graph.literal.ObjectLiteral;
import org.qbicc.type.ObjectType;
import org.qbicc.type.definition.LoadedTypeDefinition;
import org.qbicc.type.definition.element.BasicElement;
import org.qbicc.type.definition.element.ConstructorElement;
import org.qbicc.type.definition.element.ExecutableElement;
import org.qbicc.type.definition.element.InitializerElement;
import org.qbicc.type.definition.element.InvokableElement;
import org.qbicc.type.definition.element.MethodElement;
/**
* A set of hooks that enable the ReachabilityBlockBuilder to inform the underlying
* reachability analysis engine of relevant program constructs it has encountered.
*/
interface ReachabilityAnalysis {
void processArrayElementType(ObjectType elemType);
void processBuildtimeInstantiatedObjectType(LoadedTypeDefinition ltd, ExecutableElement originalElement);
void processReachableObjectLiteral(ObjectLiteral objectLiteral, ExecutableElement originalElement);
void processReachableRuntimeInitializer(final InitializerElement target, ExecutableElement originalElement);
void processReachableStaticInvoke(final InvokableElement target, ExecutableElement originalElement);
void processReachableConstructorInvoke(LoadedTypeDefinition ltd, ConstructorElement target, ExecutableElement originalElement);
void processReachableInstanceMethodInvoke(final MethodElement target, ExecutableElement originalElement);
void processStaticElementInitialization(final LoadedTypeDefinition ltd, BasicElement cause, ExecutableElement originalElement);
void processClassInitialization(final LoadedTypeDefinition ltd);
void processInstantiatedClass(final LoadedTypeDefinition type, boolean directlyInstantiated, boolean onHeapType, ExecutableElement originalElement);
void clear();
void reportStats();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy