FactoryMethodDescriptor generateDescriptorForConstructor(final AutoFactoryDeclaration declaration,
ExecutableElement constructor) {
checkNotNull(constructor);
checkArgument(constructor.getKind() == ElementKind.CONSTRUCTOR);
Element classElement = constructor.getEnclosingElement();
Name returnType = classElement.accept(
new ElementKindVisitor6<Name, Void>() {
@Override
protected Name defaultAction(Element e, Void p) {
throw new AssertionError();
}