[jira] [Commented] (GROOVY-8247) AIOOBE in StaticTypeCheckingVisitor with SAM and explicit closure parameter

2017-09-14 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16166011#comment-16166011
 ] 

ASF GitHub Bot commented on GROOVY-8247:


GitHub user paulk-asert opened a pull request:

https://github.com/apache/groovy/pull/600

GROOVY-8247: AIOOBE in StaticTypeCheckingVisitor with SAM and explici…

…t closure parameter

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/paulk-asert/groovy groovy8247

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/groovy/pull/600.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #600


commit afb5302b0f447e73adbda62aa22c4d63ff1d4c48
Author: paulk 
Date:   2017-09-14T09:38:17Z

GROOVY-8247: AIOOBE in StaticTypeCheckingVisitor with SAM and explicit 
closure parameter




> AIOOBE in StaticTypeCheckingVisitor with SAM and explicit closure parameter
> ---
>
> Key: GROOVY-8247
> URL: https://issues.apache.org/jira/browse/GROOVY-8247
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation, Static Type Checker
>Affects Versions: 2.4.10
>Reporter: Daniil Ovchinnikov
>
> {code}
> def runnable(Runnable r) {
> r.run()
> }
> @CompileStatic
> def foo() {
> runnable { it -> // note explicit it
> println it
> }
> }
> foo()
> {code}
> {noformat}
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup 
> failed:
> General error during instruction selection: 0
> java.lang.ArrayIndexOutOfBoundsException: 0
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.inferSAMType(StaticTypeCheckingVisitor.java:2424)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.inferClosureParameterTypes(StaticTypeCheckingVisitor.java:2362)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2326)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3030)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:358)
>   at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:196)
>   at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
>   at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorOrMethod(StaticTypeCheckingVisitor.java:1816)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.startMethodInference(StaticTypeCheckingVisitor.java:2151)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethod(StaticTypeCheckingVisitor.java:2110)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethod(StaticCompilationVisitor.java:185)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompileTransformation.visit(StaticCompileTransformation.java:76)
>   at 
> org.codehaus.groovy.transform.ASTTransformationVisitor.visitClass(ASTTransformationVisitor.java:134)
>   at 
> org.codehaus.groovy.transform.ASTTransformationVisitor$2.call(ASTTransformationVisitor.java:178)
>   at 
> org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1065)
>   at 
> org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
>   at 
> org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
>   at 
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
>   at 
> 

[GitHub] groovy pull request #601: GROOVY-8246: AIOOBE in StaticTypeCheckingVisitor w...

2017-09-14 Thread paulk-asert
GitHub user paulk-asert opened a pull request:

https://github.com/apache/groovy/pull/601

GROOVY-8246: AIOOBE in StaticTypeCheckingVisitor with SAM



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/paulk-asert/groovy groovy8246

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/groovy/pull/601.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #601


commit 9d084e2980c4379efa2fee6ec5bb929bca9f31a0
Author: paulk 
Date:   2017-09-14T09:41:00Z

GROOVY-8246: AIOOBE in StaticTypeCheckingVisitor with SAM




---


[jira] [Commented] (GROOVY-8247) AIOOBE in StaticTypeCheckingVisitor with SAM and explicit closure parameter

2017-09-14 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16166046#comment-16166046
 ] 

ASF GitHub Bot commented on GROOVY-8247:


Github user asfgit closed the pull request at:

https://github.com/apache/groovy/pull/600


> AIOOBE in StaticTypeCheckingVisitor with SAM and explicit closure parameter
> ---
>
> Key: GROOVY-8247
> URL: https://issues.apache.org/jira/browse/GROOVY-8247
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation, Static Type Checker
>Affects Versions: 2.4.10
>Reporter: Daniil Ovchinnikov
>
> {code}
> def runnable(Runnable r) {
> r.run()
> }
> @CompileStatic
> def foo() {
> runnable { it -> // note explicit it
> println it
> }
> }
> foo()
> {code}
> {noformat}
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup 
> failed:
> General error during instruction selection: 0
> java.lang.ArrayIndexOutOfBoundsException: 0
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.inferSAMType(StaticTypeCheckingVisitor.java:2424)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.inferClosureParameterTypes(StaticTypeCheckingVisitor.java:2362)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2326)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3030)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:358)
>   at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:196)
>   at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
>   at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorOrMethod(StaticTypeCheckingVisitor.java:1816)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.startMethodInference(StaticTypeCheckingVisitor.java:2151)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethod(StaticTypeCheckingVisitor.java:2110)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethod(StaticCompilationVisitor.java:185)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompileTransformation.visit(StaticCompileTransformation.java:76)
>   at 
> org.codehaus.groovy.transform.ASTTransformationVisitor.visitClass(ASTTransformationVisitor.java:134)
>   at 
> org.codehaus.groovy.transform.ASTTransformationVisitor$2.call(ASTTransformationVisitor.java:178)
>   at 
> org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1065)
>   at 
> org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
>   at 
> org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
>   at 
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
>   at 
> groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
>   at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
>   at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
>   at groovy.lang.GroovyShell.run(GroovyShell.java:517)
>   at groovy.lang.GroovyShell.run(GroovyShell.java:507)
>   at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
>   at groovy.ui.GroovyMain.run(GroovyMain.java:384)
>   at groovy.ui.GroovyMain.process(GroovyMain.java:370)
>   at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
>   at groovy.ui.GroovyMain.main(GroovyMain.java:109)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> 

[jira] [Commented] (GROOVY-8246) AIOOBE in StaticTypeCheckingVisitor with SAM

2017-09-14 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16166012#comment-16166012
 ] 

ASF GitHub Bot commented on GROOVY-8246:


GitHub user paulk-asert opened a pull request:

https://github.com/apache/groovy/pull/601

GROOVY-8246: AIOOBE in StaticTypeCheckingVisitor with SAM



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/paulk-asert/groovy groovy8246

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/groovy/pull/601.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #601


commit 9d084e2980c4379efa2fee6ec5bb929bca9f31a0
Author: paulk 
Date:   2017-09-14T09:41:00Z

GROOVY-8246: AIOOBE in StaticTypeCheckingVisitor with SAM




> AIOOBE in StaticTypeCheckingVisitor with SAM 
> -
>
> Key: GROOVY-8246
> URL: https://issues.apache.org/jira/browse/GROOVY-8246
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation, Static Type Checker
>Affects Versions: 2.4.10
>Reporter: Daniil Ovchinnikov
>
> {code}
> def runnable(Runnable r) {
> r.run()
> }
> @CompileStatic
> def foo() {
> runnable {
> println it
> }
> }
> foo()
> {code}
> {noformat}
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup 
> failed:
> General error during instruction selection: 0
> at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.getType(StaticTypeCheckingVisitor.java:3996)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.getArgumentTypes(StaticTypeCheckingVisitor.java:1956)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:2829)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:358)
>   at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:196)
>   at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
>   at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:176)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2021)
>   at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:45)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2329)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3030)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:358)
>   at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:196)
>   at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
>   at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorOrMethod(StaticTypeCheckingVisitor.java:1816)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126)
>   at 
> 

[GitHub] groovy pull request #601: GROOVY-8246: AIOOBE in StaticTypeCheckingVisitor w...

2017-09-14 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/groovy/pull/601


---


[jira] [Commented] (GROOVY-8246) AIOOBE in StaticTypeCheckingVisitor with SAM

2017-09-14 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16166045#comment-16166045
 ] 

ASF GitHub Bot commented on GROOVY-8246:


Github user asfgit closed the pull request at:

https://github.com/apache/groovy/pull/601


> AIOOBE in StaticTypeCheckingVisitor with SAM 
> -
>
> Key: GROOVY-8246
> URL: https://issues.apache.org/jira/browse/GROOVY-8246
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation, Static Type Checker
>Affects Versions: 2.4.10
>Reporter: Daniil Ovchinnikov
>
> {code}
> def runnable(Runnable r) {
> r.run()
> }
> @CompileStatic
> def foo() {
> runnable {
> println it
> }
> }
> foo()
> {code}
> {noformat}
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup 
> failed:
> General error during instruction selection: 0
> at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.getType(StaticTypeCheckingVisitor.java:3996)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.getArgumentTypes(StaticTypeCheckingVisitor.java:1956)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:2829)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:358)
>   at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:196)
>   at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
>   at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:176)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2021)
>   at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:45)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2329)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3030)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:358)
>   at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:196)
>   at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
>   at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorOrMethod(StaticTypeCheckingVisitor.java:1816)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.startMethodInference(StaticTypeCheckingVisitor.java:2151)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethod(StaticTypeCheckingVisitor.java:2110)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethod(StaticCompilationVisitor.java:185)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompileTransformation.visit(StaticCompileTransformation.java:76)
>   at 
> org.codehaus.groovy.transform.ASTTransformationVisitor.visitClass(ASTTransformationVisitor.java:134)
>   at 
> org.codehaus.groovy.transform.ASTTransformationVisitor$2.call(ASTTransformationVisitor.java:178)
>   at 
> 

[GitHub] groovy pull request #600: GROOVY-8247: AIOOBE in StaticTypeCheckingVisitor w...

2017-09-14 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/groovy/pull/600


---


[jira] [Resolved] (GROOVY-8247) AIOOBE in StaticTypeCheckingVisitor with SAM and explicit closure parameter

2017-09-14 Thread Paul King (JIRA)

 [ 
https://issues.apache.org/jira/browse/GROOVY-8247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul King resolved GROOVY-8247.
---
   Resolution: Fixed
 Assignee: Paul King
Fix Version/s: 2.4.13

Proposed PR merged. Thanks for spotting the issue.

> AIOOBE in StaticTypeCheckingVisitor with SAM and explicit closure parameter
> ---
>
> Key: GROOVY-8247
> URL: https://issues.apache.org/jira/browse/GROOVY-8247
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation, Static Type Checker
>Affects Versions: 2.4.10
>Reporter: Daniil Ovchinnikov
>Assignee: Paul King
> Fix For: 2.4.13
>
>
> {code}
> def runnable(Runnable r) {
> r.run()
> }
> @CompileStatic
> def foo() {
> runnable { it -> // note explicit it
> println it
> }
> }
> foo()
> {code}
> {noformat}
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup 
> failed:
> General error during instruction selection: 0
> java.lang.ArrayIndexOutOfBoundsException: 0
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.inferSAMType(StaticTypeCheckingVisitor.java:2424)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.inferClosureParameterTypes(StaticTypeCheckingVisitor.java:2362)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2326)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3030)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:358)
>   at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:196)
>   at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
>   at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorOrMethod(StaticTypeCheckingVisitor.java:1816)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.startMethodInference(StaticTypeCheckingVisitor.java:2151)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethod(StaticTypeCheckingVisitor.java:2110)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethod(StaticCompilationVisitor.java:185)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompileTransformation.visit(StaticCompileTransformation.java:76)
>   at 
> org.codehaus.groovy.transform.ASTTransformationVisitor.visitClass(ASTTransformationVisitor.java:134)
>   at 
> org.codehaus.groovy.transform.ASTTransformationVisitor$2.call(ASTTransformationVisitor.java:178)
>   at 
> org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1065)
>   at 
> org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
>   at 
> org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
>   at 
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
>   at 
> groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
>   at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
>   at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
>   at groovy.lang.GroovyShell.run(GroovyShell.java:517)
>   at groovy.lang.GroovyShell.run(GroovyShell.java:507)
>   at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
>   at groovy.ui.GroovyMain.run(GroovyMain.java:384)
>   at groovy.ui.GroovyMain.process(GroovyMain.java:370)
>   at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
>   at groovy.ui.GroovyMain.main(GroovyMain.java:109)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> 

[jira] [Resolved] (GROOVY-8246) AIOOBE in StaticTypeCheckingVisitor with SAM

2017-09-14 Thread Paul King (JIRA)

 [ 
https://issues.apache.org/jira/browse/GROOVY-8246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul King resolved GROOVY-8246.
---
   Resolution: Fixed
 Assignee: Paul King
Fix Version/s: 2.4.13

Proposed PR merged. Thanks for spotting the issue.

> AIOOBE in StaticTypeCheckingVisitor with SAM 
> -
>
> Key: GROOVY-8246
> URL: https://issues.apache.org/jira/browse/GROOVY-8246
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation, Static Type Checker
>Affects Versions: 2.4.10
>Reporter: Daniil Ovchinnikov
>Assignee: Paul King
> Fix For: 2.4.13
>
>
> {code}
> def runnable(Runnable r) {
> r.run()
> }
> @CompileStatic
> def foo() {
> runnable {
> println it
> }
> }
> foo()
> {code}
> {noformat}
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup 
> failed:
> General error during instruction selection: 0
> at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.getType(StaticTypeCheckingVisitor.java:3996)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.getArgumentTypes(StaticTypeCheckingVisitor.java:1956)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:2829)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:358)
>   at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:196)
>   at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
>   at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:176)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2021)
>   at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:45)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2329)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3030)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:358)
>   at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:196)
>   at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>   at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
>   at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorOrMethod(StaticTypeCheckingVisitor.java:1816)
>   at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.startMethodInference(StaticTypeCheckingVisitor.java:2151)
>   at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethod(StaticTypeCheckingVisitor.java:2110)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethod(StaticCompilationVisitor.java:185)
>   at 
> org.codehaus.groovy.transform.sc.StaticCompileTransformation.visit(StaticCompileTransformation.java:76)
>   at 
> org.codehaus.groovy.transform.ASTTransformationVisitor.visitClass(ASTTransformationVisitor.java:134)
>   at 
> 

[jira] [Commented] (GROOVY-8318) Implement Groovy Template Engine For Spring 5

2017-09-14 Thread Jason Yu (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8318?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16167367#comment-16167367
 ] 

Jason Yu commented on GROOVY-8318:
--

Thanks for your suggestion. I may open a own project for it. So you can close 
this issue.

> Implement Groovy Template Engine For Spring 5
> -
>
> Key: GROOVY-8318
> URL: https://issues.apache.org/jira/browse/GROOVY-8318
> Project: Groovy
>  Issue Type: Wish
>Reporter: Jason Yu
>Priority: Minor
>
> I have created a relative [issue|https://jira.spring.io/browse/SPR-15850] on 
> Spring's Jira. But they recommend that template engines support their own 
> infrastructure ([this 
> comment|https://jira.spring.io/browse/SPR-15850?focusedCommentId=154052=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-154052]).
>  Could Groovy provide corresponding package just like 
> [thymeleaf-spring5|http://www.thymeleaf.org/apidocs/thymeleaf-spring5/3.0.6.M4/overview-summary.html]?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (GROOVY-8318) Implement Groovy Template Engine For Spring 5

2017-09-14 Thread Daniel Sun (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8318?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16167313#comment-16167313
 ] 

Daniel Sun commented on GROOVY-8318:


Jason, maybe it is better to create an independent project like Grails.

> Implement Groovy Template Engine For Spring 5
> -
>
> Key: GROOVY-8318
> URL: https://issues.apache.org/jira/browse/GROOVY-8318
> Project: Groovy
>  Issue Type: Wish
>Reporter: Jason Yu
>Priority: Minor
>
> I have created a relative [issue|https://jira.spring.io/browse/SPR-15850] on 
> Spring's Jira. But they recommend that template engines support their own 
> infrastructure ([this 
> comment|https://jira.spring.io/browse/SPR-15850?focusedCommentId=154052=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-154052]).
>  Could Groovy provide corresponding package just like 
> [thymeleaf-spring5|http://www.thymeleaf.org/apidocs/thymeleaf-spring5/3.0.6.M4/overview-summary.html]?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (GROOVY-8318) Implement Groovy Template Engine For Spring 5

2017-09-14 Thread Jason Yu (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8318?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16167177#comment-16167177
 ] 

Jason Yu commented on GROOVY-8318:
--

I'm sorry that I didn't explained. Spring 5 announce WebFlux module. It has MVC 
architecture just similar to WebMVC module. But it based on reactive 
programming (Reactor 3), unlike WebMVC has official support for several kinds 
of template engines (see [this 
link|https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc/src/main/java/org/springframework/web/servlet/view]).
 The WebFlux only keep Freemarker support as a reference implementation (see 
[this 
link|https://github.com/spring-projects/spring-framework/tree/master/spring-webflux/src/main/java/org/springframework/web/reactive/result/view]).
 I have tried to migrate groovy template's implementation from WebMVC to 
WebFlux and open PR for [this issue|https://jira.spring.io/browse/SPR-15850]. 
But Spring team want to reduce third-party dependencies (see [this 
comment|https://jira.spring.io/browse/SPR-13795?focusedCommentId=130460=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-130460]).
 They recommend me moving my PR implementation to its own project. Just like 
Thymleaf thrive without an "official" support provided by the Framework itself. 
I'm not sure that Groovy itself may not be the best place for this 
implementation.

> Implement Groovy Template Engine For Spring 5
> -
>
> Key: GROOVY-8318
> URL: https://issues.apache.org/jira/browse/GROOVY-8318
> Project: Groovy
>  Issue Type: Wish
>Reporter: Jason Yu
>Priority: Minor
>
> I have created a relative [issue|https://jira.spring.io/browse/SPR-15850] on 
> Spring's Jira. But they recommend that template engines support their own 
> infrastructure ([this 
> comment|https://jira.spring.io/browse/SPR-15850?focusedCommentId=154052=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-154052]).
>  Could Groovy provide corresponding package just like 
> [thymeleaf-spring5|http://www.thymeleaf.org/apidocs/thymeleaf-spring5/3.0.6.M4/overview-summary.html]?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (GROOVY-8318) Implement Groovy Template Engine For Spring 5

2017-09-14 Thread Jochen Theodorou (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-8318?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16166748#comment-16166748
 ] 

Jochen Theodorou commented on GROOVY-8318:
--

In http://www.baeldung.com/spring-template-engines chapter 6 it explains how to 
use the Groovy Markup Template Engine... Can you explain the difference between 
that and what this issue is about? For example: Would that approach not work in 
Spring 5? Would we not want this? 

> Implement Groovy Template Engine For Spring 5
> -
>
> Key: GROOVY-8318
> URL: https://issues.apache.org/jira/browse/GROOVY-8318
> Project: Groovy
>  Issue Type: Wish
>Reporter: Jason Yu
>Priority: Minor
>
> I have created a relative [issue|https://jira.spring.io/browse/SPR-15850] on 
> Spring's Jira. But they recommend that template engines support their own 
> infrastructure ([this 
> comment|https://jira.spring.io/browse/SPR-15850?focusedCommentId=154052=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-154052]).
>  Could Groovy provide corresponding package just like 
> [thymeleaf-spring5|http://www.thymeleaf.org/apidocs/thymeleaf-spring5/3.0.6.M4/overview-summary.html]?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (GROOVY-7859) Erroneous method pointer expressions pass STC

2017-09-14 Thread Paul King (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-7859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16165804#comment-16165804
 ] 

Paul King edited comment on GROOVY-7859 at 9/14/17 6:20 AM:


The corresponding method reference equivalents using the Parrot parser suffer 
from the same errors:
{code}
x = 'abc'::bar
x = String::length
x = String::size
{code}
This is to be expected given the current implementation.


was (Author: paulk):
The corresponding method reference equivalent using the Parrot parser suffer 
from the same errors:
{code}
x = 'abc'::bar
x = String::length
x = String::size
{code}
This is to be expected given the current implementation.

> Erroneous method pointer expressions pass STC
> -
>
> Key: GROOVY-7859
> URL: https://issues.apache.org/jira/browse/GROOVY-7859
> Project: Groovy
>  Issue Type: Bug
>  Components: Static Type Checker
>Affects Versions: 2.4.7
>Reporter: Shil Sinha
>Assignee: Shil Sinha
>
> Method pointer expressions are not type checked (with STC enabled). The 
> following example should not compile for a number of reasons:
> {code}
> @groovy.transform.TypeChecked
> void test() {
>   def x = 'abc'. //bar is not a String method
>   x() // groovy.lang.MissingMethodException
>   x = String. //length is a non-static method
>   x() // java.lang.IllegalArgumentException: object is not an instance of 
> declaring class
>   x = String. //size is a non-static extension method
>   x() // java.lang.ClassCastException: java.lang.Class cannot be cast to 
> java.lang.String
> }
> test()
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (GROOVY-7859) Erroneous method pointer expressions pass STC

2017-09-14 Thread Paul King (JIRA)

[ 
https://issues.apache.org/jira/browse/GROOVY-7859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16165804#comment-16165804
 ] 

Paul King commented on GROOVY-7859:
---

The corresponding method reference equivalent using the Parrot parser suffer 
from the same errors:
{code}
x = 'abc'::bar
x = String::length
x = String::size
{code}
This is to be expected given the current implementation.

> Erroneous method pointer expressions pass STC
> -
>
> Key: GROOVY-7859
> URL: https://issues.apache.org/jira/browse/GROOVY-7859
> Project: Groovy
>  Issue Type: Bug
>  Components: Static Type Checker
>Affects Versions: 2.4.7
>Reporter: Shil Sinha
>Assignee: Shil Sinha
>
> Method pointer expressions are not type checked (with STC enabled). The 
> following example should not compile for a number of reasons:
> {code}
> @groovy.transform.TypeChecked
> void test() {
>   def x = 'abc'. //bar is not a String method
>   x() // groovy.lang.MissingMethodException
>   x = String. //length is a non-static method
>   x() // java.lang.IllegalArgumentException: object is not an instance of 
> declaring class
>   x = String. //size is a non-static extension method
>   x() // java.lang.ClassCastException: java.lang.Class cannot be cast to 
> java.lang.String
> }
> test()
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)