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'

Reply via email to