[jira] [Commented] (GROOVY-8753) Compiler error in STC: exception in phase 'instruction selection'

2018-09-21 Thread Graeme Rocher (JIRA)


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

Graeme Rocher commented on GROOVY-8753:
---

Note this issue also blocks upgrading Micronaut to 2.5.2

> Compiler error in STC: exception in phase 'instruction selection'
> -
>
> Key: GROOVY-8753
> URL: https://issues.apache.org/jira/browse/GROOVY-8753
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation
>Affects Versions: 2.5.2
> Environment: Java 8u181, Ubuntu 18.04
>Reporter: Patric Bechtel
>Assignee: Paul King
>Priority: Critical
> Fix For: 3.0.0-alpha-4, 2.5.3
>
>
> Following source compiles under 2.5.1 and 3.0alpha3, but not 2.5.2:
> {code:java}
> @groovy.transform.CompileStatic
> class A {
>    private List fooNames = []
>    public A(Collection names) {
>   names.each { fooNames << it }
>    }
>    public List getFooNames() { fooNames }
> }
> {code}
> error message is:
> {noformat}
> >>> a serious error occurred: BUG! exception in phase 'instruction selection' 
> >>> in source unit 'A.groovy' Tried to overwrite existing meta data 
> >>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> >>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> >>> property: ConstantExpression[fooNames]].
> >>> stacktrace:
> BUG! exception in phase 'instruction selection' in source unit 'A.groovy' 
> Tried to overwrite existing meta data 
> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> property: ConstantExpression[fooNames]].
>     at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
>     at 
> org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:72)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:785)
>     at 
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:197)
>     at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:88)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:106)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:3628)
>     at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:227)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2286)
>     at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:49)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2596)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3286)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:397)
>     at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:70)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> 

[jira] [Commented] (GROOVY-8753) Compiler error in STC: exception in phase 'instruction selection'

2018-08-20 Thread Patric Bechtel (JIRA)


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

Patric Bechtel commented on GROOVY-8753:


Strike :)

That did the trick. Checking the docs, this cache even survives a clean... wtf? 
Isn't there a trick to make clean drop the build cache, too?

Thanks a lot, though. Am I the only one ever stumbled over that?

> Compiler error in STC: exception in phase 'instruction selection'
> -
>
> Key: GROOVY-8753
> URL: https://issues.apache.org/jira/browse/GROOVY-8753
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation
>Affects Versions: 2.5.2
> Environment: Java 8u181, Ubuntu 18.04
>Reporter: Patric Bechtel
>Assignee: Paul King
>Priority: Critical
> Fix For: 3.0.0-alpha-4, 2.5.3
>
>
> Following source compiles under 2.5.1 and 3.0alpha3, but not 2.5.2:
> {code:java}
> @groovy.transform.CompileStatic
> class A {
>    private List fooNames = []
>    public A(Collection names) {
>   names.each { fooNames << it }
>    }
>    public List getFooNames() { fooNames }
> }
> {code}
> error message is:
> {noformat}
> >>> a serious error occurred: BUG! exception in phase 'instruction selection' 
> >>> in source unit 'A.groovy' Tried to overwrite existing meta data 
> >>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> >>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> >>> property: ConstantExpression[fooNames]].
> >>> stacktrace:
> BUG! exception in phase 'instruction selection' in source unit 'A.groovy' 
> Tried to overwrite existing meta data 
> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> property: ConstantExpression[fooNames]].
>     at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
>     at 
> org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:72)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:785)
>     at 
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:197)
>     at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:88)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:106)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:3628)
>     at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:227)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2286)
>     at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:49)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2596)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3286)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:397)
>     at 
> 

[jira] [Commented] (GROOVY-8753) Compiler error in STC: exception in phase 'instruction selection'

2018-08-20 Thread Paul King (JIRA)


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

Paul King commented on GROOVY-8753:
---

All I can think of is adding {{--no-build-cache}} when building Groovy.

> Compiler error in STC: exception in phase 'instruction selection'
> -
>
> Key: GROOVY-8753
> URL: https://issues.apache.org/jira/browse/GROOVY-8753
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation
>Affects Versions: 2.5.2
> Environment: Java 8u181, Ubuntu 18.04
>Reporter: Patric Bechtel
>Assignee: Paul King
>Priority: Critical
> Fix For: 3.0.0-alpha-4, 2.5.3
>
>
> Following source compiles under 2.5.1 and 3.0alpha3, but not 2.5.2:
> {code:java}
> @groovy.transform.CompileStatic
> class A {
>    private List fooNames = []
>    public A(Collection names) {
>   names.each { fooNames << it }
>    }
>    public List getFooNames() { fooNames }
> }
> {code}
> error message is:
> {noformat}
> >>> a serious error occurred: BUG! exception in phase 'instruction selection' 
> >>> in source unit 'A.groovy' Tried to overwrite existing meta data 
> >>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> >>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> >>> property: ConstantExpression[fooNames]].
> >>> stacktrace:
> BUG! exception in phase 'instruction selection' in source unit 'A.groovy' 
> Tried to overwrite existing meta data 
> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> property: ConstantExpression[fooNames]].
>     at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
>     at 
> org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:72)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:785)
>     at 
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:197)
>     at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:88)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:106)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:3628)
>     at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:227)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2286)
>     at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:49)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2596)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3286)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:397)
>     at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:70)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> 

[jira] [Commented] (GROOVY-8753) Compiler error in STC: exception in phase 'instruction selection'

2018-08-20 Thread Patric Bechtel (JIRA)


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

Patric Bechtel commented on GROOVY-8753:


Just tried:
{noformat}
git pull; ./gradlew clean; gradlew installGroovy;
java -cp target/install/lib/groovy-2.5.3-SNAPSHOT.jar 
org.codehaus.groovy.tools.FileSystemCompiler A.groov{noformat}
results in
{noformat}
>>> a serious error occurred: BUG! exception in phase 'instruction selection' 
>>> in source unit 'A.groovy' Tried to overwrite existing meta data 
>>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
>>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
>>> property: ConstantExpression[fooNames]].
>>> stacktrace:
BUG! exception in phase 'instruction selection' in source unit 'A.groovy' Tried 
to overwrite existing meta data 
org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] property: 
ConstantExpression[fooNames]].
    at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
    at 
org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
    at 
org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
    at 
org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:72)
{noformat}
Oracle Java 8u181, Ubuntu 18.04.

*sigh*... wtf?

 

> Compiler error in STC: exception in phase 'instruction selection'
> -
>
> Key: GROOVY-8753
> URL: https://issues.apache.org/jira/browse/GROOVY-8753
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation
>Affects Versions: 2.5.2
> Environment: Java 8u181, Ubuntu 18.04
>Reporter: Patric Bechtel
>Assignee: Paul King
>Priority: Critical
> Fix For: 3.0.0-alpha-4, 2.5.3
>
>
> Following source compiles under 2.5.1 and 3.0alpha3, but not 2.5.2:
> {code:java}
> @groovy.transform.CompileStatic
> class A {
>    private List fooNames = []
>    public A(Collection names) {
>   names.each { fooNames << it }
>    }
>    public List getFooNames() { fooNames }
> }
> {code}
> error message is:
> {noformat}
> >>> a serious error occurred: BUG! exception in phase 'instruction selection' 
> >>> in source unit 'A.groovy' Tried to overwrite existing meta data 
> >>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> >>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> >>> property: ConstantExpression[fooNames]].
> >>> stacktrace:
> BUG! exception in phase 'instruction selection' in source unit 'A.groovy' 
> Tried to overwrite existing meta data 
> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> property: ConstantExpression[fooNames]].
>     at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
>    

[jira] [Commented] (GROOVY-8753) Compiler error in STC: exception in phase 'instruction selection'

2018-08-20 Thread Paul King (JIRA)


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

Paul King commented on GROOVY-8753:
---

>From the GROOVY_2_5_X branch when I first use the {{installGroovy}} task I can 
>then run:
{noformat}
java -cp target/install/lib/groovy-2.5.3-SNAPSHOT.jar 
org.codehaus.groovy.tools.FileSystemCompiler A.groovy
{noformat}


> Compiler error in STC: exception in phase 'instruction selection'
> -
>
> Key: GROOVY-8753
> URL: https://issues.apache.org/jira/browse/GROOVY-8753
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation
>Affects Versions: 2.5.2
> Environment: Java 8u181, Ubuntu 18.04
>Reporter: Patric Bechtel
>Assignee: Paul King
>Priority: Critical
> Fix For: 3.0.0-alpha-4, 2.5.3
>
>
> Following source compiles under 2.5.1 and 3.0alpha3, but not 2.5.2:
> {code:java}
> @groovy.transform.CompileStatic
> class A {
>    private List fooNames = []
>    public A(Collection names) {
>   names.each { fooNames << it }
>    }
>    public List getFooNames() { fooNames }
> }
> {code}
> error message is:
> {noformat}
> >>> a serious error occurred: BUG! exception in phase 'instruction selection' 
> >>> in source unit 'A.groovy' Tried to overwrite existing meta data 
> >>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> >>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> >>> property: ConstantExpression[fooNames]].
> >>> stacktrace:
> BUG! exception in phase 'instruction selection' in source unit 'A.groovy' 
> Tried to overwrite existing meta data 
> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> property: ConstantExpression[fooNames]].
>     at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
>     at 
> org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:72)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:785)
>     at 
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:197)
>     at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:88)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:106)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:3628)
>     at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:227)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2286)
>     at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:49)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2596)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3286)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:397)
>     at 
> 

[jira] [Commented] (GROOVY-8753) Compiler error in STC: exception in phase 'instruction selection'

2018-08-20 Thread Patric Bechtel (JIRA)


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

Patric Bechtel commented on GROOVY-8753:


Ack - the test in the pull request works.

The test on from the shell, via
{noformat}
java -cp groovy/target/libs/groovy-2.5.3-SNAPSHOT.jar 
org.codehaus.groovy.tools.FileSystemCompiler A.groovy{noformat}
doesn't.

> Compiler error in STC: exception in phase 'instruction selection'
> -
>
> Key: GROOVY-8753
> URL: https://issues.apache.org/jira/browse/GROOVY-8753
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation
>Affects Versions: 2.5.2
> Environment: Java 8u181, Ubuntu 18.04
>Reporter: Patric Bechtel
>Assignee: Paul King
>Priority: Critical
> Fix For: 3.0.0-alpha-4, 2.5.3
>
>
> Following source compiles under 2.5.1 and 3.0alpha3, but not 2.5.2:
> {code:java}
> @groovy.transform.CompileStatic
> class A {
>    private List fooNames = []
>    public A(Collection names) {
>   names.each { fooNames << it }
>    }
>    public List getFooNames() { fooNames }
> }
> {code}
> error message is:
> {noformat}
> >>> a serious error occurred: BUG! exception in phase 'instruction selection' 
> >>> in source unit 'A.groovy' Tried to overwrite existing meta data 
> >>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> >>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> >>> property: ConstantExpression[fooNames]].
> >>> stacktrace:
> BUG! exception in phase 'instruction selection' in source unit 'A.groovy' 
> Tried to overwrite existing meta data 
> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> property: ConstantExpression[fooNames]].
>     at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
>     at 
> org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:72)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:785)
>     at 
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:197)
>     at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:88)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:106)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:3628)
>     at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:227)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2286)
>     at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:49)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2596)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3286)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:397)
>     at 
> 

[jira] [Commented] (GROOVY-8753) Compiler error in STC: exception in phase 'instruction selection'

2018-08-20 Thread Paul King (JIRA)


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

Paul King commented on GROOVY-8753:
---

Can you try the test in the pull request.

> Compiler error in STC: exception in phase 'instruction selection'
> -
>
> Key: GROOVY-8753
> URL: https://issues.apache.org/jira/browse/GROOVY-8753
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation
>Affects Versions: 2.5.2
> Environment: Java 8u181, Ubuntu 18.04
>Reporter: Patric Bechtel
>Assignee: Paul King
>Priority: Critical
> Fix For: 3.0.0-alpha-4, 2.5.3
>
>
> Following source compiles under 2.5.1 and 3.0alpha3, but not 2.5.2:
> {code:java}
> @groovy.transform.CompileStatic
> class A {
>    private List fooNames = []
>    public A(Collection names) {
>   names.each { fooNames << it }
>    }
>    public List getFooNames() { fooNames }
> }
> {code}
> error message is:
> {noformat}
> >>> a serious error occurred: BUG! exception in phase 'instruction selection' 
> >>> in source unit 'A.groovy' Tried to overwrite existing meta data 
> >>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> >>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> >>> property: ConstantExpression[fooNames]].
> >>> stacktrace:
> BUG! exception in phase 'instruction selection' in source unit 'A.groovy' 
> Tried to overwrite existing meta data 
> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> property: ConstantExpression[fooNames]].
>     at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
>     at 
> org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:72)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:785)
>     at 
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:197)
>     at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:88)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:106)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:3628)
>     at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:227)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2286)
>     at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:49)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2596)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3286)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:397)
>     at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:70)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> 

[jira] [Commented] (GROOVY-8753) Compiler error in STC: exception in phase 'instruction selection'

2018-08-20 Thread Patric Bechtel (JIRA)


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

Patric Bechtel commented on GROOVY-8753:


I should add something. While trying to reproduce the bug, the (ugly) line
{code:java}
names.each { fooNames << it }
{code}
is important. Replacing that line by the (much nicer) line
{code:java}
fooNames.addAll( names )
{code}
it works.

That might give a clue where this comes from...

> Compiler error in STC: exception in phase 'instruction selection'
> -
>
> Key: GROOVY-8753
> URL: https://issues.apache.org/jira/browse/GROOVY-8753
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation
>Affects Versions: 2.5.2
> Environment: Java 8u181, Ubuntu 18.04
>Reporter: Patric Bechtel
>Assignee: Paul King
>Priority: Critical
> Fix For: 3.0.0-alpha-4, 2.5.3
>
>
> Following source compiles under 2.5.1 and 3.0alpha3, but not 2.5.2:
> {code:java}
> @groovy.transform.CompileStatic
> class A {
>    private List fooNames = []
>    public A(Collection names) {
>   names.each { fooNames << it }
>    }
>    public List getFooNames() { fooNames }
> }
> {code}
> error message is:
> {noformat}
> >>> a serious error occurred: BUG! exception in phase 'instruction selection' 
> >>> in source unit 'A.groovy' Tried to overwrite existing meta data 
> >>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> >>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> >>> property: ConstantExpression[fooNames]].
> >>> stacktrace:
> BUG! exception in phase 'instruction selection' in source unit 'A.groovy' 
> Tried to overwrite existing meta data 
> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> property: ConstantExpression[fooNames]].
>     at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
>     at 
> org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:72)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:785)
>     at 
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:197)
>     at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:88)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:106)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:3628)
>     at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:227)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2286)
>     at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:49)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2596)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3286)
>     at 
> 

[jira] [Commented] (GROOVY-8753) Compiler error in STC: exception in phase 'instruction selection'

2018-08-19 Thread ASF GitHub Bot (JIRA)


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

ASF GitHub Bot commented on GROOVY-8753:


Github user asfgit closed the pull request at:

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


> Compiler error in STC: exception in phase 'instruction selection'
> -
>
> Key: GROOVY-8753
> URL: https://issues.apache.org/jira/browse/GROOVY-8753
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation
>Affects Versions: 2.5.2
> Environment: Java 8u181, Ubuntu 18.04
>Reporter: Patric Bechtel
>Priority: Critical
>
> Following source compiles under 2.5.1 and 3.0alpha3, but not 2.5.2:
> {code:java}
> @groovy.transform.CompileStatic
> class A {
>    private List fooNames = []
>    public A(Collection names) {
>   names.each { fooNames << it }
>    }
>    public List getFooNames() { fooNames }
> }
> {code}
> error message is:
> {noformat}
> >>> a serious error occurred: BUG! exception in phase 'instruction selection' 
> >>> in source unit 'A.groovy' Tried to overwrite existing meta data 
> >>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> >>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> >>> property: ConstantExpression[fooNames]].
> >>> stacktrace:
> BUG! exception in phase 'instruction selection' in source unit 'A.groovy' 
> Tried to overwrite existing meta data 
> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> property: ConstantExpression[fooNames]].
>     at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
>     at 
> org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:72)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:785)
>     at 
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:197)
>     at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:88)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:106)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:3628)
>     at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:227)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2286)
>     at 
> org.codehaus.groovy.ast.expr.ClosureExpression.visit(ClosureExpression.java:49)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2596)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:3286)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethodCallExpression(StaticCompilationVisitor.java:397)
>     at 
> org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:70)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> 

[jira] [Commented] (GROOVY-8753) Compiler error in STC: exception in phase 'instruction selection'

2018-08-17 Thread ASF GitHub Bot (JIRA)


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

ASF GitHub Bot commented on GROOVY-8753:


GitHub user paulk-asert opened a pull request:

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

GROOVY-8753: Compiler error in STC: exception in phase 'instruction s…

…election'

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

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

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

https://github.com/apache/groovy/pull/786.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 #786


commit 242ef2cdfa05bbe4462cd31305303104911404ac
Author: Paul King 
Date:   2018-08-18T05:23:41Z

GROOVY-8753: Compiler error in STC: exception in phase 'instruction 
selection'




> Compiler error in STC: exception in phase 'instruction selection'
> -
>
> Key: GROOVY-8753
> URL: https://issues.apache.org/jira/browse/GROOVY-8753
> Project: Groovy
>  Issue Type: Bug
>  Components: Static compilation
>Affects Versions: 2.5.2
> Environment: Java 8u181, Ubuntu 18.04
>Reporter: Patric Bechtel
>Priority: Critical
>
> Following source compiles under 2.5.1 and 3.0alpha3, but not 2.5.2:
> {code:java}
> @groovy.transform.CompileStatic
> class A {
>    private List fooNames = []
>    public A(Collection names) {
>   names.each { fooNames << it }
>    }
>    public List getFooNames() { fooNames }
> }
> {code}
> error message is:
> {noformat}
> >>> a serious error occurred: BUG! exception in phase 'instruction selection' 
> >>> in source unit 'A.groovy' Tried to overwrite existing meta data 
> >>> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> >>> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> >>> property: ConstantExpression[fooNames]].
> >>> stacktrace:
> BUG! exception in phase 'instruction selection' in source unit 'A.groovy' 
> Tried to overwrite existing meta data 
> org.codehaus.groovy.ast.expr.PropertyExpression@d9f41[object: 
> org.codehaus.groovy.ast.expr.VariableExpression@d9f41[variable: this] 
> property: ConstantExpression[fooNames]].
>     at org.codehaus.groovy.ast.ASTNode.setNodeMetaData(ASTNode.java:154)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.checkOrMarkPrivateAccess(StaticTypeCheckingVisitor.java:501)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.storeField(StaticTypeCheckingVisitor.java:1711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1473)
>     at 
> org.codehaus.groovy.transform.sc.StaticCompilationVisitor.existsProperty(StaticCompilationVisitor.java:522)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.existsProperty(StaticTypeCheckingVisitor.java:1381)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitPropertyExpressionSilent(StaticTypeCheckingVisitor.java:726)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.tryVariableExpressionAsProperty(StaticTypeCheckingVisitor.java:711)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitVariableExpression(StaticTypeCheckingVisitor.java:630)
>     at 
> org.codehaus.groovy.ast.expr.VariableExpression.visit(VariableExpression.java:72)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:785)
>     at 
> org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:51)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:122)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:197)
>     at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:88)
>     at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:106)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBlockStatement(StaticTypeCheckingVisitor.java:3628)
>     at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>     at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitClosureExpression(CodeVisitorSupport.java:227)
>     at 
> org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClosureExpression(StaticTypeCheckingVisitor.java:2286)
>     at 
>