@@ -270,7 +270,7 @@ abstract static class MulNode extends UnboxNode {
270
270
271
271
public abstract Object executeWith (Object left , Object right );
272
272
273
- @ Specialization (guards = {"isBoxed(left)" , "!isForeignArray(left)" , "! isForeignObject(right)" })
273
+ @ Specialization (guards = {"isBoxed(left)" , "!isForeignObject(right)" })
274
274
Object doForeignBoxed (TruffleObject left , Object right ) {
275
275
try {
276
276
return mulNode .executeObject (unboxLeft (left ), right );
@@ -279,7 +279,7 @@ Object doForeignBoxed(TruffleObject left, Object right) {
279
279
}
280
280
}
281
281
282
- @ Specialization (guards = {"isBoxed(left)" , "!isForeignArray(left)" , " isBoxed(right)" , "!isForeignArray (right)" })
282
+ @ Specialization (guards = {"isBoxed(left)" , "isBoxed(right)" })
283
283
Object doForeignBoxed (TruffleObject left , TruffleObject right ) {
284
284
try {
285
285
return getRecursiveNode ().executeWith (left , unboxRight (right ));
@@ -289,7 +289,7 @@ Object doForeignBoxed(TruffleObject left, TruffleObject right) {
289
289
return PNotImplemented .NOT_IMPLEMENTED ;
290
290
}
291
291
292
- @ Specialization (guards = {"isForeignArray(left)" , "isPositive(right) " })
292
+ @ Specialization (guards = {"isForeignArray(left)" , "!isBoxed(left)" , "right > 0 " })
293
293
Object doForeignArray (TruffleObject left , int right ,
294
294
@ Cached ("READ.createNode()" ) Node readNode ,
295
295
@ Cached ("GET_SIZE.createNode()" ) Node sizeNode ) {
@@ -312,7 +312,7 @@ Object doForeignArray(TruffleObject left, int right,
312
312
}
313
313
}
314
314
315
- @ Specialization (guards = {"isForeignArray(left)" , "isBoxed(right )" , "!isForeignArray (right)" })
315
+ @ Specialization (guards = {"isForeignArray(left)" , "! isBoxed(left )" , "isBoxed (right)" })
316
316
Object doForeignArray (TruffleObject left , TruffleObject right ,
317
317
@ Cached ("READ.createNode()" ) Node readNode ,
318
318
@ Cached ("GET_SIZE.createNode()" ) Node sizeNode ) {
@@ -331,7 +331,7 @@ Object doForeignArray(TruffleObject left, TruffleObject right,
331
331
return PNotImplemented .NOT_IMPLEMENTED ;
332
332
}
333
333
334
- @ Specialization (guards = {"isForeignArray(left)" , "right" })
334
+ @ Specialization (guards = {"isForeignArray(left)" , "!isBoxed(left)" , " right" })
335
335
Object doForeignArray (TruffleObject left , @ SuppressWarnings ("unused" ) boolean right ,
336
336
@ Cached ("READ.createNode()" ) Node readNode ,
337
337
@ Cached ("GET_SIZE.createNode()" ) Node sizeNode ) {
@@ -343,19 +343,19 @@ Object doForeignArray(TruffleObject left, @SuppressWarnings("unused") boolean ri
343
343
}
344
344
345
345
@ SuppressWarnings ("unused" )
346
- @ Specialization (guards = {"isForeignArray(left)" , "!right" })
346
+ @ Specialization (guards = {"isForeignArray(left)" , "!isBoxed(left)" , "! right" })
347
347
Object doForeignArrayEmpty (TruffleObject left , boolean right ) {
348
348
return factory ().createList ();
349
349
}
350
350
351
351
@ SuppressWarnings ("unused" )
352
- @ Specialization (guards = {"isForeignArray(left)" , "right <= 0" })
352
+ @ Specialization (guards = {"isForeignArray(left)" , "!isBoxed(left)" , " right <= 0" })
353
353
Object doForeignArrayEmpty (TruffleObject left , int right ) {
354
354
return factory ().createList ();
355
355
}
356
356
357
357
@ SuppressWarnings ("unused" )
358
- @ Specialization (guards = {"isForeignArray(left)" , "right <= 0" })
358
+ @ Specialization (guards = {"isForeignArray(left)" , "!isBoxed(left)" , " right <= 0" })
359
359
Object doForeignArrayEmpty (TruffleObject left , long right ) {
360
360
return factory ().createList ();
361
361
}
@@ -366,10 +366,6 @@ PNotImplemented doGeneric(Object left, Object right) {
366
366
return PNotImplemented .NOT_IMPLEMENTED ;
367
367
}
368
368
369
- protected boolean isPositive (int right ) {
370
- return right > 0 ;
371
- }
372
-
373
369
private MulNode getRecursiveNode () {
374
370
if (recursive == null ) {
375
371
CompilerDirectives .transferToInterpreterAndInvalidate ();
@@ -592,10 +588,6 @@ Object doForeignBoxed(TruffleObject left, TruffleObject right) {
592
588
PNotImplemented doGeneric (Object left , Object right ) {
593
589
return PNotImplemented .NOT_IMPLEMENTED ;
594
590
}
595
-
596
- protected boolean isPositive (int right ) {
597
- return right > 0 ;
598
- }
599
591
}
600
592
601
593
@ Builtin (name = __RTRUEDIV__ , fixedNumOfArguments = 2 )
0 commit comments