Browse Source

test and fix for 147701: @DeclareParents: was failing to include package name for checked exceptions, failing to report when impl class didnt implement interface

tags/V1_5_2rc1
aclement 18 years ago
parent
commit
1468daa885

+ 3
- 0
tests/src/org/aspectj/systemtest/ajc152/Ajc152Tests.java View File

@@ -32,6 +32,9 @@ public class Ajc152Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
// public void testBrokenIfArgsCflowAtAj_pr145018() { runTest("ataj crashing with cflow, if and args");}
// public void testItdCallingGenericMethod_pr145391() { runTest("itd calling generic method");}
// public void testItdCallingGenericMethod_pr145391_2() { runTest("itd calling generic method - 2");}
public void testPackageIgnoredForException_pr147701_1() { runTest("package for exception ignored");}
public void testPackageIgnoredForException_pr147701_2() { runTest("package for exception ignored - 2");}
public void testPackageIgnoredForException_pr147701_3() { runTest("package for exception ignored - 3");}
public void testBrokenAddSerialVersionUID_pr145950() {runTest("fails to discover Serializable");}
public void testNoUnnecessaryDeclarationOfThrownExcp_pr129282_1() {runTest("no unnecessary declaration of thrown exception warning - 1");}
public void testNoUnnecessaryDeclarationOfThrownExcp_pr129282_2() {runTest("no unnecessary declaration of thrown exception warning - 2");}

+ 16
- 0
tests/src/org/aspectj/systemtest/ajc152/ajc152.xml View File

@@ -630,6 +630,22 @@
<ajc-test dir="bugs152" title="new IProgramElement handle methods">
<compile files="pr141730.aj" options="-emacssym -1.5"/>
</ajc-test>
<ajc-test dir="bugs152/pr147701" title="package for exception ignored">
<compile files="TestBean.java" options="-1.5"/>
<run class="a.b.c.TestBean"/>
</ajc-test>
<ajc-test dir="bugs152/pr147701" title="package for exception ignored - 2">
<compile files="TestBean2.java" options="-1.5"/>
<run class="a.b.c.TestBean2"/>
</ajc-test>
<ajc-test dir="bugs152/pr147701" title="package for exception ignored - 3">
<compile files="TestBean3.java" options="-1.5">
<message kind="error" text="@DeclareParents: defaultImpl=&quot;a.b.c.Impl&quot; does not implement the interface 'a.b.c.I'"/>
</compile>
</ajc-test>

<ajc-test dir="bugs152" title="declare @method relationship">
<compile files="pr143924.aj" options="-1.5 -showWeaveInfo -emacssym">

+ 3
- 0
weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java View File

@@ -734,6 +734,9 @@ public class AtAjAttributes {
+ defaultImplClassName
+ "\" has no public no-arg constructor", struct);
}
if (!fieldType.isAssignableFrom(impl)) {
reportError("@DeclareParents: defaultImpl=\""+defaultImplClassName+"\" does not implement the interface '"+fieldType.toString()+"'",struct);
}
}

}

+ 0
- 1
weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java View File

@@ -1168,7 +1168,6 @@ public class BcelTypeMunger extends ConcreteTypeMunger {
);

mg.getBody().append(body);
// XXX make sure to check that we set exceptions properly on this guy.
weaver.addLazyMethodGen(mg);
weaver.getLazyClassGen().warnOnAddedMethod(mg.getMethod(),getSignature().getSourceLocation());
return true;

+ 1
- 1
weaver/src/org/aspectj/weaver/bcel/BcelWorld.java View File

@@ -227,7 +227,7 @@ public class BcelWorld extends World implements Repository {
static String[] makeBcelTypesAsClassNames(UnresolvedType[] types) {
String[] ret = new String[types.length];
for (int i = 0, len = types.length; i < len; i++) {
ret[i] = types[i].getClassName();//makeBcelType(types[i]);
ret[i] = types[i].getName();
}
return ret;
}

Loading…
Cancel
Save