Bug 507254 - Run tests with assertions enabled
- fix AssertionError in RoleTypeCreator.maybeWrapUnqualifiedRoleType
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/StandardElementGenerator.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/StandardElementGenerator.java
index ab9e74f..af4cd8e 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/StandardElementGenerator.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/transformer/StandardElementGenerator.java
@@ -214,18 +214,21 @@
if (dimensions > 0)
methodName = CharOperation.concat(methodName, String.valueOf(dimensions).toCharArray(), '$');
ReferenceBinding teamBinding = teamModel.getBinding();
- while (teamBinding != null) {
- MethodBinding[] methods = teamBinding.getMethods(methodName);
- if (methods != null && methods.length == 1) {
- if (TypeBinding.equalsEquals(methods[0].declaringClass, teamModel.getBinding()) || searchSuper)
- return methods[0];
- // go ahead and generate a new method, but use superMethod for weakening after generating:
- superMethod = methods[0];
- break;
+ {
+ ReferenceBinding currentTeam = teamBinding;
+ while (currentTeam != null) {
+ MethodBinding[] methods = currentTeam.getMethods(methodName);
+ if (methods != null && methods.length == 1) {
+ if (TypeBinding.equalsEquals(methods[0].declaringClass, teamModel.getBinding()) || searchSuper)
+ return methods[0];
+ // go ahead and generate a new method, but use superMethod for weakening after generating:
+ superMethod = methods[0];
+ break;
+ }
+ if (!searchSuper && !shouldWeaken)
+ break;
+ currentTeam = currentTeam.superclass();
}
- if (!searchSuper && !shouldWeaken)
- break;
- teamBinding = teamBinding.superclass();
}
TypeDeclaration teamClass = teamModel.getAst();