Skip to content

Commit 643e7d6

Browse files
committed
[GR-29819] Fix issues when running with --engine.ExcludeAssertions=false
PullRequest: truffleruby/2473
2 parents c167083 + a89071e commit 643e7d6

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

src/main/java/org/truffleruby/core/array/ArrayUtils.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,22 @@ public abstract class ArrayUtils {
2020

2121
public static final Object[] EMPTY_ARRAY = new Object[0];
2222

23+
public static boolean assertNoNullElement(Object[] array) {
24+
return assertNoNullElement(array, array.length);
25+
}
26+
2327
public static boolean assertNoNullElement(Object[] array, int size) {
2428
assert size <= array.length;
2529
for (int i = 0; i < size; i++) {
2630
final Object element = array[i];
27-
assert element != null : element;
31+
assert element != null : nullElementAt(array, i);
2832
}
2933
return true;
3034
}
3135

32-
public static boolean assertNoNullElement(Object[] array) {
33-
return assertNoNullElement(array, array.length);
36+
@TruffleBoundary
37+
private static String nullElementAt(Object[] array, int index) {
38+
return "null element in Object[] at index " + index + ": " + Arrays.toString(array);
3439
}
3540

3641
/** Extracts part of an array into a newly allocated byte[] array. Does not perform safety checks on parameters.

src/main/java/org/truffleruby/core/proc/RubyProc.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.Set;
1313

1414
import org.truffleruby.core.klass.RubyClass;
15+
import org.truffleruby.core.string.StringUtils;
1516
import org.truffleruby.interop.ForeignToRubyArgumentsNode;
1617
import org.truffleruby.language.Nil;
1718
import org.truffleruby.language.RubyDynamicObject;
@@ -61,7 +62,7 @@ public RubyProc(
6162
FrameOnStackMarker frameOnStackMarker,
6263
DeclarationContext declarationContext) {
6364
super(rubyClass, shape);
64-
assert block instanceof Nil || block instanceof RubyProc : block;
65+
assert block instanceof Nil || block instanceof RubyProc : StringUtils.toString(block);
6566
this.type = type;
6667
this.sharedMethodInfo = sharedMethodInfo;
6768
this.callTargets = callTargets;

src/main/java/org/truffleruby/core/string/StringUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public abstract class StringUtils {
2121

2222
@TruffleBoundary
2323
public static String toString(Object value) {
24-
return value.toString();
24+
return String.valueOf(value);
2525
}
2626

2727
@TruffleBoundary

src/main/java/org/truffleruby/language/arguments/RubyArguments.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import org.truffleruby.core.array.ArrayUtils;
1313
import org.truffleruby.core.proc.RubyProc;
14+
import org.truffleruby.core.string.StringUtils;
1415
import org.truffleruby.language.FrameAndVariables;
1516
import org.truffleruby.language.Nil;
1617
import org.truffleruby.language.control.FrameOnStackMarker;
@@ -161,7 +162,7 @@ public static Object getSelf(Frame frame) {
161162
public static Object getBlock(Frame frame) {
162163
final Object block = frame.getArguments()[ArgumentIndicies.BLOCK.ordinal()];
163164
/* We put into the arguments array either a Nil or RubyProc, so that's all we'll get out at this point. */
164-
assert block instanceof Nil || block instanceof RubyProc : block;
165+
assert block instanceof Nil || block instanceof RubyProc : StringUtils.toString(block);
165166
return block;
166167
}
167168

0 commit comments

Comments
 (0)