Closed crowlogic closed 5 months ago
leading up to the errenous SAME appended to the stackmap frame when it should have been SAME1
Generating n➔z^n*∏k➔α[k]₍ₙ₎{k=1…p}/n!*∏k➔β[k]₍ₙ₎{k=1…q}
BinaryOperation.generate( this=BinaryOperation[left=$\frac{{{z}^{n}} \cdot {\prod_{k = 1}^{p}{α[k]₍ₙ₎}}}{n!}$, right=$\prod_{k = 1}^{q}{β[k]₍ₙ₎}$, operation=mul, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Real )
BinaryOperation.generate( this=BinaryOperation[left=${{z}^{n}} \cdot {\prod_{k = 1}^{p}{α[k]₍ₙ₎}}$, right=$n!$, operation=div, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Integer )
BinaryOperation.generate( this=BinaryOperation[left=${z}^{n}$, right=$\prod_{k = 1}^{p}{α[k]₍ₙ₎}$, operation=mul, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Real )
BinaryOperation.generate( this=BinaryOperation[left=$z$, right=$n$, operation=pow, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Integer )
Product.assignFieldNames(resultType=class arb.Real) factorFunctionFieldName=factorℝ1 factorValueFieldName=valueℝ1
Product: generateFactorClass( expr=k➔α[k]₍ₙ₎,resultType=class arb.Real)
Generating k➔α[k]₍ₙ₎
BinaryOperation.generate( this=BinaryOperation[left=$α_{k}$, right=$n$, operation=risingFactorial, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Integer )
FunctionCall.generate: this=FunctionCall[name=factorial, arg=n, generatedType=arb.Integer] resultType=class arb.Integer
Product.assignFieldNames(resultType=class arb.Real) factorFunctionFieldName=factorℝ2 factorValueFieldName=valueℝ2
Product: generateFactorClass( expr=k➔β[k]₍ₙ₎,resultType=class arb.Real)
Generating k➔β[k]₍ₙ₎
BinaryOperation.generate( this=BinaryOperation[left=$β_{k}$, right=$n$, operation=risingFactorial, generatedType=null], resultType=class arb.Real, left.type=class arb.Real, right.type=class arb.Integer )
java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
factorℝ1.evaluate(Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object; @24: invokevirtual
Reason:
Type 'arb/Integer' (current frame, stack[0]) is not assignable to 'arb/Real'
Current Frame:
bci: @24
flags: { }
locals: { 'factorℝ1', 'java/lang/Object', integer, integer, 'java/lang/Object' }
stack: { 'arb/Integer', 'arb/Integer', integer, 'arb/Real' }
Bytecode:
0000000: 2ab4 000e 9a00 072a b600 122a b400 162b
0000010: c000 181d 2ab4 001c b600 222a b400 262b
0000020: c000 18b5 002a 2ab4 002d b600 3157 2ab4
0000030: 0034 2ab4 0037 b600 3b57 2ab4 003e 2ab4
0000040: 0041 b600 3b57 2ab4 002d 2ab4 0026 2ab4
0000050: 0034 1d2a b400 44b9 0047 0400 c000 1e1d
0000060: b600 4b57 2ab4 0034 b600 4f2a b400 3eb6
0000070: 0053 9eff d42a b400 2d1d 2ab4 0056 b600
0000080: 592b c000 181d 2ab4 005c b600 602a b400
0000090: 642b c000 18b5 0066 2ab4 0069 b600 3157
00000a0: 2ab4 0034 2ab4 0037 b600 3b57 2ab4 006c
00000b0: 2ab4 006f b600 3b57 2ab4 0069 2ab4 0064
00000c0: 2ab4 0034 1d2a b400 72b9 0047 0400 c000
00000d0: 1e1d b600 4b57 2ab4 0034 b600 4f2a b400
00000e0: 6cb6 0053 9eff d42a b400 691d 2ab4 0075
00000f0: b600 761d 1904 c000 1eb6 0079 b0
Stackmap Table:
same_frame(@11)
same_frame(@70)
same_locals_1_stack_item_extended(@184,Object[#30])
at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3549)
at java.base/java.lang.Class.getConstructor0(Class.java:3754)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
at arb4j/arb.expressions.Expression.constructNewInstance(Expression.java:1148)
at arb4j/arb.expressions.Expression.instantiate(Expression.java:1136)
at arb4j/arb.expressions.nodes.nary.NAryOperation.registerFactorSubexpressionInstance(NAryOperation.java:577)
at arb4j/arb.expressions.nodes.nary.NAryOperation.generateFactorClass(NAryOperation.java:318)
at arb4j/arb.expressions.nodes.nary.NAryOperation.generate(NAryOperation.java:264)
at arb4j/arb.expressions.Expression.generateEvaluationMethod(Expression.java:976)
at arb4j/arb.expressions.Expression.compile(Expression.java:745)
at arb4j/arb.expressions.Compiler.express(Compiler.java:143)
at arb4j/arb.expressions.Compiler.express(Compiler.java:156)
at arb4j/arb.expressions.Compiler.express(Compiler.java:109)
at arb4j/arb.expressions.Expression.instantiate(Expression.java:173)
at arb4j/arb.functions.real.RealFunction.express(RealFunction.java:635)
at arb4j/arb.functions.real.RealFunction.express(RealFunction.java:630)
at arb4j/arb.functions.polynomials.HypergeometricPolynomial.<init>(HypergeometricPolynomial.java:65)
at arb4j/arb.functions.polynomials.HypergeometricPolynomialTest.testSum(HypergeometricPolynomialTest.java:21)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at junit@4.13.2/junit.framework.TestCase.runTest(TestCase.java:177)
at junit@4.13.2/junit.framework.TestCase.runBare(TestCase.java:142)
at junit@4.13.2/junit.framework.TestResult$1.protect(TestResult.java:122)
public arb.Real evaluate(arb.Integer, int, int, arb.Real);
descriptor: (Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=5
0: aload_0
1: getfield #14 // Field isInitialized:Z
4: ifne 11
7: aload_0
8: invokevirtual #18 // Method initialize:()V
11: aload_0
12: getfield #22 // Field z:Larb/Integer;
15: aload_1
16: checkcast #24 // class arb/Integer
19: iload_3
20: aload_0
21: getfield #28 // Field ℝ1:Larb/Real;
24: invokevirtual #34 // Method arb/Real.pow:(Larb/Integer;ILarb/Real;)Larb/Real;
...
Reason:
Type 'arb/Integer' (current frame, stack[0]) is not assignable to 'arb/Real'
Current Frame:
bci: @24
java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
factorℝ1.evaluate(Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object; @24: invokevirtual
Reason:
Type 'arb/Integer' (current frame, stack[0]) is not assignable to 'arb/Real'
Current Frame:
bci: @24
flags: { }
locals: { 'factorℝ1', 'java/lang/Object', integer, integer, 'java/lang/Object' }
stack: { 'arb/Integer', 'arb/Integer', integer, 'arb/Real' }
Bytecode:
0000000: 2ab4 000e 9a00 072a b600 122a b400 162b
0000010: c000 181d 2ab4 001c b600 222a b400 262b
0000020: c000 18b5 002a 2ab4 002d b600 3157 2ab4
0000030: 0034 2ab4 0037 b600 3b57 2ab4 003e 2ab4
0000040: 0041 b600 3b57 2ab4 002d 2ab4 0026 2ab4
0000050: 0034 1d2a b400 44b9 0047 0400 c000 1e1d
0000060: b600 4b57 2ab4 0034 b600 4f2a b400 3eb6
0000070: 0053 9eff d42a b400 2d1d 2ab4 0056 b600
0000080: 592b c000 181d 2ab4 005c b600 602a b400
0000090: 642b c000 18b5 0066 2ab4 0069 b600 3157
00000a0: 2ab4 0034 2ab4 0037 b600 3b57 2ab4 006c
00000b0: 2ab4 006f b600 3b57 2ab4 0069 2ab4 0064
00000c0: 2ab4 0034 1d2a b400 72b9 0047 0400 c000
00000d0: 1e1d b600 4b57 2ab4 0034 b600 4f2a b400
00000e0: 6cb6 0053 9eff d42a b400 691d 2ab4 0075
00000f0: b600 761d 1904 c000 1eb6 0079 b0
Stackmap Table:
same_frame(@11)
same_locals_1_stack_item_frame(@70,Object[#30])
full_frame(@184,{Object[#2],Object[#5],Integer,Integer,Object[#5]},{Object[#30],Object[#24]})
at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3549)
at java.base/java.lang.Class.getConstructor0(Class.java:3754)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
at arb4j/arb.expressions.Expression.constructNewInstance(Expression.java:1148)
at arb4j/arb.expressions.Expression.instantiate(Expression.java:1136)
at arb4j/arb.expressions.nodes.nary.NAryOperation.registerFactorSubexpressionInstance(NAryOperation.java:577)
at arb4j/arb.expressions.nodes.nary.NAryOperation.generateFactorClass(NAryOperation.java:318)
at arb4j/arb.expressions.nodes.nary.NAryOperation.generate(NAryOperation.java:264)
at arb4j/arb.expressions.Expression.generateEvaluationMethod(Expression.java:976)
at arb4j/arb.expressions.Expression.compile(Expression.java:745)
at arb4j/arb.expressions.Compiler.express(Compiler.java:143)
at arb4j/arb.expressions.Compiler.express(Compiler.java:156)
at arb4j/arb.expressions.Compiler.express(Compiler.java:109)
at arb4j/arb.expressions.Expression.instantiate(Expression.java:173)
at arb4j/arb.functions.real.RealFunction.express(RealFunction.java:635)
at arb4j/arb.functions.real.RealFunction.express(RealFunction.java:630)
at arb4j/arb.functions.polynomials.HypergeometricPolynomial.<init>(HypergeometricPolynomial.java:65)
at arb4j/arb.functions.polynomials.HypergeometricPolynomialTest.testSum(HypergeometricPolynomialTest.java:21)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at junit@4.13.2/junit.framework.TestCase.runTest(TestCase.java:177)
at junit@4.13.2/junit.framework.TestCase.runBare(TestCase.java:142)
at junit@4.13.2/junit.framework.TestResult$1.protect(TestResult.java:122)
at junit@4.13.2/junit.framework.TestResult.runProtected(TestResult.java:142)
at junit@4.13.2/junit.framework.TestResult.run(TestResult.java:125)
at junit@4.13.2/junit.framework.TestCase.run(TestCase.java:130)
at junit@4.13.2/junit.framework.TestSuite.runTest(TestSuite.java:241)
at junit@4.13.2/junit.framework.TestSuite.run(TestSuite.java:236)
at junit@4.13.2/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)
java.lang.VerifyError: Instruction type does not match stack map
Exception Details:
Location:
nzⁿTimesProdkαSubknWherekEquals1TopOvernBangTimesProdkβSubknWherekEquals1Toq.evaluate(Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object; @70: aload_0
Reason:
Current frame's stack size doesn't match stackmap.
Current Frame:
bci: @70
flags: { }
locals: { 'nzⁿTimesProdkαSubknWherekEquals1TopOvernBangTimesProdkβSubknWherekEquals1Toq', 'java/lang/Object', integer, integer, 'java/lang/Object' }
stack: { 'arb/Real' }
Stackmap Frame:
bci: @70
flags: { }
locals: { 'nzⁿTimesProdkαSubknWherekEquals1TopOvernBangTimesProdkβSubknWherekEquals1Toq', 'java/lang/Object', integer, integer, 'java/lang/Object' }
stack: { }
Bytecode:
0000000: 2ab4 000e 9a00 072a b600 122a b400 162b
0000010: c000 181d 2ab4 001b b600 212a b400 252b
0000020: c000 18b5 002a 2ab4 002d b600 3157 2ab4
0000030: 0034 2ab4 0037 b600 3b57 2ab4 003e 2ab4
0000040: 0041 b600 3b57 2ab4 002d 2ab4 0025 2ab4
0000050: 0034 1d2a b400 44b9 0047 0400 c000 1d1d
0000060: b600 4b57 2ab4 0034 b600 4f2a b400 3eb6
0000070: 0053 9eff d42a b400 2d1d 2ab4 0056 b600
0000080: 592b c000 181d 2ab4 005c b600 602a b400
0000090: 642b c000 18b5 0066 2ab4 0069 b600 3157
00000a0: 2ab4 0034 2ab4 0037 b600 3b57 2ab4 006c
00000b0: 2ab4 006f b600 3b57 2ab4 0069 2ab4 0064
00000c0: 2ab4 0034 1d2a b400 72b9 0047 0400 c000
00000d0: 1d1d b600 4b57 2ab4 0034 b600 4f2a b400
00000e0: 6cb6 0053 9eff d42a b400 691d 2ab4 0075
00000f0: b600 761d 1904 c000 1db6 0079 b0
Stackmap Table:
same_frame(@11)
same_frame(@70)
same_locals_1_stack_item_extended(@184,Object[#29])
at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3549)
at java.base/java.lang.Class.getConstructor0(Class.java:3754)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
at arb4j/arb.expressions.Expression.constructNewInstance(Expression.java:1164)
at arb4j/arb.expressions.Expression.instantiate(Expression.java:1152)
at arb4j/arb.expressions.Expression.instantiate(Expression.java:164)
at arb4j/arb.functions.Function.express(Function.java:162)
at arb4j/arb.functions.polynomials.HypergeometricPolynomialTest.testSummand(HypergeometricPolynomialTest.java:85)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at junit@4.13.2/junit.framework.TestCase.runTest(TestCase.java:177)
at junit@4.13.2/junit.framework.TestCase.runBare(TestCase.java:142)
at junit@4.13.2/junit.framework.TestResult$1.protect(TestResult.java:122)
at junit@4.13.2/junit.framework.TestResult.runProtected(TestResult.java:142)
at junit@4.13.2/junit.framework.TestResult.run(TestResult.java:125)
at junit@4.13.2/junit.framework.TestCase.run(TestCase.java:130)
at junit@4.13.2/junit.framework.TestSuite.runTest(TestSuite.java:241)
at junit@4.13.2/junit.framework.TestSuite.run(TestSuite.java:236)
at junit@4.13.2/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)
java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
factorℝ1.evaluate(Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object; @24: invokevirtual
Reason:
Type 'arb/Integer' (current frame, stack[0]) is not assignable to 'arb/Real'
Current Frame:
bci: @24
flags: { }
locals: { 'factorℝ1', 'java/lang/Object', integer, integer, 'java/lang/Object' }
stack: { 'arb/Integer', 'arb/Integer', integer, 'arb/Real' }
Bytecode:
0000000: 2ab4 000e 9a00 072a b600 122a b400 162b
0000010: c000 181d 2ab4 001c b600 222a b400 262b
0000020: c000 18b5 002a 2ab4 002d b600 3157 2ab4
0000030: 0034 2ab4 0037 b600 3b57 2ab4 003e 2ab4
0000040: 0041 b600 3b57 2ab4 002d 2ab4 0026 2ab4
0000050: 0034 1d2a b400 44b9 0047 0400 c000 1e1d
0000060: b600 4b57 2ab4 0034 b600 4f2a b400 3eb6
0000070: 0053 9eff d42a b400 2d1d 2ab4 0056 b600
0000080: 592b c000 181d 2ab4 005c b600 602a b400
0000090: 642b c000 18b5 0066 2ab4 0069 b600 3157
00000a0: 2ab4 0034 2ab4 0037 b600 3b57 2ab4 006c
00000b0: 2ab4 006f b600 3b57 2ab4 0069 2ab4 0064
00000c0: 2ab4 0034 1d2a b400 72b9 0047 0400 c000
00000d0: 1e1d b600 4b57 2ab4 0034 b600 4f2a b400
00000e0: 6cb6 0053 9eff d42a b400 691d 2ab4 0075
00000f0: b600 761d 1904 c000 1eb6 0079 b0
Stackmap Table:
same_frame(@11)
same_locals_1_stack_item_frame(@70,Object[#30])
full_frame(@184,{Object[#2],Object[#5],Integer,Integer,Object[#5]},{Object[#30],Object[#24]})
at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3549)
at java.base/java.lang.Class.getConstructor0(Class.java:3754)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
at arb4j@0.88/arb.expressions.Expression.constructNewInstance(Expression.java:549)
at arb4j@0.88/arb.expressions.Expression.instantiate(Expression.java:1225)
at arb4j@0.88/arb.expressions.nodes.nary.NAryOperation.registerFactorSubexpressionInstance(NAryOperation.java:676)
at arb4j@0.88/arb.expressions.nodes.nary.NAryOperation.generateFactorClass(NAryOperation.java:366)
at arb4j@0.88/arb.expressions.nodes.nary.NAryOperation.generate(NAryOperation.java:305)
at arb4j@0.88/arb.expressions.Expression.generateEvaluationMethod(Expression.java:990)
at arb4j@0.88/arb.expressions.Expression.compile(Expression.java:503)
at arb4j@0.88/arb.expressions.Compiler.express(Compiler.java:143)
at arb4j@0.88/arb.expressions.Compiler.express(Compiler.java:157)
at arb4j@0.88/arb.expressions.Compiler.express(Compiler.java:109)
at arb4j@0.88/arb.expressions.Expression.instantiate(Expression.java:189)
at arb4j@0.88/arb.functions.real.RealFunction.express(RealFunction.java:635)
at arb4j@0.88/arb.functions.real.RealFunction.express(RealFunction.java:630)
at arb4j@0.88/arb.functions.polynomials.HypergeometricPolynomial.<init>(HypergeometricPolynomial.java:53)
at arb4j@0.88/arb.functions.polynomials.HypergeometricPolynomialTest.testSum(HypergeometricPolynomialTest.java:44)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at junit@4.13.2/junit.framework.TestCase.runTest(TestCase.java:177)
at junit@4.13.2/junit.framework.TestCase.runBare(TestCase.java:142)
at junit@4.13.2/junit.framework.TestResult$1.protect(TestResult.java:122)
at junit@4.13.2/junit.framework.TestResult.runProtected(TestResult.java:142)
at junit@4.13.2/junit.framework.TestResult.run(TestResult.java:125)
at junit@4.13.2/junit.framework.TestCase.run(TestCase.java:130)
at junit@4.13.2/junit.framework.TestSuite.runTest(TestSuite.java:241)
at junit@4.13.2/junit.framework.TestSuite.run(TestSuite.java:236)
at junit@4.13.2/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)