Repository: groovy Updated Branches: refs/heads/parrot a7ca757d2 -> 37175956f
GROOVY-8007: [parrot] Getting the groovydoc comment should work in scripts as well Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/37175956 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/37175956 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/37175956 Branch: refs/heads/parrot Commit: 37175956fa24000003da8e7701d03781bd6b327b Parents: a7ca757 Author: Daniel Sun <sun...@apache.org> Authored: Fri Nov 25 23:00:23 2016 +0800 Committer: Daniel Sun <sun...@apache.org> Committed: Fri Nov 25 23:00:23 2016 +0800 ---------------------------------------------------------------------- .../org/apache/groovy/parser/antlr4/AstBuilder.java | 4 ++-- .../apache/groovy/parser/antlr4/GroovyParserTest.groovy | 5 +++++ .../src/test/resources/core/Comments_02.groovy | 12 +++++++++++- subprojects/groovy-console/build.gradle | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/37175956/subprojects/groovy-antlr4-grammar/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java ---------------------------------------------------------------------- diff --git a/subprojects/groovy-antlr4-grammar/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java b/subprojects/groovy-antlr4-grammar/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java index 8e2a8f9..f731a8d 100644 --- a/subprojects/groovy-antlr4-grammar/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java +++ b/subprojects/groovy-antlr4-grammar/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java @@ -1119,8 +1119,6 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov } modifierManager.attachAnnotations(methodNode); - - this.attachDocCommentAsMetaData(methodNode, ctx); } else { // script method declaration methodNode = new MethodNode( @@ -1163,6 +1161,8 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov } } + this.attachDocCommentAsMetaData(methodNode, ctx); + return methodNode; } http://git-wip-us.apache.org/repos/asf/groovy/blob/37175956/subprojects/groovy-antlr4-grammar/src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy ---------------------------------------------------------------------- diff --git a/subprojects/groovy-antlr4-grammar/src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy b/subprojects/groovy-antlr4-grammar/src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy index 5e5cc1c..eb0b019 100644 --- a/subprojects/groovy-antlr4-grammar/src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy +++ b/subprojects/groovy-antlr4-grammar/src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy @@ -20,6 +20,7 @@ package org.apache.groovy.parser.antlr4 import org.codehaus.groovy.ast.ClassNode import org.codehaus.groovy.ast.FieldNode +import org.codehaus.groovy.ast.MethodNode import org.codehaus.groovy.ast.Parameter import org.codehaus.groovy.ast.PropertyNode import org.codehaus.groovy.ast.stmt.AssertStatement @@ -49,6 +50,7 @@ class GroovyParserTest extends GroovyTestCase { private static doTestAttachedComments() { def (newAST, oldAST) = doTest('core/Comments_02.groovy'); List<ClassNode> classes = new ArrayList<>(newAST.classes).sort { c1, c2 -> c1.name <=> c2.name }; + List<MethodNode> methods = new ArrayList<>(newAST.methods).sort { m1, m2 -> m1.name <=> m2.name }; assert classes[0].nodeMetaData[AstBuilder.DOC_COMMENT].replaceAll(/\r?\n/, '') == '/** * test class Comments */' assert classes[0].fields[0].nodeMetaData[AstBuilder.DOC_COMMENT].replaceAll(/\r?\n/, '') == '/** * test Comments.SOME_VAR */' @@ -75,6 +77,9 @@ class GroovyParserTest extends GroovyTestCase { assert classes[4].fields[0].nodeMetaData[AstBuilder.DOC_COMMENT] == null assert classes[5].nodeMetaData[AstBuilder.DOC_COMMENT] == null + + assert methods[0].nodeMetaData[AstBuilder.DOC_COMMENT].replaceAll(/\r?\n/, '') == '/** * test someScriptMethod1 */' + assert methods[1].nodeMetaData[AstBuilder.DOC_COMMENT] == null } void "test groovy core - PackageDeclaration"() { http://git-wip-us.apache.org/repos/asf/groovy/blob/37175956/subprojects/groovy-antlr4-grammar/src/test/resources/core/Comments_02.groovy ---------------------------------------------------------------------- diff --git a/subprojects/groovy-antlr4-grammar/src/test/resources/core/Comments_02.groovy b/subprojects/groovy-antlr4-grammar/src/test/resources/core/Comments_02.groovy index f994c35..b2fea2a 100644 --- a/subprojects/groovy-antlr4-grammar/src/test/resources/core/Comments_02.groovy +++ b/subprojects/groovy-antlr4-grammar/src/test/resources/core/Comments_02.groovy @@ -104,4 +104,14 @@ class Comments2 { public static final String SOME_VAR = 'SOME_VAR'; } -class Comments3 {} \ No newline at end of file +class Comments3 {} + +/** + * test someScriptMethod1 + */ +void someScriptMethod1() {} + +/* + * test someScriptMethod2 + */ +void someScriptMethod2() {} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/groovy/blob/37175956/subprojects/groovy-console/build.gradle ---------------------------------------------------------------------- diff --git a/subprojects/groovy-console/build.gradle b/subprojects/groovy-console/build.gradle index f69e889..e40766e 100644 --- a/subprojects/groovy-console/build.gradle +++ b/subprojects/groovy-console/build.gradle @@ -28,7 +28,7 @@ dependencies { task console(type: JavaExec, dependsOn:classes) { if (rootProject.hasProperty('useAntlr4')) { - jvmArgs += ["-Dgroovy.antlr4=true"] + jvmArgs += ["-Dgroovy.antlr4=true", "-Dgroovy.extract.doc.comment=true"] } main = 'groovy.ui.Console'