in javac-ast-extension/src/org/jetbrains/jps/javac/ast/JavacTreeRefScanner.java [343:366]
private static Set<TypeElement> extractImplicitToStringCalls(Tree lOp,
Tree rOp,
JavacReferenceCollectorListener.ReferenceCollector collector) {
TypeMirror lTypeMirror = collector.getType(lOp);
if (lTypeMirror == null) return null;
TypeElement lType = asTypeElement(lTypeMirror, collector.getTypeUtility());
if (lType == null) return null;
TypeMirror rTypeMirror = collector.getType(rOp);
if (rTypeMirror == null) return null;
TypeElement rType = asTypeElement(rTypeMirror, collector.getTypeUtility());
if (rType == null) return null;
if (isToStringImplicitCall(lType, rType, collector)) {
Set<TypeElement> result = new HashSet<TypeElement>();
visitTypeHierarchy(rType, result, collector.getTypeUtility());
return result;
}
if (isToStringImplicitCall(rType, lType, collector)) {
Set<TypeElement> result = new HashSet<TypeElement>();
visitTypeHierarchy(lType, result, collector.getTypeUtility());
return result;
}
return null;
}