diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-08-25 19:04:39 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-25 19:04:39 -0500 |
commit | 34eac85599875517732d53a5cc1acd3ab60479d1 (patch) | |
tree | ebfa9e493b32aba67d85d6d0bb7a6b468fac5fd4 /src/expr/node_manager.h | |
parent | c5eb77b96cd67b8d80ee8901a3f0b5ae7d54aab2 (diff) |
Replace Expr-level datatype with Node-level DType (#4875)
This PR makes two simultaneous changes:
The new API uses Node-level DType instead of Expr-level Datatype. This required converting 2 of the last remaining calls in the parser that used Expr to use the new API.
Internally constructed datatypes (e.g. for sygus) use Node-level DType instead of Expr-level Datatype. Note this required moving a block of code for handling a corner case of sygus from Datatype -> DType.
This PR removes :
ExprManger::mkDatatypeType.
The Expr-level datatype itself. This PR removes all references to its include file.
It also updates one remaining unit test from Expr -> Node.
This PR will enable further removal of other datatype-specific things in the Expr layer.
Diffstat (limited to 'src/expr/node_manager.h')
-rw-r--r-- | src/expr/node_manager.h | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/expr/node_manager.h b/src/expr/node_manager.h index cfe771ca5..592b5e7e9 100644 --- a/src/expr/node_manager.h +++ b/src/expr/node_manager.h @@ -91,10 +91,6 @@ class NodeManager { friend Expr ExprManager::mkVar(const std::string&, Type, uint32_t flags); friend Expr ExprManager::mkVar(Type, uint32_t flags); - // friend so it can access NodeManager's d_listeners and notify clients - friend std::vector<DatatypeType> ExprManager::mkMutualDatatypeTypes( - std::vector<Datatype>&, std::set<Type>&, uint32_t); - /** Predicate for use with STL algorithms */ struct NodeValueReferenceCountNonZero { bool operator()(expr::NodeValue* nv) { return nv->d_rc > 0; } @@ -380,8 +376,8 @@ class NodeManager { /** Create a variable with the given type. */ Node mkVar(const TypeNode& type, uint32_t flags = ExprManager::VAR_FLAG_NONE); Node* mkVarPtr(const TypeNode& type, uint32_t flags = ExprManager::VAR_FLAG_NONE); - -public: + + public: explicit NodeManager(ExprManager* exprManager); ~NodeManager(); |