1119 // private |
1119 // private |
1120 implicit = PRIVATE; |
1120 implicit = PRIVATE; |
1121 mask = PRIVATE; |
1121 mask = PRIVATE; |
1122 } else |
1122 } else |
1123 mask = ConstructorFlags; |
1123 mask = ConstructorFlags; |
1124 } else if ((sym.owner.flags_field & INTERFACE) != 0) |
1124 } else if ((sym.owner.flags_field & INTERFACE) != 0) { |
1125 mask = implicit = InterfaceMethodFlags; |
1125 if ((flags & DEFAULT) != 0) { |
|
1126 mask = InterfaceDefaultMethodMask; |
|
1127 implicit = PUBLIC; |
|
1128 } else { |
|
1129 mask = implicit = InterfaceMethodFlags; |
|
1130 } |
|
1131 } |
1126 else { |
1132 else { |
1127 mask = MethodFlags; |
1133 mask = MethodFlags; |
1128 } |
1134 } |
1129 // Imply STRICTFP if owner has STRICTFP set. |
1135 // Imply STRICTFP if owner has STRICTFP set. |
1130 if (((flags|implicit) & Flags.ABSTRACT) == 0) |
1136 if (((flags|implicit) & Flags.ABSTRACT) == 0) |
1167 implicit |= sym.owner.flags_field & STRICTFP; |
1173 implicit |= sym.owner.flags_field & STRICTFP; |
1168 break; |
1174 break; |
1169 default: |
1175 default: |
1170 throw new AssertionError(); |
1176 throw new AssertionError(); |
1171 } |
1177 } |
1172 long illegal = flags & StandardFlags & ~mask; |
1178 long illegal = flags & ExtendedStandardFlags & ~mask; |
1173 if (illegal != 0) { |
1179 if (illegal != 0) { |
1174 if ((illegal & INTERFACE) != 0) { |
1180 if ((illegal & INTERFACE) != 0) { |
1175 log.error(pos, "intf.not.allowed.here"); |
1181 log.error(pos, "intf.not.allowed.here"); |
1176 mask |= INTERFACE; |
1182 mask |= INTERFACE; |
1177 } |
1183 } |
1183 else if ((sym.kind == TYP || |
1189 else if ((sym.kind == TYP || |
1184 // ISSUE: Disallowing abstract&private is no longer appropriate |
1190 // ISSUE: Disallowing abstract&private is no longer appropriate |
1185 // in the presence of inner classes. Should it be deleted here? |
1191 // in the presence of inner classes. Should it be deleted here? |
1186 checkDisjoint(pos, flags, |
1192 checkDisjoint(pos, flags, |
1187 ABSTRACT, |
1193 ABSTRACT, |
1188 PRIVATE | STATIC)) |
1194 PRIVATE | STATIC | DEFAULT)) |
1189 && |
1195 && |
1190 checkDisjoint(pos, flags, |
1196 checkDisjoint(pos, flags, |
1191 ABSTRACT | INTERFACE, |
1197 ABSTRACT | INTERFACE, |
1192 FINAL | NATIVE | SYNCHRONIZED) |
1198 FINAL | NATIVE | SYNCHRONIZED) |
1193 && |
1199 && |