final class com.google.inject.internal.SingleMethodInjector implements com.google.inject.internal.SingleMemberInjector
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.inject.internal.SingleMethodInjector
  super_class: java.lang.Object
{
  private final com.google.inject.internal.InjectorImpl$MethodInvoker methodInvoker;
    descriptor: Lcom/google/inject/internal/InjectorImpl$MethodInvoker;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.google.inject.internal.SingleParameterInjector<?>[] parameterInjectors;
    descriptor: [Lcom/google/inject/internal/SingleParameterInjector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Lcom/google/inject/internal/SingleParameterInjector<*>;

  private final com.google.inject.spi.InjectionPoint injectionPoint;
    descriptor: Lcom/google/inject/spi/InjectionPoint;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(com.google.inject.internal.InjectorImpl, com.google.inject.spi.InjectionPoint, com.google.inject.internal.Errors);
    descriptor: (Lcom/google/inject/internal/InjectorImpl;Lcom/google/inject/spi/InjectionPoint;Lcom/google/inject/internal/Errors;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.google.inject.internal.SingleMethodInjector this
        start local 1 // com.google.inject.internal.InjectorImpl injector
        start local 2 // com.google.inject.spi.InjectionPoint injectionPoint
        start local 3 // com.google.inject.internal.Errors errors
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 33
            aload 0 /* this */
            aload 2 /* injectionPoint */
            putfield com.google.inject.internal.SingleMethodInjector.injectionPoint:Lcom/google/inject/spi/InjectionPoint;
         2: .line 34
            aload 2 /* injectionPoint */
            invokevirtual com.google.inject.spi.InjectionPoint.getMember:()Ljava/lang/reflect/Member;
            checkcast java.lang.reflect.Method
            astore 4 /* method */
        start local 4 // java.lang.reflect.Method method
         3: .line 35
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* method */
            invokevirtual com.google.inject.internal.SingleMethodInjector.createMethodInvoker:(Ljava/lang/reflect/Method;)Lcom/google/inject/internal/InjectorImpl$MethodInvoker;
            putfield com.google.inject.internal.SingleMethodInjector.methodInvoker:Lcom/google/inject/internal/InjectorImpl$MethodInvoker;
         4: .line 36
            aload 0 /* this */
            aload 1 /* injector */
            aload 2 /* injectionPoint */
            invokevirtual com.google.inject.spi.InjectionPoint.getDependencies:()Ljava/util/List;
            aload 3 /* errors */
            invokevirtual com.google.inject.internal.InjectorImpl.getParametersInjectors:(Ljava/util/List;Lcom/google/inject/internal/Errors;)[Lcom/google/inject/internal/SingleParameterInjector;
            putfield com.google.inject.internal.SingleMethodInjector.parameterInjectors:[Lcom/google/inject/internal/SingleParameterInjector;
         5: .line 37
            return
        end local 4 // java.lang.reflect.Method method
        end local 3 // com.google.inject.internal.Errors errors
        end local 2 // com.google.inject.spi.InjectionPoint injectionPoint
        end local 1 // com.google.inject.internal.InjectorImpl injector
        end local 0 // com.google.inject.internal.SingleMethodInjector this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/google/inject/internal/SingleMethodInjector;
            0    6     1        injector  Lcom/google/inject/internal/InjectorImpl;
            0    6     2  injectionPoint  Lcom/google/inject/spi/InjectionPoint;
            0    6     3          errors  Lcom/google/inject/internal/Errors;
            3    6     4          method  Ljava/lang/reflect/Method;
    Exceptions:
      throws com.google.inject.internal.ErrorsException
    MethodParameters:
                Name  Flags
      injector        
      injectionPoint  
      errors          

  private com.google.inject.internal.InjectorImpl$MethodInvoker createMethodInvoker(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Lcom/google/inject/internal/InjectorImpl$MethodInvoker;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.google.inject.internal.SingleMethodInjector this
        start local 1 // java.lang.reflect.Method method
         0: .line 43
            aload 1 /* method */
            invokestatic com.google.inject.internal.BytecodeGen.newFastClassForMember:(Ljava/lang/reflect/Member;)Lnet/sf/cglib/reflect/FastClass;
            astore 2 /* fastClass */
        start local 2 // net.sf.cglib.reflect.FastClass fastClass
         1: .line 44
            aload 2 /* fastClass */
            ifnull 6
         2: .line 45
            aload 2 /* fastClass */
            aload 1 /* method */
            invokevirtual net.sf.cglib.reflect.FastClass.getMethod:(Ljava/lang/reflect/Method;)Lnet/sf/cglib/reflect/FastMethod;
            invokevirtual net.sf.cglib.reflect.FastMethod.getIndex:()I
            istore 3 /* index */
        start local 3 // int index
         3: .line 47
            new com.google.inject.internal.SingleMethodInjector$1
            dup
            aload 0 /* this */
            aload 2 /* fastClass */
            iload 3 /* index */
            invokespecial com.google.inject.internal.SingleMethodInjector$1.<init>:(Lcom/google/inject/internal/SingleMethodInjector;Lnet/sf/cglib/reflect/FastClass;I)V
         4: areturn
        end local 3 // int index
        end local 2 // net.sf.cglib.reflect.FastClass fastClass
         5: .line 55
      StackMap locals:
      StackMap stack: net.sf.cglib.core.CodeGenerationException
            pop
         6: .line 60
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            istore 2 /* modifiers */
        start local 2 // int modifiers
         7: .line 61
            iload 2 /* modifiers */
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 9
         8: .line 62
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 10
         9: .line 63
      StackMap locals: int
      StackMap stack:
            aload 1 /* method */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
        10: .line 66
      StackMap locals:
      StackMap stack:
            new com.google.inject.internal.SingleMethodInjector$2
            dup
            aload 0 /* this */
            aload 1 /* method */
            invokespecial com.google.inject.internal.SingleMethodInjector$2.<init>:(Lcom/google/inject/internal/SingleMethodInjector;Ljava/lang/reflect/Method;)V
            areturn
        end local 2 // int modifiers
        end local 1 // java.lang.reflect.Method method
        end local 0 // com.google.inject.internal.SingleMethodInjector this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lcom/google/inject/internal/SingleMethodInjector;
            0   11     1     method  Ljava/lang/reflect/Method;
            1    5     2  fastClass  Lnet/sf/cglib/reflect/FastClass;
            3    5     3      index  I
            7   11     2  modifiers  I
      Exception table:
        from    to  target  type
           0     4       5  Class net.sf.cglib.core.CodeGenerationException
    MethodParameters:
        Name  Flags
      method  final

  public com.google.inject.spi.InjectionPoint getInjectionPoint();
    descriptor: ()Lcom/google/inject/spi/InjectionPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.inject.internal.SingleMethodInjector this
         0: .line 77
            aload 0 /* this */
            getfield com.google.inject.internal.SingleMethodInjector.injectionPoint:Lcom/google/inject/spi/InjectionPoint;
            areturn
        end local 0 // com.google.inject.internal.SingleMethodInjector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/inject/internal/SingleMethodInjector;

  public void inject(com.google.inject.internal.InternalContext, java.lang.Object);
    descriptor: (Lcom/google/inject/internal/InternalContext;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.google.inject.internal.SingleMethodInjector this
        start local 1 // com.google.inject.internal.InternalContext context
        start local 2 // java.lang.Object o
         0: .line 82
            aload 1 /* context */
            aload 0 /* this */
            getfield com.google.inject.internal.SingleMethodInjector.parameterInjectors:[Lcom/google/inject/internal/SingleParameterInjector;
            invokestatic com.google.inject.internal.SingleParameterInjector.getAll:(Lcom/google/inject/internal/InternalContext;[Lcom/google/inject/internal/SingleParameterInjector;)[Ljava/lang/Object;
            astore 3 /* parameters */
        start local 3 // java.lang.Object[] parameters
         1: .line 85
            aload 0 /* this */
            getfield com.google.inject.internal.SingleMethodInjector.methodInvoker:Lcom/google/inject/internal/InjectorImpl$MethodInvoker;
            aload 2 /* o */
            aload 3 /* parameters */
            invokeinterface com.google.inject.internal.InjectorImpl$MethodInvoker.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 86
            goto 10
      StackMap locals: com.google.inject.internal.SingleMethodInjector com.google.inject.internal.InternalContext java.lang.Object java.lang.Object[]
      StackMap stack: java.lang.IllegalAccessException
         3: astore 4 /* e */
        start local 4 // java.lang.IllegalAccessException e
         4: .line 87
            new java.lang.AssertionError
            dup
            aload 4 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 4 // java.lang.IllegalAccessException e
         5: .line 88
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 4 /* userException */
        start local 4 // java.lang.reflect.InvocationTargetException userException
         6: .line 89
            aload 4 /* userException */
            invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
            ifnull 7
            aload 4 /* userException */
            invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
            goto 8
      StackMap locals: java.lang.reflect.InvocationTargetException
      StackMap stack:
         7: aload 4 /* userException */
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 5 /* cause */
        start local 5 // java.lang.Throwable cause
         9: .line 90
            aload 5 /* cause */
            invokestatic com.google.inject.internal.InternalProvisionException.errorInjectingMethod:(Ljava/lang/Throwable;)Lcom/google/inject/internal/InternalProvisionException;
            aload 0 /* this */
            getfield com.google.inject.internal.SingleMethodInjector.injectionPoint:Lcom/google/inject/spi/InjectionPoint;
            invokevirtual com.google.inject.internal.InternalProvisionException.addSource:(Ljava/lang/Object;)Lcom/google/inject/internal/InternalProvisionException;
            athrow
        end local 5 // java.lang.Throwable cause
        end local 4 // java.lang.reflect.InvocationTargetException userException
        10: .line 92
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object[] parameters
        end local 2 // java.lang.Object o
        end local 1 // com.google.inject.internal.InternalContext context
        end local 0 // com.google.inject.internal.SingleMethodInjector this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/google/inject/internal/SingleMethodInjector;
            0   11     1        context  Lcom/google/inject/internal/InternalContext;
            0   11     2              o  Ljava/lang/Object;
            1   11     3     parameters  [Ljava/lang/Object;
            4    5     4              e  Ljava/lang/IllegalAccessException;
            6   10     4  userException  Ljava/lang/reflect/InvocationTargetException;
            9   10     5          cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.IllegalAccessException
           1     2       5  Class java.lang.reflect.InvocationTargetException
    Exceptions:
      throws com.google.inject.internal.InternalProvisionException
    MethodParameters:
         Name  Flags
      context  
      o        
}
SourceFile: "SingleMethodInjector.java"
NestMembers:
  com.google.inject.internal.SingleMethodInjector$1  com.google.inject.internal.SingleMethodInjector$2
InnerClasses:
  abstract MethodInvoker = com.google.inject.internal.InjectorImpl$MethodInvoker of com.google.inject.internal.InjectorImpl
  com.google.inject.internal.SingleMethodInjector$1
  com.google.inject.internal.SingleMethodInjector$2