Skip to content

Commit

Permalink
java.lang.AssertionError: TODO: make new instance of recursive function
Browse files Browse the repository at this point in the history
P with copy constructor
	at arb4j/arb.expressions.nodes.unary.FunctionCall.generateContextualFunctionCall(FunctionCall.java:178)
	at arb4j/arb.expressions.nodes.unary.FunctionCall.generate(FunctionCall.java:108)
	at arb4j/arb.expressions.nodes.binary.BinaryOperation.generate(BinaryOperation.java:98)
	at arb4j/arb.expressions.nodes.binary.BinaryOperation.generate(BinaryOperation.java:97)
	at arb4j/arb.expressions.nodes.binary.BinaryOperation.generate(BinaryOperation.java:97)
	at arb4j/arb.expressions.nodes.unary.UnaryOperation.generate(UnaryOperation.java:73)
	at arb4j/arb.expressions.nodes.unary.When.generate(When.java:78)
	at arb4j/arb.expressions.Expression.generateEvaluationMethod(Expression.java:470)
	at arb4j/arb.expressions.Expression.generate(Expression.java:345)
	at arb4j/arb.expressions.Compiler.compile(Compiler.java:101)
	at arb4j/arb.expressions.Compiler.compile(Compiler.java:75)
	at arb4j/arb.expressions.Expression.instantiate(Expression.java:93)
	at arb4j/arb.functions.Function.express(Function.java:147)
	at arb4j/arb.functions.polynomials.orthogonal.JacobiPolynomialSequence.<init>(JacobiPolynomialSequence.java:103)
	at arb4j/arb.functions.polynomials.orthogonal.JacobiPolynomialTest.testP0(JacobiPolynomialTest.java:139)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at [email protected]/junit.framework.TestCase.runTest(TestCase.java:177)
	at [email protected]/junit.framework.TestCase.runBare(TestCase.java:142)
	at [email protected]/junit.framework.TestResult$1.protect(TestResult.java:122)
	at [email protected]/junit.framework.TestResult.runProtected(TestResult.java:142)
	at [email protected]/junit.framework.TestResult.run(TestResult.java:125)
	at [email protected]/junit.framework.TestCase.run(TestCase.java:130)
	at [email protected]/junit.framework.TestSuite.runTest(TestSuite.java:241)
	at [email protected]/junit.framework.TestSuite.run(TestSuite.java:236)
	at [email protected]/org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
  • Loading branch information
crowlogic committed Jan 19, 2024
1 parent 6910542 commit d834df3
Showing 1 changed file with 9 additions and 16 deletions.
25 changes: 9 additions & 16 deletions src/main/java/arb/expressions/nodes/unary/FunctionCall.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
package arb.expressions.nodes.unary;

import static arb.expressions.Compiler.invokeSetMethod;
import static arb.expressions.Compiler.loadBits;
import static arb.expressions.Compiler.loadOrder;
import static arb.expressions.Compiler.loadResult;
import static arb.expressions.Compiler.loadThisOntoStack;
import static arb.expressions.Compiler.*;
import static java.lang.String.format;
import static java.lang.System.err;
import static java.lang.System.out;
import static org.objectweb.asm.Opcodes.GETFIELD;

import java.util.Arrays;
import java.util.HashSet;
Expand All @@ -19,10 +14,7 @@

import arb.Integer;
import arb.Real;
import arb.expressions.Context;
import arb.expressions.Expression;
import arb.expressions.Mapping;
import arb.expressions.Parser;
import arb.expressions.*;
import arb.expressions.nodes.Node;
import arb.functions.Function;

Expand Down Expand Up @@ -177,12 +169,13 @@ public Class<?> getDomainType()
@SuppressWarnings("unchecked")
public MethodVisitor generateContextualFunctionCall(MethodVisitor methodVisitor, Class<?> resultType)
{
var expression = arg.expression;
boolean verbose = expression.verbose;
Class<?> type = type();
Mapping<D, R> mapping = expression.context.functions.get(functionName);
F func = (F) mapping.func;

var expression = arg.expression;
boolean verbose = expression.verbose;
Class<?> type = type();
Mapping<D, R> mapping = expression.context.functions.get(functionName);
F func = (F) mapping.func;
boolean isRecursive = expression.recursive && functionName.equals(expression.functionName);
assert !isRecursive : "TODO: make new instance of recursive function " + functionName + " with copy constructor";
if (func == null && mapping.functionInterface == null)
{
throw new IllegalArgumentException(String.format("Undefined reference to function %s", mapping));
Expand Down

0 comments on commit d834df3

Please sign in to comment.