Class MethodBypass

java.lang.Object
com.ibm.wala.ipa.summaries.MethodBypass

public class MethodBypass extends Object
"Non-standard" bypass rules to use during call graph construction.

Normally, the method bypass rules replace the IMethod that is resolved by other means, via the getBypass() method. However, the bypass rules can be invoked even before resolving the target of a call, by checking the intercept rules.

  • Constructor Details

  • Method Details

    • getBypass

      public SyntheticMethod getBypass(IMethod target)
      Method getBypass. check to see if a call to the receiver 'target' should be redirected to a different receiver.
      Throws:
      IllegalArgumentException - if target is null
    • getClassHierarchy

      protected IClassHierarchy getClassHierarchy()
    • resolveTarget

      protected MethodReference resolveTarget(MethodReference target)
    • isAllocatable

      public boolean isAllocatable(IClass klass)
      Are we allowed to allocate (for analysis purposes) an instance of a given type? By default, the answer is yes iff T is not abstract. However, subclasses and summaries can override this to allow "special" abstract classes to be allocatable as well.
      Throws:
      IllegalArgumentException - if klass is null