if (!functionDef.getTargetType().isCompatible(target.getType())) {
s_logger.debug("Function {} type is not compatible with {}", functionDef, target);
continue;
}
final ComputationTarget adjustedTarget = ResolutionRule.adjustTarget(functionDef.getTargetType(), target);
if (!functionDef.canApplyTo(context.getCompilationContext(), adjustedTarget)) {
s_logger.debug("Function {} cannot be applied to {}", functionDef, target);
continue;
}
Collection<ValueSpecification> results = functionDef.getResults(context.getCompilationContext(), adjustedTarget);
if ((results == null) || results.isEmpty()) {