harpoon.Analysis.PA2.Mutation
Class MutationAnalysis
java.lang.Object
harpoon.Analysis.PA2.Mutation.MutationAnalysis
public class MutationAnalysis
- extends Object
MutationAnalysis
- Version:
- $Id: MutationAnalysis.java,v 1.6 2005/09/13 19:16:27 salcianu Exp $
- Author:
- Alexandru Salcianu <salcianu@alum.mit.edu>
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MutationAnalysis
public MutationAnalysis(PointerAnalysis pa)
- Creates a
MutationAnalysis
query object.
- Parameters:
pa
- Underlying pointer analysis.
isPure
public boolean isPure(HMethod hm)
throws NoAnalysisResultException
- Checks whether
hm
is a pure methods, according to
the JML definition. A method is pure if it mutates only
objects that did not exist when the method was invoked; in
addition, pure constructors are allowed to mutate the
this
object. The JML purity definition also
precludes pure methods from doing I/O. However, we separate
heap mutation and I/O operations. This analysis deals only
with heap mutations. IOEffectAnalysis
is an
orthogonal analysis that handles I/O mutation.
- Throws:
NoAnalysisResultException
getMutationRegExp
public jpaul.RegExps.RegExp<MLabel> getMutationRegExp(HMethod hm)
throws NoAnalysisResultException
- Throws:
NoAnalysisResultException
getMutatedAbstrFields
public Collection<jpaul.DataStructs.Pair<PANode,HField>> getMutatedAbstrFields(HMethod hm)
throws NoAnalysisResultException
- Throws:
NoAnalysisResultException
getSafeParamIndices
public List<Integer> getSafeParamIndices(HMethod hm)
throws NoAnalysisResultException
- Throws:
NoAnalysisResultException
getSafeParams
public List<ParamInfo> getSafeParams(HMethod hm)
throws NoAnalysisResultException
- Throws:
NoAnalysisResultException