@@ -129,10 +129,18 @@ public static boolean merge(MergeEngine set, TypeSignature o, TypeSignature n) {
129
129
if (o instanceof ClassTypeSignature && n instanceof ClassTypeSignature ) {
130
130
ClassTypeSignature c = (ClassTypeSignature ) o ;
131
131
ClassTypeSignature cn = (ClassTypeSignature ) n ;
132
- TypeEntry old_type = set .getOldSourceSet ().get (c .getName ());
133
- TypeEntry new_type = set .getNewSourceSet ().get (cn .getName ());
132
+ String cname = c .getDescriptor ();
133
+ while (cname .startsWith ("[" )) {
134
+ cname = cname .substring (1 );
135
+ }
136
+ TypeEntry old_type = set .getOldSourceSet ().get (TypeHelper .descToType (cname ));
137
+ String cnname = cn .getDescriptor ();
138
+ while (cnname .startsWith ("[" )) {
139
+ cnname = cnname .substring (1 );
140
+ }
141
+ TypeEntry new_type = set .getNewSourceSet ().get (TypeHelper .descToType (cnname ));
134
142
if (old_type == null || new_type == null ) {
135
- return c .getDescriptor () == cn .getDescriptor ();
143
+ return c .getDescriptor (). equals ( cn .getDescriptor () );
136
144
}
137
145
return set .vote (old_type , new_type );
138
146
} else if (o instanceof GenericClassTypeSignature && n instanceof GenericClassTypeSignature ) {
@@ -141,10 +149,18 @@ public static boolean merge(MergeEngine set, TypeSignature o, TypeSignature n) {
141
149
if (c .getArguments ().size () != cn .getArguments ().size ()) {
142
150
return false ;
143
151
}
144
- TypeEntry old_type = set .getOldSourceSet ().get (c .getName ());
145
- TypeEntry new_type = set .getNewSourceSet ().get (cn .getName ());
152
+ String cname = c .getDescriptor ();
153
+ while (cname .startsWith ("[" )) {
154
+ cname = cname .substring (1 );
155
+ }
156
+ TypeEntry old_type = set .getOldSourceSet ().get (TypeHelper .descToType (cname ));
157
+ String cnname = cn .getDescriptor ();
158
+ while (cnname .startsWith ("[" )) {
159
+ cnname = cnname .substring (1 );
160
+ }
161
+ TypeEntry new_type = set .getNewSourceSet ().get (TypeHelper .descToType (cnname ));
146
162
if ((old_type == null || new_type == null )) {
147
- if (c .getDescriptor () != cn .getDescriptor ()) {
163
+ if (! c .getDescriptor (). equals ( cn .getDescriptor () )) {
148
164
return false ;
149
165
}
150
166
} else if (!set .vote (old_type , new_type )) {
@@ -819,7 +835,7 @@ private static <S extends Condition> void create(Class<S> type, ConditionMerger<
819
835
if (!merge (set , a .getLocal ().getType (), b .getLocal ().getType ())) {
820
836
return false ;
821
837
}
822
- return false ;
838
+ return true ;
823
839
});
824
840
create (Return .class , (set , a , b ) -> {
825
841
if (!a .getValue ().isPresent ()) {
0 commit comments