This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/master by this push:
     new c47d014  Trivial tweaking DGSM support for native method reference
c47d014 is described below

commit c47d0144101e7e5ffafcd0177a742b8c54ca948c
Author: Daniel Sun <[email protected]>
AuthorDate: Fri Jun 28 22:39:53 2019 +0800

    Trivial tweaking DGSM support for native method reference
---
 .../sc/StaticTypesMethodReferenceExpressionWriter.java |  2 +-
 .../groovy/transform/stc/MethodReferenceTest.groovy    | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git 
a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesMethodReferenceExpressionWriter.java
 
b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesMethodReferenceExpressionWriter.java
index 2a8438d..708ef51 100644
--- 
a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesMethodReferenceExpressionWriter.java
+++ 
b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesMethodReferenceExpressionWriter.java
@@ -195,7 +195,7 @@ public class StaticTypesMethodReferenceExpressionWriter 
extends MethodReferenceE
         args.getExpressions().add(0, ConstantExpression.NULL);
 
         return controller.getClassNode().addSyntheticMethod(
-                "dgsm$" + 
mn.getParameters()[0].getType().getName().replace(".", "_") + "$" + 
mn.getName(),
+                "dgsm$$" + 
mn.getParameters()[0].getType().getName().replace(".", "$") + "$$" + 
mn.getName(),
                 Opcodes.ACC_PRIVATE | Opcodes.ACC_STATIC | Opcodes.ACC_FINAL | 
Opcodes.ACC_SYNTHETIC,
                 mn.getReturnType(),
                 parameters,
diff --git a/src/test/groovy/transform/stc/MethodReferenceTest.groovy 
b/src/test/groovy/transform/stc/MethodReferenceTest.groovy
index ac75952..0d6d781 100644
--- a/src/test/groovy/transform/stc/MethodReferenceTest.groovy
+++ b/src/test/groovy/transform/stc/MethodReferenceTest.groovy
@@ -443,4 +443,22 @@ class MethodReferenceTest extends GroovyTestCase {
             p()
         '''
     }
+
+    // class::staticMethod
+    void testFunctionCS_MULTI_DGSM() {
+        assertScript '''
+            import java.util.stream.Collectors
+            
+            @groovy.transform.CompileStatic
+            void p() {
+                def result = [{}, {}, 
{}].stream().map(Thread::startDaemon).collect(Collectors.toList())
+                assert result.every(e -> e instanceof Thread)
+                
+                result = [{}, {}, 
{}].stream().map(Thread::startDaemon).collect(Collectors.toList())
+                assert result.every(e -> e instanceof Thread)
+            }
+            
+            p()
+        '''
+    }
 }

Reply via email to