Class LookupModel
java.lang.Object
pascal.taie.analysis.pta.plugin.util.SolverHolder
pascal.taie.analysis.pta.plugin.util.AbstractModel
pascal.taie.analysis.pta.plugin.invokedynamic.LookupModel
- All Implemented Interfaces:
Model
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.AbstractModel
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
(CSVar csVar, PointsToSet pts, Invoke invoke) void
findStatic
(CSVar csVar, PointsToSet pts, Invoke invoke) void
findVirtual
(CSVar csVar, PointsToSet pts, Invoke invoke) Methods inherited from class pascal.taie.analysis.pta.plugin.util.AbstractModel
getArgs, handleNewInvoke, handleNewPointsToSet, isRelevantVar, registerAPIHandler, registerRelevantVarIndexes, registerVarAndHandlers
-
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(CSVar csVar, PointsToSet pts, Invoke invoke) -
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(CSVar csVar, PointsToSet pts, Invoke invoke) -
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(CSVar csVar, PointsToSet pts, Invoke invoke)
-