src/share/classes/com/sun/tools/javac/code/Symbol.java

changeset 1513
cf84b07a82db
parent 1491
9f42a06a49c0
child 1521
71f35e4b93a5
     1.1 --- a/src/share/classes/com/sun/tools/javac/code/Symbol.java	Mon Jan 21 20:15:16 2013 +0000
     1.2 +++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java	Mon Jan 21 20:19:53 2013 +0000
     1.3 @@ -1233,7 +1233,8 @@
     1.4              case Flags.PRIVATE:
     1.5                  return false;
     1.6              case Flags.PUBLIC:
     1.7 -                return true;
     1.8 +                return !this.owner.isInterface() ||
     1.9 +                        (flags_field & STATIC) == 0;
    1.10              case Flags.PROTECTED:
    1.11                  return (origin.flags() & INTERFACE) == 0;
    1.12              case 0:
    1.13 @@ -1247,6 +1248,18 @@
    1.14              }
    1.15          }
    1.16  
    1.17 +        @Override
    1.18 +        public boolean isInheritedIn(Symbol clazz, Types types) {
    1.19 +            switch ((int)(flags_field & Flags.AccessFlags)) {
    1.20 +                case PUBLIC:
    1.21 +                    return !this.owner.isInterface() ||
    1.22 +                            clazz == owner ||
    1.23 +                            (flags_field & STATIC) == 0;
    1.24 +                default:
    1.25 +                    return super.isInheritedIn(clazz, types);
    1.26 +            }
    1.27 +        }
    1.28 +
    1.29          /** The implementation of this (abstract) symbol in class origin;
    1.30           *  null if none exists. Synthetic methods are not considered
    1.31           *  as possible implementations.

mercurial