public static ExecutableType asExecutable(TypeMirror maybeExecutableType) {
    return maybeExecutableType.accept(ExecutableTypeVisitor.INSTANCE, null);
  }
Returns a {@link ExecutableType} if the {@link TypeMirror} represents an executable type such
as a method, constructor, or initializer or throws an {@link IllegalArgumentException}.
value-processor/src/org/immutables/value/processor/meta/MoreTypes.java