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

ASF GitHub Bot commented on GROOVY-7916:
----------------------------------------

Github user paulk-asert commented on a diff in the pull request:

    https://github.com/apache/groovy/pull/397#discussion_r76406865
  
    --- Diff: src/main/org/codehaus/groovy/control/ResolveVisitor.java ---
    @@ -852,6 +858,21 @@ protected Expression 
transformPropertyExpression(PropertyExpression pe) {
             return ret;
         }
     
    +    private boolean isVisibleNestedClass(ClassNode type, ClassNode ceType) 
{
    +        if (!type.isRedirectNode()) return false;
    +        ClassNode redirect = type.redirect();
    +        // public or private
    +        if (Modifier.isPublic(redirect.getModifiers()) || 
Modifier.isProtected(redirect.getModifiers())) return true;
    +        // package local
    +        PackageNode classPackage = ceType.getPackage();
    +        PackageNode nestedPackage = redirect.getPackage();
    +        if ((redirect.getModifiers() & (Modifier.PROTECTED | 
Modifier.PUBLIC | Modifier.PRIVATE)) == 0 &&
    +                ((classPackage == null && nestedPackage == null) ||
    +                        classPackage != null && nestedPackage != null && 
classPackage.equals(nestedPackage)))
    +            return true;
    +        return false;
    --- End diff --
    
    I should probably use getName() on the package. It won't be private or the 
binary and will pick that up.


> MissingPropertyException when accessing a static inner class member from a 
> sub class
> ------------------------------------------------------------------------------------
>
>                 Key: GROOVY-7916
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7916
>             Project: Groovy
>          Issue Type: Bug
>          Components: class generator
>    Affects Versions: 2.4.7
>            Reporter: Caleb Ott
>            Assignee: Paul King
>
> Run the following code in groovy to get the error.
> {code:java}
> class Base {
>     static class Inner {
>         static final String CONST = "Hello World";
>     }
> }
> class Derived extends Base {
>     // empty for this example
> }
> println Derived.Inner.CONST
> {code}
> Error:
> {code}
> Caught: groovy.lang.MissingPropertyException: No such property: Inner for 
> class: Derived
> groovy.lang.MissingPropertyException: No such property: Inner for class: 
> Derived
> {code}
> This code can be easily converted to Java and in Java everything works as it 
> should.
> GROOVY-7762 seems to be a related issue.
> I've verified the issue is on this line...
> {code}println Derived.Inner.CONST{code}
> ...because I tried writing the two classes in Java and still have the same 
> issue.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to