@@ -199,82 +199,131 @@ public static boolean equalsNumChar(java.lang.Number xn, java.lang.Character yc)
199
199
return equalsNumObject (xn , yc );
200
200
}
201
201
202
- public static boolean equalsUNumObject (Object x , Object y ) {
202
+ private static boolean equalsUNumObject (Object x , Object y ) {
203
203
if (x instanceof scala .UInt ) {
204
204
if (y instanceof scala .UInt )
205
205
return ((scala .UInt )x ).underlying () == ((scala .UInt )y ).underlying ();
206
- return slowEqualsUNumObject (x , y );
206
+ return slowEqualsUNumObject (x , (( scala . UInt ) x ). underlying () & 0xffffffffL , y );
207
207
}
208
208
209
209
if (x instanceof scala .ULong ) {
210
210
if (y instanceof scala .ULong )
211
211
return ((scala .ULong )x ).underlying () == ((scala .ULong )y ).underlying ();
212
- return slowEqualsUNumObject (x , y );
212
+ return slowEqualsUNumObject (x , (( scala . ULong ) x ). underlying (), y );
213
213
}
214
214
215
215
if (x instanceof scala .UByte ) {
216
216
if (y instanceof scala .UByte )
217
217
return ((scala .UByte )x ).underlying () == ((scala .UByte )y ).underlying ();
218
- return slowEqualsUNumObject (x , y );
218
+ return slowEqualsUNumObject (x , (( scala . UByte ) x ). underlying () & 0xffL , y );
219
219
}
220
220
221
- if (x instanceof scala .UShort ) {
222
- if (y instanceof scala .UShort )
223
- return ((scala .UShort )x ).underlying () == ((scala .UShort )y ).underlying ();
224
- return slowEqualsUNumObject (x , y );
225
- }
226
-
227
- if (y instanceof scala .math .ScalaNumber )
228
- return y .equals (x );
229
-
230
- return x .equals (y );
221
+ // assert x instanceof scala.UShort;
222
+ if (y instanceof scala .UShort )
223
+ return ((scala .UShort )x ).underlying () == ((scala .UShort )y ).underlying ();
224
+ return slowEqualsUNumObject (x , ((scala .UShort )x ).underlying () & 0xffffL , y );
231
225
}
232
226
233
227
private static boolean slowEqualsLongObject (Object x , long xn , Object y ) {
234
- if (y instanceof java .lang .Byte )
235
- return ((java .lang .Byte )y ).byteValue () == xn ;
236
- if (y instanceof java .lang .Short )
237
- return ((java .lang .Short )y ).shortValue () == xn ;
238
- if (y instanceof java .lang .Integer )
239
- return ((java .lang .Integer )y ).intValue () == xn ;
240
- if (y instanceof java .lang .Long )
241
- return ((java .lang .Long )y ).longValue () == xn ;
242
- if (y instanceof java .lang .Float )
243
- return ((java .lang .Float )y ).floatValue () == xn ;
244
- if (y instanceof java .lang .Double )
245
- return ((java .lang .Double )y ).doubleValue () == xn ;
246
- if (y instanceof java .lang .Character )
247
- return ((long )((java .lang .Character )y ).charValue ()) == xn ;
228
+ if (y instanceof java .lang .Number ) {
229
+ if (y instanceof java .lang .Byte )
230
+ return ((java .lang .Byte )y ).byteValue () == xn ;
231
+ if (y instanceof java .lang .Short )
232
+ return ((java .lang .Short )y ).shortValue () == xn ;
233
+ if (y instanceof java .lang .Integer )
234
+ return ((java .lang .Integer )y ).intValue () == xn ;
235
+ if (y instanceof java .lang .Long )
236
+ return ((java .lang .Long )y ).longValue () == xn ;
237
+ if (y instanceof java .lang .Float )
238
+ return ((java .lang .Float )y ).floatValue () == xn ;
239
+ if (y instanceof java .lang .Double )
240
+ return ((java .lang .Double )y ).doubleValue () == xn ;
241
+ if (y instanceof java .lang .Character )
242
+ return ((long )((java .lang .Character )y ).charValue ()) == xn ;
248
243
249
- if (y instanceof scala .math .ScalaNumber )
250
- return y .equals (x );
244
+ if (y instanceof scala .math .ScalaNumber )
245
+ return y .equals (x );
246
+ }
247
+
248
+ if (y instanceof scala .UInt )
249
+ return (((scala .UInt )y ).underlying () & 0xffffffffL ) == xn ;
250
+ if (y instanceof scala .ULong )
251
+ return xn >= 0 && ((scala .ULong )y ).underlying () == xn ;
252
+ if (y instanceof scala .UByte )
253
+ return (((scala .UByte )y ).underlying () & 0xffL ) == xn ;
254
+ if (y instanceof scala .UShort )
255
+ return (((scala .UShort )y ).underlying () & 0xffffL ) == xn ;
251
256
252
257
return false ;
253
258
}
254
259
255
260
private static boolean slowEqualsDoubleObject (Object x , double xn , Object y ) {
256
- if (y instanceof java .lang .Byte )
257
- return ((java .lang .Byte )y ).byteValue () == xn ;
258
- if (y instanceof java .lang .Short )
259
- return ((java .lang .Short )y ).shortValue () == xn ;
260
- if (y instanceof java .lang .Integer )
261
- return ((java .lang .Integer )y ).intValue () == xn ;
262
- if (y instanceof java .lang .Long )
263
- return ((java .lang .Long )y ).longValue () == xn ;
264
- if (y instanceof java .lang .Float )
265
- return ((java .lang .Float )y ).floatValue () == xn ;
266
- if (y instanceof java .lang .Double )
267
- return ((java .lang .Double )y ).doubleValue () == xn ;
268
- if (y instanceof java .lang .Character )
269
- return ((int )((java .lang .Character )y ).charValue ()) == xn ;
261
+ if (y instanceof java .lang .Number ) {
262
+ if (y instanceof java .lang .Byte )
263
+ return ((java .lang .Byte )y ).byteValue () == xn ;
264
+ if (y instanceof java .lang .Short )
265
+ return ((java .lang .Short )y ).shortValue () == xn ;
266
+ if (y instanceof java .lang .Integer )
267
+ return ((java .lang .Integer )y ).intValue () == xn ;
268
+ if (y instanceof java .lang .Long )
269
+ return ((java .lang .Long )y ).longValue () == xn ;
270
+ if (y instanceof java .lang .Float )
271
+ return ((java .lang .Float )y ).floatValue () == xn ;
272
+ if (y instanceof java .lang .Double )
273
+ return ((java .lang .Double )y ).doubleValue () == xn ;
274
+ if (y instanceof java .lang .Character )
275
+ return ((int )((java .lang .Character )y ).charValue ()) == xn ;
270
276
271
- if (y instanceof scala .math .ScalaNumber )
272
- return y .equals (x );
277
+ if (y instanceof scala .math .ScalaNumber )
278
+ return y .equals (x );
279
+ }
280
+
281
+ if (y instanceof scala .UInt )
282
+ return (((scala .UInt )y ).underlying () & 0xffffffffL ) == xn ;
283
+ if (y instanceof scala .ULong )
284
+ return ((scala .ULong )y ).toDouble () == xn ;
285
+ if (y instanceof scala .UByte )
286
+ return (((scala .UByte )y ).underlying () & 0xffL ) == xn ;
287
+ if (y instanceof scala .UShort )
288
+ return (((scala .UShort )y ).underlying () & 0xffffL ) == xn ;
273
289
274
290
return false ;
275
291
}
276
292
277
- private static boolean slowEqualsUNumObject (Object x , Object y ) {
293
+ private static boolean slowEqualsUNumObject (Object x , long uxn , Object y ) {
294
+ if (y instanceof java .lang .Number ) {
295
+ if (y instanceof scala .math .ScalaNumber )
296
+ return y .equals (x );
297
+ if (uxn < 0 )
298
+ return false ;
299
+
300
+ if (y instanceof java .lang .Byte )
301
+ return ((java .lang .Byte )y ).byteValue () == uxn ;
302
+ if (y instanceof java .lang .Short )
303
+ return ((java .lang .Short )y ).shortValue () == uxn ;
304
+ if (y instanceof java .lang .Integer )
305
+ return ((java .lang .Integer )y ).intValue () == uxn ;
306
+ if (y instanceof java .lang .Long )
307
+ return ((java .lang .Long )y ).longValue () == uxn ;
308
+ if (y instanceof java .lang .Float )
309
+ return ((java .lang .Float )y ).floatValue () == uxn ;
310
+ if (y instanceof java .lang .Double )
311
+ return ((java .lang .Double )y ).doubleValue () == uxn ;
312
+ if (y instanceof java .lang .Character )
313
+ return ((long )((java .lang .Character )y ).charValue ()) == uxn ;
314
+
315
+ return false ;
316
+ }
317
+
318
+ if (y instanceof scala .UInt )
319
+ return (((scala .UInt )y ).underlying () & 0xffffffffL ) == uxn ;
320
+ if (y instanceof scala .ULong )
321
+ return ((scala .ULong )y ).underlying () == uxn ;
322
+ if (y instanceof scala .UByte )
323
+ return (((scala .UByte )y ).underlying () & 0xffL ) == uxn ;
324
+ if (y instanceof scala .UShort )
325
+ return (((scala .UShort )y ).underlying () & 0xffffL ) == uxn ;
326
+
278
327
return false ;
279
328
}
280
329
0 commit comments