public static ExecutableElement asExecutable(Element element) {
    return element.accept(ExecutableElementVisitor.INSTANCE, null);
  }
Returns the given {@link Element} instance as {@link ExecutableElement}.

<p>This method is functionally equivalent to an {@code instanceof} check and a cast, but should
always be used over that idiom as instructed in the documentation for {@link Element}.

@throws IllegalArgumentException if {@code element} isn't a {@link ExecutableElement}.
value-processor/src/org/immutables/value/processor/meta/MoreElements.java