src/share/classes/com/sun/tools/javac/comp/Check.java

changeset 1513
cf84b07a82db
parent 1510
7873d37f5b37
child 1521
71f35e4b93a5
     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/Check.java	Mon Jan 21 20:15:16 2013 +0000
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Check.java	Mon Jan 21 20:19:53 2013 +0000
     1.3 @@ -1058,9 +1058,12 @@
     1.4                  } else
     1.5                      mask = ConstructorFlags;
     1.6              }  else if ((sym.owner.flags_field & INTERFACE) != 0) {
     1.7 -                if ((flags & DEFAULT) != 0) {
     1.8 -                    mask = InterfaceDefaultMethodMask;
     1.9 -                    implicit = PUBLIC | ABSTRACT;
    1.10 +                if ((flags & (DEFAULT | STATIC)) != 0) {
    1.11 +                    mask = InterfaceMethodMask;
    1.12 +                    implicit = PUBLIC;
    1.13 +                    if ((flags & DEFAULT) != 0) {
    1.14 +                        implicit |= ABSTRACT;
    1.15 +                    }
    1.16                  } else {
    1.17                      mask = implicit = InterfaceMethodFlags;
    1.18                  }
    1.19 @@ -1130,6 +1133,10 @@
    1.20                                  PRIVATE | STATIC | DEFAULT))
    1.21                   &&
    1.22                   checkDisjoint(pos, flags,
    1.23 +                                STATIC,
    1.24 +                                DEFAULT)
    1.25 +                 &&
    1.26 +                 checkDisjoint(pos, flags,
    1.27                                 ABSTRACT | INTERFACE,
    1.28                                 FINAL | NATIVE | SYNCHRONIZED)
    1.29                   &&

mercurial