private String computePath(ExecutableElement element) {
    String path = element.getSimpleName().toString();
    for (Element e = element.getEnclosingElement(); //
        e.getKind().isClass() || e.getKind().isInterface(); //
        e = e.getEnclosingElement()) {
      path = e.getSimpleName() + "." + path;
    }
    if (element.getModifiers().contains(Modifier.ABSTRACT)) {
      return path;
    }
    return path + "()";
  }
Encapsulates routines and various hacks for get relevant strings for the raw types and type
parameters, while attempting to resolve unresolved types using source imports.
value-processor/src/org/immutables/value/processor/meta/TypeStringProvider.java