summaryrefslogtreecommitdiff
path: root/src/expr
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2010-10-29 19:44:03 +0000
committerMorgan Deters <mdeters@gmail.com>2010-10-29 19:44:03 +0000
commit97954a7b32e4606e2f9d561f2692e99f3ab46bcd (patch)
treeb365799b4b00d055012d0aa7a6e4b712c5e85d48 /src/expr
parent2771a78471f42951a01a269e4ea8b993d3807533 (diff)
minor fixes as a result of review of Chris's getType() rewrite; also fix some macros to make various GCC versions happy
Diffstat (limited to 'src/expr')
-rw-r--r--src/expr/node_manager.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/expr/node_manager.cpp b/src/expr/node_manager.cpp
index 28404005c..280c55254 100644
--- a/src/expr/node_manager.cpp
+++ b/src/expr/node_manager.cpp
@@ -423,9 +423,9 @@ TypeNode NodeManager::computeType(TNode n, bool check)
}
setAttribute(n, TypeAttr(), typeNode);
- setAttribute(n, TypeCheckedAttr(),
+ setAttribute(n, TypeCheckedAttr(),
check || getAttribute(n, TypeCheckedAttr()));
-
+
return typeNode;
}
@@ -449,8 +449,10 @@ TypeNode NodeManager::getType(TNode n, bool check)
bool readyToCompute = true;
- for( TNode::iterator it = m.begin(), end = m.end() ; it != end; ++it ) {
- if( !hasAttribute(*it, TypeAttr())
+ for( TNode::iterator it = m.begin(), end = m.end();
+ it != end;
+ ++it ) {
+ if( !hasAttribute(*it, TypeAttr())
|| (check && !getAttribute(*it, TypeCheckedAttr())) ) {
readyToCompute = false;
worklist.push(*it);
@@ -459,23 +461,23 @@ TypeNode NodeManager::getType(TNode n, bool check)
if( readyToCompute ) {
/* All the children have types, time to compute */
- typeNode = computeType(m,check);
+ typeNode = computeType(m, check);
worklist.pop();
- }
+ }
} // end while
/* Last type computed in loop should be the type of n */
- Assert( typeNode == getAttribute(n,TypeAttr()) );
+ Assert( typeNode == getAttribute(n, TypeAttr()) );
} else if( !hasType || needsCheck ) {
/* We can compute the type top-down, without worrying about
deep recursion. */
- typeNode = computeType(n,check);
+ typeNode = computeType(n, check);
}
/* The type should be have been computed and stored. */
Assert( hasAttribute(n, TypeAttr()) );
/* The check should have happened, if we asked for it. */
- Assert( !check || hasAttribute(n, TypeCheckedAttr()) );
+ Assert( !check || getAttribute(n, TypeCheckedAttr()) );
Debug("getType") << "type of " << n << " is " << typeNode << std::endl;
return typeNode;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback