@@ -270,7 +270,7 @@ abstract static class MulNode extends UnboxNode {
270270
271271 public abstract Object executeWith (Object left , Object right );
272272
273- @ Specialization (guards = {"isBoxed(left)" , "!isForeignArray(left)" , "! isForeignObject(right)" })
273+ @ Specialization (guards = {"isBoxed(left)" , "!isForeignObject(right)" })
274274 Object doForeignBoxed (TruffleObject left , Object right ) {
275275 try {
276276 return mulNode .executeObject (unboxLeft (left ), right );
@@ -279,7 +279,7 @@ Object doForeignBoxed(TruffleObject left, Object right) {
279279 }
280280 }
281281
282- @ Specialization (guards = {"isBoxed(left)" , "!isForeignArray(left)" , " isBoxed(right)" , "!isForeignArray (right)" })
282+ @ Specialization (guards = {"isBoxed(left)" , "isBoxed(right)" })
283283 Object doForeignBoxed (TruffleObject left , TruffleObject right ) {
284284 try {
285285 return getRecursiveNode ().executeWith (left , unboxRight (right ));
@@ -289,7 +289,7 @@ Object doForeignBoxed(TruffleObject left, TruffleObject right) {
289289 return PNotImplemented .NOT_IMPLEMENTED ;
290290 }
291291
292- @ Specialization (guards = {"isForeignArray(left)" , "isPositive(right) " })
292+ @ Specialization (guards = {"isForeignArray(left)" , "!isBoxed(left)" , "right > 0 " })
293293 Object doForeignArray (TruffleObject left , int right ,
294294 @ Cached ("READ.createNode()" ) Node readNode ,
295295 @ Cached ("GET_SIZE.createNode()" ) Node sizeNode ) {
@@ -312,7 +312,7 @@ Object doForeignArray(TruffleObject left, int right,
312312 }
313313 }
314314
315- @ Specialization (guards = {"isForeignArray(left)" , "isBoxed(right )" , "!isForeignArray (right)" })
315+ @ Specialization (guards = {"isForeignArray(left)" , "! isBoxed(left )" , "isBoxed (right)" })
316316 Object doForeignArray (TruffleObject left , TruffleObject right ,
317317 @ Cached ("READ.createNode()" ) Node readNode ,
318318 @ Cached ("GET_SIZE.createNode()" ) Node sizeNode ) {
@@ -331,7 +331,7 @@ Object doForeignArray(TruffleObject left, TruffleObject right,
331331 return PNotImplemented .NOT_IMPLEMENTED ;
332332 }
333333
334- @ Specialization (guards = {"isForeignArray(left)" , "right" })
334+ @ Specialization (guards = {"isForeignArray(left)" , "!isBoxed(left)" , " right" })
335335 Object doForeignArray (TruffleObject left , @ SuppressWarnings ("unused" ) boolean right ,
336336 @ Cached ("READ.createNode()" ) Node readNode ,
337337 @ Cached ("GET_SIZE.createNode()" ) Node sizeNode ) {
@@ -343,19 +343,19 @@ Object doForeignArray(TruffleObject left, @SuppressWarnings("unused") boolean ri
343343 }
344344
345345 @ SuppressWarnings ("unused" )
346- @ Specialization (guards = {"isForeignArray(left)" , "!right" })
346+ @ Specialization (guards = {"isForeignArray(left)" , "!isBoxed(left)" , "! right" })
347347 Object doForeignArrayEmpty (TruffleObject left , boolean right ) {
348348 return factory ().createList ();
349349 }
350350
351351 @ SuppressWarnings ("unused" )
352- @ Specialization (guards = {"isForeignArray(left)" , "right <= 0" })
352+ @ Specialization (guards = {"isForeignArray(left)" , "!isBoxed(left)" , " right <= 0" })
353353 Object doForeignArrayEmpty (TruffleObject left , int right ) {
354354 return factory ().createList ();
355355 }
356356
357357 @ SuppressWarnings ("unused" )
358- @ Specialization (guards = {"isForeignArray(left)" , "right <= 0" })
358+ @ Specialization (guards = {"isForeignArray(left)" , "!isBoxed(left)" , " right <= 0" })
359359 Object doForeignArrayEmpty (TruffleObject left , long right ) {
360360 return factory ().createList ();
361361 }
@@ -366,10 +366,6 @@ PNotImplemented doGeneric(Object left, Object right) {
366366 return PNotImplemented .NOT_IMPLEMENTED ;
367367 }
368368
369- protected boolean isPositive (int right ) {
370- return right > 0 ;
371- }
372-
373369 private MulNode getRecursiveNode () {
374370 if (recursive == null ) {
375371 CompilerDirectives .transferToInterpreterAndInvalidate ();
@@ -592,10 +588,6 @@ Object doForeignBoxed(TruffleObject left, TruffleObject right) {
592588 PNotImplemented doGeneric (Object left , Object right ) {
593589 return PNotImplemented .NOT_IMPLEMENTED ;
594590 }
595-
596- protected boolean isPositive (int right ) {
597- return right > 0 ;
598- }
599591 }
600592
601593 @ Builtin (name = __RTRUEDIV__ , fixedNumOfArguments = 2 )
0 commit comments