Browse Source

Do not attach INTERFACE modifier to methods from interfaces

tags/V1_8_6
Andy Clement 9 years ago
parent
commit
ef453a5ff8

+ 3
- 3
tests/src/org/aspectj/systemtest/ajc163/ajc163.xml View File

@@ -42,13 +42,13 @@
<run class="CallTest">
<stdout>
<line text="public abstract boolean Authorization.mayPerform(java.lang.String,java.lang.String)"/>
<line text="public abstract interface boolean AuthorizationAdmin.mayPerform(java.lang.String, java.lang.String)"/>
<line text="public abstract boolean AuthorizationAdmin.mayPerform(java.lang.String, java.lang.String)"/>
<line text="mayPerform() executing"/>
<line text="public abstract boolean AuthorizationAdmin.mayPerform2(java.lang.String,java.lang.String)"/>
<line text="public abstract interface boolean AuthorizationAdmin.mayPerform2(java.lang.String, java.lang.String)"/>
<line text="public abstract boolean AuthorizationAdmin.mayPerform2(java.lang.String, java.lang.String)"/>
<line text="mayPerform2() executing"/>
<line text="public abstract boolean Authorization.mayPerform(java.lang.String,java.lang.String)"/>
<line text="public abstract interface boolean Authorization.mayPerform(java.lang.String, java.lang.String)"/>
<line text="public abstract boolean Authorization.mayPerform(java.lang.String, java.lang.String)"/>
<line text="mayPerform() executing"/>
</stdout>
</run>

+ 2
- 4
weaver/src/org/aspectj/weaver/bcel/BcelMethod.java View File

@@ -83,8 +83,7 @@ class BcelMethod extends ResolvedMemberImpl {

BcelMethod(BcelObjectType declaringType, Method method) {
super(method.getName().equals("<init>") ? CONSTRUCTOR : (method.getName().equals("<clinit>") ? STATIC_INITIALIZATION
: METHOD), declaringType.getResolvedTypeX(), declaringType.isInterface() ? method.getModifiers()
| Modifier.INTERFACE : method.getModifiers(), method.getName(), method.getSignature());
: METHOD), declaringType.getResolvedTypeX(), method.getModifiers(), method.getName(), method.getSignature());
this.method = method;
sourceContext = declaringType.getResolvedTypeX().getSourceContext();
bcelObjectType = declaringType;
@@ -97,8 +96,7 @@ class BcelMethod extends ResolvedMemberImpl {
*/
BcelMethod(BcelObjectType declaringType, Method method, List<AjAttribute> attributes) {
super(method.getName().equals("<init>") ? CONSTRUCTOR : (method.getName().equals("<clinit>") ? STATIC_INITIALIZATION
: METHOD), declaringType.getResolvedTypeX(), declaringType.isInterface() ? method.getModifiers()
| Modifier.INTERFACE : method.getModifiers(), method.getName(), method.getSignature());
: METHOD), declaringType.getResolvedTypeX(), method.getModifiers(), method.getName(), method.getSignature());
this.method = method;
sourceContext = declaringType.getResolvedTypeX().getSourceContext();
bcelObjectType = declaringType;

+ 1
- 1
weaver/testsrc/org/aspectj/weaver/bcel/WorldTestCase.java View File

@@ -123,7 +123,7 @@ public class WorldTestCase extends CommonWorldTests {
});
ResolvedMember remove = iter.lookupMethod(MemberImpl.method(iter, 0, "remove", "()V"));
assertNotNull("iterator doesn't have remove", remove);
modifiersTest(remove, Modifier.PUBLIC | Modifier.INTERFACE); // no longer abstract in Java8 (default instead)
modifiersTest(remove, Modifier.PUBLIC); // no longer abstract in Java8 (default instead)
exceptionsTest(remove, UnresolvedType.NONE);

ResolvedMember clone = iter.lookupMethod(MemberImpl.method(UnresolvedType.OBJECT, 0, "clone", "()Ljava/lang/Object;"));

Loading…
Cancel
Save