@@ -239,8 +239,8 @@ private IMethod computeUnresolvedJavaElement() {
239239 }
240240
241241 String [] parametersResolved = new String [0 ];
242- if ( this .methodSymbol != null ) {
243- parametersResolved = this . methodSymbol .params ().stream ()
242+ if ( this .methodSymbol != null && this . methodSymbol . baseSymbol () instanceof MethodSymbol base ) {
243+ parametersResolved = base .params ().stream ()
244244 .map (varSymbol -> varSymbol .type )
245245 .map (t ->
246246 t instanceof TypeVar typeVar ? Signature .C_TYPE_VARIABLE + typeVar .tsym .name .toString () + ";" : // check whether a better constructor exists for it
@@ -254,7 +254,11 @@ private IMethod computeUnresolvedJavaElement() {
254254 .toArray (String []::new );
255255 }
256256 parametersResolved = maybeTrimEnumConstructorArgs (parametersResolved );
257- IMethod [] methods = currentType .findMethods (currentType .getMethod (getName (), parametersResolved ));
257+ IMethod m = currentType .getMethod (getName (), parametersResolved );
258+ if (m != null && m .exists ()) {
259+ return m ;
260+ }
261+ IMethod [] methods = currentType .findMethods (m );
258262 if (methods != null && methods .length > 0 ) {
259263 return methods [0 ];
260264 }
@@ -268,7 +272,11 @@ private IMethod computeUnresolvedJavaElement() {
268272 .toArray (String []::new );
269273 }
270274 parametersNotResolved = maybeTrimEnumConstructorArgs (parametersNotResolved );
271- methods = currentType .findMethods (currentType .getMethod (getName (), parametersNotResolved ));
275+ m = currentType .getMethod (getName (), parametersNotResolved );
276+ if (m != null && m .exists ()) {
277+ return m ;
278+ }
279+ methods = currentType .findMethods (m );
272280 if (methods != null && methods .length > 0 ) {
273281 return methods [0 ];
274282 }
0 commit comments