team-worthwhile/worthwhile — Issue #27: RuntimeException when accessing return variable with array index
Author: jspam
Created: 2012-02-11 15:00:23+00:00
State: open
Labels: interpreter

Test program:

function Integer[] test2(Integer N, Integer[] a)
_ensures _return[0] ≥ 0
{
return a
}

Integer[] test := test2(6, {6, 4, 2, 3, 5, 1})

Executing results in:

```
Exception in thread "Worthwhile Interpreter runner" java.lang.RuntimeException: result type error on resultStack: integer expected
at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.popIntegerValue(InterpreterASTNodeVisitor.java:408)
at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:785)
at edu.kit.iti.formal.pse.worthwhile.model.ast.GreaterOrEqual.accept(GreaterOrEqual.java:52)
at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:460)
at edu.kit.iti.formal.pse.worthwhile.model.ast.visitor.HierarchialASTNodeVisitor.visit(HierarchialASTNodeVisitor.java:267)
at edu.kit.iti.formal.pse.worthwhile.model.ast.Postcondition.accept(Postcondition.java:51)
at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:750)
at edu.kit.iti.formal.pse.worthwhile.model.ast.FunctionDeclaration.accept(FunctionDeclaration.java:387)
at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:720)
at edu.kit.iti.formal.pse.worthwhile.model.ast.FunctionCall.accept(FunctionCall.java:164)
at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:1109)
at edu.kit.iti.formal.pse.worthwhile.model.ast.VariableDeclaration.accept(VariableDeclaration.java:285)
at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:548)
at edu.kit.iti.formal.pse.worthwhile.model.ast.Block.accept(Block.java:96)
at edu.kit.iti.formal.pse.worthwhile.interpreter.InterpreterASTNodeVisitor.visit(InterpreterASTNodeVisitor.java:996)
at edu.kit.iti.formal.pse.worthwhile.model.ast.Program.accept(Program.java:213)
at edu.kit.iti.formal.pse.worthwhile.interpreter.Interpreter.execute(Interpreter.java:80)
at edu.kit.iti.formal.pse.worthwhile.debugger.model.InterpreterRunner.run(InterpreterRunner.java:40)
```