Skip to content
Snippets Groups Projects
Commit 365d2ee9 authored by Lukas Stadler's avatar Lukas Stadler
Browse files

do not allow bultins to return "null"

parent 9572cbff
Branches
No related tags found
No related merge requests found
...@@ -42,6 +42,6 @@ public abstract class CacheClass extends RBuiltinNode { ...@@ -42,6 +42,6 @@ public abstract class CacheClass extends RBuiltinNode {
@Specialization @Specialization
protected RAbstractStringVector getClass(String cl, RAbstractStringVector ext) { protected RAbstractStringVector getClass(String cl, RAbstractStringVector ext) {
RContext.getInstance().putS4Extends(cl, ext.materialize()); RContext.getInstance().putS4Extends(cl, ext.materialize());
return null; return ext;
} }
} }
...@@ -98,7 +98,7 @@ public class PrintFunctions { ...@@ -98,7 +98,7 @@ public class PrintFunctions {
} else { } else {
printDefault(frame, showFunction, digits, quote, naPrint, printGap, right, max, useSource, noOpt); printDefault(frame, showFunction, digits, quote, naPrint, printGap, right, max, useSource, noOpt);
} }
return null; return o;
} }
protected boolean isS4(Object o) { protected boolean isS4(Object o) {
......
...@@ -76,6 +76,10 @@ public abstract class ShortRowNames extends RBuiltinNode { ...@@ -76,6 +76,10 @@ public abstract class ShortRowNames extends RBuiltinNode {
rowNames = type == 1 ? n : Math.abs(n); rowNames = type == 1 ? n : Math.abs(n);
} }
if (rowNames == null) {
return RNull.instance;
}
return rowNames; return rowNames;
} }
......
...@@ -986,6 +986,7 @@ public abstract class RCallNode extends RCallBaseNode implements RSyntaxNode, RS ...@@ -986,6 +986,7 @@ public abstract class RCallNode extends RCallBaseNode implements RSyntaxNode, RS
@Override @Override
public Object execute(VirtualFrame frame, RFunction currentFunction, RArgsValuesAndNames orderedArguments, S3Args s3Args) { public Object execute(VirtualFrame frame, RFunction currentFunction, RArgsValuesAndNames orderedArguments, S3Args s3Args) {
Object result = builtin.executeBuiltin(frame, castArguments(frame, orderedArguments.getArguments())); Object result = builtin.executeBuiltin(frame, castArguments(frame, orderedArguments.getArguments()));
assert result != null : "builtins cannot return 'null': " + builtinDescriptor.getName();
visibility.execute(frame, builtinDescriptor.getVisibility()); visibility.execute(frame, builtinDescriptor.getVisibility());
return result; return result;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment