Fix new test
NewTypeWizardTest17.testCreateRecordWithAbstractMethodStubs()
by refreshing a replace callin from its base
diff --git a/plugins/org.eclipse.objectteams.otdt.jdt.ui/src/org/eclipse/objectteams/otdt/internal/ui/assist/CompletionAdaptor/StubUtility2Core.java b/plugins/org.eclipse.objectteams.otdt.jdt.ui/src/org/eclipse/objectteams/otdt/internal/ui/assist/CompletionAdaptor/StubUtility2Core.java
index 0863c12..42cc3c1 100644
--- a/plugins/org.eclipse.objectteams.otdt.jdt.ui/src/org/eclipse/objectteams/otdt/internal/ui/assist/CompletionAdaptor/StubUtility2Core.java
+++ b/plugins/org.eclipse.objectteams.otdt.jdt.ui/src/org/eclipse/objectteams/otdt/internal/ui/assist/CompletionAdaptor/StubUtility2Core.java
@@ -51,14 +51,13 @@
@SuppressWarnings("basecall")
callin static IMethodBinding[] getUnimplementedMethods(ITypeBinding typeBinding, boolean implementAbstractsOfInput) {
// COPY&PASTE from base version:
- ArrayList allMethods= new ArrayList();
- ArrayList toImplement= new ArrayList();
+ ArrayList<IMethodBinding> allMethods= new ArrayList<>();
+ ArrayList<IMethodBinding> toImplement= new ArrayList<>();
- IMethodBinding[] typeMethods= typeBinding.getDeclaredMethods();
- for (int i= 0; i < typeMethods.length; i++) {
- IMethodBinding curr= typeMethods[i];
+ for (IMethodBinding curr : typeBinding.getDeclaredMethods()) {
int modifiers= curr.getModifiers();
- if (!curr.isConstructor() && !Modifier.isStatic(modifiers) && !Modifier.isPrivate(modifiers)) {
+ if (!curr.isConstructor() && !Modifier.isStatic(modifiers) && !Modifier.isPrivate(modifiers)
+ && !curr.isSyntheticRecordMethod()) {
//{ObjectTeams: never enter copied methods (have no java element)
if (!curr.isCopied())
// SH}
@@ -89,8 +88,7 @@
superClass= superClass.getSuperclass();
}
- for (int i= 0; i < allMethods.size(); i++) {
- IMethodBinding curr= (IMethodBinding) allMethods.get(i);
+ for (IMethodBinding curr : allMethods) {
int modifiers= curr.getModifiers();
if ((Modifier.isAbstract(modifiers) || curr.getDeclaringClass().isInterface()) && (implementAbstractsOfInput || typeBinding != curr.getDeclaringClass())) {
// implement all abstract methods
@@ -98,36 +96,33 @@
}
}
- HashSet visited= new HashSet();
+ HashSet<ITypeBinding> visited= new HashSet<>();
ITypeBinding curr= typeBinding;
while (curr != null) {
- ITypeBinding[] superInterfaces= curr.getInterfaces();
- for (int i= 0; i < superInterfaces.length; i++) {
+ for (ITypeBinding superInterface : curr.getInterfaces()) {
//{ObjectTeams: consider that a role class part finds its super interfaces in the interface part:
- if (curr.isClassPartOf(superInterfaces[i])) {
+ if (curr.isClassPartOf(superInterface)) {
// do consider transitively inherited methods:
- ITypeBinding[] superSuperInterfaces = superInterfaces[i].getInterfaces();
- for (int j = 0; j < superSuperInterfaces.length; j++)
- findUnimplementedInterfaceMethods(superSuperInterfaces[j], visited, allMethods, typeBinding.getPackage(), toImplement);
+ ITypeBinding[] superSuperInterfaces = superInterface.getInterfaces();
+ for (ITypeBinding superSuperIfc : superSuperInterfaces)
+ findUnimplementedInterfaceMethods(superSuperIfc, visited, allMethods, typeBinding.getPackage(), toImplement);
// but don't add methods from our own ifc-part (occurs when role extends non-role).
continue;
}
// SH}
- findUnimplementedInterfaceMethods(superInterfaces[i], visited, allMethods, typeBinding.getPackage(), toImplement);
+ findUnimplementedInterfaceMethods(superInterface, visited, allMethods, typeBinding.getPackage(), toImplement);
}
curr= curr.getSuperclass();
}
- return (IMethodBinding[]) toImplement.toArray(new IMethodBinding[toImplement.size()]);
+ return toImplement.toArray(new IMethodBinding[toImplement.size()]);
}
// COPY&PASTE: orig extracted as helper from base of above:
- private static void findVisibleVirtualMethods(ITypeBinding typeBinding, ArrayList allMethods) {
- IMethodBinding[] typeMethods= typeBinding.getDeclaredMethods();
- for (int i= 0; i < typeMethods.length; i++) {
- IMethodBinding curr= typeMethods[i];
+ private static void findVisibleVirtualMethods(ITypeBinding typeBinding, ArrayList<IMethodBinding> allMethods) {
+ for (IMethodBinding curr : typeBinding.getDeclaredMethods()) {
int modifiers= curr.getModifiers();
if ((!curr.isConstructor() && !Modifier.isStatic(modifiers) && !Modifier.isPrivate(modifiers))
- || Modifier.isAbstract(modifiers)) // account for 'abstract static' (partially virtual ;P )
+ || Modifier.isAbstract(modifiers)) // OT: account for 'abstract static' (partially virtual ;P )
{
if (!curr.isCopied()) // new check for OT
if (findMethodBinding(curr, allMethods) == null) {