Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -219,15 +219,17 @@ public int hashCode() {

@Override
public boolean equals(final Object obj) {
if (obj instanceof MethodDefinition) {
final MethodDefinition other = (MethodDefinition) obj;

return StringUtilities.equals(getName(), other.getName()) &&
StringUtilities.equals(getErasedSignature(), other.getErasedSignature()) &&
typeNamesMatch(getDeclaringType(), other.getDeclaringType());
if (obj == this) {
return true;
}
if (obj == null || obj.getClass() != getClass()) {
return false;
}
final MethodDefinition other = (MethodDefinition) obj;

return false;
return StringUtilities.equals(getName(), other.getName()) &&
StringUtilities.equals(getErasedSignature(), other.getErasedSignature()) &&
typeNamesMatch(getDeclaringType(), other.getDeclaringType());
}

@Override
Expand All @@ -236,7 +238,7 @@ public void invalidateSignature() {
_erasedSignature = null;
}

private boolean typeNamesMatch(final TypeReference t1, final TypeReference t2) {
private static boolean typeNamesMatch(final TypeReference t1, final TypeReference t2) {
return t1 != null &&
t2 != null &&
StringUtilities.equals(t1.getFullName(), t2.getFullName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package com.strobel.assembler.metadata;

import com.strobel.core.StringUtilities;
import com.strobel.core.VerifyArgument;
import com.strobel.util.ContractUtils;

import java.util.Collections;
Expand All @@ -28,21 +27,24 @@
* Date: 1/6/13
* Time: 2:29 PM
*/
public abstract class MethodReference extends MemberReference implements IMethodSignature,
IGenericParameterProvider,
IGenericContext {
protected final static String CONSTRUCTOR_NAME = "<init>";
protected final static String STATIC_INITIALIZER_NAME = "<clinit>";
public abstract class MethodReference extends MemberReference implements IMethodSignature {
protected static final String CONSTRUCTOR_NAME = "<init>";
protected static final String STATIC_INITIALIZER_NAME = "<clinit>";

// <editor-fold defaultstate="collapsed" desc="Signature">

public abstract TypeReference getReturnType();

public boolean hasParameters() {
return !getParameters().isEmpty();
}

public abstract List<ParameterDefinition> getParameters();
public boolean hasParameter(String name) {
for (ParameterDefinition parameterDefinition : getParameters()) {
if (parameterDefinition.getName().equals(name)) {
return true;
}
}
return false;
}

public List<TypeReference> getThrownTypes() {
return Collections.emptyList();
Expand Down Expand Up @@ -117,11 +119,11 @@ protected StringBuilder appendName(final StringBuilder sb, final boolean fullNam
}

public boolean isConstructor() {
return MethodDefinition.CONSTRUCTOR_NAME.equals(getName());
return CONSTRUCTOR_NAME.equals(getName());
}

public boolean isTypeInitializer() {
return MethodDefinition.STATIC_INITIALIZER_NAME.equals(getName());
return STATIC_INITIALIZER_NAME.equals(getName());
}

// </editor-fold>
Expand Down Expand Up @@ -171,9 +173,9 @@ public GenericParameter findTypeVariable(final String name) {
public MethodDefinition resolve() {
final TypeReference declaringType = getDeclaringType();

if (declaringType == null)
if (declaringType == null) {
throw ContractUtils.unsupported();

}
return declaringType.resolve(this);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1654,6 +1654,7 @@ public Void visitParameterDeclaration(final ParameterDeclaration node, final Voi
@Override
public Void visitFieldDeclaration(final FieldDeclaration node, final Void ignored) {
startNode(node);
formatter.resetLineNumberOffsets(OffsetToLineNumberConverter.NOOP_CONVERTER);
writeAnnotations(node.getAnnotations(), true);
writeModifiers(node.getModifiers());

Expand Down
Loading