public class com.sun.tools.javac.comp.InferenceContext
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.comp.InferenceContext
  super_class: java.lang.Object
{
  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> undetvars;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> inferencevars;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  java.util.Map<com.sun.tools.javac.comp.Infer$FreeTypeListener, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>> freeTypeListeners;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Lcom/sun/tools/javac/comp/Infer$FreeTypeListener;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;>;

  com.sun.tools.javac.code.Types types;
    descriptor: Lcom/sun/tools/javac/code/Types;
    flags: (0x0000) 

  com.sun.tools.javac.comp.Infer infer;
    descriptor: Lcom/sun/tools/javac/comp/Infer;
    flags: (0x0000) 

  java.util.Map<com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.code.Type> captureTypeCache;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Type;>;

  com.sun.tools.javac.code.Type update(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 76
            aload 1 /* t */
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public void <init>(com.sun.tools.javac.comp.Infer, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.comp.Infer infer
        start local 2 // com.sun.tools.javac.util.List inferencevars
         0: .line 88
            aload 0 /* this */
            aload 1 /* infer */
            aload 2 /* inferencevars */
            aload 2 /* inferencevars */
            aload 1 /* infer */
            getfield com.sun.tools.javac.comp.Infer.fromTypeVarFun:Lcom/sun/tools/javac/code/Types$TypeMapping;
            invokevirtual com.sun.tools.javac.util.List.map:(Ljava/util/function/Function;)Lcom/sun/tools/javac/util/List;
            invokespecial com.sun.tools.javac.comp.InferenceContext.<init>:(Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)V
         1: .line 89
            return
        end local 2 // com.sun.tools.javac.util.List inferencevars
        end local 1 // com.sun.tools.javac.comp.Infer infer
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    2     1          infer  Lcom/sun/tools/javac/comp/Infer;
            0    2     2  inferencevars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)V
    MethodParameters:
               Name  Flags
      infer          
      inferencevars  

  public void <init>(com.sun.tools.javac.comp.Infer, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.comp.Infer infer
        start local 2 // com.sun.tools.javac.util.List inferencevars
        start local 3 // com.sun.tools.javac.util.List undetvars
         0: .line 91
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 82
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield com.sun.tools.javac.comp.InferenceContext.freeTypeListeners:Ljava/util/Map;
         2: .line 578
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.tools.javac.comp.InferenceContext.captureTypeCache:Ljava/util/Map;
         3: .line 92
            aload 0 /* this */
            aload 2 /* inferencevars */
            putfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
         4: .line 93
            aload 0 /* this */
            aload 3 /* undetvars */
            putfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
         5: .line 94
            aload 0 /* this */
            aload 1 /* infer */
            putfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
         6: .line 95
            aload 0 /* this */
            aload 1 /* infer */
            getfield com.sun.tools.javac.comp.Infer.types:Lcom/sun/tools/javac/code/Types;
            putfield com.sun.tools.javac.comp.InferenceContext.types:Lcom/sun/tools/javac/code/Types;
         7: .line 96
            return
        end local 3 // com.sun.tools.javac.util.List undetvars
        end local 2 // com.sun.tools.javac.util.List inferencevars
        end local 1 // com.sun.tools.javac.comp.Infer infer
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    8     1          infer  Lcom/sun/tools/javac/comp/Infer;
            0    8     2  inferencevars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    8     3      undetvars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)V
    MethodParameters:
               Name  Flags
      infer          
      inferencevars  
      undetvars      

  void addVar(com.sun.tools.javac.code.Type$TypeVar);
    descriptor: (Lcom/sun/tools/javac/code/Type$TypeVar;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.code.Type$TypeVar t
         0: .line 102
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
            getfield com.sun.tools.javac.comp.Infer.fromTypeVarFun:Lcom/sun/tools/javac/code/Types$TypeMapping;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types$TypeMapping.apply:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
         1: .line 103
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
         2: .line 104
            return
        end local 1 // com.sun.tools.javac.code.Type$TypeVar t
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    3     1     t  Lcom/sun/tools/javac/code/Type$TypeVar;
    MethodParameters:
      Name  Flags
      t     

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> inferenceVars();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
         0: .line 111
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> undetVars();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
         0: .line 118
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> restvars();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
         0: .line 126
            aload 0 /* this */
            invokedynamic accepts()Lcom/sun/tools/javac/util/Filter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/sun/tools/javac/comp/InferenceContext.lambda$0(Lcom/sun/tools/javac/code/Type$UndetVar;)Z (6)
                  (Lcom/sun/tools/javac/code/Type$UndetVar;)Z
            invokevirtual com.sun.tools.javac.comp.InferenceContext.filterVars:(Lcom/sun/tools/javac/util/Filter;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> instvars();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
         0: .line 134
            aload 0 /* this */
            invokedynamic accepts()Lcom/sun/tools/javac/util/Filter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/sun/tools/javac/comp/InferenceContext.lambda$1(Lcom/sun/tools/javac/code/Type$UndetVar;)Z (6)
                  (Lcom/sun/tools/javac/code/Type$UndetVar;)Z
            invokevirtual com.sun.tools.javac.comp.InferenceContext.filterVars:(Lcom/sun/tools/javac/util/Filter;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  final com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> boundedVars();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
         0: .line 142
            aload 0 /* this */
            invokedynamic accepts()Lcom/sun/tools/javac/util/Filter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/sun/tools/javac/comp/InferenceContext.lambda$2(Lcom/sun/tools/javac/code/Type$UndetVar;)Z (6)
                  (Lcom/sun/tools/javac/code/Type$UndetVar;)Z
            invokevirtual com.sun.tools.javac.comp.InferenceContext.filterVars:(Lcom/sun/tools/javac/util/Filter;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  private com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> filterVars(com.sun.tools.javac.util.Filter<com.sun.tools.javac.code.Type$UndetVar>);
    descriptor: (Lcom/sun/tools/javac/util/Filter;)Lcom/sun/tools/javac/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.Filter fu
         0: .line 150
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* res */
        start local 2 // com.sun.tools.javac.util.ListBuffer res
         1: .line 151
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Filter com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* t */
        start local 3 // com.sun.tools.javac.code.Type t
         3: .line 152
            aload 3 /* t */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 5 /* uv */
        start local 5 // com.sun.tools.javac.code.Type$UndetVar uv
         4: .line 153
            aload 1 /* fu */
            aload 5 /* uv */
            invokeinterface com.sun.tools.javac.util.Filter.accepts:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 154
            aload 2 /* res */
            aload 5 /* uv */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 5 // com.sun.tools.javac.code.Type$UndetVar uv
        end local 3 // com.sun.tools.javac.code.Type t
         6: .line 151
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 157
            aload 2 /* res */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.ListBuffer res
        end local 1 // com.sun.tools.javac.util.Filter fu
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    8     1    fu  Lcom/sun/tools/javac/util/Filter<Lcom/sun/tools/javac/code/Type$UndetVar;>;
            1    8     2   res  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    6     3     t  Lcom/sun/tools/javac/code/Type;
            4    6     5    uv  Lcom/sun/tools/javac/code/Type$UndetVar;
    Signature: (Lcom/sun/tools/javac/util/Filter<Lcom/sun/tools/javac/code/Type$UndetVar;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      fu    

  final boolean free(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 164
            aload 1 /* t */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Type.containsAny:(Lcom/sun/tools/javac/util/List;)Z
            ireturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  final boolean free(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 168
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 2 /* t */
        start local 2 // com.sun.tools.javac.code.Type t
         2: .line 169
            aload 0 /* this */
            aload 2 /* t */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.free:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 3
            iconst_1
            ireturn
        end local 2 // com.sun.tools.javac.code.Type t
         3: .line 168
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 171
            iconst_0
            ireturn
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    5     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            2    3     2     t  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Z
    MethodParameters:
      Name  Flags
      ts    

  final com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> freeVarsIn(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 178
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* buf */
        start local 2 // com.sun.tools.javac.util.ListBuffer buf
         1: .line 179
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.inferenceVars:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.code.Type com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* iv */
        start local 3 // com.sun.tools.javac.code.Type iv
         3: .line 180
            aload 1 /* t */
            aload 3 /* iv */
            invokevirtual com.sun.tools.javac.code.Type.contains:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 5
         4: .line 181
            aload 2 /* buf */
            aload 3 /* iv */
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // com.sun.tools.javac.code.Type iv
         5: .line 179
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 184
            aload 2 /* buf */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.ListBuffer buf
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    7     1     t  Lcom/sun/tools/javac/code/Type;
            1    7     2   buf  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    5     3    iv  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     

  final com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> freeVarsIn(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 188
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* buf */
        start local 2 // com.sun.tools.javac.util.ListBuffer buf
         1: .line 189
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* t */
        start local 3 // com.sun.tools.javac.code.Type t
         3: .line 190
            aload 2 /* buf */
            aload 0 /* this */
            aload 3 /* t */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.freeVarsIn:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.ListBuffer.appendList:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 3 // com.sun.tools.javac.code.Type t
         4: .line 189
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 192
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 3 /* buf2 */
        start local 3 // com.sun.tools.javac.util.ListBuffer buf2
         6: .line 193
            aload 2 /* buf */
            invokevirtual com.sun.tools.javac.util.ListBuffer.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         7: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 4 /* t */
        start local 4 // com.sun.tools.javac.code.Type t
         8: .line 194
            aload 3 /* buf2 */
            aload 4 /* t */
            invokevirtual com.sun.tools.javac.util.ListBuffer.contains:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 195
            aload 3 /* buf2 */
            aload 4 /* t */
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // com.sun.tools.javac.code.Type t
        10: .line 193
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 198
            aload 3 /* buf2 */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 3 // com.sun.tools.javac.util.ListBuffer buf2
        end local 2 // com.sun.tools.javac.util.ListBuffer buf
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0   12     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1   12     2   buf  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    4     3     t  Lcom/sun/tools/javac/code/Type;
            6   12     3  buf2  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            8   10     4     t  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      ts    

  public final com.sun.tools.javac.code.Type asUndetVar(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 207
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* t */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  final com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> asUndetVars(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 211
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* buf */
        start local 2 // com.sun.tools.javac.util.ListBuffer buf
         1: .line 212
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* t */
        start local 3 // com.sun.tools.javac.code.Type t
         3: .line 213
            aload 2 /* buf */
            aload 0 /* this */
            aload 3 /* t */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 3 // com.sun.tools.javac.code.Type t
         4: .line 212
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 215
            aload 2 /* buf */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.ListBuffer buf
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    6     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1    6     2   buf  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    4     3     t  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      ts    

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> instTypes();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
         0: .line 219
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 1 /* buf */
        start local 1 // com.sun.tools.javac.util.ListBuffer buf
         1: .line 220
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 2 /* t */
        start local 2 // com.sun.tools.javac.code.Type t
         3: .line 221
            aload 2 /* t */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 4 /* uv */
        start local 4 // com.sun.tools.javac.code.Type$UndetVar uv
         4: .line 222
            aload 1 /* buf */
            aload 4 /* uv */
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.getInst:()Lcom/sun/tools/javac/code/Type;
            ifnull 5
            aload 4 /* uv */
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.getInst:()Lcom/sun/tools/javac/code/Type;
            goto 6
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Type$UndetVar
      StackMap stack: com.sun.tools.javac.util.ListBuffer
         5: aload 4 /* uv */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Type$UndetVar
      StackMap stack: com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Type
         6: invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 4 // com.sun.tools.javac.code.Type$UndetVar uv
        end local 2 // com.sun.tools.javac.code.Type t
         7: .line 220
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 224
            aload 1 /* buf */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // com.sun.tools.javac.util.ListBuffer buf
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            1    9     1   buf  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    7     2     t  Lcom/sun/tools/javac/code/Type;
            4    7     4    uv  Lcom/sun/tools/javac/code/Type$UndetVar;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  com.sun.tools.javac.code.Type asInstType(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 233
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* t */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.instTypes:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> asInstTypes(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 237
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* buf */
        start local 2 // com.sun.tools.javac.util.ListBuffer buf
         1: .line 238
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* t */
        start local 3 // com.sun.tools.javac.code.Type t
         3: .line 239
            aload 2 /* buf */
            aload 0 /* this */
            aload 3 /* t */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asInstType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 3 // com.sun.tools.javac.code.Type t
         4: .line 238
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 241
            aload 2 /* buf */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.ListBuffer buf
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    6     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1    6     2   buf  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    4     3     t  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      ts    

  void addFreeTypeListener(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.comp.Infer$FreeTypeListener);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/comp/Infer$FreeTypeListener;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List types
        start local 2 // com.sun.tools.javac.comp.Infer$FreeTypeListener ftl
         0: .line 248
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.freeTypeListeners:Ljava/util/Map;
            aload 2 /* ftl */
            aload 0 /* this */
            aload 1 /* types */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.freeVarsIn:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 249
            return
        end local 2 // com.sun.tools.javac.comp.Infer$FreeTypeListener ftl
        end local 1 // com.sun.tools.javac.util.List types
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    2     1  types  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    2     2    ftl  Lcom/sun/tools/javac/comp/Infer$FreeTypeListener;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/comp/Infer$FreeTypeListener;)V
    MethodParameters:
       Name  Flags
      types  
      ftl    

  void notifyChange();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
         0: .line 256
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.restvars:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.diff:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.comp.InferenceContext.notifyChange:(Lcom/sun/tools/javac/util/List;)V
         1: .line 257
            return
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/comp/InferenceContext;

  void notifyChange(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List inferredVars
         0: .line 260
            aconst_null
            astore 2 /* thrownEx */
        start local 2 // com.sun.tools.javac.comp.Infer$InferenceException thrownEx
         1: .line 262
            new java.util.LinkedHashMap
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.freeTypeListeners:Ljava/util/Map;
            invokespecial java.util.LinkedHashMap.<init>:(Ljava/util/Map;)V
            invokevirtual java.util.LinkedHashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List com.sun.tools.javac.comp.Infer$InferenceException top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         3: .line 263
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.List
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            aload 1 /* inferredVars */
            invokevirtual com.sun.tools.javac.util.List.diff:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            invokestatic com.sun.tools.javac.code.Type.containsAny:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Z
            ifne 10
         4: .line 265
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.Infer$FreeTypeListener
            aload 0 /* this */
            invokeinterface com.sun.tools.javac.comp.Infer$FreeTypeListener.typesInferred:(Lcom/sun/tools/javac/comp/InferenceContext;)V
         5: .line 266
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.freeTypeListeners:Ljava/util/Map;
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 267
            goto 10
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List com.sun.tools.javac.comp.Infer$InferenceException java.util.Map$Entry java.util.Iterator
      StackMap stack: com.sun.tools.javac.comp.Infer$InferenceException
         7: astore 5 /* ex */
        start local 5 // com.sun.tools.javac.comp.Infer$InferenceException ex
         8: .line 268
            aload 2 /* thrownEx */
            ifnonnull 10
         9: .line 269
            aload 5 /* ex */
            astore 2 /* thrownEx */
        end local 5 // com.sun.tools.javac.comp.Infer$InferenceException ex
        end local 3 // java.util.Map$Entry entry
        10: .line 261
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List com.sun.tools.javac.comp.Infer$InferenceException top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 276
            aload 2 /* thrownEx */
            ifnull 13
        12: .line 277
            aload 2 /* thrownEx */
            athrow
        13: .line 279
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List com.sun.tools.javac.comp.Infer$InferenceException
      StackMap stack:
            return
        end local 2 // com.sun.tools.javac.comp.Infer$InferenceException thrownEx
        end local 1 // com.sun.tools.javac.util.List inferredVars
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lcom/sun/tools/javac/comp/InferenceContext;
            0   14     1  inferredVars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1   14     2      thrownEx  Lcom/sun/tools/javac/comp/Infer$InferenceException;
            3   10     3         entry  Ljava/util/Map$Entry<Lcom/sun/tools/javac/comp/Infer$FreeTypeListener;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;>;
            8   10     5            ex  Lcom/sun/tools/javac/comp/Infer$InferenceException;
      Exception table:
        from    to  target  type
           4     6       7  Class com.sun.tools.javac.comp.Infer$InferenceException
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)V
    MethodParameters:
              Name  Flags
      inferredVars  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> save();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
         0: .line 285
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 1 /* buf */
        start local 1 // com.sun.tools.javac.util.ListBuffer buf
         1: .line 286
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 2 /* t */
        start local 2 // com.sun.tools.javac.code.Type t
         3: .line 287
            aload 1 /* buf */
            aload 2 /* t */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
            getfield com.sun.tools.javac.comp.Infer.types:Lcom/sun/tools/javac/code/Types;
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.dup:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type$UndetVar;
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // com.sun.tools.javac.code.Type t
         4: .line 286
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 289
            aload 1 /* buf */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // com.sun.tools.javac.util.ListBuffer buf
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            1    6     1   buf  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    4     2     t  Lcom/sun/tools/javac/code/Type;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  public void rollback(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List saved_undet
         0: .line 297
            aload 1 /* saved_undet */
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
         3: .line 299
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* newUndetVars */
        start local 2 // com.sun.tools.javac.util.ListBuffer newUndetVars
         4: .line 300
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 3 /* newInferenceVars */
        start local 3 // com.sun.tools.javac.util.ListBuffer newInferenceVars
         5: .line 301
            goto 16
         6: .line 302
      StackMap locals: com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.ListBuffer
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 4 /* uv */
        start local 4 // com.sun.tools.javac.code.Type$UndetVar uv
         7: .line 303
            aload 1 /* saved_undet */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 5 /* uv_saved */
        start local 5 // com.sun.tools.javac.code.Type$UndetVar uv_saved
         8: .line 304
            aload 4 /* uv */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            aload 5 /* uv_saved */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            if_acmpne 15
         9: .line 305
            aload 5 /* uv_saved */
            aload 4 /* uv */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.types:Lcom/sun/tools/javac/code/Types;
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.dupTo:(Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Types;)V
        10: .line 306
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
        11: .line 307
            aload 1 /* saved_undet */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 1 /* saved_undet */
        12: .line 308
            aload 2 /* newUndetVars */
            aload 4 /* uv */
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        13: .line 309
            aload 3 /* newInferenceVars */
            aload 4 /* uv */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        14: .line 310
            goto 16
        15: .line 311
      StackMap locals: com.sun.tools.javac.code.Type$UndetVar com.sun.tools.javac.code.Type$UndetVar
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
        end local 5 // com.sun.tools.javac.code.Type$UndetVar uv_saved
        end local 4 // com.sun.tools.javac.code.Type$UndetVar uv
        16: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* saved_undet */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 17
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 6
        17: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* newUndetVars */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
        18: .line 315
            aload 0 /* this */
            aload 3 /* newInferenceVars */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
        19: .line 316
            return
        end local 3 // com.sun.tools.javac.util.ListBuffer newInferenceVars
        end local 2 // com.sun.tools.javac.util.ListBuffer newUndetVars
        end local 1 // com.sun.tools.javac.util.List saved_undet
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Lcom/sun/tools/javac/comp/InferenceContext;
            0   20     1       saved_undet  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            4   20     2      newUndetVars  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            5   20     3  newInferenceVars  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            7   16     4                uv  Lcom/sun/tools/javac/code/Type$UndetVar;
            8   16     5          uv_saved  Lcom/sun/tools/javac/code/Type$UndetVar;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)V
    MethodParameters:
             Name  Flags
      saved_undet  

  void dupTo(com.sun.tools.javac.comp.InferenceContext);
    descriptor: (Lcom/sun/tools/javac/comp/InferenceContext;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.comp.InferenceContext that
         0: .line 322
            aload 0 /* this */
            aload 1 /* that */
            iconst_0
            invokevirtual com.sun.tools.javac.comp.InferenceContext.dupTo:(Lcom/sun/tools/javac/comp/InferenceContext;Z)V
         1: .line 323
            return
        end local 1 // com.sun.tools.javac.comp.InferenceContext that
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    2     1  that  Lcom/sun/tools/javac/comp/InferenceContext;
    MethodParameters:
      Name  Flags
      that  final

  void dupTo(com.sun.tools.javac.comp.InferenceContext, boolean);
    descriptor: (Lcom/sun/tools/javac/comp/InferenceContext;Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.comp.InferenceContext that
        start local 2 // boolean clone
         0: .line 326
            aload 1 /* that */
            aload 1 /* that */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            aload 1 /* that */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.diff:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.appendList:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
         1: .line 327
            iload 2 /* clone */
            ifeq 2
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.save:()Lcom/sun/tools/javac/util/List;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.util.List
         3: astore 3 /* undetsToPropagate */
        start local 3 // com.sun.tools.javac.util.List undetsToPropagate
         4: .line 328
            aload 1 /* that */
            aload 1 /* that */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            aload 3 /* undetsToPropagate */
            aload 1 /* that */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.diff:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.appendList:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
         5: .line 331
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.comp.InferenceContext int com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 4 /* t */
        start local 4 // com.sun.tools.javac.code.Type t
         7: .line 332
            aload 1 /* that */
            getfield com.sun.tools.javac.comp.InferenceContext.freeTypeListeners:Ljava/util/Map;
            aload 0 /* this */
            invokedynamic typesInferred(Lcom/sun/tools/javac/comp/InferenceContext;)Lcom/sun/tools/javac/comp/Infer$FreeTypeListener;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/tools/javac/comp/InferenceContext;)V
                  com/sun/tools/javac/comp/InferenceContext.lambda$3(Lcom/sun/tools/javac/comp/InferenceContext;)V (7)
                  (Lcom/sun/tools/javac/comp/InferenceContext;)V
            aload 4 /* t */
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // com.sun.tools.javac.code.Type t
         8: .line 331
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 334
            return
        end local 3 // com.sun.tools.javac.util.List undetsToPropagate
        end local 2 // boolean clone
        end local 1 // com.sun.tools.javac.comp.InferenceContext that
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lcom/sun/tools/javac/comp/InferenceContext;
            0   10     1               that  Lcom/sun/tools/javac/comp/InferenceContext;
            0   10     2              clone  Z
            4   10     3  undetsToPropagate  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            7    8     4                  t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
       Name  Flags
      that   final
      clone  

  com.sun.tools.javac.comp.InferenceContext min(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, boolean, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/util/List;ZLcom/sun/tools/javac/util/Warner;)Lcom/sun/tools/javac/comp/InferenceContext;
    flags: (0x0000) 
    Code:
      stack=6, locals=17, args_size=4
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List roots
        start local 2 // boolean shouldSolve
        start local 3 // com.sun.tools.javac.util.Warner warn
         0: .line 337
            aload 1 /* roots */
            invokevirtual com.sun.tools.javac.util.List.length:()I
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.length:()I
            if_icmpne 2
         1: .line 338
            aload 0 /* this */
            areturn
         2: .line 340
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.<init>:(Lcom/sun/tools/javac/comp/InferenceContext;)V
            astore 4 /* rv */
        start local 4 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor rv
         3: .line 341
            aload 4 /* rv */
            aload 1 /* roots */
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.scan:(Lcom/sun/tools/javac/util/List;)V
         4: .line 342
            aload 4 /* rv */
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.min:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.length:()I
            if_icmpne 6
         5: .line 343
            aload 0 /* this */
            areturn
         6: .line 346
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor
      StackMap stack:
            aload 4 /* rv */
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.min:Ljava/util/Set;
            invokestatic com.sun.tools.javac.util.List.from:(Ljava/lang/Iterable;)Lcom/sun/tools/javac/util/List;
            astore 5 /* minVars */
        start local 5 // com.sun.tools.javac.util.List minVars
         7: .line 347
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            aload 5 /* minVars */
            invokevirtual com.sun.tools.javac.util.List.diff:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 6 /* redundantVars */
        start local 6 // com.sun.tools.javac.util.List redundantVars
         8: .line 350
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 7 /* minUndetVars */
        start local 7 // com.sun.tools.javac.util.ListBuffer minUndetVars
         9: .line 351
            aload 5 /* minVars */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 24
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List int com.sun.tools.javac.util.Warner com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
        10: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 8 /* minVar */
        start local 8 // com.sun.tools.javac.code.Type minVar
        11: .line 352
            aload 0 /* this */
            aload 8 /* minVar */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 10 /* uv */
        start local 10 // com.sun.tools.javac.code.Type$UndetVar uv
        12: .line 353
            aload 10 /* uv */
            getfield com.sun.tools.javac.code.Type$UndetVar.incorporationActions:Ljava/util/ArrayDeque;
            invokevirtual java.util.ArrayDeque.isEmpty:()Z
            invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
        13: .line 354
            aload 10 /* uv */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.types:Lcom/sun/tools/javac/code/Types;
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.dup:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type$UndetVar;
            astore 11 /* uv2 */
        start local 11 // com.sun.tools.javac.code.Type$UndetVar uv2
        14: .line 355
            invokestatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.values:()[Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 22
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List int com.sun.tools.javac.util.Warner com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Type$UndetVar com.sun.tools.javac.code.Type$UndetVar top int int com.sun.tools.javac.code.Type$UndetVar$InferenceBound[]
      StackMap stack:
        15: aload 15
            iload 13
            aaload
            astore 12 /* ib */
        start local 12 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib
        16: .line 356
            aload 10 /* uv */
            iconst_1
            anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
            dup
            iconst_0
            aload 12 /* ib */
            aastore
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.getBounds:([Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.stream:()Ljava/util/stream/Stream;
        17: .line 357
            aload 6 /* redundantVars */
            invokedynamic test(Lcom/sun/tools/javac/util/List;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/sun/tools/javac/comp/InferenceContext.lambda$4(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;)Z (6)
                  (Lcom/sun/tools/javac/code/Type;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        18: .line 358
            invokestatic com.sun.tools.javac.util.List.collector:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.List
        19: .line 356
            astore 16 /* newBounds */
        start local 16 // com.sun.tools.javac.util.List newBounds
        20: .line 359
            aload 11 /* uv2 */
            aload 12 /* ib */
            aload 16 /* newBounds */
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.setBounds:(Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;Lcom/sun/tools/javac/util/List;)V
        end local 16 // com.sun.tools.javac.util.List newBounds
        end local 12 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib
        21: .line 355
            iinc 13 1
      StackMap locals:
      StackMap stack:
        22: iload 13
            iload 14
            if_icmplt 15
        23: .line 361
            aload 7 /* minUndetVars */
            aload 11 /* uv2 */
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // com.sun.tools.javac.code.Type$UndetVar uv2
        end local 10 // com.sun.tools.javac.code.Type$UndetVar uv
        end local 8 // com.sun.tools.javac.code.Type minVar
        24: .line 351
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List int com.sun.tools.javac.util.Warner com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        25: .line 365
            new com.sun.tools.javac.comp.InferenceContext
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
            aload 5 /* minVars */
            aload 7 /* minUndetVars */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            invokespecial com.sun.tools.javac.comp.InferenceContext.<init>:(Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)V
            astore 8 /* minContext */
        start local 8 // com.sun.tools.javac.comp.InferenceContext minContext
        26: .line 366
            aload 8 /* minContext */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 29
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List int com.sun.tools.javac.util.Warner com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.comp.InferenceContext top java.util.Iterator
      StackMap stack:
        27: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 9 /* t */
        start local 9 // com.sun.tools.javac.code.Type t
        28: .line 368
            aload 8 /* minContext */
            aload 9 /* t */
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            aload 9 /* t */
            aload 3 /* warn */
            aload 4 /* rv */
            invokedynamic typesInferred(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;)Lcom/sun/tools/javac/comp/Infer$FreeTypeListener;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/tools/javac/comp/InferenceContext;)V
                  com/sun/tools/javac/comp/InferenceContext.lambda$5(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;Lcom/sun/tools/javac/comp/InferenceContext;)V (7)
                  (Lcom/sun/tools/javac/comp/InferenceContext;)V
            invokevirtual com.sun.tools.javac.comp.InferenceContext.addFreeTypeListener:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/comp/Infer$FreeTypeListener;)V
        end local 9 // com.sun.tools.javac.code.Type t
        29: .line 366
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        30: .line 375
            iload 2 /* shouldSolve */
            ifeq 33
        31: .line 377
            aload 6 /* redundantVars */
            aload 4 /* rv */
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.equiv:Ljava/util/Set;
            invokestatic com.sun.tools.javac.util.List.from:(Ljava/lang/Iterable;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.diff:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 9 /* unreachableVars */
        start local 9 // com.sun.tools.javac.util.List unreachableVars
        32: .line 378
            aload 8 /* minContext */
            aload 5 /* minVars */
            aload 0 /* this */
            aload 9 /* unreachableVars */
            aload 3 /* warn */
            invokedynamic typesInferred(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Warner;)Lcom/sun/tools/javac/comp/Infer$FreeTypeListener;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/tools/javac/comp/InferenceContext;)V
                  com/sun/tools/javac/comp/InferenceContext.lambda$6(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Warner;Lcom/sun/tools/javac/comp/InferenceContext;)V (7)
                  (Lcom/sun/tools/javac/comp/InferenceContext;)V
            invokevirtual com.sun.tools.javac.comp.InferenceContext.addFreeTypeListener:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/comp/Infer$FreeTypeListener;)V
        end local 9 // com.sun.tools.javac.util.List unreachableVars
        33: .line 383
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List int com.sun.tools.javac.util.Warner com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.comp.InferenceContext
      StackMap stack:
            aload 8 /* minContext */
            areturn
        end local 8 // com.sun.tools.javac.comp.InferenceContext minContext
        end local 7 // com.sun.tools.javac.util.ListBuffer minUndetVars
        end local 6 // com.sun.tools.javac.util.List redundantVars
        end local 5 // com.sun.tools.javac.util.List minVars
        end local 4 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor rv
        end local 3 // com.sun.tools.javac.util.Warner warn
        end local 2 // boolean shouldSolve
        end local 1 // com.sun.tools.javac.util.List roots
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   34     0             this  Lcom/sun/tools/javac/comp/InferenceContext;
            0   34     1            roots  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0   34     2      shouldSolve  Z
            0   34     3             warn  Lcom/sun/tools/javac/util/Warner;
            3   34     4               rv  Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;
            7   34     5          minVars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            8   34     6    redundantVars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            9   34     7     minUndetVars  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
           11   24     8           minVar  Lcom/sun/tools/javac/code/Type;
           12   24    10               uv  Lcom/sun/tools/javac/code/Type$UndetVar;
           14   24    11              uv2  Lcom/sun/tools/javac/code/Type$UndetVar;
           16   21    12               ib  Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
           20   21    16        newBounds  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           26   34     8       minContext  Lcom/sun/tools/javac/comp/InferenceContext;
           28   29     9                t  Lcom/sun/tools/javac/code/Type;
           32   33     9  unreachableVars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;ZLcom/sun/tools/javac/util/Warner;)Lcom/sun/tools/javac/comp/InferenceContext;
    MethodParameters:
             Name  Flags
      roots        
      shouldSolve  
      warn         

  private void solve(com.sun.tools.javac.comp.Infer$GraphStrategy, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/comp/Infer$GraphStrategy;Lcom/sun/tools/javac/util/Warner;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.comp.Infer$GraphStrategy ss
        start local 2 // com.sun.tools.javac.util.Warner warn
         0: .line 474
            new com.sun.tools.javac.comp.Infer$GraphSolver
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            aload 0 /* this */
            aload 2 /* warn */
            invokespecial com.sun.tools.javac.comp.Infer$GraphSolver.<init>:(Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/Warner;)V
            astore 3 /* s */
        start local 3 // com.sun.tools.javac.comp.Infer$GraphSolver s
         1: .line 475
            aload 3 /* s */
            aload 1 /* ss */
            invokevirtual com.sun.tools.javac.comp.Infer$GraphSolver.solve:(Lcom/sun/tools/javac/comp/Infer$GraphStrategy;)V
         2: .line 476
            return
        end local 3 // com.sun.tools.javac.comp.Infer$GraphSolver s
        end local 2 // com.sun.tools.javac.util.Warner warn
        end local 1 // com.sun.tools.javac.comp.Infer$GraphStrategy ss
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    3     1    ss  Lcom/sun/tools/javac/comp/Infer$GraphStrategy;
            0    3     2  warn  Lcom/sun/tools/javac/util/Warner;
            1    3     3     s  Lcom/sun/tools/javac/comp/Infer$GraphSolver;
    MethodParameters:
      Name  Flags
      ss    
      warn  

  public void solve(com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/util/Warner;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.Warner warn
         0: .line 482
            aload 0 /* this */
            new com.sun.tools.javac.comp.InferenceContext$1
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokespecial com.sun.tools.javac.comp.InferenceContext$1.<init>:(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/comp/Infer;)V
         1: .line 486
            aload 1 /* warn */
         2: .line 482
            invokevirtual com.sun.tools.javac.comp.InferenceContext.solve:(Lcom/sun/tools/javac/comp/Infer$GraphStrategy;Lcom/sun/tools/javac/util/Warner;)V
         3: .line 487
            return
        end local 1 // com.sun.tools.javac.util.Warner warn
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    4     1  warn  Lcom/sun/tools/javac/util/Warner;
    MethodParameters:
      Name  Flags
      warn  

  public void solve(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Warner;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List vars
        start local 2 // com.sun.tools.javac.util.Warner warn
         0: .line 493
            aload 0 /* this */
            new com.sun.tools.javac.comp.InferenceContext$2
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            aload 1 /* vars */
            aload 1 /* vars */
            invokespecial com.sun.tools.javac.comp.InferenceContext$2.<init>:(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)V
         1: .line 497
            aload 2 /* warn */
         2: .line 493
            invokevirtual com.sun.tools.javac.comp.InferenceContext.solve:(Lcom/sun/tools/javac/comp/Infer$GraphStrategy;Lcom/sun/tools/javac/util/Warner;)V
         3: .line 498
            return
        end local 2 // com.sun.tools.javac.util.Warner warn
        end local 1 // com.sun.tools.javac.util.List vars
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    4     1  vars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    4     2  warn  Lcom/sun/tools/javac/util/Warner;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/Warner;)V
    MethodParameters:
      Name  Flags
      vars  final
      warn  

  public void solveAny(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Warner;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List varsToSolve
        start local 2 // com.sun.tools.javac.util.Warner warn
         0: .line 504
            aload 0 /* this */
            new com.sun.tools.javac.comp.InferenceContext$3
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            aload 1 /* varsToSolve */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.restvars:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.intersect:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            invokespecial com.sun.tools.javac.comp.InferenceContext$3.<init>:(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/util/List;)V
         1: .line 508
            aload 2 /* warn */
         2: .line 504
            invokevirtual com.sun.tools.javac.comp.InferenceContext.solve:(Lcom/sun/tools/javac/comp/Infer$GraphStrategy;Lcom/sun/tools/javac/util/Warner;)V
         3: .line 509
            return
        end local 2 // com.sun.tools.javac.util.Warner warn
        end local 1 // com.sun.tools.javac.util.List varsToSolve
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    4     1  varsToSolve  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    4     2         warn  Lcom/sun/tools/javac/util/Warner;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/Warner;)V
    MethodParameters:
             Name  Flags
      varsToSolve  
      warn         

  private com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> solveBasic(java.util.EnumSet<com.sun.tools.javac.comp.Infer$InferenceStep>);
    descriptor: (Ljava/util/EnumSet;)Lcom/sun/tools/javac/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // java.util.EnumSet steps
         0: .line 515
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            aload 1 /* steps */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.solveBasic:(Lcom/sun/tools/javac/util/List;Ljava/util/EnumSet;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // java.util.EnumSet steps
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    1     1  steps  Ljava/util/EnumSet<Lcom/sun/tools/javac/comp/Infer$InferenceStep;>;
    Signature: (Ljava/util/EnumSet<Lcom/sun/tools/javac/comp/Infer$InferenceStep;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
       Name  Flags
      steps  

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> solveBasic(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, java.util.EnumSet<com.sun.tools.javac.comp.Infer$InferenceStep>);
    descriptor: (Lcom/sun/tools/javac/util/List;Ljava/util/EnumSet;)Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.util.List varsToSolve
        start local 2 // java.util.EnumSet steps
         0: .line 519
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 3 /* solvedVars */
        start local 3 // com.sun.tools.javac.util.ListBuffer solvedVars
         1: .line 520
            aload 1 /* varsToSolve */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.restvars:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.intersect:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List java.util.EnumSet com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 4 /* t */
        start local 4 // com.sun.tools.javac.code.Type t
         3: .line 521
            aload 0 /* this */
            aload 4 /* t */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 6 /* uv */
        start local 6 // com.sun.tools.javac.code.Type$UndetVar uv
         4: .line 522
            aload 2 /* steps */
            invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
            astore 8
            goto 10
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List java.util.EnumSet com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Type$UndetVar top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.Infer$InferenceStep
            astore 7 /* step */
        start local 7 // com.sun.tools.javac.comp.Infer$InferenceStep step
         6: .line 523
            aload 7 /* step */
            aload 6 /* uv */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Infer$InferenceStep.accepts:(Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/comp/InferenceContext;)Z
            ifeq 10
         7: .line 524
            aload 6 /* uv */
            aload 7 /* step */
            aload 6 /* uv */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Infer$InferenceStep.solve:(Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/comp/InferenceContext;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.setInst:(Lcom/sun/tools/javac/code/Type;)V
         8: .line 525
            aload 3 /* solvedVars */
            aload 6 /* uv */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
         9: .line 526
            goto 11
        end local 7 // com.sun.tools.javac.comp.Infer$InferenceStep step
        10: .line 522
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 6 // com.sun.tools.javac.code.Type$UndetVar uv
        end local 4 // com.sun.tools.javac.code.Type t
        11: .line 520
      StackMap locals: com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.List java.util.EnumSet com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        12: .line 530
            aload 3 /* solvedVars */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 3 // com.sun.tools.javac.util.ListBuffer solvedVars
        end local 2 // java.util.EnumSet steps
        end local 1 // com.sun.tools.javac.util.List varsToSolve
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lcom/sun/tools/javac/comp/InferenceContext;
            0   13     1  varsToSolve  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0   13     2        steps  Ljava/util/EnumSet<Lcom/sun/tools/javac/comp/Infer$InferenceStep;>;
            1   13     3   solvedVars  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3   11     4            t  Lcom/sun/tools/javac/code/Type;
            4   11     6           uv  Lcom/sun/tools/javac/code/Type$UndetVar;
            6   10     7         step  Lcom/sun/tools/javac/comp/Infer$InferenceStep;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Ljava/util/EnumSet<Lcom/sun/tools/javac/comp/Infer$InferenceStep;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
             Name  Flags
      varsToSolve  
      steps        

  public void solveLegacy(boolean, com.sun.tools.javac.util.Warner, java.util.EnumSet<com.sun.tools.javac.comp.Infer$InferenceStep>);
    descriptor: (ZLcom/sun/tools/javac/util/Warner;Ljava/util/EnumSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // boolean partial
        start local 2 // com.sun.tools.javac.util.Warner warn
        start local 3 // java.util.EnumSet steps
         0: .line 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* steps */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.solveBasic:(Ljava/util/EnumSet;)Lcom/sun/tools/javac/util/List;
            astore 4 /* solvedVars */
        start local 4 // com.sun.tools.javac.util.List solvedVars
         1: .line 543
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.restvars:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifne 12
            iload 1 /* partial */
            ifeq 3
         2: .line 545
            goto 12
         3: .line 546
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 4 /* solvedVars */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 6
         4: .line 549
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.restvars:()Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Infer.instantiateAsUninferredVars:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/comp/InferenceContext;)V
         5: .line 550
            goto 12
         6: .line 554
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: com.sun.tools.javac.comp.InferenceContext int com.sun.tools.javac.util.Warner java.util.EnumSet com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 5 /* t */
        start local 5 // com.sun.tools.javac.code.Type t
         8: .line 555
            aload 5 /* t */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 7 /* uv */
        start local 7 // com.sun.tools.javac.code.Type$UndetVar uv
         9: .line 556
            aload 7 /* uv */
            aload 4 /* solvedVars */
            aload 0 /* this */
            aload 4 /* solvedVars */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asInstTypes:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.types:Lcom/sun/tools/javac/code/Types;
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.substBounds:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Types;)V
        end local 7 // com.sun.tools.javac.code.Type$UndetVar uv
        end local 5 // com.sun.tools.javac.code.Type t
        10: .line 554
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 4 // com.sun.tools.javac.util.List solvedVars
        11: .line 541
            goto 0
        12: .line 560
      StackMap locals: com.sun.tools.javac.comp.InferenceContext int com.sun.tools.javac.util.Warner java.util.EnumSet
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
            aload 0 /* this */
            aload 2 /* warn */
            invokevirtual com.sun.tools.javac.comp.Infer.doIncorporation:(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/Warner;)V
        13: .line 561
            return
        end local 3 // java.util.EnumSet steps
        end local 2 // com.sun.tools.javac.util.Warner warn
        end local 1 // boolean partial
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lcom/sun/tools/javac/comp/InferenceContext;
            0   14     1     partial  Z
            0   14     2        warn  Lcom/sun/tools/javac/util/Warner;
            0   14     3       steps  Ljava/util/EnumSet<Lcom/sun/tools/javac/comp/Infer$InferenceStep;>;
            1   11     4  solvedVars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            8   10     5           t  Lcom/sun/tools/javac/code/Type;
            9   10     7          uv  Lcom/sun/tools/javac/code/Type$UndetVar;
    Signature: (ZLcom/sun/tools/javac/util/Warner;Ljava/util/EnumSet<Lcom/sun/tools/javac/comp/Infer$InferenceStep;>;)V
    MethodParameters:
         Name  Flags
      partial  
      warn     
      steps    

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
         0: .line 565
            new java.lang.StringBuilder
            dup
            ldc "Inference vars: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.inferencevars:Lcom/sun/tools/javac/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         1: .line 566
            ldc "Undet vars: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         2: .line 565
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/comp/InferenceContext;

  com.sun.tools.javac.code.Type cachedCapture(com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.code.Type, boolean);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Type;
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.tree.JCTree tree
        start local 2 // com.sun.tools.javac.code.Type t
        start local 3 // boolean readOnly
         0: .line 581
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.captureTypeCache:Ljava/util/Map;
            aload 1 /* tree */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 4 /* captured */
        start local 4 // com.sun.tools.javac.code.Type captured
         1: .line 582
            aload 4 /* captured */
            ifnull 3
         2: .line 583
            aload 4 /* captured */
            areturn
         3: .line 586
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.types:Lcom/sun/tools/javac/code/Types;
            aload 2 /* t */
            invokevirtual com.sun.tools.javac.code.Types.capture:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 5 /* result */
        start local 5 // com.sun.tools.javac.code.Type result
         4: .line 587
            aload 5 /* result */
            aload 2 /* t */
            if_acmpeq 6
            iload 3 /* readOnly */
            ifne 6
         5: .line 588
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.captureTypeCache:Ljava/util/Map;
            aload 1 /* tree */
            aload 5 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 590
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 5 /* result */
            areturn
        end local 5 // com.sun.tools.javac.code.Type result
        end local 4 // com.sun.tools.javac.code.Type captured
        end local 3 // boolean readOnly
        end local 2 // com.sun.tools.javac.code.Type t
        end local 1 // com.sun.tools.javac.tree.JCTree tree
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    7     1      tree  Lcom/sun/tools/javac/tree/JCTree;
            0    7     2         t  Lcom/sun/tools/javac/code/Type;
            0    7     3  readOnly  Z
            1    7     4  captured  Lcom/sun/tools/javac/code/Type;
            4    7     5    result  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
          Name  Flags
      tree      
      t         
      readOnly  

  private static boolean lambda$0(com.sun.tools.javac.code.Type$UndetVar);
    descriptor: (Lcom/sun/tools/javac/code/Type$UndetVar;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type$UndetVar uv
         0: .line 126
            aload 0 /* uv */
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.getInst:()Lcom/sun/tools/javac/code/Type;
            ifnonnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.sun.tools.javac.code.Type$UndetVar uv
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    uv  Lcom/sun/tools/javac/code/Type$UndetVar;

  private static boolean lambda$1(com.sun.tools.javac.code.Type$UndetVar);
    descriptor: (Lcom/sun/tools/javac/code/Type$UndetVar;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type$UndetVar uv
         0: .line 134
            aload 0 /* uv */
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.getInst:()Lcom/sun/tools/javac/code/Type;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.sun.tools.javac.code.Type$UndetVar uv
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    uv  Lcom/sun/tools/javac/code/Type$UndetVar;

  private static boolean lambda$2(com.sun.tools.javac.code.Type$UndetVar);
    descriptor: (Lcom/sun/tools/javac/code/Type$UndetVar;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type$UndetVar uv
         0: .line 142
            aload 0 /* uv */
            iconst_1
            anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
            dup
            iconst_0
            getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.UPPER:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            aastore
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.getBounds:([Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)Lcom/sun/tools/javac/util/List;
         1: .line 143
            aload 0 /* uv */
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.getDeclaredBounds:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.diff:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
         2: .line 144
            aload 0 /* uv */
            iconst_2
            anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
            dup
            iconst_0
            getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.EQ:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            aastore
            dup
            iconst_1
            getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.LOWER:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            aastore
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.getBounds:([Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.appendList:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ireturn
        end local 0 // com.sun.tools.javac.code.Type$UndetVar uv
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    uv  Lcom/sun/tools/javac/code/Type$UndetVar;

  private void lambda$3(com.sun.tools.javac.comp.InferenceContext);
    descriptor: (Lcom/sun/tools/javac/comp/InferenceContext;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 1 // com.sun.tools.javac.comp.InferenceContext inferenceContext
         0: .line 332
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.notifyChange:()V
            return
        end local 1 // com.sun.tools.javac.comp.InferenceContext inferenceContext
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    1     1  inferenceContext  Lcom/sun/tools/javac/comp/InferenceContext;

  private static boolean lambda$4(com.sun.tools.javac.util.List, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.sun.tools.javac.code.Type b
         0: .line 357
            aload 0
            aload 1 /* b */
            invokevirtual com.sun.tools.javac.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.sun.tools.javac.code.Type b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     b  Lcom/sun/tools/javac/code/Type;

  private void lambda$5(com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner, com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor, com.sun.tools.javac.comp.InferenceContext);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;Lcom/sun/tools/javac/comp/InferenceContext;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 4 // com.sun.tools.javac.comp.InferenceContext inferenceContext
         0: .line 369
            aload 0 /* this */
            aload 1
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$UndetVar
            aload 4 /* inferenceContext */
            aload 1
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asInstType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.setInst:(Lcom/sun/tools/javac/code/Type;)V
         1: .line 370
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext.infer:Lcom/sun/tools/javac/comp/Infer;
            aload 4 /* inferenceContext */
            aload 2
            invokevirtual com.sun.tools.javac.comp.Infer.doIncorporation:(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/Warner;)V
         2: .line 371
            aload 0 /* this */
            aload 3
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.minMap:Ljava/util/Map;
            aload 1
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Iterable
            invokestatic com.sun.tools.javac.util.List.from:(Ljava/lang/Iterable;)Lcom/sun/tools/javac/util/List;
            aload 2
            invokevirtual com.sun.tools.javac.comp.InferenceContext.solve:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Warner;)V
         3: .line 372
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.notifyChange:()V
         4: .line 373
            return
        end local 4 // com.sun.tools.javac.comp.InferenceContext inferenceContext
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    5     4  inferenceContext  Lcom/sun/tools/javac/comp/InferenceContext;

  private void lambda$6(com.sun.tools.javac.util.List, com.sun.tools.javac.util.Warner, com.sun.tools.javac.comp.InferenceContext);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Warner;Lcom/sun/tools/javac/comp/InferenceContext;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.comp.InferenceContext this
        start local 3 // com.sun.tools.javac.comp.InferenceContext inferenceContext
         0: .line 379
            aload 0 /* this */
            aload 1
            aload 2
            invokevirtual com.sun.tools.javac.comp.InferenceContext.solve:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Warner;)V
         1: .line 380
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.notifyChange:()V
         2: .line 381
            return
        end local 3 // com.sun.tools.javac.comp.InferenceContext inferenceContext
        end local 0 // com.sun.tools.javac.comp.InferenceContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/sun/tools/javac/comp/InferenceContext;
            0    3     3  inferenceContext  Lcom/sun/tools/javac/comp/InferenceContext;
}
SourceFile: "InferenceContext.java"
NestMembers:
  com.sun.tools.javac.comp.InferenceContext$1  com.sun.tools.javac.comp.InferenceContext$2  com.sun.tools.javac.comp.InferenceContext$3  com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor
InnerClasses:
  public TypeVar = com.sun.tools.javac.code.Type$TypeVar of com.sun.tools.javac.code.Type
  public UndetVar = com.sun.tools.javac.code.Type$UndetVar of com.sun.tools.javac.code.Type
  public abstract InferenceBound = com.sun.tools.javac.code.Type$UndetVar$InferenceBound of com.sun.tools.javac.code.Type$UndetVar
  public TypeMapping = com.sun.tools.javac.code.Types$TypeMapping of com.sun.tools.javac.code.Types
  abstract FreeTypeListener = com.sun.tools.javac.comp.Infer$FreeTypeListener of com.sun.tools.javac.comp.Infer
  GraphSolver = com.sun.tools.javac.comp.Infer$GraphSolver of com.sun.tools.javac.comp.Infer
  abstract GraphStrategy = com.sun.tools.javac.comp.Infer$GraphStrategy of com.sun.tools.javac.comp.Infer
  public InferenceException = com.sun.tools.javac.comp.Infer$InferenceException of com.sun.tools.javac.comp.Infer
  abstract InferenceStep = com.sun.tools.javac.comp.Infer$InferenceStep of com.sun.tools.javac.comp.Infer
  com.sun.tools.javac.comp.InferenceContext$1
  com.sun.tools.javac.comp.InferenceContext$2
  com.sun.tools.javac.comp.InferenceContext$3
  ReachabilityVisitor = com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor of com.sun.tools.javac.comp.InferenceContext
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map