class com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor extends com.sun.tools.javac.code.Types$UnaryVisitor<java.lang.Void>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor
  super_class: com.sun.tools.javac.code.Types$UnaryVisitor
{
  java.util.Set<com.sun.tools.javac.code.Type> equiv;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lcom/sun/tools/javac/code/Type;>;

  java.util.Set<com.sun.tools.javac.code.Type> min;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lcom/sun/tools/javac/code/Type;>;

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

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

  void <init>(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$ReachabilityVisitor this
         0: .line 389
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.this$0:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$UnaryVisitor.<init>:()V
         1: .line 391
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.equiv:Ljava/util/Set;
         2: .line 392
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.min:Ljava/util/Set;
         3: .line 393
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.minMap:Ljava/util/Map;
         4: .line 389
            return
        end local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;
    MethodParameters:
        Name  Flags
      this$0  final

  void scan(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
        start local 1 // com.sun.tools.javac.util.List roots
         0: .line 396
            aload 1 /* roots */
            invokevirtual com.sun.tools.javac.util.List.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic accept(Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;)Ljava/util/function/Consumer;
              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;)V
                  com/sun/tools/javac/code/Types$UnaryVisitor.visit(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object; (5)
                  (Lcom/sun/tools/javac/code/Type;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         1: .line 397
            return
        end local 1 // com.sun.tools.javac.util.List roots
        end local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;
            0    2     1  roots  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;>;)V
    MethodParameters:
       Name  Flags
      roots  

  public java.lang.Void visitType(com.sun.tools.javac.code.Type, java.lang.Void);
    descriptor: (Lcom/sun/tools/javac/code/Type;Ljava/lang/Void;)Ljava/lang/Void;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // java.lang.Void _unused
         0: .line 401
            aconst_null
            areturn
        end local 2 // java.lang.Void _unused
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;
            0    1     1        t  Lcom/sun/tools/javac/code/Type;
            0    1     2  _unused  Ljava/lang/Void;
    MethodParameters:
         Name  Flags
      t        
      _unused  

  public java.lang.Void visitUndetVar(com.sun.tools.javac.code.Type$UndetVar, java.lang.Void);
    descriptor: (Lcom/sun/tools/javac/code/Type$UndetVar;Ljava/lang/Void;)Ljava/lang/Void;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
        start local 1 // com.sun.tools.javac.code.Type$UndetVar t
        start local 2 // java.lang.Void _unused
         0: .line 406
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.min:Ljava/util/Set;
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 19
         1: .line 407
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.minMap:Ljava/util/Map;
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            new java.util.LinkedHashSet
            dup
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            invokespecial java.util.LinkedHashSet.<init>:(Ljava/util/Collection;)V
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* deps */
        start local 3 // java.util.Set deps
         2: .line 408
            invokestatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.values:()[Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 17
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.code.Type$UndetVar java.lang.Void java.util.Set top int int com.sun.tools.javac.code.Type$UndetVar$InferenceBound[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* boundKind */
        start local 4 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound boundKind
         4: .line 409
            aload 1 /* t */
            iconst_1
            anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
            dup
            iconst_0
            aload 4 /* boundKind */
            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.iterator:()Ljava/util/Iterator;
            astore 9
            goto 15
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.code.Type$UndetVar java.lang.Void java.util.Set com.sun.tools.javac.code.Type$UndetVar$InferenceBound int int com.sun.tools.javac.code.Type$UndetVar$InferenceBound[] top java.util.Iterator
      StackMap stack:
         5: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 8 /* b */
        start local 8 // com.sun.tools.javac.code.Type b
         6: .line 410
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.this$0:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 8 /* b */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 10 /* undet */
        start local 10 // com.sun.tools.javac.code.Type undet
         7: .line 411
            aload 10 /* undet */
            getstatic com.sun.tools.javac.code.TypeTag.UNDETVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 10
         8: .line 412
            aload 0 /* this */
            aload 10 /* undet */
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            pop
         9: .line 413
            goto 15
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.code.Type$UndetVar java.lang.Void java.util.Set com.sun.tools.javac.code.Type$UndetVar$InferenceBound int int com.sun.tools.javac.code.Type$UndetVar$InferenceBound[] com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Type
      StackMap stack:
        10: aload 0 /* this */
            aload 1 /* t */
            aload 8 /* b */
            aload 4 /* boundKind */
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.isEquiv:(Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)Z
            ifeq 14
        11: .line 414
            aload 3 /* deps */
            aload 8 /* b */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 415
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.equiv:Ljava/util/Set;
            aload 8 /* b */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 416
            goto 15
        14: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 10 /* undet */
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            pop
        end local 10 // com.sun.tools.javac.code.Type undet
        end local 8 // com.sun.tools.javac.code.Type b
        15: .line 409
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.code.Type$UndetVar java.lang.Void java.util.Set com.sun.tools.javac.code.Type$UndetVar$InferenceBound int int com.sun.tools.javac.code.Type$UndetVar$InferenceBound[] top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 4 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound boundKind
        16: .line 408
            iinc 5 1
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.code.Type$UndetVar java.lang.Void java.util.Set top int int com.sun.tools.javac.code.Type$UndetVar$InferenceBound[]
      StackMap stack:
        17: iload 5
            iload 6
            if_icmplt 3
        18: .line 421
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.minMap:Ljava/util/Map;
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            aload 3 /* deps */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.util.Set deps
        19: .line 423
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.code.Type$UndetVar java.lang.Void
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Void _unused
        end local 1 // com.sun.tools.javac.code.Type$UndetVar t
        end local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;
            0   20     1          t  Lcom/sun/tools/javac/code/Type$UndetVar;
            0   20     2    _unused  Ljava/lang/Void;
            2   19     3       deps  Ljava/util/Set<Lcom/sun/tools/javac/code/Type;>;
            4   16     4  boundKind  Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            6   15     8          b  Lcom/sun/tools/javac/code/Type;
            7   15    10      undet  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
         Name  Flags
      t        
      _unused  

  public java.lang.Void visitWildcardType(com.sun.tools.javac.code.Type$WildcardType, java.lang.Void);
    descriptor: (Lcom/sun/tools/javac/code/Type$WildcardType;Ljava/lang/Void;)Ljava/lang/Void;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
        start local 1 // com.sun.tools.javac.code.Type$WildcardType t
        start local 2 // java.lang.Void _unused
         0: .line 428
            aload 0 /* this */
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$WildcardType.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast java.lang.Void
            areturn
        end local 2 // java.lang.Void _unused
        end local 1 // com.sun.tools.javac.code.Type$WildcardType t
        end local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;
            0    1     1        t  Lcom/sun/tools/javac/code/Type$WildcardType;
            0    1     2  _unused  Ljava/lang/Void;
    MethodParameters:
         Name  Flags
      t        
      _unused  

  public java.lang.Void visitTypeVar(com.sun.tools.javac.code.Type$TypeVar, java.lang.Void);
    descriptor: (Lcom/sun/tools/javac/code/Type$TypeVar;Ljava/lang/Void;)Ljava/lang/Void;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
        start local 1 // com.sun.tools.javac.code.Type$TypeVar t
        start local 2 // java.lang.Void aVoid
         0: .line 433
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.this$0:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* undet */
        start local 3 // com.sun.tools.javac.code.Type undet
         1: .line 434
            aload 3 /* undet */
            getstatic com.sun.tools.javac.code.TypeTag.UNDETVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 3
         2: .line 435
            aload 0 /* this */
            aload 3 /* undet */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            aconst_null
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visitUndetVar:(Lcom/sun/tools/javac/code/Type$UndetVar;Ljava/lang/Void;)Ljava/lang/Void;
            pop
         3: .line 437
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aconst_null
            areturn
        end local 3 // com.sun.tools.javac.code.Type undet
        end local 2 // java.lang.Void aVoid
        end local 1 // com.sun.tools.javac.code.Type$TypeVar t
        end local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;
            0    4     1      t  Lcom/sun/tools/javac/code/Type$TypeVar;
            0    4     2  aVoid  Ljava/lang/Void;
            1    4     3  undet  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
       Name  Flags
      t      
      aVoid  

  public java.lang.Void visitArrayType(com.sun.tools.javac.code.Type$ArrayType, java.lang.Void);
    descriptor: (Lcom/sun/tools/javac/code/Type$ArrayType;Ljava/lang/Void;)Ljava/lang/Void;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
        start local 1 // com.sun.tools.javac.code.Type$ArrayType t
        start local 2 // java.lang.Void _unused
         0: .line 442
            aload 0 /* this */
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$ArrayType.elemtype:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast java.lang.Void
            areturn
        end local 2 // java.lang.Void _unused
        end local 1 // com.sun.tools.javac.code.Type$ArrayType t
        end local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;
            0    1     1        t  Lcom/sun/tools/javac/code/Type$ArrayType;
            0    1     2  _unused  Ljava/lang/Void;
    MethodParameters:
         Name  Flags
      t        
      _unused  

  public java.lang.Void visitClassType(com.sun.tools.javac.code.Type$ClassType, java.lang.Void);
    descriptor: (Lcom/sun/tools/javac/code/Type$ClassType;Ljava/lang/Void;)Ljava/lang/Void;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
        start local 1 // com.sun.tools.javac.code.Type$ClassType t
        start local 2 // java.lang.Void _unused
         0: .line 447
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.getEnclosingType:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            pop
         1: .line 448
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.code.Type$ClassType java.lang.Void 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 /* targ */
        start local 3 // com.sun.tools.javac.code.Type targ
         3: .line 449
            aload 0 /* this */
            aload 3 /* targ */
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            pop
        end local 3 // com.sun.tools.javac.code.Type targ
         4: .line 448
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 451
            aconst_null
            areturn
        end local 2 // java.lang.Void _unused
        end local 1 // com.sun.tools.javac.code.Type$ClassType t
        end local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;
            0    6     1        t  Lcom/sun/tools/javac/code/Type$ClassType;
            0    6     2  _unused  Ljava/lang/Void;
            3    4     3     targ  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
         Name  Flags
      t        
      _unused  

  boolean isEquiv(com.sun.tools.javac.code.Type$UndetVar, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type$UndetVar$InferenceBound);
    descriptor: (Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
        start local 1 // com.sun.tools.javac.code.Type$UndetVar from
        start local 2 // com.sun.tools.javac.code.Type t
        start local 3 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound boundKind
         0: .line 455
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.this$0:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 2 /* 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 4 /* uv */
        start local 4 // com.sun.tools.javac.code.Type$UndetVar uv
         1: .line 456
            invokestatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.values:()[Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 12
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.code.Type$UndetVar com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar$InferenceBound com.sun.tools.javac.code.Type$UndetVar top int int com.sun.tools.javac.code.Type$UndetVar$InferenceBound[]
      StackMap stack:
         2: aload 8
            iload 6
            aaload
            astore 5 /* ib */
        start local 5 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib
         3: .line 457
            aload 1 /* from */
            iconst_1
            anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
            dup
            iconst_0
            aload 5 /* 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;
            astore 9 /* b1 */
        start local 9 // com.sun.tools.javac.util.List b1
         4: .line 458
            aload 5 /* ib */
            aload 3 /* boundKind */
            if_acmpne 6
         5: .line 459
            aload 9 /* b1 */
            aload 2 /* t */
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)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 /* b1 */
         6: .line 461
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.code.Type$UndetVar com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar$InferenceBound com.sun.tools.javac.code.Type$UndetVar com.sun.tools.javac.code.Type$UndetVar$InferenceBound int int com.sun.tools.javac.code.Type$UndetVar$InferenceBound[] com.sun.tools.javac.util.List
      StackMap stack:
            aload 4 /* uv */
            iconst_1
            anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
            dup
            iconst_0
            aload 5 /* 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;
            astore 10 /* b2 */
        start local 10 // com.sun.tools.javac.util.List b2
         7: .line 462
            aload 5 /* ib */
            aload 3 /* boundKind */
            invokevirtual com.sun.tools.javac.code.Type$UndetVar$InferenceBound.complement:()Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            if_acmpne 9
         8: .line 463
            aload 10 /* b2 */
            aload 1 /* from */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)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 10 /* b2 */
         9: .line 465
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 9 /* b1 */
            aload 10 /* b2 */
            invokevirtual com.sun.tools.javac.util.List.containsAll:(Ljava/util/Collection;)Z
            ifeq 10
            aload 10 /* b2 */
            aload 9 /* b1 */
            invokevirtual com.sun.tools.javac.util.List.containsAll:(Ljava/util/Collection;)Z
            ifne 11
        10: .line 466
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 10 // com.sun.tools.javac.util.List b2
        end local 9 // com.sun.tools.javac.util.List b1
        end local 5 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib
        11: .line 456
      StackMap locals: com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor com.sun.tools.javac.code.Type$UndetVar com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar$InferenceBound com.sun.tools.javac.code.Type$UndetVar top int int com.sun.tools.javac.code.Type$UndetVar$InferenceBound[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        12: iload 6
            iload 7
            if_icmplt 2
        13: .line 469
            iconst_1
            ireturn
        end local 4 // com.sun.tools.javac.code.Type$UndetVar uv
        end local 3 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound boundKind
        end local 2 // com.sun.tools.javac.code.Type t
        end local 1 // com.sun.tools.javac.code.Type$UndetVar from
        end local 0 // com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lcom/sun/tools/javac/comp/InferenceContext$ReachabilityVisitor;
            0   14     1       from  Lcom/sun/tools/javac/code/Type$UndetVar;
            0   14     2          t  Lcom/sun/tools/javac/code/Type;
            0   14     3  boundKind  Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            1   14     4         uv  Lcom/sun/tools/javac/code/Type$UndetVar;
            3   11     5         ib  Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            4   11     9         b1  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            7   11    10         b2  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
           Name  Flags
      from       
      t          
      boundKind  

  public java.lang.Object visitUndetVar(com.sun.tools.javac.code.Type$UndetVar, java.lang.Object);
    descriptor: (Lcom/sun/tools/javac/code/Type$UndetVar;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.Void
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visitUndetVar:(Lcom/sun/tools/javac/code/Type$UndetVar;Ljava/lang/Void;)Ljava/lang/Void;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitClassType(com.sun.tools.javac.code.Type$ClassType, java.lang.Object);
    descriptor: (Lcom/sun/tools/javac/code/Type$ClassType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.Void
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visitClassType:(Lcom/sun/tools/javac/code/Type$ClassType;Ljava/lang/Void;)Ljava/lang/Void;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitTypeVar(com.sun.tools.javac.code.Type$TypeVar, java.lang.Object);
    descriptor: (Lcom/sun/tools/javac/code/Type$TypeVar;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.Void
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visitTypeVar:(Lcom/sun/tools/javac/code/Type$TypeVar;Ljava/lang/Void;)Ljava/lang/Void;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitArrayType(com.sun.tools.javac.code.Type$ArrayType, java.lang.Object);
    descriptor: (Lcom/sun/tools/javac/code/Type$ArrayType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.Void
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visitArrayType:(Lcom/sun/tools/javac/code/Type$ArrayType;Ljava/lang/Void;)Ljava/lang/Void;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitWildcardType(com.sun.tools.javac.code.Type$WildcardType, java.lang.Object);
    descriptor: (Lcom/sun/tools/javac/code/Type$WildcardType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.Void
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visitWildcardType:(Lcom/sun/tools/javac/code/Type$WildcardType;Ljava/lang/Void;)Ljava/lang/Void;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitType(com.sun.tools.javac.code.Type, java.lang.Object);
    descriptor: (Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.Void
            invokevirtual com.sun.tools.javac.comp.InferenceContext$ReachabilityVisitor.visitType:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Void;)Ljava/lang/Void;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lcom/sun/tools/javac/code/Types$UnaryVisitor<Ljava/lang/Void;>;
SourceFile: "InferenceContext.java"
NestHost: com.sun.tools.javac.comp.InferenceContext
InnerClasses:
  public ArrayType = com.sun.tools.javac.code.Type$ArrayType of com.sun.tools.javac.code.Type
  public ClassType = com.sun.tools.javac.code.Type$ClassType of com.sun.tools.javac.code.Type
  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 WildcardType = com.sun.tools.javac.code.Type$WildcardType of com.sun.tools.javac.code.Type
  public abstract UnaryVisitor = com.sun.tools.javac.code.Types$UnaryVisitor of com.sun.tools.javac.code.Types
  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