Get correct NodeManagerScope for toStrings in API (#5216)
authormakaimann <makaim@stanford.edu>
Thu, 8 Oct 2020 16:35:56 +0000 (09:35 -0700)
committerGitHub <noreply@github.com>
Thu, 8 Oct 2020 16:35:56 +0000 (09:35 -0700)
commit35d080bfb56ff96fd41b31ce7025c019193f6abc
tree71eb7ddcb5743d0ee85899738eb2903098964df6
parent900a7217f8843a17f5ea6bb744b6013f2f394ed7
Get correct NodeManagerScope for toStrings in API (#5216)

Gets the correct `NodeManagerScope` for getting the `toString` of a term, op, or sort. The following program had strange output:
```
#include "cvc4/api/cvc4cpp.h"
using namespace CVC4::api;
using namespace std;
int main()
{
  Solver s;
  Term x = s.mkConst(s.getIntegerSort(), "x");
  cout << "x = " << x << endl;
  Solver s2;
  cout << "x = " << x << endl;
  return 0;
}
```

It was outputting:
```
x = x
x = var_267
```

Fixing the scope makes the output `x = x` both times, as expected.
src/api/cvc4cpp.cpp
test/unit/api/op_black.h
test/unit/api/sort_black.h
test/unit/api/term_black.h