class com.sun.tools.javac.code.Types$ClosureHolder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.code.Types$ClosureHolder
  super_class: java.lang.Object
{
  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> closure;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  final boolean minClosure;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final java.util.function.BiPredicate<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type> shouldSkip;
    descriptor: Ljava/util/function/BiPredicate;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;>;

  final com.sun.tools.javac.code.Types this$0;
    descriptor: Lcom/sun/tools/javac/code/Types;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(boolean, java.util.function.BiPredicate<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/code/Types;ZLjava/util/function/BiPredicate;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types$ClosureHolder this
        start local 2 // boolean minClosure
        start local 3 // java.util.function.BiPredicate shouldSkip
         0: .line 3696
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.code.Types$ClosureHolder.this$0:Lcom/sun/tools/javac/code/Types;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 3697
            aload 0 /* this */
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Types$ClosureHolder.closure:Lcom/sun/tools/javac/util/List;
         2: .line 3698
            aload 0 /* this */
            iload 2 /* minClosure */
            putfield com.sun.tools.javac.code.Types$ClosureHolder.minClosure:Z
         3: .line 3699
            aload 0 /* this */
            aload 3 /* shouldSkip */
            putfield com.sun.tools.javac.code.Types$ClosureHolder.shouldSkip:Ljava/util/function/BiPredicate;
         4: .line 3700
            return
        end local 3 // java.util.function.BiPredicate shouldSkip
        end local 2 // boolean minClosure
        end local 0 // com.sun.tools.javac.code.Types$ClosureHolder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/sun/tools/javac/code/Types$ClosureHolder;
            0    5     2  minClosure  Z
            0    5     3  shouldSkip  Ljava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;>;
    Signature: (ZLjava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;>;)V
    MethodParameters:
            Name  Flags
      this$0      final
      minClosure  
      shouldSkip  

  void add(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types$ClosureHolder this
        start local 1 // com.sun.tools.javac.code.Type type
         0: .line 3703
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.this$0:Lcom/sun/tools/javac/code/Types;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.closure:Lcom/sun/tools/javac/util/List;
            aload 1 /* type */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.shouldSkip:Ljava/util/function/BiPredicate;
            invokevirtual com.sun.tools.javac.code.Types.insert:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;Ljava/util/function/BiPredicate;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Types$ClosureHolder.closure:Lcom/sun/tools/javac/util/List;
         1: .line 3704
            return
        end local 1 // com.sun.tools.javac.code.Type type
        end local 0 // com.sun.tools.javac.code.Types$ClosureHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Types$ClosureHolder;
            0    2     1  type  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      type  

  com.sun.tools.javac.code.Types$ClosureHolder merge(com.sun.tools.javac.code.Types$ClosureHolder);
    descriptor: (Lcom/sun/tools/javac/code/Types$ClosureHolder;)Lcom/sun/tools/javac/code/Types$ClosureHolder;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types$ClosureHolder this
        start local 1 // com.sun.tools.javac.code.Types$ClosureHolder other
         0: .line 3707
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.this$0:Lcom/sun/tools/javac/code/Types;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.closure:Lcom/sun/tools/javac/util/List;
            aload 1 /* other */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.closure:Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.shouldSkip:Ljava/util/function/BiPredicate;
            invokevirtual com.sun.tools.javac.code.Types.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Ljava/util/function/BiPredicate;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Types$ClosureHolder.closure:Lcom/sun/tools/javac/util/List;
         1: .line 3708
            aload 0 /* this */
            areturn
        end local 1 // com.sun.tools.javac.code.Types$ClosureHolder other
        end local 0 // com.sun.tools.javac.code.Types$ClosureHolder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/tools/javac/code/Types$ClosureHolder;
            0    2     1  other  Lcom/sun/tools/javac/code/Types$ClosureHolder;
    MethodParameters:
       Name  Flags
      other  

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> closure();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Types$ClosureHolder this
         0: .line 3712
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.minClosure:Z
            ifeq 1
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.this$0:Lcom/sun/tools/javac/code/Types;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.closure:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.closureMin:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.sun.tools.javac.code.Types$ClosureHolder.closure:Lcom/sun/tools/javac/util/List;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.util.List
         2: areturn
        end local 0 // com.sun.tools.javac.code.Types$ClosureHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/Types$ClosureHolder;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
}
SourceFile: "Types.java"
NestHost: com.sun.tools.javac.code.Types
InnerClasses:
  ClosureHolder = com.sun.tools.javac.code.Types$ClosureHolder of com.sun.tools.javac.code.Types