You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Daniel Sun (JIRA)" <ji...@apache.org> on 2018/03/09 17:04:00 UTC
[jira] [Resolved] (GROOVY-8470) dead loop when compiling 'enum in
enum without semicolon'
[ https://issues.apache.org/jira/browse/GROOVY-8470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Sun resolved GROOVY-8470.
--------------------------------
Resolution: Fixed
Assignee: Daniel Sun
Fix Version/s: 3.0.0-alpha-1
2.6.0-alpha-1
2.6.0-alpha-2
2.6.0-alpha-3
2.6.0-alpha-4
3.0.0-alpha-2
> dead loop when compiling 'enum in enum without semicolon'
> ---------------------------------------------------------
>
> Key: GROOVY-8470
> URL: https://issues.apache.org/jira/browse/GROOVY-8470
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 2.4.13
> Reporter: Xiaoguang Wang
> Assignee: Daniel Sun
> Priority: Major
> Fix For: 3.0.0-alpha-2, 2.6.0-alpha-4, 2.6.0-alpha-3, 2.6.0-alpha-2, 2.6.0-alpha-1, 3.0.0-alpha-1
>
>
> cat a.groovy
> {code:java}
> enum EnumA {
> EA(EnumB.EB) // without a semicolon here, the groovyc enters dead loop
> enum EnumB { EB }
> private EnumA(EnumB enumB) {
> }
> }
> {code}
> Run:
> groovyc a.groovy
>
> It hangs in:
> {code:java}
> "main" #1 prio=5 os_prio=31 tid=0x00007fe32c001800 nid=0x2403 runnable [0x0000700008b92000]
> java.lang.Thread.State: RUNNABLE
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumConstants(GroovyRecognizer.java:6575)
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumBlock(GroovyRecognizer.java:5472)
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumDefinition(GroovyRecognizer.java:2127)
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.typeDefinitionInternal(GroovyRecognizer.java:1875)
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.classField(GroovyRecognizer.java:5961)
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumConstants(GroovyRecognizer.java:6443)
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumBlock(GroovyRecognizer.java:5472)
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.enumDefinition(GroovyRecognizer.java:2127)
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.typeDefinitionInternal(GroovyRecognizer.java:1875)
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(GroovyRecognizer.java:1307)
> at org.codehaus.groovy.antlr.parser.GroovyRecognizer.compilationUnit(GroovyRecognizer.java:666)
> at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:133)
> at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:110)
> at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:234)
> at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:168)
> at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:943)
> at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:605)
> at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
> at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
> at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:537)
> at org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:61)
> at org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:217)
> at org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompile(FileSystemCompiler.java:150)
> at org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompileWithErrorHandling(FileSystemCompiler.java:180)
> at org.codehaus.groovy.tools.FileSystemCompiler.main(FileSystemCompiler.java:164)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
> at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)
> {code}
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)