Menu

#184 Pre-conditions of functions does not seem in scope in guards

0.2.0
closed
None
interpreter
2014-01-03
2013-12-19
No

For the standard Library example if one selects the renew event and give any value of the right type a run-time error appears with:
Exception in thread "main" Error 4034: Name 'pre_ExeReturn(Return, Library)' not in scope in 'C:\subversion\compasssvn\Common\CaseStudies\Library\Library.cml' at line 109:20
at org.overture.interpreter.runtime.VdmRuntimeError.abort(VdmRuntimeError.java:13)
at org.overture.interpreter.runtime.Context.lookup(Context.java:296)
at org.overture.interpreter.eval.ExpressionEvaluator.caseAVariableExp(ExpressionEvaluator.java:1712)
at org.overture.interpreter.eval.ExpressionEvaluator.caseAVariableExp(ExpressionEvaluator.java:124)
at org.overture.ast.expressions.AVariableExp.apply(AVariableExp.java:319)
at eu.compassresearch.core.interpreter.CmlExpressionVisitor$VdmExpressionEvaluator.defaultPExp(CmlExpressionVisitor.java:82)
at eu.compassresearch.core.interpreter.CmlExpressionVisitor.defaultPExp(CmlExpressionVisitor.java:110)
at eu.compassresearch.core.interpreter.CmlExpressionVisitor.defaultPExp(CmlExpressionVisitor.java:53)
at org.overture.ast.analysis.QuestionAnswerAdaptor.caseAVariableExp(QuestionAnswerAdaptor.java:1131)
at org.overture.ast.expressions.AVariableExp.apply(AVariableExp.java:319)
at org.overture.interpreter.eval.ExpressionEvaluator.caseAApplyExp(ExpressionEvaluator.java:136)
at org.overture.interpreter.eval.ExpressionEvaluator.caseAApplyExp(ExpressionEvaluator.java:124)
at org.overture.ast.expressions.AApplyExp.apply(AApplyExp.java:375)
at eu.compassresearch.core.interpreter.CmlExpressionVisitor$VdmExpressionEvaluator.defaultPExp(CmlExpressionVisitor.java:82)
at eu.compassresearch.core.interpreter.CmlExpressionVisitor.defaultPExp(CmlExpressionVisitor.java:110)
at eu.compassresearch.core.interpreter.CmlExpressionVisitor.defaultPExp(CmlExpressionVisitor.java:53)
at org.overture.ast.analysis.QuestionAnswerAdaptor.caseAApplyExp(QuestionAnswerAdaptor.java:621)
at org.overture.ast.expressions.AApplyExp.apply(AApplyExp.java:375)
at eu.compassresearch.core.interpreter.ActionInspectionVisitor.caseAGuardedAction(ActionInspectionVisitor.java:554)
at eu.compassresearch.core.interpreter.ActionInspectionVisitor.caseAGuardedAction(ActionInspectionVisitor.java:84)
at eu.compassresearch.ast.actions.AGuardedAction.apply(AGuardedAction.java:326)
at eu.compassresearch.core.interpreter.CmlInspectionVisitor.defaultPAction(CmlInspectionVisitor.java:47)
at eu.compassresearch.core.interpreter.CmlInspectionVisitor.defaultPAction(CmlInspectionVisitor.java:21)
at eu.compassresearch.ast.analysis.QuestionAnswerCMLAdaptor.caseAGuardedAction(QuestionAnswerCMLAdaptor.java:908)
at eu.compassresearch.ast.actions.AGuardedAction.apply(AGuardedAction.java:326)
at eu.compassresearch.core.interpreter.ConcreteCmlBehaviour.inspect(ConcreteCmlBehaviour.java:312)
at eu.compassresearch.core.interpreter.CommonInspectionVisitor.caseASequentialComposition(CommonInspectionVisitor.java:804)
at eu.compassresearch.core.interpreter.ActionInspectionVisitor.caseASequentialCompositionAction(ActionInspectionVisitor.java:700)
at eu.compassresearch.core.interpreter.ActionInspectionVisitor.caseASequentialCompositionAction(ActionInspectionVisitor.java:84)
at eu.compassresearch.ast.actions.ASequentialCompositionAction.apply(ASequentialCompositionAction.java:325)
at eu.compassresearch.core.interpreter.CmlInspectionVisitor.defaultPAction(CmlInspectionVisitor.java:47)
at eu.compassresearch.core.interpreter.CmlInspectionVisitor.defaultPAction(CmlInspectionVisitor.java:21)
at eu.compassresearch.ast.analysis.QuestionAnswerCMLAdaptor.caseASequentialCompositionAction(QuestionAnswerCMLAdaptor.java:918)
at eu.compassresearch.ast.actions.ASequentialCompositionAction.apply(ASequentialCompositionAction.java:325)
at eu.compassresearch.core.interpreter.ConcreteCmlBehaviour.inspect(ConcreteCmlBehaviour.java:312)
at eu.compassresearch.core.interpreter.ConcreteCmlBehaviour.deadlocked(ConcreteCmlBehaviour.java:480)
at eu.compassresearch.core.interpreter.ConcreteCmlBehaviour.getState(ConcreteCmlBehaviour.java:520)
at eu.compassresearch.core.interpreter.debug.CmlProcessDTO.<init>(CmlProcessDTO.java:50)
at eu.compassresearch.core.interpreter.debug.CmlInterpreterStateDTO.<init>(CmlInterpreterStateDTO.java:97)
at eu.compassresearch.core.interpreter.debug.CmlInterpreterStateDTO.<init>(CmlInterpreterStateDTO.java:107)
at eu.compassresearch.core.interpreter.debug.CmlInterpreterStateDTO.createCmlInterpreterStateDTO(CmlInterpreterStateDTO.java:29)
at eu.compassresearch.core.interpreter.debug.SocketServerCmlDebugger.start(SocketServerCmlDebugger.java:426)
at eu.compassresearch.core.interpreter.debug.DebugMain.main(DebugMain.java:178)

Discussion

  • Kenneth Lausdahl

    • Module: unknown --> interpreter
     
  • Kenneth Lausdahl

    • assigned_to: Kenneth Lausdahl
     
  • Kenneth Lausdahl

    Fixed in [cc7331bc10c7fa62d04f45b4ab692cf36d7523bd] the global context was not correctly created.

     
  • Kenneth Lausdahl

    • status: open --> closed
     
  • Kenneth Lausdahl

    Fixed in [cc7331bc10c7fa62d04f45b4ab692cf36d7523bd] the global context was not correctly created.