public class net.bytebuddy.implementation.DefaultMethodCall implements net.bytebuddy.implementation.Implementation
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: net.bytebuddy.implementation.DefaultMethodCall
  super_class: java.lang.Object
{
  private final java.util.List<net.bytebuddy.description.type.TypeDescription> prioritizedInterfaces;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lnet/bytebuddy/description/type/TypeDescription;>;

  protected void <init>(java.util.List<net.bytebuddy.description.type.TypeDescription>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // net.bytebuddy.implementation.DefaultMethodCall this
        start local 1 // java.util.List prioritizedInterfaces
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            aload 0 /* this */
            aload 1 /* prioritizedInterfaces */
            putfield net.bytebuddy.implementation.DefaultMethodCall.prioritizedInterfaces:Ljava/util/List;
         2: .line 65
            return
        end local 1 // java.util.List prioritizedInterfaces
        end local 0 // net.bytebuddy.implementation.DefaultMethodCall this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                   this  Lnet/bytebuddy/implementation/DefaultMethodCall;
            0    3     1  prioritizedInterfaces  Ljava/util/List<Lnet/bytebuddy/description/type/TypeDescription;>;
    Signature: (Ljava/util/List<Lnet/bytebuddy/description/type/TypeDescription;>;)V
    MethodParameters:
                       Name  Flags
      prioritizedInterfaces  

  public static net.bytebuddy.implementation.Implementation prioritize(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)Lnet/bytebuddy/implementation/Implementation;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class[] prioritizedInterface
         0: .line 79
            new net.bytebuddy.description.type.TypeList$ForLoadedTypes
            dup
            aload 0 /* prioritizedInterface */
            invokespecial net.bytebuddy.description.type.TypeList$ForLoadedTypes.<init>:([Ljava/lang/Class;)V
            invokestatic net.bytebuddy.implementation.DefaultMethodCall.prioritize:(Ljava/util/Collection;)Lnet/bytebuddy/implementation/Implementation;
            areturn
        end local 0 // java.lang.Class[] prioritizedInterface
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    1     0  prioritizedInterface  [Ljava/lang/Class;
    Signature: ([Ljava/lang/Class<*>;)Lnet/bytebuddy/implementation/Implementation;
    MethodParameters:
                      Name  Flags
      prioritizedInterface  

  public static net.bytebuddy.implementation.Implementation prioritize(java.lang.Iterable<? extends java.lang.Class<?>>);
    descriptor: (Ljava/lang/Iterable;)Lnet/bytebuddy/implementation/Implementation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Iterable prioritizedInterfaces
         0: .line 94
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* list */
        start local 1 // java.util.List list
         1: .line 95
            aload 0 /* prioritizedInterfaces */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.Iterable java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 2 /* prioritizedInterface */
        start local 2 // java.lang.Class prioritizedInterface
         3: .line 96
            aload 1 /* list */
            aload 2 /* prioritizedInterface */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.Class prioritizedInterface
         4: .line 95
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 98
            new net.bytebuddy.description.type.TypeList$ForLoadedTypes
            dup
            aload 1 /* list */
            invokespecial net.bytebuddy.description.type.TypeList$ForLoadedTypes.<init>:(Ljava/util/List;)V
            invokestatic net.bytebuddy.implementation.DefaultMethodCall.prioritize:(Ljava/util/Collection;)Lnet/bytebuddy/implementation/Implementation;
            areturn
        end local 1 // java.util.List list
        end local 0 // java.lang.Iterable prioritizedInterfaces
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0  prioritizedInterfaces  Ljava/lang/Iterable<+Ljava/lang/Class<*>;>;
            1    6     1                   list  Ljava/util/List<Ljava/lang/Class<*>;>;
            3    4     2   prioritizedInterface  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Iterable<+Ljava/lang/Class<*>;>;)Lnet/bytebuddy/implementation/Implementation;
    MethodParameters:
                       Name  Flags
      prioritizedInterfaces  

  public static net.bytebuddy.implementation.Implementation prioritize(net.bytebuddy.description.type.TypeDescription[]);
    descriptor: ([Lnet/bytebuddy/description/type/TypeDescription;)Lnet/bytebuddy/implementation/Implementation;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.bytebuddy.description.type.TypeDescription[] prioritizedInterface
         0: .line 113
            aload 0 /* prioritizedInterface */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic net.bytebuddy.implementation.DefaultMethodCall.prioritize:(Ljava/util/Collection;)Lnet/bytebuddy/implementation/Implementation;
            areturn
        end local 0 // net.bytebuddy.description.type.TypeDescription[] prioritizedInterface
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    1     0  prioritizedInterface  [Lnet/bytebuddy/description/type/TypeDescription;
    MethodParameters:
                      Name  Flags
      prioritizedInterface  

  public static net.bytebuddy.implementation.Implementation prioritize(java.util.Collection<? extends net.bytebuddy.description.type.TypeDescription>);
    descriptor: (Ljava/util/Collection;)Lnet/bytebuddy/implementation/Implementation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.util.Collection prioritizedInterfaces
         0: .line 128
            new net.bytebuddy.implementation.DefaultMethodCall
            dup
            new java.util.ArrayList
            dup
            aload 0 /* prioritizedInterfaces */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokespecial net.bytebuddy.implementation.DefaultMethodCall.<init>:(Ljava/util/List;)V
            areturn
        end local 0 // java.util.Collection prioritizedInterfaces
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    1     0  prioritizedInterfaces  Ljava/util/Collection<+Lnet/bytebuddy/description/type/TypeDescription;>;
    Signature: (Ljava/util/Collection<+Lnet/bytebuddy/description/type/TypeDescription;>;)Lnet/bytebuddy/implementation/Implementation;
    MethodParameters:
                       Name  Flags
      prioritizedInterfaces  

  public static net.bytebuddy.implementation.Implementation unambiguousOnly();
    descriptor: ()Lnet/bytebuddy/implementation/Implementation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 141
            new net.bytebuddy.implementation.DefaultMethodCall
            dup
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokespecial net.bytebuddy.implementation.DefaultMethodCall.<init>:(Ljava/util/List;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public net.bytebuddy.dynamic.scaffold.InstrumentedType prepare(net.bytebuddy.dynamic.scaffold.InstrumentedType);
    descriptor: (Lnet/bytebuddy/dynamic/scaffold/InstrumentedType;)Lnet/bytebuddy/dynamic/scaffold/InstrumentedType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // net.bytebuddy.implementation.DefaultMethodCall this
        start local 1 // net.bytebuddy.dynamic.scaffold.InstrumentedType instrumentedType
         0: .line 148
            aload 1 /* instrumentedType */
            areturn
        end local 1 // net.bytebuddy.dynamic.scaffold.InstrumentedType instrumentedType
        end local 0 // net.bytebuddy.implementation.DefaultMethodCall this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lnet/bytebuddy/implementation/DefaultMethodCall;
            0    1     1  instrumentedType  Lnet/bytebuddy/dynamic/scaffold/InstrumentedType;
    MethodParameters:
                  Name  Flags
      instrumentedType  

  public net.bytebuddy.implementation.bytecode.ByteCodeAppender appender(net.bytebuddy.implementation.Implementation$Target);
    descriptor: (Lnet/bytebuddy/implementation/Implementation$Target;)Lnet/bytebuddy/implementation/bytecode/ByteCodeAppender;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // net.bytebuddy.implementation.DefaultMethodCall this
        start local 1 // net.bytebuddy.implementation.Implementation$Target implementationTarget
         0: .line 155
            new net.bytebuddy.implementation.DefaultMethodCall$Appender
            dup
            aload 1 /* implementationTarget */
            aload 0 /* this */
            aload 1 /* implementationTarget */
            invokeinterface net.bytebuddy.implementation.Implementation$Target.getInstrumentedType:()Lnet/bytebuddy/description/type/TypeDescription;
            invokevirtual net.bytebuddy.implementation.DefaultMethodCall.filterRelevant:(Lnet/bytebuddy/description/type/TypeDescription;)Ljava/util/List;
            invokespecial net.bytebuddy.implementation.DefaultMethodCall$Appender.<init>:(Lnet/bytebuddy/implementation/Implementation$Target;Ljava/util/List;)V
            areturn
        end local 1 // net.bytebuddy.implementation.Implementation$Target implementationTarget
        end local 0 // net.bytebuddy.implementation.DefaultMethodCall this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    1     0                  this  Lnet/bytebuddy/implementation/DefaultMethodCall;
            0    1     1  implementationTarget  Lnet/bytebuddy/implementation/Implementation$Target;
    MethodParameters:
                      Name  Flags
      implementationTarget  

  private java.util.List<net.bytebuddy.description.type.TypeDescription> filterRelevant(net.bytebuddy.description.type.TypeDescription);
    descriptor: (Lnet/bytebuddy/description/type/TypeDescription;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // net.bytebuddy.implementation.DefaultMethodCall this
        start local 1 // net.bytebuddy.description.type.TypeDescription typeDescription
         0: .line 166
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield net.bytebuddy.implementation.DefaultMethodCall.prioritizedInterfaces:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* filtered */
        start local 2 // java.util.List filtered
         1: .line 167
            new java.util.HashSet
            dup
            aload 1 /* typeDescription */
            invokeinterface net.bytebuddy.description.type.TypeDescription.getInterfaces:()Lnet/bytebuddy/description/type/TypeList$Generic;
            invokeinterface net.bytebuddy.description.type.TypeList$Generic.asErasures:()Lnet/bytebuddy/description/type/TypeList;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 3 /* relevant */
        start local 3 // java.util.Set relevant
         2: .line 168
            aload 0 /* this */
            getfield net.bytebuddy.implementation.DefaultMethodCall.prioritizedInterfaces:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: net.bytebuddy.implementation.DefaultMethodCall net.bytebuddy.description.type.TypeDescription java.util.List java.util.Set top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast net.bytebuddy.description.type.TypeDescription
            astore 4 /* prioritizedInterface */
        start local 4 // net.bytebuddy.description.type.TypeDescription prioritizedInterface
         4: .line 169
            aload 3 /* relevant */
            aload 4 /* prioritizedInterface */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 170
            aload 2 /* filtered */
            aload 4 /* prioritizedInterface */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // net.bytebuddy.description.type.TypeDescription prioritizedInterface
         6: .line 168
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 173
            aload 2 /* filtered */
            areturn
        end local 3 // java.util.Set relevant
        end local 2 // java.util.List filtered
        end local 1 // net.bytebuddy.description.type.TypeDescription typeDescription
        end local 0 // net.bytebuddy.implementation.DefaultMethodCall this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    8     0                  this  Lnet/bytebuddy/implementation/DefaultMethodCall;
            0    8     1       typeDescription  Lnet/bytebuddy/description/type/TypeDescription;
            1    8     2              filtered  Ljava/util/List<Lnet/bytebuddy/description/type/TypeDescription;>;
            2    8     3              relevant  Ljava/util/Set<Lnet/bytebuddy/description/type/TypeDescription;>;
            4    6     4  prioritizedInterface  Lnet/bytebuddy/description/type/TypeDescription;
    Signature: (Lnet/bytebuddy/description/type/TypeDescription;)Ljava/util/List<Lnet/bytebuddy/description/type/TypeDescription;>;
    MethodParameters:
                 Name  Flags
      typeDescription  
}
SourceFile: "DefaultMethodCall.java"
NestMembers:
  net.bytebuddy.implementation.DefaultMethodCall$Appender
InnerClasses:
  public abstract Enhance = net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance of net.bytebuddy.build.HashCodeAndEqualsPlugin
  public ForLoadedTypes = net.bytebuddy.description.type.TypeList$ForLoadedTypes of net.bytebuddy.description.type.TypeList
  public abstract Generic = net.bytebuddy.description.type.TypeList$Generic of net.bytebuddy.description.type.TypeList
  protected Appender = net.bytebuddy.implementation.DefaultMethodCall$Appender of net.bytebuddy.implementation.DefaultMethodCall
  public abstract Target = net.bytebuddy.implementation.Implementation$Target of net.bytebuddy.implementation.Implementation
    RuntimeVisibleAnnotations: 
      net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance()