if (DEBUG_METHOD_LOOKUP) { System.out.println("[receiver type is " + receiverType + ", " + (receiverTypeIsExact ? "exact]" : " not exact]")); }
	public static Set<XMethod> resolveMethodCallTargets(			InvokeInstruction invokeInstruction,			TypeFrame typeFrame,			ConstantPoolGen cpg) throws DataflowAnalysisException, ClassNotFoundException {				if (invokeInstruction.getOpcode() == Constants.INVOKESTATIC) {			HashSet<XMethod> result = new HashSet<XMethod>();			result.add(new StaticMethod(					invokeInstruction.getClassName(cpg),					invokeInstruction.getName(cpg),					invokeInstruction.getSignature(cpg),					Constants.ACC_STATIC | Constants.ACC_PUBLIC					));			return result;		}				if (!typeFrame.isValid()) {			return new HashSet<XMethod>();		}		int instanceSlot = typeFrame.getInstanceSlot(invokeInstruction, cpg);		Type receiverType = typeFrame.getValue(instanceSlot);		if (!(receiverType instanceof ReferenceType)) {			return new HashSet<XMethod>();		}		boolean receiverTypeIsExact = typeFrame.isExact(instanceSlot);		return resolveMethodCallTargets((ReferenceType) receiverType, invokeInstruction, cpg, receiverTypeIsExact);	}