// If the assignee is being transformed away and the rhs refers to something that isn't, we fail the assignee and
// every candidate referred to on the RHS.
// If the assignee is not being transformed away, and the rhs refers to things that aren't, we fail every candidate
// referred to on the rhs.
TouchedSymbolLocator locator = new TouchedSymbolLocator();
locator.visitTree(that.rhs);
Set<VarSymbol> touchedSymbols = locator.touched;
log.debug("touched syms: {}", Arrays.toString(touchedSymbols.toArray()));
// Strip out all the symbols that aren't boxed.
Iterator<VarSymbol> i = touchedSymbols.iterator();
while (i.hasNext()) {