eclipse-pde / eclipse.pde

Eclipse Public License 2.0
25 stars 63 forks source link

api.tools: Failed to look up method lambda #1111

Open jukzi opened 7 months ago

jukzi commented 7 months ago

newly my logfile is filled with warnings like

plugin: org.eclipse.pde.api.tools Failed to look up method lambda$1 with signature (Lorg/eclipse/swt/events/SelectionEvent;)V in type org.eclipse.pde.internal.ui.preferences.MainPreferencePage

no stacktrace.

eclipse.buildId=4.31.0.I20240131-1800 java.version=21.0.2

to me it sounds like it looks for lambda methods by name. but lambdas don't have a name anyway

image

iloveeclipse commented 7 months ago

Looks like API tooling process synthetic methods, which is probably not OK (they are generated by compiler and I think should not be part of API baseline).

iloveeclipse commented 7 months ago

So in org.eclipse.pde.api.tools.internal.builder.ReferenceExtractor.visitMethod(int, String, String, String, String[]) there should be something like

if ((access & Opcodes.ACC_SYNTHETIC) != 0) {
MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions);
if (mv != null && ((access & (Opcodes.ACC_NATIVE | Opcodes.ACC_ABSTRACT)) == 0)) {
    return new ClassFileMethodVisitor(mv, name, argumentcount);
}
}

at very beginning.