From 95d7e89a577f7891ec64fbd6cccb5be7200bc57a Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Mon, 19 Dec 2011 12:06:45 +0000 Subject: [PATCH] Bugfix: previous "improvement" to API wrt undefined constants broke some models, e.g. when trying to evaluate pow/floor etc. with wrong number of arguments. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@4249 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/parser/ast/ModulesFile.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/prism/src/parser/ast/ModulesFile.java b/prism/src/parser/ast/ModulesFile.java index 0a532e69..03594221 100644 --- a/prism/src/parser/ast/ModulesFile.java +++ b/prism/src/parser/ast/ModulesFile.java @@ -490,14 +490,6 @@ public class ModulesFile extends ASTElement // Check constants for cyclic dependencies constantList.findCycles(); - // If there are no undefined constants, set up values for constants - // (to avoid need for a later call to setUndefinedConstants). - // NB: Can't call setUndefinedConstants if there are undefined constants - // because semanticCheckAfterConstants may fail. - if (getUndefinedConstants().isEmpty()) { - setUndefinedConstants(null); - } - // Check variable names, etc. checkVarNames(); // Find all instances of variables, replace identifiers with variables. @@ -512,8 +504,16 @@ public class ModulesFile extends ASTElement // Various semantic checks semanticCheck(this); + // Type checking typeCheck(); + // If there are no undefined constants, set up values for constants + // (to avoid need for a later call to setUndefinedConstants). + // NB: Can't call setUndefinedConstants if there are undefined constants + // because semanticCheckAfterConstants may fail. + if (getUndefinedConstants().isEmpty()) { + setUndefinedConstants(null); + } } // Check formula identifiers