public abstract class com.sun.tools.javac.jvm.StringConcat
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.tools.javac.jvm.StringConcat
  super_class: java.lang.Object
{
  private static final int MAX_INDY_CONCAT_ARG_SLOTS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 200

  private static final char TAG_ARG;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final char TAG_CONST;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  protected final com.sun.tools.javac.jvm.Gen gen;
    descriptor: Lcom/sun/tools/javac/jvm/Gen;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final com.sun.tools.javac.code.Symtab syms;
    descriptor: Lcom/sun/tools/javac/code/Symtab;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final com.sun.tools.javac.util.Names names;
    descriptor: Lcom/sun/tools/javac/util/Names;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final com.sun.tools.javac.tree.TreeMaker make;
    descriptor: Lcom/sun/tools/javac/tree/TreeMaker;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final com.sun.tools.javac.code.Types types;
    descriptor: Lcom/sun/tools/javac/code/Types;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.util.Map<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol> sbAppends;
    descriptor: Ljava/util/Map;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;>;

  protected final com.sun.tools.javac.comp.Resolve rs;
    descriptor: Lcom/sun/tools/javac/comp/Resolve;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected static final com.sun.tools.javac.util.Context$Key<com.sun.tools.javac.jvm.StringConcat> concatKey;
    descriptor: Lcom/sun/tools/javac/util/Context$Key;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Signature: Lcom/sun/tools/javac/util/Context$Key<Lcom/sun/tools/javac/jvm/StringConcat;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 71
            new com.sun.tools.javac.util.Context$Key
            dup
            invokespecial com.sun.tools.javac.util.Context$Key.<init>:()V
            putstatic com.sun.tools.javac.jvm.StringConcat.concatKey:Lcom/sun/tools/javac/util/Context$Key;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.sun.tools.javac.jvm.StringConcat instance(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/jvm/StringConcat;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.util.Context context
         0: .line 74
            aload 0 /* context */
            getstatic com.sun.tools.javac.jvm.StringConcat.concatKey:Lcom/sun/tools/javac/util/Context$Key;
            invokevirtual com.sun.tools.javac.util.Context.get:(Lcom/sun/tools/javac/util/Context$Key;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.jvm.StringConcat
            astore 1 /* instance */
        start local 1 // com.sun.tools.javac.jvm.StringConcat instance
         1: .line 75
            aload 1 /* instance */
            ifnonnull 3
         2: .line 76
            aload 0 /* context */
            invokestatic com.sun.tools.javac.jvm.StringConcat.makeConcat:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/jvm/StringConcat;
            astore 1 /* instance */
         3: .line 78
      StackMap locals: com.sun.tools.javac.jvm.StringConcat
      StackMap stack:
            aload 1 /* instance */
            areturn
        end local 1 // com.sun.tools.javac.jvm.StringConcat instance
        end local 0 // com.sun.tools.javac.util.Context context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   context  Lcom/sun/tools/javac/util/Context;
            1    4     1  instance  Lcom/sun/tools/javac/jvm/StringConcat;
    MethodParameters:
         Name  Flags
      context  

  private static com.sun.tools.javac.jvm.StringConcat makeConcat(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/jvm/StringConcat;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.sun.tools.javac.util.Context context
         0: .line 82
            aload 0 /* context */
            invokestatic com.sun.tools.javac.jvm.Target.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/jvm/Target;
            astore 1 /* target */
        start local 1 // com.sun.tools.javac.jvm.Target target
         1: .line 83
            aload 0 /* context */
            invokestatic com.sun.tools.javac.util.Options.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Options;
            ldc "stringConcat"
            invokevirtual com.sun.tools.javac.util.Options.get:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* opt */
        start local 2 // java.lang.String opt
         2: .line 84
            aload 1 /* target */
            invokevirtual com.sun.tools.javac.jvm.Target.hasStringConcatFactory:()Z
            ifeq 6
         3: .line 85
            aload 2 /* opt */
            ifnonnull 9
         4: .line 86
            ldc "indyWithConstants"
            astore 2 /* opt */
         5: .line 88
            goto 9
         6: .line 89
      StackMap locals: com.sun.tools.javac.jvm.Target java.lang.String
      StackMap stack:
            aload 2 /* opt */
            ifnull 8
            ldc "inline"
            aload 2 /* opt */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 90
            ldc "StringConcatFactory-based string concat is requested on a platform that does not support it."
            invokestatic com.sun.tools.javac.util.Assert.error:(Ljava/lang/String;)V
         8: .line 92
      StackMap locals:
      StackMap stack:
            ldc "inline"
            astore 2 /* opt */
         9: .line 95
      StackMap locals:
      StackMap stack:
            aload 2 /* opt */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -1183997287: 10
              3236986: 11
            671408335: 12
              default: 16
          }
      StackMap locals: java.lang.String
      StackMap stack:
        10: aload 3
            ldc "inline"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            goto 16
      StackMap locals:
      StackMap stack:
        11: aload 3
            ldc "indy"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
            goto 16
      StackMap locals:
      StackMap stack:
        12: aload 3
            ldc "indyWithConstants"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
            goto 16
        13: .line 97
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.jvm.StringConcat$Inline
            dup
            aload 0 /* context */
            invokespecial com.sun.tools.javac.jvm.StringConcat$Inline.<init>:(Lcom/sun/tools/javac/util/Context;)V
            areturn
        14: .line 99
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.jvm.StringConcat$IndyPlain
            dup
            aload 0 /* context */
            invokespecial com.sun.tools.javac.jvm.StringConcat$IndyPlain.<init>:(Lcom/sun/tools/javac/util/Context;)V
            areturn
        15: .line 101
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.jvm.StringConcat$IndyConstants
            dup
            aload 0 /* context */
            invokespecial com.sun.tools.javac.jvm.StringConcat$IndyConstants.<init>:(Lcom/sun/tools/javac/util/Context;)V
            areturn
        16: .line 103
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Unknown stringConcat: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* opt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.tools.javac.util.Assert.error:(Ljava/lang/String;)V
        17: .line 104
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown stringConcat: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* opt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String opt
        end local 1 // com.sun.tools.javac.jvm.Target target
        end local 0 // com.sun.tools.javac.util.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0  context  Lcom/sun/tools/javac/util/Context;
            1   18     1   target  Lcom/sun/tools/javac/jvm/Target;
            2   18     2      opt  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      context  

  protected void <init>(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.StringConcat this
        start local 1 // com.sun.tools.javac.util.Context context
         0: .line 108
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 109
            aload 1 /* context */
            getstatic com.sun.tools.javac.jvm.StringConcat.concatKey:Lcom/sun/tools/javac/util/Context$Key;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.util.Context.put:(Lcom/sun/tools/javac/util/Context$Key;Ljava/lang/Object;)V
         2: .line 110
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.jvm.Gen.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/jvm/Gen;
            putfield com.sun.tools.javac.jvm.StringConcat.gen:Lcom/sun/tools/javac/jvm/Gen;
         3: .line 111
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.code.Symtab.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Symtab;
            putfield com.sun.tools.javac.jvm.StringConcat.syms:Lcom/sun/tools/javac/code/Symtab;
         4: .line 112
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.code.Types.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Types;
            putfield com.sun.tools.javac.jvm.StringConcat.types:Lcom/sun/tools/javac/code/Types;
         5: .line 113
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.util.Names.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Names;
            putfield com.sun.tools.javac.jvm.StringConcat.names:Lcom/sun/tools/javac/util/Names;
         6: .line 114
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.tree.TreeMaker.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/tree/TreeMaker;
            putfield com.sun.tools.javac.jvm.StringConcat.make:Lcom/sun/tools/javac/tree/TreeMaker;
         7: .line 115
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.Resolve.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Resolve;
            putfield com.sun.tools.javac.jvm.StringConcat.rs:Lcom/sun/tools/javac/comp/Resolve;
         8: .line 116
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.tools.javac.jvm.StringConcat.sbAppends:Ljava/util/Map;
         9: .line 117
            return
        end local 1 // com.sun.tools.javac.util.Context context
        end local 0 // com.sun.tools.javac.jvm.StringConcat this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/sun/tools/javac/jvm/StringConcat;
            0   10     1  context  Lcom/sun/tools/javac/util/Context;
    MethodParameters:
         Name  Flags
      context  

  public abstract com.sun.tools.javac.jvm.Items$Item makeConcat(com.sun.tools.javac.tree.JCTree$JCAssignOp);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCAssignOp;)Lcom/sun/tools/javac/jvm/Items$Item;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      tree  

  public abstract com.sun.tools.javac.jvm.Items$Item makeConcat(com.sun.tools.javac.tree.JCTree$JCBinary);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCBinary;)Lcom/sun/tools/javac/jvm/Items$Item;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      tree  

  protected com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree> collectAll(com.sun.tools.javac.tree.JCTree);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.StringConcat this
        start local 1 // com.sun.tools.javac.tree.JCTree tree
         0: .line 123
            aload 0 /* this */
            aload 1 /* tree */
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.jvm.StringConcat.collect:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // com.sun.tools.javac.tree.JCTree tree
        end local 0 // com.sun.tools.javac.jvm.StringConcat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/jvm/StringConcat;
            0    1     1  tree  Lcom/sun/tools/javac/tree/JCTree;
    Signature: (Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
    MethodParameters:
      Name  Flags
      tree  

  protected com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree> collectAll(com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.tree.JCTree$JCExpression);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/tree/JCTree$JCExpression;)Lcom/sun/tools/javac/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.jvm.StringConcat this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCExpression lhs
        start local 2 // com.sun.tools.javac.tree.JCTree$JCExpression rhs
         0: .line 127
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
         1: .line 128
            aload 0 /* this */
            aload 1 /* lhs */
            invokevirtual com.sun.tools.javac.jvm.StringConcat.collectAll:(Lcom/sun/tools/javac/tree/JCTree;)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;
         2: .line 129
            aload 0 /* this */
            aload 2 /* rhs */
            invokevirtual com.sun.tools.javac.jvm.StringConcat.collectAll:(Lcom/sun/tools/javac/tree/JCTree;)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;
         3: .line 127
            areturn
        end local 2 // com.sun.tools.javac.tree.JCTree$JCExpression rhs
        end local 1 // com.sun.tools.javac.tree.JCTree$JCExpression lhs
        end local 0 // com.sun.tools.javac.jvm.StringConcat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/jvm/StringConcat;
            0    4     1   lhs  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            0    4     2   rhs  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
    Signature: (Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/tree/JCTree$JCExpression;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
    MethodParameters:
      Name  Flags
      lhs   
      rhs   

  private com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree> collect(com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree>);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.jvm.StringConcat this
        start local 1 // com.sun.tools.javac.tree.JCTree tree
        start local 2 // com.sun.tools.javac.util.List res
         0: .line 133
            aload 1 /* tree */
            invokestatic com.sun.tools.javac.tree.TreeInfo.skipParens:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/tree/JCTree;
            astore 1 /* tree */
         1: .line 134
            aload 1 /* tree */
            getstatic com.sun.tools.javac.tree.JCTree$Tag.PLUS:Lcom/sun/tools/javac/tree/JCTree$Tag;
            invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
            ifeq 8
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.constValue:()Ljava/lang/Object;
            ifnonnull 8
         2: .line 135
            aload 1 /* tree */
            checkcast com.sun.tools.javac.tree.JCTree$JCBinary
            astore 3 /* op */
        start local 3 // com.sun.tools.javac.tree.JCTree$JCBinary op
         3: .line 136
            aload 3 /* op */
            getfield com.sun.tools.javac.tree.JCTree$JCBinary.operator:Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;
            getfield com.sun.tools.javac.code.Symbol$OperatorSymbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.MTH:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpne 8
            aload 3 /* op */
            getfield com.sun.tools.javac.tree.JCTree$JCBinary.operator:Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;
            getfield com.sun.tools.javac.code.Symbol$OperatorSymbol.opcode:I
            sipush 256
            if_icmpne 8
         4: .line 137
            aload 2 /* res */
         5: .line 138
            aload 0 /* this */
            aload 3 /* op */
            getfield com.sun.tools.javac.tree.JCTree$JCBinary.lhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 2 /* res */
            invokevirtual com.sun.tools.javac.jvm.StringConcat.collect:(Lcom/sun/tools/javac/tree/JCTree;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;
         6: .line 139
            aload 0 /* this */
            aload 3 /* op */
            getfield com.sun.tools.javac.tree.JCTree$JCBinary.rhs:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 2 /* res */
            invokevirtual com.sun.tools.javac.jvm.StringConcat.collect:(Lcom/sun/tools/javac/tree/JCTree;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;
         7: .line 137
            areturn
        end local 3 // com.sun.tools.javac.tree.JCTree$JCBinary op
         8: .line 142
      StackMap locals:
      StackMap stack:
            aload 2 /* res */
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.util.List.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.List res
        end local 1 // com.sun.tools.javac.tree.JCTree tree
        end local 0 // com.sun.tools.javac.jvm.StringConcat this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/javac/jvm/StringConcat;
            0    9     1  tree  Lcom/sun/tools/javac/tree/JCTree;
            0    9     2   res  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
            3    8     3    op  Lcom/sun/tools/javac/tree/JCTree$JCBinary;
    Signature: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
    MethodParameters:
      Name  Flags
      tree  
      res   

  com.sun.tools.javac.code.Type sharpestAccessible(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=3, args_size=2
        start local 0 // com.sun.tools.javac.jvm.StringConcat this
        start local 1 // com.sun.tools.javac.code.Type originalType
         0: .line 153
            aload 1 /* originalType */
            getstatic com.sun.tools.javac.code.TypeTag.ARRAY:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 2
         1: .line 154
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.StringConcat.types:Lcom/sun/tools/javac/code/Types;
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.StringConcat.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* originalType */
            invokevirtual com.sun.tools.javac.code.Types.elemtype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.jvm.StringConcat.sharpestAccessible:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.makeArrayType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type$ArrayType;
            areturn
         2: .line 157
      StackMap locals:
      StackMap stack:
            aload 1 /* originalType */
            astore 2 /* type */
        start local 2 // com.sun.tools.javac.code.Type type
         3: .line 158
            goto 5
         4: .line 159
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.StringConcat.types:Lcom/sun/tools/javac/code/Types;
            aload 2 /* type */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* type */
         5: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.StringConcat.rs:Lcom/sun/tools/javac/comp/Resolve;
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.StringConcat.gen:Lcom/sun/tools/javac/jvm/Gen;
            invokevirtual com.sun.tools.javac.jvm.Gen.getAttrEnv:()Lcom/sun/tools/javac/comp/Env;
            aload 2 /* type */
            invokevirtual com.sun.tools.javac.code.Type.asElement:()Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.comp.Resolve.isAccessible:(Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Z
            ifeq 4
         6: .line 161
            aload 2 /* type */
            areturn
        end local 2 // com.sun.tools.javac.code.Type type
        end local 1 // com.sun.tools.javac.code.Type originalType
        end local 0 // com.sun.tools.javac.jvm.StringConcat this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/sun/tools/javac/jvm/StringConcat;
            0    7     1  originalType  Lcom/sun/tools/javac/code/Type;
            3    7     2          type  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
              Name  Flags
      originalType  
}
SourceFile: "StringConcat.java"
NestMembers:
  com.sun.tools.javac.jvm.StringConcat$Indy  com.sun.tools.javac.jvm.StringConcat$IndyConstants  com.sun.tools.javac.jvm.StringConcat$IndyPlain  com.sun.tools.javac.jvm.StringConcat$Inline
InnerClasses:
  public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
  public OperatorSymbol = com.sun.tools.javac.code.Symbol$OperatorSymbol of com.sun.tools.javac.code.Symbol
  public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
  public ArrayType = com.sun.tools.javac.code.Type$ArrayType of com.sun.tools.javac.code.Type
  abstract Item = com.sun.tools.javac.jvm.Items$Item of com.sun.tools.javac.jvm.Items
  private abstract Indy = com.sun.tools.javac.jvm.StringConcat$Indy of com.sun.tools.javac.jvm.StringConcat
  private final IndyConstants = com.sun.tools.javac.jvm.StringConcat$IndyConstants of com.sun.tools.javac.jvm.StringConcat
  private IndyPlain = com.sun.tools.javac.jvm.StringConcat$IndyPlain of com.sun.tools.javac.jvm.StringConcat
  private Inline = com.sun.tools.javac.jvm.StringConcat$Inline of com.sun.tools.javac.jvm.StringConcat
  public JCAssignOp = com.sun.tools.javac.tree.JCTree$JCAssignOp of com.sun.tools.javac.tree.JCTree
  public JCBinary = com.sun.tools.javac.tree.JCTree$JCBinary of com.sun.tools.javac.tree.JCTree
  public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree
  public final Tag = com.sun.tools.javac.tree.JCTree$Tag of com.sun.tools.javac.tree.JCTree
  public Key = com.sun.tools.javac.util.Context$Key of com.sun.tools.javac.util.Context