Skip to content

Commit

Permalink
Fixing RuntimeErrorsTest
Browse files Browse the repository at this point in the history
  • Loading branch information
JaroslavTulach committed Feb 4, 2025
2 parents 91d3584 + 847bd99 commit 7be3262
Showing 1 changed file with 25 additions and 28 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.enso.interpreter.dsl;

import com.google.common.base.Strings;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
Expand Down Expand Up @@ -190,7 +189,9 @@ private void generateCode(MethodDefinition methodDefinition) throws IOException
+ " extends BuiltinRootNode implements InlineableNode.Root {");
}
out.println(" private @Child " + methodDefinition.getOriginalClassName() + " bodyNode;");
defineArgNodes(out, " ", methodDefinition);
out.println(" private @Children ArgNode[] argNodes = new ArgNode[] {");
generateArguments(methodDefinition, out);
out.println(" };");
out.println(" private static final class Internals {");
out.println(" Internals(boolean s) {");
out.println(" this.staticOrInstanceMethod = s;");
Expand Down Expand Up @@ -259,7 +260,9 @@ private void generateCode(MethodDefinition methodDefinition) throws IOException
+ " body = "
+ methodDefinition.getConstructorExpression()
+ ";");
defineArgNodes(out, " ", methodDefinition);
out.println(" private @Children ArgNode[] argNodes = new ArgNode[] {");
generateArguments(methodDefinition, out);
out.println(" };");
out.println(" @Override");
out.println(" public Object call(VirtualFrame frame, Object[] args) {");
out.println(" return handleExecute(argNodes, frame, extra, body, args);");
Expand Down Expand Up @@ -395,36 +398,30 @@ private void generateCode(MethodDefinition methodDefinition) throws IOException
}
}

private void defineArgNodes(
final PrintWriter out, final String sep, MethodDefinition methodDefinition) {
out.println(sep + "private @Children ArgNode[] argNodes = new ArgNode[] {");
private static void generateArguments(MethodDefinition methodDefinition, final PrintWriter out) {
for (MethodDefinition.ArgumentDefinition arg : methodDefinition.getArguments()) {
if (arg.isPositional()) {
var checkErrors = arg.shouldCheckErrors();
var checkPanicSentinel = arg.isPositional() && !arg.isSelf();
var checkWarnings = arg.shouldCheckWarnings();
out.println(
sep
+ " ArgNode.create("
+ arg.isSelf()
+ ", "
+ arg.isArray()
+ ", "
+ arg.requiresCast()
+ ", "
+ checkErrors
+ ", "
+ checkPanicSentinel
+ ", "
+ checkWarnings
+ "),");
}
var checkErrors = arg.shouldCheckErrors();
var checkPanicSentinel = arg.isPositional() && !arg.isSelf();
var checkWarnings = arg.shouldCheckWarnings();
out.println(
" ArgNode.create("
+ arg.isSelf()
+ ", "
+ arg.isArray()
+ ", "
+ arg.requiresCast()
+ ", "
+ checkErrors
+ ", "
+ checkPanicSentinel
+ ", "
+ checkWarnings
+ "),");
}
out.println(sep + "};");
}

private String wrapInTryCatch(String statement, int indent) {
var indentStr = Strings.repeat(" ", indent);
var indentStr = " ".repeat(indent);
var sb = new StringBuilder();
sb.append(indentStr).append("try {").append("\n");
sb.append(indentStr).append(" ").append(statement).append("\n");
Expand Down

0 comments on commit 7be3262

Please sign in to comment.