Skip to content

Commit

Permalink
fixes for ticket:4248
Browse files Browse the repository at this point in the history
- properly revert flag Flags.CHECK_MODEL to the previous state
  • Loading branch information
adrpo authored and OpenModelica-Hudson committed Feb 8, 2017
1 parent ccdf5e9 commit d9d4df5
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 23 deletions.
21 changes: 11 additions & 10 deletions Compiler/Script/CevalScript.mo
Expand Up @@ -1700,17 +1700,18 @@ end getVariableNames;
public function getPackageVersion
input Absyn.Path path;
input Absyn.Program p;
output String version;
output String version = "";
protected
Boolean evalParamAnn;
algorithm
version := matchcontinue (path,p)
case (_,_)
equation
Config.setEvaluateParametersInAnnotations(true);
Absyn.STRING(version) = Interactive.getNamedAnnotation(path, p, Absyn.IDENT("version"), SOME(Absyn.STRING("")), Interactive.getAnnotationExp);
Config.setEvaluateParametersInAnnotations(false);
then version;
else "";
end matchcontinue;
evalParamAnn := Config.getEvaluateParametersInAnnotations();
Config.setEvaluateParametersInAnnotations(true);
try
Absyn.STRING(version) := Interactive.getNamedAnnotation(path, p, Absyn.IDENT("version"), SOME(Absyn.STRING("")), Interactive.getAnnotationExp);
else
version := "";
end try;
Config.setEvaluateParametersInAnnotations(evalParamAnn);
end getPackageVersion;

protected function errorToValue
Expand Down
41 changes: 28 additions & 13 deletions Compiler/Script/Interactive.mo
Expand Up @@ -1004,7 +1004,7 @@ protected
Absyn.Class cls;
list<GlobalScript.LoadedFile> lf;
Absyn.Modification mod;
Boolean finalPrefix, flowPrefix, streamPrefix, protected_, repl, dref1, dref2;
Boolean finalPrefix, flowPrefix, streamPrefix, protected_, repl, dref1, dref2, evalParamAnn;
Boolean addFunctions;
FCore.Graph env;
Absyn.Exp exp;
Expand Down Expand Up @@ -1126,9 +1126,10 @@ algorithm
algorithm
{Absyn.CREF(componentRef = cr)} := args;
ErrorExt.setCheckpoint("getComponentAnnotations");
evalParamAnn := Config.getEvaluateParametersInAnnotations();
Config.setEvaluateParametersInAnnotations(true);
outResult := getComponentAnnotations(cr, p);
Config.setEvaluateParametersInAnnotations(false);
Config.setEvaluateParametersInAnnotations(evalParamAnn);
ErrorExt.rollBack("getComponentAnnotations");
then
outResult;
Expand All @@ -1137,9 +1138,10 @@ algorithm
algorithm
{Absyn.CREF(componentRef = cr), Absyn.INTEGER(value = n)} := args;
ErrorExt.setCheckpoint("getNthComponentAnnotation");
evalParamAnn := Config.getEvaluateParametersInAnnotations();
Config.setEvaluateParametersInAnnotations(true);
outResult := getNthComponentAnnotation(cr, p, n);
Config.setEvaluateParametersInAnnotations(false);
Config.setEvaluateParametersInAnnotations(evalParamAnn);
ErrorExt.rollBack("getNthComponentAnnotation");
then
outResult;
Expand Down Expand Up @@ -1226,9 +1228,10 @@ algorithm
{Absyn.CREF(componentRef = cr), Absyn.INTEGER(value = n)} := args;
ErrorExt.setCheckpoint("getNthConnectionAnnotation");
path := Absyn.crefToPath(cr);
evalParamAnn := Config.getEvaluateParametersInAnnotations();
Config.setEvaluateParametersInAnnotations(true);
outResult := getNthConnectionAnnotation(path, p, n);
Config.setEvaluateParametersInAnnotations(false);
Config.setEvaluateParametersInAnnotations(evalParamAnn);
ErrorExt.rollBack("getNthConnectionAnnotation");
then
outResult;
Expand All @@ -1249,9 +1252,10 @@ algorithm
algorithm
{Absyn.CREF(componentRef = cr), Absyn.INTEGER(value = n)} := args;
ErrorExt.setCheckpoint("getNthConnectorIconAnnotation");
evalParamAnn := Config.getEvaluateParametersInAnnotations();
Config.setEvaluateParametersInAnnotations(true);
outResult := getNthConnectorIconAnnotation(Absyn.crefToPath(cr), p, n);
Config.setEvaluateParametersInAnnotations(false);
Config.setEvaluateParametersInAnnotations(evalParamAnn);
ErrorExt.rollBack("getNthConnectorIconAnnotation");
then
outResult;
Expand All @@ -1260,9 +1264,10 @@ algorithm
algorithm
{Absyn.CREF(componentRef = cr)} := args;
ErrorExt.setCheckpoint("getIconAnnotation");
evalParamAnn := Config.getEvaluateParametersInAnnotations();
Config.setEvaluateParametersInAnnotations(true);
outResult := getIconAnnotation(Absyn.crefToPath(cr), p);
Config.setEvaluateParametersInAnnotations(false);
Config.setEvaluateParametersInAnnotations(evalParamAnn);
ErrorExt.rollBack("getIconAnnotation");
then
outResult;
Expand All @@ -1271,9 +1276,10 @@ algorithm
algorithm
{Absyn.CREF(componentRef = cr)} := args;
ErrorExt.setCheckpoint("getDiagramAnnotation");
evalParamAnn := Config.getEvaluateParametersInAnnotations();
Config.setEvaluateParametersInAnnotations(true);
outResult := getDiagramAnnotation(Absyn.crefToPath(cr), p);
Config.setEvaluateParametersInAnnotations(false);
Config.setEvaluateParametersInAnnotations(evalParamAnn);
ErrorExt.rollBack("getDiagramAnnotation");
then
outResult;
Expand All @@ -1282,9 +1288,10 @@ algorithm
algorithm
{Absyn.CREF(componentRef = cr), Absyn.INTEGER(value = n)} := args;
ErrorExt.setCheckpoint("getNthInheritedClassIconMapAnnotation");
evalParamAnn := Config.getEvaluateParametersInAnnotations();
Config.setEvaluateParametersInAnnotations(true);
outResult := getNthInheritedClassMapAnnotation(Absyn.crefToPath(cr), n, p, "IconMap");
Config.setEvaluateParametersInAnnotations(false);
Config.setEvaluateParametersInAnnotations(evalParamAnn);
ErrorExt.rollBack("getNthInheritedClassIconMapAnnotation");
then
outResult;
Expand All @@ -1293,9 +1300,10 @@ algorithm
algorithm
{Absyn.CREF(componentRef = cr), Absyn.INTEGER(value = n)} := args;
ErrorExt.setCheckpoint("getNthInheritedClassDiagramMapAnnotation");
evalParamAnn := Config.getEvaluateParametersInAnnotations();
Config.setEvaluateParametersInAnnotations(true);
outResult := getNthInheritedClassMapAnnotation(Absyn.crefToPath(cr), n, p, "DiagramMap");
Config.setEvaluateParametersInAnnotations(false);
Config.setEvaluateParametersInAnnotations(evalParamAnn);
ErrorExt.rollBack("getNthInheritedClassDiagramMapAnnotation");
then
outResult;
Expand All @@ -1305,10 +1313,11 @@ algorithm
{Absyn.CREF(componentRef = cr),
Absyn.CREF(componentRef = Absyn.CREF_IDENT(name, {}))} := args;
ErrorExt.setCheckpoint("getNamedAnnotation");
evalParamAnn := Config.getEvaluateParametersInAnnotations();
Config.setEvaluateParametersInAnnotations(true);
outResult := getNamedAnnotation(Absyn.crefToPath(cr), p,
Absyn.IDENT(name), SOME("{}"), getAnnotationValue);
Config.setEvaluateParametersInAnnotations(false);
Config.setEvaluateParametersInAnnotations(evalParamAnn);
ErrorExt.rollBack("getNamedAnnotation");
then
outResult;
Expand Down Expand Up @@ -13752,7 +13761,7 @@ protected function buildEnvForGraphicProgramFull
output FCore.Graph outEnv;
output Absyn.Program outProgram;
protected
Boolean check_model, eval_param;
Boolean check_model, eval_param, failed = false;
Absyn.Program graphic_program;
SCode.Program scode_program;
algorithm
Expand All @@ -13765,11 +13774,17 @@ algorithm
Flags.setConfigBool(Flags.CHECK_MODEL, true);
Config.setEvaluateParametersInAnnotations(true);

(outCache, outEnv) := Inst.instantiateClass(FCore.emptyCache(),
InnerOuter.emptyInstHierarchy, scode_program, inModelPath);
try
(outCache, outEnv) := Inst.instantiateClass(FCore.emptyCache(), InnerOuter.emptyInstHierarchy, scode_program, inModelPath);
else
failed := true;
end try;

Config.setEvaluateParametersInAnnotations(eval_param);
Flags.setConfigBool(Flags.CHECK_MODEL, check_model);
if failed then
fail();
end if;
end buildEnvForGraphicProgramFull;

protected function getAnnotationString
Expand Down

0 comments on commit d9d4df5

Please sign in to comment.