From commits-return-10556-archive-asf-public=cust-asf.ponee.io@groovy.apache.org Sun Jan 12 08:26:29 2020 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 04345180663 for ; Sun, 12 Jan 2020 09:26:28 +0100 (CET) Received: (qmail 57102 invoked by uid 500); 12 Jan 2020 08:26:28 -0000 Mailing-List: contact commits-help@groovy.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@groovy.apache.org Delivered-To: mailing list commits@groovy.apache.org Received: (qmail 57048 invoked by uid 99); 12 Jan 2020 08:26:28 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 12 Jan 2020 08:26:28 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 28BE281F12; Sun, 12 Jan 2020 08:26:28 +0000 (UTC) Date: Sun, 12 Jan 2020 08:26:29 +0000 To: "commits@groovy.apache.org" Subject: [groovy] 01/02: GROOVY-8296: Groovydoc Recognition exception with Java 8 class (improve name resolving) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit From: paulk@apache.org In-Reply-To: <157881758796.3343.13160633229903744407@gitbox.apache.org> References: <157881758796.3343.13160633229903744407@gitbox.apache.org> X-Git-Host: gitbox.apache.org X-Git-Repo: groovy X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Rev: 49e4f821e82d5fd2075bfc9189408ba7c257d037 X-Git-NotificationType: diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated Message-Id: <20200112082628.28BE281F12@gitbox.apache.org> This is an automated email from the ASF dual-hosted git repository. paulk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/groovy.git commit 49e4f821e82d5fd2075bfc9189408ba7c257d037 Author: Paul King AuthorDate: Sun Jan 12 18:24:56 2020 +1000 GROOVY-8296: Groovydoc Recognition exception with Java 8 class (improve name resolving) --- .../tools/groovydoc/antlr4/GroovydocJavaVisitor.java | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/antlr4/GroovydocJavaVisitor.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/antlr4/GroovydocJavaVisitor.java index 882a1f6..d2f77d0 100644 --- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/antlr4/GroovydocJavaVisitor.java +++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/antlr4/GroovydocJavaVisitor.java @@ -35,6 +35,7 @@ import com.github.javaparser.ast.body.TypeDeclaration; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.expr.Name; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; +import com.github.javaparser.ast.type.ClassOrInterfaceType; import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.type.TypeParameter; import com.github.javaparser.ast.visitor.VoidVisitorAdapter; @@ -162,20 +163,27 @@ public class GroovydocJavaVisitor extends VoidVisitorAdapter { } n.getExtendedTypes().forEach(et -> { if (n.isInterface()) { - currentClassDoc.addInterfaceName(et.getNameAsString()); + currentClassDoc.addInterfaceName(fullName(et)); } else { - currentClassDoc.setSuperClassName(et.getNameAsString()); + currentClassDoc.setSuperClassName(fullName(et)); } }); currentClassDoc.setNameWithTypeArgs(currentClassDoc.name() + genericTypesAsString(n.getTypeParameters())); n.getImplementedTypes().forEach(classOrInterfaceType -> - currentClassDoc.addInterfaceName(classOrInterfaceType.getNameAsString())); + currentClassDoc.addInterfaceName(fullName(classOrInterfaceType))); super.visit(n, arg); if (parent != null) { currentClassDoc = parent; } } + private String fullName(ClassOrInterfaceType et) { + StringBuilder name = new StringBuilder(); + et.getScope().ifPresent(sc -> name.append(sc.toString())); + name.append(et.getNameAsString()); + return name.toString(); + } + private String genericTypesAsString(NodeList typeParameters) { return DefaultGroovyMethods.join(typeParameters, ", "); } @@ -203,15 +211,13 @@ public class GroovydocJavaVisitor extends VoidVisitorAdapter { private void processAnnotations(SimpleGroovyProgramElementDoc element, NodeWithAnnotations n) { for (AnnotationExpr an : n.getAnnotations()) { - String name = an.getNameAsString(); - element.addAnnotationRef(new SimpleGroovyAnnotationRef(name, name)); + element.addAnnotationRef(new SimpleGroovyAnnotationRef(an.getClass().getName(), an.getNameAsString())); } } private void processAnnotations(SimpleGroovyParameter param, NodeWithAnnotations n) { for (AnnotationExpr an : n.getAnnotations()) { - String name = an.getNameAsString(); - param.addAnnotationRef(new SimpleGroovyAnnotationRef(name, name)); + param.addAnnotationRef(new SimpleGroovyAnnotationRef(an.getClass().getName(), an.getNameAsString())); } }