public class org.junit.internal.runners.statements.ExpectException extends org.junit.runners.model.Statement
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.junit.internal.runners.statements.ExpectException
  super_class: org.junit.runners.model.Statement
{
  private final org.junit.runners.model.Statement next;
    descriptor: Lorg/junit/runners/model/Statement;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<? extends java.lang.Throwable> expected;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<+Ljava/lang/Throwable;>;

  public void <init>(org.junit.runners.model.Statement, java.lang.Class<? extends java.lang.Throwable>);
    descriptor: (Lorg/junit/runners/model/Statement;Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.junit.internal.runners.statements.ExpectException this
        start local 1 // org.junit.runners.model.Statement next
        start local 2 // java.lang.Class expected
         0: .line 10
            aload 0 /* this */
            invokespecial org.junit.runners.model.Statement.<init>:()V
         1: .line 11
            aload 0 /* this */
            aload 1 /* next */
            putfield org.junit.internal.runners.statements.ExpectException.next:Lorg/junit/runners/model/Statement;
         2: .line 12
            aload 0 /* this */
            aload 2 /* expected */
            putfield org.junit.internal.runners.statements.ExpectException.expected:Ljava/lang/Class;
         3: .line 13
            return
        end local 2 // java.lang.Class expected
        end local 1 // org.junit.runners.model.Statement next
        end local 0 // org.junit.internal.runners.statements.ExpectException this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/junit/internal/runners/statements/ExpectException;
            0    4     1      next  Lorg/junit/runners/model/Statement;
            0    4     2  expected  Ljava/lang/Class<+Ljava/lang/Throwable;>;
    Signature: (Lorg/junit/runners/model/Statement;Ljava/lang/Class<+Ljava/lang/Throwable;>;)V
    MethodParameters:
          Name  Flags
      next      
      expected  

  public void evaluate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.junit.internal.runners.statements.ExpectException this
         0: .line 17
            iconst_0
            istore 1 /* complete */
        start local 1 // boolean complete
         1: .line 19
            aload 0 /* this */
            getfield org.junit.internal.runners.statements.ExpectException.next:Lorg/junit/runners/model/Statement;
            invokevirtual org.junit.runners.model.Statement.evaluate:()V
         2: .line 20
            iconst_1
            istore 1 /* complete */
         3: .line 21
            goto 13
      StackMap locals: org.junit.internal.runners.statements.ExpectException int
      StackMap stack: org.junit.internal.AssumptionViolatedException
         4: astore 2 /* e */
        start local 2 // org.junit.internal.AssumptionViolatedException e
         5: .line 22
            aload 2 /* e */
            athrow
        end local 2 // org.junit.internal.AssumptionViolatedException e
         6: .line 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* e */
        start local 2 // java.lang.Throwable e
         7: .line 24
            aload 0 /* this */
            getfield org.junit.internal.runners.statements.ExpectException.expected:Ljava/lang/Class;
            aload 2 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 13
         8: .line 25
            new java.lang.StringBuilder
            dup
            ldc "Unexpected exception, expected<"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 26
            aload 0 /* this */
            getfield org.junit.internal.runners.statements.ExpectException.expected:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "> but was<"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 27
            aload 2 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ">"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 25
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* message */
        start local 3 // java.lang.String message
        12: .line 28
            new java.lang.Exception
            dup
            aload 3 /* message */
            aload 2 /* e */
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.String message
        end local 2 // java.lang.Throwable e
        13: .line 31
      StackMap locals:
      StackMap stack:
            iload 1 /* complete */
            ifeq 17
        14: .line 32
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected exception: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 33
            aload 0 /* this */
            getfield org.junit.internal.runners.statements.ExpectException.expected:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 32
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        17: .line 35
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean complete
        end local 0 // org.junit.internal.runners.statements.ExpectException this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/junit/internal/runners/statements/ExpectException;
            1   18     1  complete  Z
            5    6     2         e  Lorg/junit/internal/AssumptionViolatedException;
            7   13     2         e  Ljava/lang/Throwable;
           12   13     3   message  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     3       4  Class org.junit.internal.AssumptionViolatedException
           1     3       6  Class java.lang.Throwable
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "ExpectException.java"