-
Bug
-
Resolution: Unresolved
-
P3
-
23
-
generic
-
generic
ADDITIONAL SYSTEM INFORMATION :
Temurin JDK 23+37
A DESCRIPTION OF THE PROBLEM :
For my program I use a fat/shaded/uber jar which I then run through an optimizer, Proguard. Then I run jdeps on it to find the used modules. In JDK 22, jdeps could successfully process my jar and return correct results. Now in JDK 23, running jdeps on that same jar crashes. Recompiling the jar with JDK 23 and running jdeps also crashes. It fails to parse some signatures because jdeps switched to using the in preview Classfile API in JDK 23.
I can confirm that running the jar works fine in both JDK 22 and JDK 23 and I made sure to access and invoke methods from the problematic class, so the class is valid and works, just cannot be parsed by jdeps of JDK 23.
The problematic class comes from a transitive dependency, so I have extracted it from my fat/shaded/uber jar and I will paste the output of `javap -v "TreeMap$TreeMapBuilder"` here as there is nowhere to attach the class itself on this website. Please contact me if more data is needed. It's of no use to try to find this class online because it's a different class file as a result of the Proguard optimization. Here is the output from javap (JDK 23):
Classfile /path/to/extracted/TreeMap$TreeMapBuilder.class
Last modified Jan 1, 1970; size 7183 bytes
SHA-256 checksum 16cb6947cc5bbfc94f5a964b2ca8c6a0152526b092a32242faec56cb1f6e8f3f
Compiled from "TreeMap.scala"
public class scala.collection.immutable.TreeMap$TreeMapBuilder<A extends java.lang.Object, B extends java.lang.Object> extends scala.collection.immutable.NewRedBlackTree$MapHelper<A, B> implements scala.collection.mutable.Builder<scala.Tuple2<A, B>, scala.collection.immutable.TreeMap<A, B>>
minor version: 0
major version: 52
flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: #13 // scala/collection/immutable/TreeMap$TreeMapBuilder
super_class: #10 // scala/collection/immutable/NewRedBlackTree$MapHelper
interfaces: 1, fields: 2, methods: 17, attributes: 5
Constant pool:
#1 = Class #175 // java/lang/Object
#2 = Class #176 // java/lang/Throwable
#3 = Class #184 // scala/Tuple2
#4 = Class #185 // scala/collection/TraversableOnce
#5 = Class #186 // scala/collection/generic/Growable
#6 = Class #187 // scala/collection/immutable/HasForeachEntry
#7 = Class #188 // scala/collection/immutable/NewRedBlackTree
#8 = Class #189 // scala/collection/immutable/NewRedBlackTree$
#9 = Class #190 // scala/collection/immutable/NewRedBlackTree$Helper
#10 = Class #191 // scala/collection/immutable/NewRedBlackTree$MapHelper
#11 = Class #192 // scala/collection/immutable/NewRedBlackTree$Tree
#12 = Class #193 // scala/collection/immutable/TreeMap
#13 = Class #194 // scala/collection/immutable/TreeMap$TreeMapBuilder
#14 = Class #195 // scala/collection/immutable/TreeMap$TreeMapBuilder$adder$
#15 = Class #196 // scala/collection/mutable/Builder
#16 = Class #197 // scala/math/Ordering
#17 = Fieldref #8.#56 // scala/collection/immutable/NewRedBlackTree$.MODULE$:Lscala/collection/immutable/NewRedBlackTree$;
#18 = Fieldref #13.#62 // scala/collection/immutable/TreeMap$TreeMapBuilder.adder$module:Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#19 = Fieldref #13.#70 // scala/collection/immutable/TreeMap$TreeMapBuilder.scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:Lscala/collection/immutable/NewRedBlackTree$Tree;
#20 = Methodref #1.#64 // java/lang/Object.equals:(Ljava/lang/Object;)Z
#21 = Methodref #3.#57 // scala/Tuple2._1:()Ljava/lang/Object;
#22 = Methodref #3.#58 // scala/Tuple2._2:()Ljava/lang/Object;
#23 = Methodref #8.#77 // scala/collection/immutable/NewRedBlackTree$.union:(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#24 = Methodref #9.#67 // scala/collection/immutable/NewRedBlackTree$Helper.ordering:()Lscala/math/Ordering;
#25 = Methodref #10.#55 // scala/collection/immutable/NewRedBlackTree$MapHelper."<init>":(Lscala/math/Ordering;)V
#26 = Methodref #12.#53 // scala/collection/immutable/TreeMap."<init>":(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)V
#27 = Methodref #12.#67 // scala/collection/immutable/TreeMap.ordering:()Lscala/math/Ordering;
#28 = Methodref #12.#76 // scala/collection/immutable/TreeMap.tree0:()Lscala/collection/immutable/NewRedBlackTree$Tree;
#29 = Methodref #13.#50 // scala/collection/immutable/TreeMap$TreeMapBuilder.$plus$eq:(Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#30 = Methodref #13.#51 // scala/collection/immutable/TreeMap$TreeMapBuilder.$plus$plus$eq:(Lscala/collection/TraversableOnce;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#31 = Methodref #13.#60 // scala/collection/immutable/TreeMap$TreeMapBuilder.adder:()Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#32 = Methodref #13.#61 // scala/collection/immutable/TreeMap$TreeMapBuilder.adder$lzycompute$1:()V
#33 = Methodref #13.#63 // scala/collection/immutable/TreeMap$TreeMapBuilder.beforePublish:(Lscala/collection/immutable/NewRedBlackTree$Tree;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#34 = Methodref #13.#66 // scala/collection/immutable/TreeMap$TreeMapBuilder.mutableUpd:(Lscala/collection/immutable/NewRedBlackTree$Tree;Ljava/lang/Object;Ljava/lang/Object;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#35 = Methodref #13.#68 // scala/collection/immutable/TreeMap$TreeMapBuilder.result:()Lscala/collection/immutable/TreeMap;
#36 = Methodref #13.#69 // scala/collection/immutable/TreeMap$TreeMapBuilder.scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
#37 = Methodref #13.#71 // scala/collection/immutable/TreeMap$TreeMapBuilder.scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq:(Lscala/collection/immutable/NewRedBlackTree$Tree;)V
#38 = Methodref #14.#54 // scala/collection/immutable/TreeMap$TreeMapBuilder$adder$."<init>":(Lscala/collection/immutable/TreeMap$TreeMapBuilder;)V
#39 = Methodref #14.#59 // scala/collection/immutable/TreeMap$TreeMapBuilder$adder$.addForEach:(Lscala/collection/immutable/HasForeachEntry;)V
#40 = InterfaceMethodref #5.#48 // scala/collection/generic/Growable.$init$:(Lscala/collection/generic/Growable;)V
#41 = InterfaceMethodref #5.#52 // scala/collection/generic/Growable.$plus$plus$eq$:(Lscala/collection/generic/Growable;Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
#42 = InterfaceMethodref #15.#49 // scala/collection/mutable/Builder.$init$:(Lscala/collection/mutable/Builder;)V
#43 = InterfaceMethodref #15.#65 // scala/collection/mutable/Builder.mapResult$:(Lscala/collection/mutable/Builder;Lscala/Function1;)Lscala/collection/mutable/Builder;
#44 = InterfaceMethodref #15.#72 // scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;I)V
#45 = InterfaceMethodref #15.#73 // scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;)V
#46 = InterfaceMethodref #15.#74 // scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;I)V
#47 = InterfaceMethodref #15.#75 // scala/collection/mutable/Builder.sizeHintBounded$:(Lscala/collection/mutable/Builder;ILscala/collection/TraversableLike;)V
#48 = NameAndType #78:#107 // $init$:(Lscala/collection/generic/Growable;)V
#49 = NameAndType #78:#117 // $init$:(Lscala/collection/mutable/Builder;)V
#50 = NameAndType #79:#98 // $plus$eq:(Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#51 = NameAndType #80:#105 // $plus$plus$eq:(Lscala/collection/TraversableOnce;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#52 = NameAndType #81:#108 // $plus$plus$eq$:(Lscala/collection/generic/Growable;Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
#53 = NameAndType #127:#114 // "<init>":(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)V
#54 = NameAndType #127:#116 // "<init>":(Lscala/collection/immutable/TreeMap$TreeMapBuilder;)V
#55 = NameAndType #127:#123 // "<init>":(Lscala/math/Ordering;)V
#56 = NameAndType #147:#140 // MODULE$:Lscala/collection/immutable/NewRedBlackTree$;
#57 = NameAndType #158:#82 // _1:()Ljava/lang/Object;
#58 = NameAndType #159:#82 // _2:()Ljava/lang/Object;
#59 = NameAndType #160:#109 // addForEach:(Lscala/collection/immutable/HasForeachEntry;)V
#60 = NameAndType #161:#85 // adder:()Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#61 = NameAndType #163:#90 // adder$lzycompute$1:()V
#62 = NameAndType #164:#143 // adder$module:Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#63 = NameAndType #165:#110 // beforePublish:(Lscala/collection/immutable/NewRedBlackTree$Tree;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#64 = NameAndType #173:#96 // equals:(Ljava/lang/Object;)Z
#65 = NameAndType #178:#120 // mapResult$:(Lscala/collection/mutable/Builder;Lscala/Function1;)Lscala/collection/mutable/Builder;
#66 = NameAndType #179:#112 // mutableUpd:(Lscala/collection/immutable/NewRedBlackTree$Tree;Ljava/lang/Object;Ljava/lang/Object;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#67 = NameAndType #180:#89 // ordering:()Lscala/math/Ordering;
#68 = NameAndType #181:#87 // result:()Lscala/collection/immutable/TreeMap;
#69 = NameAndType #182:#83 // scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
#70 = NameAndType #182:#141 // scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:Lscala/collection/immutable/NewRedBlackTree$Tree;
#71 = NameAndType #183:#111 // scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq:(Lscala/collection/immutable/NewRedBlackTree$Tree;)V
#72 = NameAndType #200:#118 // sizeHint$:(Lscala/collection/mutable/Builder;I)V
#73 = NameAndType #200:#121 // sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;)V
#74 = NameAndType #200:#122 // sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;I)V
#75 = NameAndType #202:#119 // sizeHintBounded$:(Lscala/collection/mutable/Builder;ILscala/collection/TraversableLike;)V
#76 = NameAndType #204:#83 // tree0:()Lscala/collection/immutable/NewRedBlackTree$Tree;
#77 = NameAndType #205:#113 // union:(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#78 = Utf8 $init$
#79 = Utf8 $plus$eq
#80 = Utf8 $plus$plus$eq
#81 = Utf8 $plus$plus$eq$
#82 = Utf8 ()Ljava/lang/Object;
#83 = Utf8 ()Lscala/collection/immutable/NewRedBlackTree$Tree;
#84 = Utf8 ()Lscala/collection/immutable/NewRedBlackTree$Tree<TA;TB;>;
#85 = Utf8 ()Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#86 = Utf8 ()Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>.;
#87 = Utf8 ()Lscala/collection/immutable/TreeMap;
#88 = Utf8 ()Lscala/collection/immutable/TreeMap<TA;TB;>;
#89 = Utf8 ()Lscala/math/Ordering;
#90 = Utf8 ()V
#91 = Utf8 (I)V
#92 = Utf8 (ILscala/collection/TraversableLike;)V
#93 = Utf8 (ILscala/collection/TraversableLike<**>;)V
#94 = Utf8 (Ljava/lang/Object;)Lscala/collection/generic/Growable;
#95 = Utf8 (Ljava/lang/Object;)Lscala/collection/mutable/Builder;
#96 = Utf8 (Ljava/lang/Object;)Z
#97 = Utf8 (Lscala/Function1;)Lscala/collection/mutable/Builder;
#98 = Utf8 (Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#99 = Utf8 (Lscala/Tuple2<TA;TB;>;)Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>;
#100 = Utf8 (Lscala/collection/TraversableLike;)V
#101 = Utf8 (Lscala/collection/TraversableLike;I)V
#102 = Utf8 (Lscala/collection/TraversableLike<**>;)V
#103 = Utf8 (Lscala/collection/TraversableLike<**>;I)V
#104 = Utf8 (Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
#105 = Utf8 (Lscala/collection/TraversableOnce;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#106 = Utf8 (Lscala/collection/TraversableOnce<Lscala/Tuple2<TA;TB;>;>;)Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>;
#107 = Utf8 (Lscala/collection/generic/Growable;)V
#108 = Utf8 (Lscala/collection/generic/Growable;Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
#109 = Utf8 (Lscala/collection/immutable/HasForeachEntry;)V
#110 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#111 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree;)V
#112 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree;Ljava/lang/Object;Ljava/lang/Object;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#113 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#114 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)V
#115 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree<TA;TB;>;)V
#116 = Utf8 (Lscala/collection/immutable/TreeMap$TreeMapBuilder;)V
#117 = Utf8 (Lscala/collection/mutable/Builder;)V
#118 = Utf8 (Lscala/collection/mutable/Builder;I)V
#119 = Utf8 (Lscala/collection/mutable/Builder;ILscala/collection/TraversableLike;)V
#120 = Utf8 (Lscala/collection/mutable/Builder;Lscala/Function1;)Lscala/collection/mutable/Builder;
#121 = Utf8 (Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;)V
#122 = Utf8 (Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;I)V
#123 = Utf8 (Lscala/math/Ordering;)V
#124 = Utf8 (Lscala/math/Ordering<TA;>;)V
#125 = Utf8 <A:Ljava/lang/Object;B:Ljava/lang/Object;>Lscala/collection/immutable/NewRedBlackTree$MapHelper<TA;TB;>;Lscala/collection/mutable/Builder<Lscala/Tuple2<TA;TB;>;Lscala/collection/immutable/TreeMap<TA;TB;>;>;
#126 = Utf8 <NewTo:Ljava/lang/Object;>(Lscala/Function1<Lscala/collection/immutable/TreeMap<TA;TB;>;TNewTo;>;)Lscala/collection/mutable/Builder<Lscala/Tuple2<TA;TB;>;TNewTo;>;
#127 = Utf8 <init>
#128 = Utf8 Code
#129 = Utf8 Helper
#130 = Utf8 I
#131 = Utf8 InnerClasses
#132 = Utf8 LineNumberTable
#133 = Utf8 Ljava/lang/Object;
#134 = Utf8 LocalVariableTable
#135 = Utf8 Lscala/Function1;
#136 = Utf8 Lscala/Tuple2;
#137 = Utf8 Lscala/collection/Seq;
#138 = Utf8 Lscala/collection/TraversableLike;
#139 = Utf8 Lscala/collection/TraversableOnce;
#140 = Utf8 Lscala/collection/immutable/NewRedBlackTree$;
#141 = Utf8 Lscala/collection/immutable/NewRedBlackTree$Tree;
#142 = Utf8 Lscala/collection/immutable/NewRedBlackTree$Tree<TA;TB;>;
#143 = Utf8 Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#144 = Utf8 Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#145 = Utf8 Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>.;
#146 = Utf8 Lscala/math/Ordering;
#147 = Utf8 MODULE$
#148 = Utf8 MapHelper
#149 = Utf8 MethodParameters
#150 = Utf8 Scala
#151 = Utf8 ScalaInlineInfo
#152 = Utf8 Signature
#153 = Utf8 SourceFile
#154 = Utf8 StackMapTable
#155 = Utf8 Tree
#156 = Utf8 TreeMap.scala
#157 = Utf8 TreeMapBuilder
#158 = Utf8 _1
#159 = Utf8 _2
#160 = Utf8 addForEach
#161 = Utf8 adder
#162 = Utf8 adder$
#163 = Utf8 adder$lzycompute$1
#164 = Utf8 adder$module
#165 = Utf8 beforePublish
#166 = Utf8 boundingColl
#167 = Utf8 coll
#168 = Utf8 delta
#169 = Utf8 elem
#170 = Utf8 elem1
#171 = Utf8 elem2
#172 = Utf8 elems
#173 = Utf8 equals
#174 = Utf8 f
#175 = Utf8 java/lang/Object
#176 = Utf8 java/lang/Throwable
#177 = Utf8 mapResult
#178 = Utf8 mapResult$
#179 = Utf8 mutableUpd
#180 = Utf8 ordering
#181 = Utf8 result
#182 = Utf8 scala$collection$immutable$TreeMap$TreeMapBuilder$$tree
#183 = Utf8 scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq
#184 = Utf8 scala/Tuple2
#185 = Utf8 scala/collection/TraversableOnce
#186 = Utf8 scala/collection/generic/Growable
#187 = Utf8 scala/collection/immutable/HasForeachEntry
#188 = Utf8 scala/collection/immutable/NewRedBlackTree
#189 = Utf8 scala/collection/immutable/NewRedBlackTree$
#190 = Utf8 scala/collection/immutable/NewRedBlackTree$Helper
#191 = Utf8 scala/collection/immutable/NewRedBlackTree$MapHelper
#192 = Utf8 scala/collection/immutable/NewRedBlackTree$Tree
#193 = Utf8 scala/collection/immutable/TreeMap
#194 = Utf8 scala/collection/immutable/TreeMap$TreeMapBuilder
#195 = Utf8 scala/collection/immutable/TreeMap$TreeMapBuilder$adder$
#196 = Utf8 scala/collection/mutable/Builder
#197 = Utf8 scala/math/Ordering
#198 = Utf8 size
#199 = Utf8 sizeHint
#200 = Utf8 sizeHint$
#201 = Utf8 sizeHintBounded
#202 = Utf8 sizeHintBounded$
#203 = Utf8 this
#204 = Utf8 tree0
#205 = Utf8 union
#206 = Utf8 x$1
#207 = Utf8 xs
{
public void sizeHint(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: iload_1
2: invokestatic #44 // InterfaceMethod scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;I)V
5: return
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 6 1 size I
MethodParameters:
Name Flags
size final
public void sizeHint(scala.collection.TraversableLike<?, ?>);
descriptor: (Lscala/collection/TraversableLike;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: invokestatic #45 // InterfaceMethod scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;)V
5: return
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 6 1 coll Lscala/collection/TraversableLike;
Signature: #102 // (Lscala/collection/TraversableLike<**>;)V
MethodParameters:
Name Flags
coll final
public void sizeHint(scala.collection.TraversableLike<?, ?>, int);
descriptor: (Lscala/collection/TraversableLike;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
0: aload_0
1: aload_1
2: iload_2
3: invokestatic #46 // InterfaceMethod scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;I)V
6: return
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 7 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 7 1 coll Lscala/collection/TraversableLike;
0 7 2 delta I
Signature: #103 // (Lscala/collection/TraversableLike<**>;I)V
MethodParameters:
Name Flags
coll final
delta final
public void sizeHintBounded(int, scala.collection.TraversableLike<?, ?>);
descriptor: (ILscala/collection/TraversableLike;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
0: aload_0
1: iload_1
2: aload_2
3: invokestatic #47 // InterfaceMethod scala/collection/mutable/Builder.sizeHintBounded$:(Lscala/collection/mutable/Builder;ILscala/collection/TraversableLike;)V
6: return
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 7 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 7 1 size I
0 7 2 boundingColl Lscala/collection/TraversableLike;
Signature: #93 // (ILscala/collection/TraversableLike<**>;)V
MethodParameters:
Name Flags
size final
boundingColl final
public <NewTo extends java.lang.Object> scala.collection.mutable.Builder<scala.Tuple2<A, B>, NewTo> mapResult(scala.Function1<scala.collection.immutable.TreeMap<A, B>, NewTo>);
descriptor: (Lscala/Function1;)Lscala/collection/mutable/Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: invokestatic #43 // InterfaceMethod scala/collection/mutable/Builder.mapResult$:(Lscala/collection/mutable/Builder;Lscala/Function1;)Lscala/collection/mutable/Builder;
5: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 6 1 f Lscala/Function1;
Signature: #126 // <NewTo:Ljava/lang/Object;>(Lscala/Function1<Lscala/collection/immutable/TreeMap<TA;TB;>;TNewTo;>;)Lscala/collection/mutable/Builder<Lscala/Tuple2<TA;TB;>;TNewTo;>;
MethodParameters:
Name Flags
f final
public scala.collection.immutable.NewRedBlackTree$Tree<A, B> scala$collection$immutable$TreeMap$TreeMapBuilder$$tree();
descriptor: ()Lscala/collection/immutable/NewRedBlackTree$Tree;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #19 // Field scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:Lscala/collection/immutable/NewRedBlackTree$Tree;
4: areturn
LineNumberTable:
line 41: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
Signature: #84 // ()Lscala/collection/immutable/NewRedBlackTree$Tree<TA;TB;>;
public void scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq(scala.collection.immutable.NewRedBlackTree$Tree<A, B>);
descriptor: (Lscala/collection/immutable/NewRedBlackTree$Tree;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: putfield #19 // Field scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:Lscala/collection/immutable/NewRedBlackTree$Tree;
5: return
LineNumberTable:
line 41: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 6 1 x$1 Lscala/collection/immutable/NewRedBlackTree$Tree;
Signature: #115 // (Lscala/collection/immutable/NewRedBlackTree$Tree<TA;TB;>;)V
MethodParameters:
Name Flags
x$1 final
public scala.collection.immutable.TreeMap$TreeMapBuilder<A, B> $plus$eq(scala.Tuple2<A, B>);
descriptor: (Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
0: aload_0
1: aload_0
2: aload_0
3: invokevirtual #36 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
6: aload_1
7: invokevirtual #21 // Method scala/Tuple2._1:()Ljava/lang/Object;
10: aload_1
11: invokevirtual #22 // Method scala/Tuple2._2:()Ljava/lang/Object;
14: invokevirtual #34 // Method mutableUpd:(Lscala/collection/immutable/NewRedBlackTree$Tree;Ljava/lang/Object;Ljava/lang/Object;)Lscala/collection/immutable/NewRedBlackTree$Tree;
17: invokevirtual #37 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq:(Lscala/collection/immutable/NewRedBlackTree$Tree;)V
20: aload_0
21: areturn
LineNumberTable:
line 44: 0
line 45: 20
LocalVariableTable:
Start Length Slot Name Signature
0 22 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 22 1 elem Lscala/Tuple2;
Signature: #99 // (Lscala/Tuple2<TA;TB;>;)Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>;
MethodParameters:
Name Flags
elem final
public scala.collection.immutable.TreeMap$TreeMapBuilder<A, B> $plus$plus$eq(scala.collection.TraversableOnce<scala.Tuple2<A, B>>);
descriptor: (Lscala/collection/TraversableOnce;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
0: aload_1
1: instanceof #12 // class scala/collection/immutable/TreeMap
4: ifeq 87
7: aload_1
8: checkcast #12 // class scala/collection/immutable/TreeMap
11: astore_2
12: aload_2
13: invokevirtual #27 // Method scala/collection/immutable/TreeMap.ordering:()Lscala/math/Ordering;
16: aload_0
17: invokespecial #24 // Method scala/collection/immutable/NewRedBlackTree$Helper.ordering:()Lscala/math/Ordering;
20: astore_3
21: dup
22: ifnonnull 33
25: pop
26: aload_3
27: ifnull 40
30: goto 87
33: aload_3
34: invokevirtual #20 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
37: ifeq 87
40: aload_0
41: invokevirtual #36 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
44: ifnonnull 58
47: aload_0
48: aload_2
49: invokevirtual #28 // Method scala/collection/immutable/TreeMap.tree0:()Lscala/collection/immutable/NewRedBlackTree$Tree;
52: invokevirtual #37 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq:(Lscala/collection/immutable/NewRedBlackTree$Tree;)V
55: goto 114
58: aload_0
59: getstatic #17 // Field scala/collection/immutable/NewRedBlackTree$.MODULE$:Lscala/collection/immutable/NewRedBlackTree$;
62: aload_0
63: aload_0
64: invokevirtual #36 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
67: invokevirtual #33 // Method beforePublish:(Lscala/collection/immutable/NewRedBlackTree$Tree;)Lscala/collection/immutable/NewRedBlackTree$Tree;
70: aload_2
71: invokevirtual #28 // Method scala/collection/immutable/TreeMap.tree0:()Lscala/collection/immutable/NewRedBlackTree$Tree;
74: aload_0
75: invokespecial #24 // Method scala/collection/immutable/NewRedBlackTree$Helper.ordering:()Lscala/math/Ordering;
78: invokevirtual #23 // Method scala/collection/immutable/NewRedBlackTree$.union:(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)Lscala/collection/immutable/NewRedBlackTree$Tree;
81: invokevirtual #37 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq:(Lscala/collection/immutable/NewRedBlackTree$Tree;)V
84: goto 114
87: aload_1
88: instanceof #6 // class scala/collection/immutable/HasForeachEntry
91: ifeq 108
94: aload_0
95: invokespecial #31 // Method adder:()Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
98: aload_1
99: checkcast #6 // class scala/collection/immutable/HasForeachEntry
102: invokevirtual #39 // Method scala/collection/immutable/TreeMap$TreeMapBuilder$adder$.addForEach:(Lscala/collection/immutable/HasForeachEntry;)V
105: goto 114
108: aload_0
109: aload_1
110: invokestatic #41 // InterfaceMethod scala/collection/generic/Growable.$plus$plus$eq$:(Lscala/collection/generic/Growable;Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
113: pop
114: aload_0
115: areturn
LineNumberTable:
line 70: 0
line 71: 40
line 72: 58
line 73: 87
line 75: 94
line 77: 108
line 79: 114
LocalVariableTable:
Start Length Slot Name Signature
0 116 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 116 1 xs Lscala/collection/TraversableOnce;
StackMapTable: number_of_entries = 6
frame_type = 255 /* full_frame */
offset_delta = 33
locals = [ class scala/collection/immutable/TreeMap$TreeMapBuilder, class scala/collection/TraversableOnce, class scala/collection/immutable/TreeMap, class scala/math/Ordering ]
stack = [ class scala/math/Ordering ]
frame_type = 255 /* full_frame */
offset_delta = 6
locals = [ class scala/collection/immutable/TreeMap$TreeMapBuilder, top, class scala/collection/immutable/TreeMap ]
stack = []
frame_type = 17 /* same */
frame_type = 255 /* full_frame */
offset_delta = 28
locals = [ class scala/collection/immutable/TreeMap$TreeMapBuilder, class scala/collection/TraversableOnce ]
stack = []
frame_type = 20 /* same */
frame_type = 250 /* chop */
offset_delta = 5
Signature: #106 // (Lscala/collection/TraversableOnce<Lscala/Tuple2<TA;TB;>;>;)Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>;
MethodParameters:
Name Flags
xs final
public scala.collection.immutable.TreeMap<A, B> result();
descriptor: ()Lscala/collection/immutable/TreeMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
0: new #12 // class scala/collection/immutable/TreeMap
3: dup
4: aload_0
5: aload_0
6: invokevirtual #36 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
9: invokevirtual #33 // Method beforePublish:(Lscala/collection/immutable/NewRedBlackTree$Tree;)Lscala/collection/immutable/NewRedBlackTree$Tree;
12: aload_0
13: invokespecial #24 // Method scala/collection/immutable/NewRedBlackTree$Helper.ordering:()Lscala/math/Ordering;
16: invokespecial #26 // Method scala/collection/immutable/TreeMap."<init>":(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)V
19: areturn
LineNumberTable:
line 86: 0
LocalVariableTable:
Start Length Slot Name Signature
0 20 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
Signature: #88 // ()Lscala/collection/immutable/TreeMap<TA;TB;>;
public java.lang.Object result();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokevirtual #35 // Method result:()Lscala/collection/immutable/TreeMap;
4: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
public scala.collection.generic.Growable $plus$plus$eq(scala.collection.TraversableOnce);
descriptor: (Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: invokevirtual #30 // Method $plus$plus$eq:(Lscala/collection/TraversableOnce;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
5: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 6 1 xs Lscala/collection/TraversableOnce;
MethodParameters:
Name Flags
xs final
public scala.collection.generic.Growable $plus$eq(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lscala/collection/generic/Growable;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: checkcast #3 // class scala/Tuple2
5: invokevirtual #29 // Method $plus$eq:(Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
8: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 9 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 9 1 elem Ljava/lang/Object;
MethodParameters:
Name Flags
elem final
public scala.collection.mutable.Builder $plus$eq(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lscala/collection/mutable/Builder;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: checkcast #3 // class scala/Tuple2
5: invokevirtual #29 // Method $plus$eq:(Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
8: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 9 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 9 1 elem Ljava/lang/Object;
MethodParameters:
Name Flags
elem final
public scala.collection.immutable.TreeMap$TreeMapBuilder(scala.math.Ordering<A>);
descriptor: (Lscala/math/Ordering;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: invokespecial #25 // Method scala/collection/immutable/NewRedBlackTree$MapHelper."<init>":(Lscala/math/Ordering;)V
5: aload_0
6: invokestatic #40 // InterfaceMethod scala/collection/generic/Growable.$init$:(Lscala/collection/generic/Growable;)V
9: aload_0
10: invokestatic #42 // InterfaceMethod scala/collection/mutable/Builder.$init$:(Lscala/collection/mutable/Builder;)V
13: aload_0
14: aconst_null
15: putfield #19 // Field scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:Lscala/collection/immutable/NewRedBlackTree$Tree;
18: return
LineNumberTable:
line 38: 0
line 41: 13
line 37: 18
LocalVariableTable:
Start Length Slot Name Signature
0 19 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 19 1 ordering Lscala/math/Ordering;
Signature: #124 // (Lscala/math/Ordering<TA;>;)V
MethodParameters:
Name Flags
ordering final
}
InnerClasses:
public static abstract #129= #9 of #7; // Helper=class scala/collection/immutable/NewRedBlackTree$Helper of class scala/collection/immutable/NewRedBlackTree
public static #148= #10 of #7; // MapHelper=class scala/collection/immutable/NewRedBlackTree$MapHelper of class scala/collection/immutable/NewRedBlackTree
public static final #155= #11 of #7; // Tree=class scala/collection/immutable/NewRedBlackTree$Tree of class scala/collection/immutable/NewRedBlackTree
Signature: #125 // <A:Ljava/lang/Object;B:Ljava/lang/Object;>Lscala/collection/immutable/NewRedBlackTree$MapHelper<TA;TB;>;Lscala/collection/mutable/Builder<Lscala/Tuple2<TA;TB;>;Lscala/collection/immutable/TreeMap<TA;TB;>;>;
SourceFile: "TreeMap.scala"
ScalaInlineInfo: length = 0x63 (unknown attribute)
01 00 00 13 00 46 00 B7 00 00 46 00 BA 00 00 46
00 47 00 00 46 00 64 00 00 79 00 B4 00 00 79 00
7A 00 00 AE 00 C0 00 00 53 00 54 01 00 58 00 59
01 00 AA 00 59 00 00 3D 00 3E 00 00 AB 00 6C 00
00 AB 00 AC 00 00 1B 00 5C 01 00 60 00 61 01 00
1E 00 1F 00 00 1E 00 28 00 00 1E 00 2F 00 00 35
00 36 00
Scala: length = 0x0 (unknown attribute)
REGRESSION : Last worked in version 22.0.2
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Used command: jdeps --print-module-deps --ignore-missing-deps my-jar-file.jar
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
jdeps returns the used modules
ACTUAL -
Exception in thread "main" com.sun.tools.jdeps.Dependencies$ClassFileError
at jdk.jdeps/com.sun.tools.jdeps.Dependencies$BasicDependencyFinder$Visitor.scanAttributes(Dependencies.java:632)
at jdk.jdeps/com.sun.tools.jdeps.Dependencies$ClassDependencyFinder.findDependencies(Dependencies.java:470)
at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder$Finder.findDependencies(DependencyFinder.java:315)
at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder.lambda$parse$5(DependencyFinder.java:196)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1575)
Caused by: java.lang.IllegalArgumentException: Unexpected character ; at position 59, expected an identifier: Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>.;
at java.base/jdk.internal.classfile.impl.SignaturesImpl.error(SignaturesImpl.java:372)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.unexpectedError(SignaturesImpl.java:366)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.requireIdentifier(SignaturesImpl.java:234)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.classTypeSig(SignaturesImpl.java:169)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.referenceTypeSig(SignaturesImpl.java:136)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.typeSig(SignaturesImpl.java:130)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.parseSignature(SignaturesImpl.java:93)
at java.base/java.lang.classfile.Signature.parseFrom(Signature.java:54)
at java.base/java.lang.classfile.attribute.SignatureAttribute.asTypeSignature(SignatureAttribute.java:88)
at jdk.jdeps/com.sun.tools.jdeps.Dependencies$BasicDependencyFinder$Visitor.scanAttributes(Dependencies.java:605)
... 9 more
FREQUENCY : always
Temurin JDK 23+37
A DESCRIPTION OF THE PROBLEM :
For my program I use a fat/shaded/uber jar which I then run through an optimizer, Proguard. Then I run jdeps on it to find the used modules. In JDK 22, jdeps could successfully process my jar and return correct results. Now in JDK 23, running jdeps on that same jar crashes. Recompiling the jar with JDK 23 and running jdeps also crashes. It fails to parse some signatures because jdeps switched to using the in preview Classfile API in JDK 23.
I can confirm that running the jar works fine in both JDK 22 and JDK 23 and I made sure to access and invoke methods from the problematic class, so the class is valid and works, just cannot be parsed by jdeps of JDK 23.
The problematic class comes from a transitive dependency, so I have extracted it from my fat/shaded/uber jar and I will paste the output of `javap -v "TreeMap$TreeMapBuilder"` here as there is nowhere to attach the class itself on this website. Please contact me if more data is needed. It's of no use to try to find this class online because it's a different class file as a result of the Proguard optimization. Here is the output from javap (JDK 23):
Classfile /path/to/extracted/TreeMap$TreeMapBuilder.class
Last modified Jan 1, 1970; size 7183 bytes
SHA-256 checksum 16cb6947cc5bbfc94f5a964b2ca8c6a0152526b092a32242faec56cb1f6e8f3f
Compiled from "TreeMap.scala"
public class scala.collection.immutable.TreeMap$TreeMapBuilder<A extends java.lang.Object, B extends java.lang.Object> extends scala.collection.immutable.NewRedBlackTree$MapHelper<A, B> implements scala.collection.mutable.Builder<scala.Tuple2<A, B>, scala.collection.immutable.TreeMap<A, B>>
minor version: 0
major version: 52
flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: #13 // scala/collection/immutable/TreeMap$TreeMapBuilder
super_class: #10 // scala/collection/immutable/NewRedBlackTree$MapHelper
interfaces: 1, fields: 2, methods: 17, attributes: 5
Constant pool:
#1 = Class #175 // java/lang/Object
#2 = Class #176 // java/lang/Throwable
#3 = Class #184 // scala/Tuple2
#4 = Class #185 // scala/collection/TraversableOnce
#5 = Class #186 // scala/collection/generic/Growable
#6 = Class #187 // scala/collection/immutable/HasForeachEntry
#7 = Class #188 // scala/collection/immutable/NewRedBlackTree
#8 = Class #189 // scala/collection/immutable/NewRedBlackTree$
#9 = Class #190 // scala/collection/immutable/NewRedBlackTree$Helper
#10 = Class #191 // scala/collection/immutable/NewRedBlackTree$MapHelper
#11 = Class #192 // scala/collection/immutable/NewRedBlackTree$Tree
#12 = Class #193 // scala/collection/immutable/TreeMap
#13 = Class #194 // scala/collection/immutable/TreeMap$TreeMapBuilder
#14 = Class #195 // scala/collection/immutable/TreeMap$TreeMapBuilder$adder$
#15 = Class #196 // scala/collection/mutable/Builder
#16 = Class #197 // scala/math/Ordering
#17 = Fieldref #8.#56 // scala/collection/immutable/NewRedBlackTree$.MODULE$:Lscala/collection/immutable/NewRedBlackTree$;
#18 = Fieldref #13.#62 // scala/collection/immutable/TreeMap$TreeMapBuilder.adder$module:Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#19 = Fieldref #13.#70 // scala/collection/immutable/TreeMap$TreeMapBuilder.scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:Lscala/collection/immutable/NewRedBlackTree$Tree;
#20 = Methodref #1.#64 // java/lang/Object.equals:(Ljava/lang/Object;)Z
#21 = Methodref #3.#57 // scala/Tuple2._1:()Ljava/lang/Object;
#22 = Methodref #3.#58 // scala/Tuple2._2:()Ljava/lang/Object;
#23 = Methodref #8.#77 // scala/collection/immutable/NewRedBlackTree$.union:(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#24 = Methodref #9.#67 // scala/collection/immutable/NewRedBlackTree$Helper.ordering:()Lscala/math/Ordering;
#25 = Methodref #10.#55 // scala/collection/immutable/NewRedBlackTree$MapHelper."<init>":(Lscala/math/Ordering;)V
#26 = Methodref #12.#53 // scala/collection/immutable/TreeMap."<init>":(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)V
#27 = Methodref #12.#67 // scala/collection/immutable/TreeMap.ordering:()Lscala/math/Ordering;
#28 = Methodref #12.#76 // scala/collection/immutable/TreeMap.tree0:()Lscala/collection/immutable/NewRedBlackTree$Tree;
#29 = Methodref #13.#50 // scala/collection/immutable/TreeMap$TreeMapBuilder.$plus$eq:(Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#30 = Methodref #13.#51 // scala/collection/immutable/TreeMap$TreeMapBuilder.$plus$plus$eq:(Lscala/collection/TraversableOnce;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#31 = Methodref #13.#60 // scala/collection/immutable/TreeMap$TreeMapBuilder.adder:()Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#32 = Methodref #13.#61 // scala/collection/immutable/TreeMap$TreeMapBuilder.adder$lzycompute$1:()V
#33 = Methodref #13.#63 // scala/collection/immutable/TreeMap$TreeMapBuilder.beforePublish:(Lscala/collection/immutable/NewRedBlackTree$Tree;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#34 = Methodref #13.#66 // scala/collection/immutable/TreeMap$TreeMapBuilder.mutableUpd:(Lscala/collection/immutable/NewRedBlackTree$Tree;Ljava/lang/Object;Ljava/lang/Object;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#35 = Methodref #13.#68 // scala/collection/immutable/TreeMap$TreeMapBuilder.result:()Lscala/collection/immutable/TreeMap;
#36 = Methodref #13.#69 // scala/collection/immutable/TreeMap$TreeMapBuilder.scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
#37 = Methodref #13.#71 // scala/collection/immutable/TreeMap$TreeMapBuilder.scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq:(Lscala/collection/immutable/NewRedBlackTree$Tree;)V
#38 = Methodref #14.#54 // scala/collection/immutable/TreeMap$TreeMapBuilder$adder$."<init>":(Lscala/collection/immutable/TreeMap$TreeMapBuilder;)V
#39 = Methodref #14.#59 // scala/collection/immutable/TreeMap$TreeMapBuilder$adder$.addForEach:(Lscala/collection/immutable/HasForeachEntry;)V
#40 = InterfaceMethodref #5.#48 // scala/collection/generic/Growable.$init$:(Lscala/collection/generic/Growable;)V
#41 = InterfaceMethodref #5.#52 // scala/collection/generic/Growable.$plus$plus$eq$:(Lscala/collection/generic/Growable;Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
#42 = InterfaceMethodref #15.#49 // scala/collection/mutable/Builder.$init$:(Lscala/collection/mutable/Builder;)V
#43 = InterfaceMethodref #15.#65 // scala/collection/mutable/Builder.mapResult$:(Lscala/collection/mutable/Builder;Lscala/Function1;)Lscala/collection/mutable/Builder;
#44 = InterfaceMethodref #15.#72 // scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;I)V
#45 = InterfaceMethodref #15.#73 // scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;)V
#46 = InterfaceMethodref #15.#74 // scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;I)V
#47 = InterfaceMethodref #15.#75 // scala/collection/mutable/Builder.sizeHintBounded$:(Lscala/collection/mutable/Builder;ILscala/collection/TraversableLike;)V
#48 = NameAndType #78:#107 // $init$:(Lscala/collection/generic/Growable;)V
#49 = NameAndType #78:#117 // $init$:(Lscala/collection/mutable/Builder;)V
#50 = NameAndType #79:#98 // $plus$eq:(Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#51 = NameAndType #80:#105 // $plus$plus$eq:(Lscala/collection/TraversableOnce;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#52 = NameAndType #81:#108 // $plus$plus$eq$:(Lscala/collection/generic/Growable;Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
#53 = NameAndType #127:#114 // "<init>":(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)V
#54 = NameAndType #127:#116 // "<init>":(Lscala/collection/immutable/TreeMap$TreeMapBuilder;)V
#55 = NameAndType #127:#123 // "<init>":(Lscala/math/Ordering;)V
#56 = NameAndType #147:#140 // MODULE$:Lscala/collection/immutable/NewRedBlackTree$;
#57 = NameAndType #158:#82 // _1:()Ljava/lang/Object;
#58 = NameAndType #159:#82 // _2:()Ljava/lang/Object;
#59 = NameAndType #160:#109 // addForEach:(Lscala/collection/immutable/HasForeachEntry;)V
#60 = NameAndType #161:#85 // adder:()Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#61 = NameAndType #163:#90 // adder$lzycompute$1:()V
#62 = NameAndType #164:#143 // adder$module:Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#63 = NameAndType #165:#110 // beforePublish:(Lscala/collection/immutable/NewRedBlackTree$Tree;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#64 = NameAndType #173:#96 // equals:(Ljava/lang/Object;)Z
#65 = NameAndType #178:#120 // mapResult$:(Lscala/collection/mutable/Builder;Lscala/Function1;)Lscala/collection/mutable/Builder;
#66 = NameAndType #179:#112 // mutableUpd:(Lscala/collection/immutable/NewRedBlackTree$Tree;Ljava/lang/Object;Ljava/lang/Object;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#67 = NameAndType #180:#89 // ordering:()Lscala/math/Ordering;
#68 = NameAndType #181:#87 // result:()Lscala/collection/immutable/TreeMap;
#69 = NameAndType #182:#83 // scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
#70 = NameAndType #182:#141 // scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:Lscala/collection/immutable/NewRedBlackTree$Tree;
#71 = NameAndType #183:#111 // scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq:(Lscala/collection/immutable/NewRedBlackTree$Tree;)V
#72 = NameAndType #200:#118 // sizeHint$:(Lscala/collection/mutable/Builder;I)V
#73 = NameAndType #200:#121 // sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;)V
#74 = NameAndType #200:#122 // sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;I)V
#75 = NameAndType #202:#119 // sizeHintBounded$:(Lscala/collection/mutable/Builder;ILscala/collection/TraversableLike;)V
#76 = NameAndType #204:#83 // tree0:()Lscala/collection/immutable/NewRedBlackTree$Tree;
#77 = NameAndType #205:#113 // union:(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#78 = Utf8 $init$
#79 = Utf8 $plus$eq
#80 = Utf8 $plus$plus$eq
#81 = Utf8 $plus$plus$eq$
#82 = Utf8 ()Ljava/lang/Object;
#83 = Utf8 ()Lscala/collection/immutable/NewRedBlackTree$Tree;
#84 = Utf8 ()Lscala/collection/immutable/NewRedBlackTree$Tree<TA;TB;>;
#85 = Utf8 ()Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#86 = Utf8 ()Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>.;
#87 = Utf8 ()Lscala/collection/immutable/TreeMap;
#88 = Utf8 ()Lscala/collection/immutable/TreeMap<TA;TB;>;
#89 = Utf8 ()Lscala/math/Ordering;
#90 = Utf8 ()V
#91 = Utf8 (I)V
#92 = Utf8 (ILscala/collection/TraversableLike;)V
#93 = Utf8 (ILscala/collection/TraversableLike<**>;)V
#94 = Utf8 (Ljava/lang/Object;)Lscala/collection/generic/Growable;
#95 = Utf8 (Ljava/lang/Object;)Lscala/collection/mutable/Builder;
#96 = Utf8 (Ljava/lang/Object;)Z
#97 = Utf8 (Lscala/Function1;)Lscala/collection/mutable/Builder;
#98 = Utf8 (Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#99 = Utf8 (Lscala/Tuple2<TA;TB;>;)Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>;
#100 = Utf8 (Lscala/collection/TraversableLike;)V
#101 = Utf8 (Lscala/collection/TraversableLike;I)V
#102 = Utf8 (Lscala/collection/TraversableLike<**>;)V
#103 = Utf8 (Lscala/collection/TraversableLike<**>;I)V
#104 = Utf8 (Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
#105 = Utf8 (Lscala/collection/TraversableOnce;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#106 = Utf8 (Lscala/collection/TraversableOnce<Lscala/Tuple2<TA;TB;>;>;)Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>;
#107 = Utf8 (Lscala/collection/generic/Growable;)V
#108 = Utf8 (Lscala/collection/generic/Growable;Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
#109 = Utf8 (Lscala/collection/immutable/HasForeachEntry;)V
#110 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#111 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree;)V
#112 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree;Ljava/lang/Object;Ljava/lang/Object;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#113 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)Lscala/collection/immutable/NewRedBlackTree$Tree;
#114 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)V
#115 = Utf8 (Lscala/collection/immutable/NewRedBlackTree$Tree<TA;TB;>;)V
#116 = Utf8 (Lscala/collection/immutable/TreeMap$TreeMapBuilder;)V
#117 = Utf8 (Lscala/collection/mutable/Builder;)V
#118 = Utf8 (Lscala/collection/mutable/Builder;I)V
#119 = Utf8 (Lscala/collection/mutable/Builder;ILscala/collection/TraversableLike;)V
#120 = Utf8 (Lscala/collection/mutable/Builder;Lscala/Function1;)Lscala/collection/mutable/Builder;
#121 = Utf8 (Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;)V
#122 = Utf8 (Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;I)V
#123 = Utf8 (Lscala/math/Ordering;)V
#124 = Utf8 (Lscala/math/Ordering<TA;>;)V
#125 = Utf8 <A:Ljava/lang/Object;B:Ljava/lang/Object;>Lscala/collection/immutable/NewRedBlackTree$MapHelper<TA;TB;>;Lscala/collection/mutable/Builder<Lscala/Tuple2<TA;TB;>;Lscala/collection/immutable/TreeMap<TA;TB;>;>;
#126 = Utf8 <NewTo:Ljava/lang/Object;>(Lscala/Function1<Lscala/collection/immutable/TreeMap<TA;TB;>;TNewTo;>;)Lscala/collection/mutable/Builder<Lscala/Tuple2<TA;TB;>;TNewTo;>;
#127 = Utf8 <init>
#128 = Utf8 Code
#129 = Utf8 Helper
#130 = Utf8 I
#131 = Utf8 InnerClasses
#132 = Utf8 LineNumberTable
#133 = Utf8 Ljava/lang/Object;
#134 = Utf8 LocalVariableTable
#135 = Utf8 Lscala/Function1;
#136 = Utf8 Lscala/Tuple2;
#137 = Utf8 Lscala/collection/Seq;
#138 = Utf8 Lscala/collection/TraversableLike;
#139 = Utf8 Lscala/collection/TraversableOnce;
#140 = Utf8 Lscala/collection/immutable/NewRedBlackTree$;
#141 = Utf8 Lscala/collection/immutable/NewRedBlackTree$Tree;
#142 = Utf8 Lscala/collection/immutable/NewRedBlackTree$Tree<TA;TB;>;
#143 = Utf8 Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
#144 = Utf8 Lscala/collection/immutable/TreeMap$TreeMapBuilder;
#145 = Utf8 Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>.;
#146 = Utf8 Lscala/math/Ordering;
#147 = Utf8 MODULE$
#148 = Utf8 MapHelper
#149 = Utf8 MethodParameters
#150 = Utf8 Scala
#151 = Utf8 ScalaInlineInfo
#152 = Utf8 Signature
#153 = Utf8 SourceFile
#154 = Utf8 StackMapTable
#155 = Utf8 Tree
#156 = Utf8 TreeMap.scala
#157 = Utf8 TreeMapBuilder
#158 = Utf8 _1
#159 = Utf8 _2
#160 = Utf8 addForEach
#161 = Utf8 adder
#162 = Utf8 adder$
#163 = Utf8 adder$lzycompute$1
#164 = Utf8 adder$module
#165 = Utf8 beforePublish
#166 = Utf8 boundingColl
#167 = Utf8 coll
#168 = Utf8 delta
#169 = Utf8 elem
#170 = Utf8 elem1
#171 = Utf8 elem2
#172 = Utf8 elems
#173 = Utf8 equals
#174 = Utf8 f
#175 = Utf8 java/lang/Object
#176 = Utf8 java/lang/Throwable
#177 = Utf8 mapResult
#178 = Utf8 mapResult$
#179 = Utf8 mutableUpd
#180 = Utf8 ordering
#181 = Utf8 result
#182 = Utf8 scala$collection$immutable$TreeMap$TreeMapBuilder$$tree
#183 = Utf8 scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq
#184 = Utf8 scala/Tuple2
#185 = Utf8 scala/collection/TraversableOnce
#186 = Utf8 scala/collection/generic/Growable
#187 = Utf8 scala/collection/immutable/HasForeachEntry
#188 = Utf8 scala/collection/immutable/NewRedBlackTree
#189 = Utf8 scala/collection/immutable/NewRedBlackTree$
#190 = Utf8 scala/collection/immutable/NewRedBlackTree$Helper
#191 = Utf8 scala/collection/immutable/NewRedBlackTree$MapHelper
#192 = Utf8 scala/collection/immutable/NewRedBlackTree$Tree
#193 = Utf8 scala/collection/immutable/TreeMap
#194 = Utf8 scala/collection/immutable/TreeMap$TreeMapBuilder
#195 = Utf8 scala/collection/immutable/TreeMap$TreeMapBuilder$adder$
#196 = Utf8 scala/collection/mutable/Builder
#197 = Utf8 scala/math/Ordering
#198 = Utf8 size
#199 = Utf8 sizeHint
#200 = Utf8 sizeHint$
#201 = Utf8 sizeHintBounded
#202 = Utf8 sizeHintBounded$
#203 = Utf8 this
#204 = Utf8 tree0
#205 = Utf8 union
#206 = Utf8 x$1
#207 = Utf8 xs
{
public void sizeHint(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: iload_1
2: invokestatic #44 // InterfaceMethod scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;I)V
5: return
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 6 1 size I
MethodParameters:
Name Flags
size final
public void sizeHint(scala.collection.TraversableLike<?, ?>);
descriptor: (Lscala/collection/TraversableLike;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: invokestatic #45 // InterfaceMethod scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;)V
5: return
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 6 1 coll Lscala/collection/TraversableLike;
Signature: #102 // (Lscala/collection/TraversableLike<**>;)V
MethodParameters:
Name Flags
coll final
public void sizeHint(scala.collection.TraversableLike<?, ?>, int);
descriptor: (Lscala/collection/TraversableLike;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
0: aload_0
1: aload_1
2: iload_2
3: invokestatic #46 // InterfaceMethod scala/collection/mutable/Builder.sizeHint$:(Lscala/collection/mutable/Builder;Lscala/collection/TraversableLike;I)V
6: return
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 7 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 7 1 coll Lscala/collection/TraversableLike;
0 7 2 delta I
Signature: #103 // (Lscala/collection/TraversableLike<**>;I)V
MethodParameters:
Name Flags
coll final
delta final
public void sizeHintBounded(int, scala.collection.TraversableLike<?, ?>);
descriptor: (ILscala/collection/TraversableLike;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
0: aload_0
1: iload_1
2: aload_2
3: invokestatic #47 // InterfaceMethod scala/collection/mutable/Builder.sizeHintBounded$:(Lscala/collection/mutable/Builder;ILscala/collection/TraversableLike;)V
6: return
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 7 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 7 1 size I
0 7 2 boundingColl Lscala/collection/TraversableLike;
Signature: #93 // (ILscala/collection/TraversableLike<**>;)V
MethodParameters:
Name Flags
size final
boundingColl final
public <NewTo extends java.lang.Object> scala.collection.mutable.Builder<scala.Tuple2<A, B>, NewTo> mapResult(scala.Function1<scala.collection.immutable.TreeMap<A, B>, NewTo>);
descriptor: (Lscala/Function1;)Lscala/collection/mutable/Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: invokestatic #43 // InterfaceMethod scala/collection/mutable/Builder.mapResult$:(Lscala/collection/mutable/Builder;Lscala/Function1;)Lscala/collection/mutable/Builder;
5: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 6 1 f Lscala/Function1;
Signature: #126 // <NewTo:Ljava/lang/Object;>(Lscala/Function1<Lscala/collection/immutable/TreeMap<TA;TB;>;TNewTo;>;)Lscala/collection/mutable/Builder<Lscala/Tuple2<TA;TB;>;TNewTo;>;
MethodParameters:
Name Flags
f final
public scala.collection.immutable.NewRedBlackTree$Tree<A, B> scala$collection$immutable$TreeMap$TreeMapBuilder$$tree();
descriptor: ()Lscala/collection/immutable/NewRedBlackTree$Tree;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #19 // Field scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:Lscala/collection/immutable/NewRedBlackTree$Tree;
4: areturn
LineNumberTable:
line 41: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
Signature: #84 // ()Lscala/collection/immutable/NewRedBlackTree$Tree<TA;TB;>;
public void scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq(scala.collection.immutable.NewRedBlackTree$Tree<A, B>);
descriptor: (Lscala/collection/immutable/NewRedBlackTree$Tree;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: putfield #19 // Field scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:Lscala/collection/immutable/NewRedBlackTree$Tree;
5: return
LineNumberTable:
line 41: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 6 1 x$1 Lscala/collection/immutable/NewRedBlackTree$Tree;
Signature: #115 // (Lscala/collection/immutable/NewRedBlackTree$Tree<TA;TB;>;)V
MethodParameters:
Name Flags
x$1 final
public scala.collection.immutable.TreeMap$TreeMapBuilder<A, B> $plus$eq(scala.Tuple2<A, B>);
descriptor: (Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
0: aload_0
1: aload_0
2: aload_0
3: invokevirtual #36 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
6: aload_1
7: invokevirtual #21 // Method scala/Tuple2._1:()Ljava/lang/Object;
10: aload_1
11: invokevirtual #22 // Method scala/Tuple2._2:()Ljava/lang/Object;
14: invokevirtual #34 // Method mutableUpd:(Lscala/collection/immutable/NewRedBlackTree$Tree;Ljava/lang/Object;Ljava/lang/Object;)Lscala/collection/immutable/NewRedBlackTree$Tree;
17: invokevirtual #37 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq:(Lscala/collection/immutable/NewRedBlackTree$Tree;)V
20: aload_0
21: areturn
LineNumberTable:
line 44: 0
line 45: 20
LocalVariableTable:
Start Length Slot Name Signature
0 22 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 22 1 elem Lscala/Tuple2;
Signature: #99 // (Lscala/Tuple2<TA;TB;>;)Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>;
MethodParameters:
Name Flags
elem final
public scala.collection.immutable.TreeMap$TreeMapBuilder<A, B> $plus$plus$eq(scala.collection.TraversableOnce<scala.Tuple2<A, B>>);
descriptor: (Lscala/collection/TraversableOnce;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
0: aload_1
1: instanceof #12 // class scala/collection/immutable/TreeMap
4: ifeq 87
7: aload_1
8: checkcast #12 // class scala/collection/immutable/TreeMap
11: astore_2
12: aload_2
13: invokevirtual #27 // Method scala/collection/immutable/TreeMap.ordering:()Lscala/math/Ordering;
16: aload_0
17: invokespecial #24 // Method scala/collection/immutable/NewRedBlackTree$Helper.ordering:()Lscala/math/Ordering;
20: astore_3
21: dup
22: ifnonnull 33
25: pop
26: aload_3
27: ifnull 40
30: goto 87
33: aload_3
34: invokevirtual #20 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
37: ifeq 87
40: aload_0
41: invokevirtual #36 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
44: ifnonnull 58
47: aload_0
48: aload_2
49: invokevirtual #28 // Method scala/collection/immutable/TreeMap.tree0:()Lscala/collection/immutable/NewRedBlackTree$Tree;
52: invokevirtual #37 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq:(Lscala/collection/immutable/NewRedBlackTree$Tree;)V
55: goto 114
58: aload_0
59: getstatic #17 // Field scala/collection/immutable/NewRedBlackTree$.MODULE$:Lscala/collection/immutable/NewRedBlackTree$;
62: aload_0
63: aload_0
64: invokevirtual #36 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
67: invokevirtual #33 // Method beforePublish:(Lscala/collection/immutable/NewRedBlackTree$Tree;)Lscala/collection/immutable/NewRedBlackTree$Tree;
70: aload_2
71: invokevirtual #28 // Method scala/collection/immutable/TreeMap.tree0:()Lscala/collection/immutable/NewRedBlackTree$Tree;
74: aload_0
75: invokespecial #24 // Method scala/collection/immutable/NewRedBlackTree$Helper.ordering:()Lscala/math/Ordering;
78: invokevirtual #23 // Method scala/collection/immutable/NewRedBlackTree$.union:(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)Lscala/collection/immutable/NewRedBlackTree$Tree;
81: invokevirtual #37 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree_$eq:(Lscala/collection/immutable/NewRedBlackTree$Tree;)V
84: goto 114
87: aload_1
88: instanceof #6 // class scala/collection/immutable/HasForeachEntry
91: ifeq 108
94: aload_0
95: invokespecial #31 // Method adder:()Lscala/collection/immutable/TreeMap$TreeMapBuilder$adder$;
98: aload_1
99: checkcast #6 // class scala/collection/immutable/HasForeachEntry
102: invokevirtual #39 // Method scala/collection/immutable/TreeMap$TreeMapBuilder$adder$.addForEach:(Lscala/collection/immutable/HasForeachEntry;)V
105: goto 114
108: aload_0
109: aload_1
110: invokestatic #41 // InterfaceMethod scala/collection/generic/Growable.$plus$plus$eq$:(Lscala/collection/generic/Growable;Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
113: pop
114: aload_0
115: areturn
LineNumberTable:
line 70: 0
line 71: 40
line 72: 58
line 73: 87
line 75: 94
line 77: 108
line 79: 114
LocalVariableTable:
Start Length Slot Name Signature
0 116 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 116 1 xs Lscala/collection/TraversableOnce;
StackMapTable: number_of_entries = 6
frame_type = 255 /* full_frame */
offset_delta = 33
locals = [ class scala/collection/immutable/TreeMap$TreeMapBuilder, class scala/collection/TraversableOnce, class scala/collection/immutable/TreeMap, class scala/math/Ordering ]
stack = [ class scala/math/Ordering ]
frame_type = 255 /* full_frame */
offset_delta = 6
locals = [ class scala/collection/immutable/TreeMap$TreeMapBuilder, top, class scala/collection/immutable/TreeMap ]
stack = []
frame_type = 17 /* same */
frame_type = 255 /* full_frame */
offset_delta = 28
locals = [ class scala/collection/immutable/TreeMap$TreeMapBuilder, class scala/collection/TraversableOnce ]
stack = []
frame_type = 20 /* same */
frame_type = 250 /* chop */
offset_delta = 5
Signature: #106 // (Lscala/collection/TraversableOnce<Lscala/Tuple2<TA;TB;>;>;)Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>;
MethodParameters:
Name Flags
xs final
public scala.collection.immutable.TreeMap<A, B> result();
descriptor: ()Lscala/collection/immutable/TreeMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
0: new #12 // class scala/collection/immutable/TreeMap
3: dup
4: aload_0
5: aload_0
6: invokevirtual #36 // Method scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:()Lscala/collection/immutable/NewRedBlackTree$Tree;
9: invokevirtual #33 // Method beforePublish:(Lscala/collection/immutable/NewRedBlackTree$Tree;)Lscala/collection/immutable/NewRedBlackTree$Tree;
12: aload_0
13: invokespecial #24 // Method scala/collection/immutable/NewRedBlackTree$Helper.ordering:()Lscala/math/Ordering;
16: invokespecial #26 // Method scala/collection/immutable/TreeMap."<init>":(Lscala/collection/immutable/NewRedBlackTree$Tree;Lscala/math/Ordering;)V
19: areturn
LineNumberTable:
line 86: 0
LocalVariableTable:
Start Length Slot Name Signature
0 20 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
Signature: #88 // ()Lscala/collection/immutable/TreeMap<TA;TB;>;
public java.lang.Object result();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokevirtual #35 // Method result:()Lscala/collection/immutable/TreeMap;
4: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
public scala.collection.generic.Growable $plus$plus$eq(scala.collection.TraversableOnce);
descriptor: (Lscala/collection/TraversableOnce;)Lscala/collection/generic/Growable;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: invokevirtual #30 // Method $plus$plus$eq:(Lscala/collection/TraversableOnce;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
5: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 6 1 xs Lscala/collection/TraversableOnce;
MethodParameters:
Name Flags
xs final
public scala.collection.generic.Growable $plus$eq(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lscala/collection/generic/Growable;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: checkcast #3 // class scala/Tuple2
5: invokevirtual #29 // Method $plus$eq:(Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
8: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 9 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 9 1 elem Ljava/lang/Object;
MethodParameters:
Name Flags
elem final
public scala.collection.mutable.Builder $plus$eq(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lscala/collection/mutable/Builder;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: checkcast #3 // class scala/Tuple2
5: invokevirtual #29 // Method $plus$eq:(Lscala/Tuple2;)Lscala/collection/immutable/TreeMap$TreeMapBuilder;
8: areturn
LineNumberTable:
line 37: 0
LocalVariableTable:
Start Length Slot Name Signature
0 9 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 9 1 elem Ljava/lang/Object;
MethodParameters:
Name Flags
elem final
public scala.collection.immutable.TreeMap$TreeMapBuilder(scala.math.Ordering<A>);
descriptor: (Lscala/math/Ordering;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
0: aload_0
1: aload_1
2: invokespecial #25 // Method scala/collection/immutable/NewRedBlackTree$MapHelper."<init>":(Lscala/math/Ordering;)V
5: aload_0
6: invokestatic #40 // InterfaceMethod scala/collection/generic/Growable.$init$:(Lscala/collection/generic/Growable;)V
9: aload_0
10: invokestatic #42 // InterfaceMethod scala/collection/mutable/Builder.$init$:(Lscala/collection/mutable/Builder;)V
13: aload_0
14: aconst_null
15: putfield #19 // Field scala$collection$immutable$TreeMap$TreeMapBuilder$$tree:Lscala/collection/immutable/NewRedBlackTree$Tree;
18: return
LineNumberTable:
line 38: 0
line 41: 13
line 37: 18
LocalVariableTable:
Start Length Slot Name Signature
0 19 0 this Lscala/collection/immutable/TreeMap$TreeMapBuilder;
0 19 1 ordering Lscala/math/Ordering;
Signature: #124 // (Lscala/math/Ordering<TA;>;)V
MethodParameters:
Name Flags
ordering final
}
InnerClasses:
public static abstract #129= #9 of #7; // Helper=class scala/collection/immutable/NewRedBlackTree$Helper of class scala/collection/immutable/NewRedBlackTree
public static #148= #10 of #7; // MapHelper=class scala/collection/immutable/NewRedBlackTree$MapHelper of class scala/collection/immutable/NewRedBlackTree
public static final #155= #11 of #7; // Tree=class scala/collection/immutable/NewRedBlackTree$Tree of class scala/collection/immutable/NewRedBlackTree
Signature: #125 // <A:Ljava/lang/Object;B:Ljava/lang/Object;>Lscala/collection/immutable/NewRedBlackTree$MapHelper<TA;TB;>;Lscala/collection/mutable/Builder<Lscala/Tuple2<TA;TB;>;Lscala/collection/immutable/TreeMap<TA;TB;>;>;
SourceFile: "TreeMap.scala"
ScalaInlineInfo: length = 0x63 (unknown attribute)
01 00 00 13 00 46 00 B7 00 00 46 00 BA 00 00 46
00 47 00 00 46 00 64 00 00 79 00 B4 00 00 79 00
7A 00 00 AE 00 C0 00 00 53 00 54 01 00 58 00 59
01 00 AA 00 59 00 00 3D 00 3E 00 00 AB 00 6C 00
00 AB 00 AC 00 00 1B 00 5C 01 00 60 00 61 01 00
1E 00 1F 00 00 1E 00 28 00 00 1E 00 2F 00 00 35
00 36 00
Scala: length = 0x0 (unknown attribute)
REGRESSION : Last worked in version 22.0.2
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Used command: jdeps --print-module-deps --ignore-missing-deps my-jar-file.jar
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
jdeps returns the used modules
ACTUAL -
Exception in thread "main" com.sun.tools.jdeps.Dependencies$ClassFileError
at jdk.jdeps/com.sun.tools.jdeps.Dependencies$BasicDependencyFinder$Visitor.scanAttributes(Dependencies.java:632)
at jdk.jdeps/com.sun.tools.jdeps.Dependencies$ClassDependencyFinder.findDependencies(Dependencies.java:470)
at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder$Finder.findDependencies(DependencyFinder.java:315)
at jdk.jdeps/com.sun.tools.jdeps.DependencyFinder.lambda$parse$5(DependencyFinder.java:196)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1575)
Caused by: java.lang.IllegalArgumentException: Unexpected character ; at position 59, expected an identifier: Lscala/collection/immutable/TreeMap$TreeMapBuilder<TA;TB;>.;
at java.base/jdk.internal.classfile.impl.SignaturesImpl.error(SignaturesImpl.java:372)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.unexpectedError(SignaturesImpl.java:366)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.requireIdentifier(SignaturesImpl.java:234)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.classTypeSig(SignaturesImpl.java:169)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.referenceTypeSig(SignaturesImpl.java:136)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.typeSig(SignaturesImpl.java:130)
at java.base/jdk.internal.classfile.impl.SignaturesImpl.parseSignature(SignaturesImpl.java:93)
at java.base/java.lang.classfile.Signature.parseFrom(Signature.java:54)
at java.base/java.lang.classfile.attribute.SignatureAttribute.asTypeSignature(SignatureAttribute.java:88)
at jdk.jdeps/com.sun.tools.jdeps.Dependencies$BasicDependencyFinder$Visitor.scanAttributes(Dependencies.java:605)
... 9 more
FREQUENCY : always