it.unive.lisa.interprocedural.callgraph.CHACallGraph Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lisa-analyses Show documentation
Show all versions of lisa-analyses Show documentation
A library for static analysis
The newest version!
package it.unive.lisa.interprocedural.callgraph;
import it.unive.lisa.program.cfg.statement.Expression;
import it.unive.lisa.type.Type;
import java.util.Collection;
import java.util.Set;
/**
* A call graph constructed following the Class Hierarchy Analysis as defined
* in: Frank Tip and Jens Palsberg. 2000. Scalable propagation-based call graph
* construction algorithms. In Proceedings of the 15th ACM SIGPLAN conference on
* Object-oriented programming, systems, languages, and applications (OOPSLA
* '00). Association for Computing Machinery, New York, NY, USA, 281–293.
* DOI:https://doi.org/10.1145/353171.353190
*
* @author Pietro Ferrara
*/
public class CHACallGraph extends BaseCallGraph {
@Override
public Collection getPossibleTypesOfReceiver(
Expression receiver,
Set types) {
return receiver.getStaticType().allInstances(receiver.getProgram().getTypes());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy