@Override public Context getCalleeTarget(CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] receiver) { final Context base = baseSelector.getCalleeTarget(caller, site, callee, receiver); if (receiver != null && receiver[0] != null && receiver[0] instanceof ScopeMappingInstanceKey) { final ScopeMappingInstanceKey smik = (ScopeMappingInstanceKey) receiver[0]; return new ArgumentInstanceContext(base, 0, smik); } else { return base; } }
@Override public Context getCalleeTarget(CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] receiver) { final Context base = baseSelector.getCalleeTarget(caller, site, callee, receiver); if (receiver != null && receiver[0] != null && receiver[0] instanceof ScopeMappingInstanceKey) { final ScopeMappingInstanceKey smik = (ScopeMappingInstanceKey) receiver[0]; return new ArgumentInstanceContext(base, 0, smik); } else { return base; } }
@Override public Context getCalleeTarget(CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] arguments) { Context baseContext = base.getCalleeTarget(caller, site, callee, arguments); if(returnsThis(callee)) { if(arguments.length > 1 && arguments[1] != null) { return new ArgumentInstanceContext(baseContext, 1, arguments[1]); } } return baseContext; }
@Override public Context getCalleeTarget(CGNode caller, CallSiteReference site, IMethod callee, InstanceKey[] arguments) { Context baseContext = base.getCalleeTarget(caller, site, callee, arguments); if(returnsThis(callee)) { if(arguments.length > 1 && arguments[1] != null) { return new ArgumentInstanceContext(baseContext, 1, arguments[1]); } } return baseContext; }