From ae612d9752200a3784de33ea6b79815e77aabaed Mon Sep 17 00:00:00 2001 From: aclement Date: Tue, 18 Oct 2005 15:40:35 +0000 Subject: [PATCH] tests and fix for pr112027 --- tests/bugs150/pr112027.aj | 4 ++++ tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java | 2 ++ tests/src/org/aspectj/systemtest/ajc150/ajc150.xml | 4 ++++ .../src/org/aspectj/weaver/patterns/BindingTypePattern.java | 2 +- weaver/src/org/aspectj/weaver/patterns/ExactTypePattern.java | 4 ++++ 5 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 tests/bugs150/pr112027.aj diff --git a/tests/bugs150/pr112027.aj b/tests/bugs150/pr112027.aj new file mode 100644 index 000000000..08b4eac1a --- /dev/null +++ b/tests/bugs150/pr112027.aj @@ -0,0 +1,4 @@ +public aspect pr112027 { + pointcut pc() : this(pr112027); + before(pr112027 tis) : pc() && this(tis) { } +} diff --git a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java index 3462d7f64..c2ac24822 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java @@ -50,6 +50,8 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase { public void testGenericITDsAndAbstractMethodError_pr102357() { runTest("generic itds and abstract method error");} */ + public void testUnboundFormal_pr112027() { runTest("unexpected error unboundFormalInPC");} + public void testBadDecp_pr110788_1() { runTest("bad generic decp - 1");} public void testBadDecp_pr110788_2() { runTest("bad generic decp - 2");} public void testBadDecp_pr110788_3() { runTest("bad generic decp - 3");} diff --git a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml index 169a814b4..dc7553ede 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml +++ b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml @@ -5014,6 +5014,10 @@ + + + + diff --git a/weaver/src/org/aspectj/weaver/patterns/BindingTypePattern.java b/weaver/src/org/aspectj/weaver/patterns/BindingTypePattern.java index 7afd93fbe..e5740b86a 100644 --- a/weaver/src/org/aspectj/weaver/patterns/BindingTypePattern.java +++ b/weaver/src/org/aspectj/weaver/patterns/BindingTypePattern.java @@ -48,7 +48,7 @@ public class BindingTypePattern extends ExactTypePattern implements BindingPatte } public int hashCode() { int result = 17; - result = 37*result + type.hashCode(); + result = 37*result + super.hashCode(); result = 37*result + formalIndex; return result; } diff --git a/weaver/src/org/aspectj/weaver/patterns/ExactTypePattern.java b/weaver/src/org/aspectj/weaver/patterns/ExactTypePattern.java index 5f6c90267..9f99baf17 100644 --- a/weaver/src/org/aspectj/weaver/patterns/ExactTypePattern.java +++ b/weaver/src/org/aspectj/weaver/patterns/ExactTypePattern.java @@ -148,6 +148,7 @@ public class ExactTypePattern extends TypePattern { public boolean equals(Object other) { if (!(other instanceof ExactTypePattern)) return false; + if (other instanceof BindingTypePattern) return false; ExactTypePattern o = (ExactTypePattern)other; if (includeSubtypes != o.includeSubtypes) return false; if (isVarArgs != o.isVarArgs) return false; @@ -158,6 +159,9 @@ public class ExactTypePattern extends TypePattern { public int hashCode() { int result = 17; result = 37*result + type.hashCode(); + result = 37*result + new Boolean(includeSubtypes).hashCode(); + result = 37*result + new Boolean(isVarArgs).hashCode(); + result = 37*result + typeParameters.hashCode(); result = 37*result + annotationPattern.hashCode(); return result; } -- 2.39.5