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

changeset 1085
ed338593b0b6
parent 1015
6bb526ccf5ff
child 1086
f595d8bc0599
     1.1 --- a/src/share/classes/com/sun/tools/javac/code/Symbol.java	Mon Sep 12 11:40:07 2011 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java	Tue Sep 13 14:14:57 2011 +0100
     1.3 @@ -149,7 +149,8 @@
     1.4       * the default package; otherwise, the owner symbol is returned
     1.5       */
     1.6      public Symbol location() {
     1.7 -        if (owner.name == null || (owner.name.isEmpty() && owner.kind != PCK && owner.kind != TYP)) {
     1.8 +        if (owner.name == null || (owner.name.isEmpty() &&
     1.9 +                (owner.flags() & BLOCK) == 0 && owner.kind != PCK && owner.kind != TYP)) {
    1.10              return null;
    1.11          }
    1.12          return owner;
    1.13 @@ -1299,10 +1300,17 @@
    1.14                  return ElementKind.CONSTRUCTOR;
    1.15              else if (name == name.table.names.clinit)
    1.16                  return ElementKind.STATIC_INIT;
    1.17 +            else if ((flags() & BLOCK) != 0)
    1.18 +                return isStatic() ? ElementKind.STATIC_INIT : ElementKind.INSTANCE_INIT;
    1.19              else
    1.20                  return ElementKind.METHOD;
    1.21          }
    1.22  
    1.23 +        public boolean isStaticOrInstanceInit() {
    1.24 +            return getKind() == ElementKind.STATIC_INIT ||
    1.25 +                    getKind() == ElementKind.INSTANCE_INIT;
    1.26 +        }
    1.27 +
    1.28          public Attribute getDefaultValue() {
    1.29              return defaultValue;
    1.30          }

mercurial