You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Ian (Jira)" <ji...@apache.org> on 2020/02/19 16:31:00 UTC

[jira] [Updated] (GROOVY-8715) Cannot Resolve Arrays of Inner Class

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

Ian updated GROOVY-8715:
------------------------
    Description: 
Two files in the 'pkg' package:
{code:java|title=MyClass.groovy}
package pkg 
class HasClass { static class MyClass {} }
{code}
 
{code:java|title=HasClass.groovy}
package pkg
private static void foo(HasClass.MyClass... val) {}
//pkg.HasClass.MyClass[] val // Also Fails
//pkg.HasClass.MyClass val // Does not fail
{code}
Results in the following error:
  
{code:java}
/home/ianl/IdeaProjects/VariousGroovy/src/main/groovy/pkg/UsesClass.groovy: 3: unable to resolve class HasClass.MyClass[] 
 @ line 3, column 25.
   private static void foo(HasClass.MyClass... val) {}
                           ^
{code}
This fails only for arrays, not single references. It does not occur if the files are in the default package.

It is also possible to work around it with a static import:
  
{code:java|title=HasClass.groovy}
package pkg
import static HasClass.MyClass // Now it doesn't fail
private static void foo(MyClass... val) {}
{code}

  was:
Two files in the 'pkg' package:
{code:java|title=HasClass.groovy}
package pkg 
class HasClass { static class MyClass {} }
{code}
 
{code:java|title=HasClass.groovy}
package pkg
private static void foo(HasClass.MyClass... val) {}
//pkg.HasClass.MyClass[] val // Also Fails
//pkg.HasClass.MyClass val // Does not fail
{code}
Results in the following error:
  
{code:java}
/home/ianl/IdeaProjects/VariousGroovy/src/main/groovy/pkg/UsesClass.groovy: 3: unable to resolve class HasClass.MyClass[] 
 @ line 3, column 25.
   private static void foo(HasClass.MyClass... val) {}
                           ^
{code}
This fails only for arrays, not single references. It does not occur if the files are in the default package.

It is also possible to work around it with a static import:
  
{code:java|title=HasClass.groovy}
package pkg
import static HasClass.MyClass // Now it doesn't fail
private static void foo(MyClass... val) {}
{code}


> Cannot Resolve Arrays of Inner Class
> ------------------------------------
>
>                 Key: GROOVY-8715
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8715
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 3.0.0-alpha-3, 2.5.0
>            Reporter: Ian
>            Priority: Major
>
> Two files in the 'pkg' package:
> {code:java|title=MyClass.groovy}
> package pkg 
> class HasClass { static class MyClass {} }
> {code}
>  
> {code:java|title=HasClass.groovy}
> package pkg
> private static void foo(HasClass.MyClass... val) {}
> //pkg.HasClass.MyClass[] val // Also Fails
> //pkg.HasClass.MyClass val // Does not fail
> {code}
> Results in the following error:
>   
> {code:java}
> /home/ianl/IdeaProjects/VariousGroovy/src/main/groovy/pkg/UsesClass.groovy: 3: unable to resolve class HasClass.MyClass[] 
>  @ line 3, column 25.
>    private static void foo(HasClass.MyClass... val) {}
>                            ^
> {code}
> This fails only for arrays, not single references. It does not occur if the files are in the default package.
> It is also possible to work around it with a static import:
>   
> {code:java|title=HasClass.groovy}
> package pkg
> import static HasClass.MyClass // Now it doesn't fail
> private static void foo(MyClass... val) {}
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)