class com.sun.tools.javac.comp.Infer$PropagateBounds extends com.sun.tools.javac.comp.Infer$IncorporationAction
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.comp.Infer$PropagateBounds
  super_class: com.sun.tools.javac.comp.Infer$IncorporationAction
{
  com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib;
    descriptor: Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
    flags: (0x0000) 

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

  public void <init>(com.sun.tools.javac.comp.Infer, 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/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
        start local 2 // com.sun.tools.javac.code.Type$UndetVar uv
        start local 3 // com.sun.tools.javac.code.Type t
        start local 4 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib
         0: .line 977
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.comp.Infer$PropagateBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
         1: .line 978
            aload 0 /* this */
            aload 1
            aload 2 /* uv */
            aload 3 /* t */
            invokespecial com.sun.tools.javac.comp.Infer$IncorporationAction.<init>:(Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type;)V
         2: .line 979
            aload 0 /* this */
            aload 4 /* ib */
            putfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
         3: .line 980
            return
        end local 4 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib
        end local 3 // com.sun.tools.javac.code.Type t
        end local 2 // com.sun.tools.javac.code.Type$UndetVar uv
        end local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
            0    4     2    uv  Lcom/sun/tools/javac/code/Type$UndetVar;
            0    4     3     t  Lcom/sun/tools/javac/code/Type;
            0    4     4    ib  Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
    MethodParameters:
        Name  Flags
      this$0  final
      uv      
      t       
      ib      

  public com.sun.tools.javac.comp.Infer$IncorporationAction dup(com.sun.tools.javac.code.Type$UndetVar);
    descriptor: (Lcom/sun/tools/javac/code/Type$UndetVar;)Lcom/sun/tools/javac/comp/Infer$IncorporationAction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
        start local 1 // com.sun.tools.javac.code.Type$UndetVar that
         0: .line 984
            new com.sun.tools.javac.comp.Infer$PropagateBounds
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
            aload 1 /* that */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.t:Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            invokespecial com.sun.tools.javac.comp.Infer$PropagateBounds.<init>:(Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)V
            areturn
        end local 1 // com.sun.tools.javac.code.Type$UndetVar that
        end local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
            0    1     1  that  Lcom/sun/tools/javac/code/Type$UndetVar;
    MethodParameters:
      Name  Flags
      that  

  void apply(com.sun.tools.javac.comp.InferenceContext, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/Warner;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
        start local 1 // com.sun.tools.javac.comp.InferenceContext inferenceContext
        start local 2 // com.sun.tools.javac.util.Warner warner
         0: .line 988
            aload 1 /* inferenceContext */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.t:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* undetT */
        start local 3 // com.sun.tools.javac.code.Type undetT
         1: .line 989
            aload 3 /* undetT */
            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 11
            aload 3 /* undetT */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.isCaptured:()Z
            ifne 11
         2: .line 990
            aload 3 /* undetT */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 4 /* uv2 */
        start local 4 // com.sun.tools.javac.code.Type$UndetVar uv2
         3: .line 992
            aload 4 /* uv2 */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            invokevirtual com.sun.tools.javac.code.Type$UndetVar$InferenceBound.complement:()Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.this$0: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.addBound:(Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)V
         4: .line 994
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Infer$PropagateBounds.backwards:()Ljava/util/EnumSet;
            invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type$UndetVar$InferenceBound
            astore 5 /* ib2 */
        start local 5 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib2
         6: .line 995
            aload 4 /* uv2 */
            iconst_1
            anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
            dup
            iconst_0
            aload 5 /* ib2 */
            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 8
            goto 9
      StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar com.sun.tools.javac.code.Type$UndetVar$InferenceBound java.util.Iterator top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 7 /* b */
        start local 7 // com.sun.tools.javac.code.Type b
         8: .line 996
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
            aload 5 /* ib2 */
            aload 7 /* b */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.this$0: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.addBound:(Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)V
        end local 7 // com.sun.tools.javac.code.Type b
         9: .line 995
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 5 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib2
        10: .line 994
      StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 4 // com.sun.tools.javac.code.Type$UndetVar uv2
        11: .line 1001
      StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Infer$PropagateBounds.forward:()Ljava/util/EnumSet;
            invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
            astore 5
            goto 20
      StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type top java.util.Iterator
      StackMap stack:
        12: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type$UndetVar$InferenceBound
            astore 4 /* ib2 */
        start local 4 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib2
        13: .line 1002
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
            iconst_1
            anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
            dup
            iconst_0
            aload 4 /* ib2 */
            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 7
            goto 19
      StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar$InferenceBound java.util.Iterator top java.util.Iterator
      StackMap stack:
        14: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 6 /* l */
        start local 6 // com.sun.tools.javac.code.Type l
        15: .line 1003
            aload 1 /* inferenceContext */
            aload 6 /* l */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 8 /* undet */
        start local 8 // com.sun.tools.javac.code.Type undet
        16: .line 1004
            aload 8 /* 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 19
            aload 8 /* undet */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.isCaptured:()Z
            ifne 19
        17: .line 1005
            aload 8 /* undet */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 9 /* uv2 */
        start local 9 // com.sun.tools.javac.code.Type$UndetVar uv2
        18: .line 1006
            aload 9 /* uv2 */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            aload 1 /* inferenceContext */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.t:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asInstType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.this$0: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.addBound:(Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)V
        end local 9 // com.sun.tools.javac.code.Type$UndetVar uv2
        end local 8 // com.sun.tools.javac.code.Type undet
        end local 6 // com.sun.tools.javac.code.Type l
        19: .line 1002
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 4 // com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib2
        20: .line 1001
      StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        21: .line 1010
            return
        end local 3 // com.sun.tools.javac.code.Type undetT
        end local 2 // com.sun.tools.javac.util.Warner warner
        end local 1 // com.sun.tools.javac.comp.InferenceContext inferenceContext
        end local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
            0   22     1  inferenceContext  Lcom/sun/tools/javac/comp/InferenceContext;
            0   22     2            warner  Lcom/sun/tools/javac/util/Warner;
            1   22     3            undetT  Lcom/sun/tools/javac/code/Type;
            3   11     4               uv2  Lcom/sun/tools/javac/code/Type$UndetVar;
            6   10     5               ib2  Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            8    9     7                 b  Lcom/sun/tools/javac/code/Type;
           13   20     4               ib2  Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
           15   19     6                 l  Lcom/sun/tools/javac/code/Type;
           16   19     8             undet  Lcom/sun/tools/javac/code/Type;
           18   19     9               uv2  Lcom/sun/tools/javac/code/Type$UndetVar;
    MethodParameters:
                  Name  Flags
      inferenceContext  
      warner            

  java.util.EnumSet<com.sun.tools.javac.code.Type$UndetVar$InferenceBound> forward();
    descriptor: ()Ljava/util/EnumSet;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
         0: .line 1013
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.EQ:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            if_acmpne 2
         1: .line 1014
            getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.EQ:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
            invokestatic java.util.EnumSet.complementOf:(Ljava/util/EnumSet;)Ljava/util/EnumSet;
         3: .line 1013
      StackMap locals:
      StackMap stack: java.util.EnumSet
            areturn
        end local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
    Signature: ()Ljava/util/EnumSet<Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;>;

  java.util.EnumSet<com.sun.tools.javac.code.Type$UndetVar$InferenceBound> backwards();
    descriptor: ()Ljava/util/EnumSet;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
         0: .line 1018
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.EQ:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            if_acmpne 2
         1: .line 1019
            ldc Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            invokestatic java.util.EnumSet.allOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
         3: .line 1018
      StackMap locals:
      StackMap stack: java.util.EnumSet
            areturn
        end local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
    Signature: ()Ljava/util/EnumSet<Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;>;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
         0: .line 1024
            ldc "%s[undet=%s,t=%s,bound=%s]"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.t:Lcom/sun/tools/javac/code/Type;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.javac.comp.Infer$PropagateBounds this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
}
SourceFile: "Infer.java"
NestHost: com.sun.tools.javac.comp.Infer
InnerClasses:
  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 abstract IncorporationAction = com.sun.tools.javac.comp.Infer$IncorporationAction of com.sun.tools.javac.comp.Infer
  PropagateBounds = com.sun.tools.javac.comp.Infer$PropagateBounds of com.sun.tools.javac.comp.Infer