public class net.bytebuddy.implementation.EqualsMethod$Appender extends java.lang.Object implements net.bytebuddy.implementation.bytecode.ByteCodeAppender
{
private final net.bytebuddy.description.type.TypeDescription instrumentedType;
private final net.bytebuddy.implementation.bytecode.StackManipulation baseline;
private final java.util.List fieldDescriptions;
private final net.bytebuddy.matcher.ElementMatcher nonNullable;
protected void <init>(net.bytebuddy.description.type.TypeDescription, net.bytebuddy.implementation.bytecode.StackManipulation, java.util.List, net.bytebuddy.matcher.ElementMatcher)
{
java.util.List v;
net.bytebuddy.matcher.ElementMatcher v;
net.bytebuddy.implementation.bytecode.StackManipulation v;
net.bytebuddy.description.type.TypeDescription v;
net.bytebuddy.implementation.EqualsMethod$Appender v;
v := @this: net.bytebuddy.implementation.EqualsMethod$Appender;
v := @parameter: net.bytebuddy.description.type.TypeDescription;
v := @parameter: net.bytebuddy.implementation.bytecode.StackManipulation;
v := @parameter: java.util.List;
v := @parameter: net.bytebuddy.matcher.ElementMatcher;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.description.type.TypeDescription instrumentedType> = v;
v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.implementation.bytecode.StackManipulation baseline> = v;
v.<net.bytebuddy.implementation.EqualsMethod$Appender: java.util.List fieldDescriptions> = v;
v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.matcher.ElementMatcher nonNullable> = v;
return;
}
public net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size apply(net.bytebuddy.jar.asm.MethodVisitor, net.bytebuddy.implementation.Implementation$Context, net.bytebuddy.description.method.MethodDescription)
{
java.lang.IllegalStateException v, v, v;
net.bytebuddy.description.method.MethodDescription v;
boolean v, v, v, v, v, v, v;
net.bytebuddy.description.type.TypeDescription$Generic v, v, v, v, v;
net.bytebuddy.implementation.bytecode.member.MethodReturn v;
net.bytebuddy.implementation.bytecode.member.MethodVariableAccess v;
java.util.List v, v;
net.bytebuddy.implementation.EqualsMethod$NullValueGuard$UsingJump v;
net.bytebuddy.jar.asm.MethodVisitor v;
net.bytebuddy.description.type.TypeDescription v;
net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size v;
net.bytebuddy.implementation.EqualsMethod$NullValueGuard v;
net.bytebuddy.implementation.bytecode.StackManipulation$Compound v;
net.bytebuddy.implementation.EqualsMethod$Appender v;
java.util.ArrayList v;
net.bytebuddy.description.method.ParameterList v, v;
net.bytebuddy.implementation.bytecode.StackManipulation$Size v;
int v, v, v, v, v, v, v, v, v;
net.bytebuddy.implementation.bytecode.StackManipulation v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
net.bytebuddy.implementation.Implementation$Context v;
java.util.Iterator v;
net.bytebuddy.implementation.bytecode.member.FieldAccess$Defined v, v;
net.bytebuddy.matcher.ElementMatcher v;
java.lang.Class v;
java.lang.Object v, v;
v := @this: net.bytebuddy.implementation.EqualsMethod$Appender;
v := @parameter: net.bytebuddy.jar.asm.MethodVisitor;
v := @parameter: net.bytebuddy.implementation.Implementation$Context;
v := @parameter: net.bytebuddy.description.method.MethodDescription;
v = interfaceinvoke v.<net.bytebuddy.description.method.MethodDescription: boolean isStatic()>();
if v == 0 goto label;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (net.bytebuddy.description.method.MethodDescription)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Hash code method must not be static: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<net.bytebuddy.description.method.MethodDescription: net.bytebuddy.description.method.ParameterList getParameters()>();
v = interfaceinvoke v.<net.bytebuddy.description.method.ParameterList: int size()>();
if v != 1 goto label;
v = interfaceinvoke v.<net.bytebuddy.description.method.MethodDescription: net.bytebuddy.description.method.ParameterList getParameters()>();
v = interfaceinvoke v.<net.bytebuddy.description.method.ParameterList: java.lang.Object getOnly()>();
v = interfaceinvoke v.<net.bytebuddy.description.method.ParameterDescription: net.bytebuddy.description.type.TypeDescription$Generic getType()>();
v = interfaceinvoke v.<net.bytebuddy.description.type.TypeDescription$Generic: boolean isPrimitive()>();
if v == 0 goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>()>();
throw v;
label:
v = interfaceinvoke v.<net.bytebuddy.description.method.MethodDescription: net.bytebuddy.description.type.TypeDescription$Generic getReturnType()>();
v = <java.lang.Boolean: java.lang.Class TYPE>;
v = interfaceinvoke v.<net.bytebuddy.description.type.TypeDescription$Generic: boolean represents(java.lang.reflect.Type)>(v);
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (net.bytebuddy.description.method.MethodDescription)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Hash code method does not return primitive boolean: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new java.util.ArrayList;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: java.util.List fieldDescriptions>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v * 8;
v = 3 + v;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.implementation.bytecode.StackManipulation baseline>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = 0;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: java.util.List fieldDescriptions>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <net.bytebuddy.implementation.bytecode.member.MethodVariableAccess: net.bytebuddy.implementation.bytecode.StackManipulation loadThis()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = staticinvoke <net.bytebuddy.implementation.bytecode.member.FieldAccess: net.bytebuddy.implementation.bytecode.member.FieldAccess$Defined forField(net.bytebuddy.description.field.FieldDescription$InDefinedShape)>(v);
v = interfaceinvoke v.<net.bytebuddy.implementation.bytecode.member.FieldAccess$Defined: net.bytebuddy.implementation.bytecode.StackManipulation read()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <net.bytebuddy.implementation.bytecode.member.MethodVariableAccess: net.bytebuddy.implementation.bytecode.member.MethodVariableAccess REFERENCE>;
v = virtualinvoke v.<net.bytebuddy.implementation.bytecode.member.MethodVariableAccess: net.bytebuddy.implementation.bytecode.StackManipulation loadFrom(int)>(1);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.description.type.TypeDescription instrumentedType>;
v = staticinvoke <net.bytebuddy.implementation.bytecode.assign.TypeCasting: net.bytebuddy.implementation.bytecode.StackManipulation 'to'(net.bytebuddy.description.type.TypeDefinition)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = staticinvoke <net.bytebuddy.implementation.bytecode.member.FieldAccess: net.bytebuddy.implementation.bytecode.member.FieldAccess$Defined forField(net.bytebuddy.description.field.FieldDescription$InDefinedShape)>(v);
v = interfaceinvoke v.<net.bytebuddy.implementation.bytecode.member.FieldAccess$Defined: net.bytebuddy.implementation.bytecode.StackManipulation read()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<net.bytebuddy.description.field.FieldDescription$InDefinedShape: net.bytebuddy.description.type.TypeDescription$Generic getType()>();
v = interfaceinvoke v.<net.bytebuddy.description.type.TypeDescription$Generic: boolean isPrimitive()>();
if v != 0 goto label;
v = interfaceinvoke v.<net.bytebuddy.description.field.FieldDescription$InDefinedShape: net.bytebuddy.description.type.TypeDescription$Generic getType()>();
v = interfaceinvoke v.<net.bytebuddy.description.type.TypeDescription$Generic: boolean isArray()>();
if v != 0 goto label;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.matcher.ElementMatcher nonNullable>;
v = interfaceinvoke v.<net.bytebuddy.matcher.ElementMatcher: boolean matches(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = <net.bytebuddy.implementation.EqualsMethod$NullValueGuard$NoOp: net.bytebuddy.implementation.EqualsMethod$NullValueGuard$NoOp INSTANCE>;
goto label;
label:
v = new net.bytebuddy.implementation.EqualsMethod$NullValueGuard$UsingJump;
v = v;
specialinvoke v.<net.bytebuddy.implementation.EqualsMethod$NullValueGuard$UsingJump: void <init>(net.bytebuddy.description.method.MethodDescription)>(v);
label:
v = interfaceinvoke v.<net.bytebuddy.implementation.EqualsMethod$NullValueGuard: net.bytebuddy.implementation.bytecode.StackManipulation before()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<net.bytebuddy.description.field.FieldDescription$InDefinedShape: net.bytebuddy.description.type.TypeDescription$Generic getType()>();
v = staticinvoke <net.bytebuddy.implementation.EqualsMethod$ValueComparator: net.bytebuddy.implementation.bytecode.StackManipulation of(net.bytebuddy.description.type.TypeDefinition)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<net.bytebuddy.implementation.EqualsMethod$NullValueGuard: net.bytebuddy.implementation.bytecode.StackManipulation after()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<net.bytebuddy.implementation.EqualsMethod$NullValueGuard: int getRequiredVariablePadding()>();
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
goto label;
label:
v = staticinvoke <net.bytebuddy.implementation.bytecode.constant.IntegerConstant: net.bytebuddy.implementation.bytecode.StackManipulation forValue(boolean)>(1);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <net.bytebuddy.implementation.bytecode.member.MethodReturn: net.bytebuddy.implementation.bytecode.member.MethodReturn INTEGER>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = new net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size;
v = new net.bytebuddy.implementation.bytecode.StackManipulation$Compound;
specialinvoke v.<net.bytebuddy.implementation.bytecode.StackManipulation$Compound: void <init>(java.util.List)>(v);
v = virtualinvoke v.<net.bytebuddy.implementation.bytecode.StackManipulation$Compound: net.bytebuddy.implementation.bytecode.StackManipulation$Size apply(net.bytebuddy.jar.asm.MethodVisitor,net.bytebuddy.implementation.Implementation$Context)>(v, v);
v = virtualinvoke v.<net.bytebuddy.implementation.bytecode.StackManipulation$Size: int getMaximalSize()>();
v = interfaceinvoke v.<net.bytebuddy.description.method.MethodDescription: int getStackSize()>();
v = v + v;
specialinvoke v.<net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size: void <init>(int,int)>(v, v);
return v;
}
public boolean equals(java.lang.Object)
{
net.bytebuddy.implementation.EqualsMethod$Appender v;
net.bytebuddy.implementation.bytecode.StackManipulation v, v;
boolean v, v, v, v;
java.util.List v, v;
net.bytebuddy.matcher.ElementMatcher v, v;
java.lang.Class v, v;
java.lang.Object v;
net.bytebuddy.description.type.TypeDescription v, v;
v := @this: net.bytebuddy.implementation.EqualsMethod$Appender;
v := @parameter: java.lang.Object;
if v != v goto label;
return 1;
label:
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v == v goto label;
return 0;
label:
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.description.type.TypeDescription instrumentedType>;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.description.type.TypeDescription instrumentedType>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.implementation.bytecode.StackManipulation baseline>;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.implementation.bytecode.StackManipulation baseline>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: java.util.List fieldDescriptions>;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: java.util.List fieldDescriptions>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.matcher.ElementMatcher nonNullable>;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.matcher.ElementMatcher nonNullable>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
return 1;
}
public int hashCode()
{
net.bytebuddy.implementation.EqualsMethod$Appender v;
int v, v, v, v, v, v, v, v, v, v, v, v, v;
net.bytebuddy.implementation.bytecode.StackManipulation v;
java.util.List v;
net.bytebuddy.matcher.ElementMatcher v;
java.lang.Class v;
net.bytebuddy.description.type.TypeDescription v;
v := @this: net.bytebuddy.implementation.EqualsMethod$Appender;
v = virtualinvoke v.<net.bytebuddy.implementation.EqualsMethod$Appender: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: int hashCode()>();
v = v * 31;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.description.type.TypeDescription instrumentedType>;
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = v + v;
v = v * 31;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.implementation.bytecode.StackManipulation baseline>;
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = v + v;
v = v * 31;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: java.util.List fieldDescriptions>;
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = v + v;
v = v * 31;
v = v.<net.bytebuddy.implementation.EqualsMethod$Appender: net.bytebuddy.matcher.ElementMatcher nonNullable>;
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = v + v;
return v;
}
}