Skip to content

Commit

Permalink
Finding duplicate methods doesn't work when using 'smart' static meth…
Browse files Browse the repository at this point in the history
…ods (#658)

* Finding duplicate methods doesn't work when using 'smart' static methods

* fix

* small change

---------

Co-authored-by: EotT123 <EotT123>
  • Loading branch information
EotT123 authored Jan 14, 2025
1 parent 3121638 commit 2685901
Showing 1 changed file with 10 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -584,25 +584,31 @@ private boolean warnIfDuplicate( AbstractSrcMethod method, SrcClass extendedType
return true;
}

private AbstractSrcMethod findMethod( AbstractSrcMethod method, SrcClass extendedType )
private AbstractSrcMethod findMethod( AbstractSrcMethod<?> method, SrcClass extendedType )
{
if( extendedType == null )
{
return null;
}

AbstractSrcMethod duplicate = null;
int paramsToSubtract = 0;
if( !method.getParameters().isEmpty() )
{
SrcParameter firstParam = method.getParameters().get(0);
paramsToSubtract = firstParam.hasAnnotation( This.class ) || firstParam.hasAnnotation( ThisClass.class ) ? 1 : 0;
}
outer:
for( AbstractSrcMethod m: extendedType.getMethods() )
{
if( m.getSimpleName().equals( method.getSimpleName() ) && m.getParameters().size() == method.getParameters().size()-1 )
if( m.getSimpleName().equals( method.getSimpleName() ) && m.getParameters().size() == method.getParameters().size()-paramsToSubtract )
{
List parameters = method.getParameters();
List params = m.getParameters();
for( int i = 1; i < parameters.size(); i++ )
for( int i = paramsToSubtract; i < parameters.size(); i++ )
{
SrcParameter param = (SrcParameter)parameters.get( i );
SrcParameter p = (SrcParameter)params.get( i-1 );
SrcParameter p = (SrcParameter)params.get( i-paramsToSubtract );
if( !param.getType().equals( p.getType() ) )
{
continue outer;
Expand Down

0 comments on commit 2685901

Please sign in to comment.