Class LookupModel
java.lang.Object
pascal.taie.analysis.pta.plugin.util.SolverHolder
pascal.taie.analysis.pta.plugin.util.AnalysisModelPlugin
pascal.taie.analysis.pta.plugin.invokedynamic.LookupModel
- All Implemented Interfaces:
Plugin
Models java.lang.invoke.MethodHandles.Lookup.find*(...).
For details, please refer to
MethodHandles.Lookup.html
TODO: take Lookup.lookupClass's visibility into account
TODO: take MethodType into account
-
Field Summary
Fields inherited from class pascal.taie.analysis.pta.plugin.util.AnalysisModelPlugin
handlers, relevantVarIndexes, relevantVars
Fields inherited from class pascal.taie.analysis.pta.plugin.util.SolverHolder
csManager, emptyContext, heapModel, hierarchy, selector, solver, typeSystem
-
Method Summary
Modifier and TypeMethodDescriptionvoid
findConstructor
(Context context, Invoke invoke, PointsToSet clsObjs) void
findStatic
(Context context, Invoke invoke, PointsToSet clsObjs, PointsToSet nameObjs) void
findVirtual
(Context context, Invoke invoke, PointsToSet clsObjs, PointsToSet nameObjs) protected void
Methods inherited from class pascal.taie.analysis.pta.plugin.util.AnalysisModelPlugin
onNewPointsToSet, onNewStmt, registerHandler
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface pascal.taie.analysis.pta.plugin.Plugin
onFinish, onNewCallEdge, onNewCSMethod, onNewMethod, onPhaseFinish, onStart, onUnresolvedCall, setSolver
-
Method Details
-
findConstructor
@InvokeHandler(signature="<java.lang.invoke.MethodHandles$Lookup: java.lang.invoke.MethodHandle findConstructor(java.lang.Class,java.lang.invoke.MethodType)>", argIndexes=0) public void findConstructor(Context context, Invoke invoke, PointsToSet clsObjs) -
findVirtual
@InvokeHandler(signature="<java.lang.invoke.MethodHandles$Lookup: java.lang.invoke.MethodHandle findVirtual(java.lang.Class,java.lang.String,java.lang.invoke.MethodType)>", argIndexes={0,1}) public void findVirtual(Context context, Invoke invoke, PointsToSet clsObjs, PointsToSet nameObjs) -
findStatic
@InvokeHandler(signature="<java.lang.invoke.MethodHandles$Lookup: java.lang.invoke.MethodHandle findStatic(java.lang.Class,java.lang.String,java.lang.invoke.MethodType)>", argIndexes={0,1}) public void findStatic(Context context, Invoke invoke, PointsToSet clsObjs, PointsToSet nameObjs) -
registerHandlers
protected void registerHandlers()
-