1048 * @param sym The defined symbol. |
1048 * @param sym The defined symbol. |
1049 */ |
1049 */ |
1050 long checkFlags(DiagnosticPosition pos, long flags, Symbol sym, JCTree tree) { |
1050 long checkFlags(DiagnosticPosition pos, long flags, Symbol sym, JCTree tree) { |
1051 long mask; |
1051 long mask; |
1052 long implicit = 0; |
1052 long implicit = 0; |
|
1053 |
1053 switch (sym.kind) { |
1054 switch (sym.kind) { |
1054 case VAR: |
1055 case VAR: |
1055 if (sym.owner.kind != TYP) |
1056 if (sym.owner.kind != TYP) |
1056 mask = LocalVarFlags; |
1057 mask = LocalVarFlags; |
1057 else if ((sym.owner.flags_field & INTERFACE) != 0) |
1058 else if ((sym.owner.flags_field & INTERFACE) != 0) |
1068 implicit = PRIVATE; |
1069 implicit = PRIVATE; |
1069 mask = PRIVATE; |
1070 mask = PRIVATE; |
1070 } else |
1071 } else |
1071 mask = ConstructorFlags; |
1072 mask = ConstructorFlags; |
1072 } else if ((sym.owner.flags_field & INTERFACE) != 0) { |
1073 } else if ((sym.owner.flags_field & INTERFACE) != 0) { |
1073 if ((flags & (DEFAULT | STATIC)) != 0) { |
1074 if ((sym.owner.flags_field & ANNOTATION) != 0) { |
|
1075 mask = AnnotationTypeElementMask; |
|
1076 implicit = PUBLIC | ABSTRACT; |
|
1077 } else if ((flags & (DEFAULT | STATIC)) != 0) { |
1074 mask = InterfaceMethodMask; |
1078 mask = InterfaceMethodMask; |
1075 implicit = PUBLIC; |
1079 implicit = PUBLIC; |
1076 if ((flags & DEFAULT) != 0) { |
1080 if ((flags & DEFAULT) != 0) { |
1077 implicit |= ABSTRACT; |
1081 implicit |= ABSTRACT; |
1078 } |
1082 } |
1079 } else { |
1083 } else { |
1080 mask = implicit = InterfaceMethodFlags; |
1084 mask = implicit = InterfaceMethodFlags; |
1081 } |
1085 } |
1082 } |
1086 } else { |
1083 else { |
|
1084 mask = MethodFlags; |
1087 mask = MethodFlags; |
1085 } |
1088 } |
1086 // Imply STRICTFP if owner has STRICTFP set. |
1089 // Imply STRICTFP if owner has STRICTFP set. |
1087 if (((flags|implicit) & Flags.ABSTRACT) == 0 || |
1090 if (((flags|implicit) & Flags.ABSTRACT) == 0 || |
1088 ((flags) & Flags.DEFAULT) != 0) |
1091 ((flags) & Flags.DEFAULT) != 0) |