boolean fast = (!relToResolve.isMultiple() && !relToResolve.hasPreferences());
Set<Instance> insts = new HashSet<Instance>();
for (Implementation impl : impls) {
for (Instance inst : impl.getInsts()) {
if (inst.isSharable() && source.canSee(inst) && inst.matchRelationConstraints(relToResolve)) {
if (fast) {
return new Resolved<Instance>(inst);
}
insts.add(inst);
}