AU-ExoMars / PCOT

Pancam Operations Toolkit
MIT License
3 stars 0 forks source link

Macro instance creation problems #14

Closed jimfinnis closed 3 years ago

jimfinnis commented 3 years ago

OK, originally I thought this was all macro creation infinitely recursing. However, my head was clearly on wrong, because it's simpler than that.

If you try to create a macro node inside itself, then you get the recursion. Repro:

jimfinnis commented 3 years ago

Fix: macros in macros prohibited for now - I'm really not sure what the ramifications might be. Macros are hideous enough as it is.

jimfinnis commented 3 years ago

OK, a quick test seems to show that macros-in-macros works. I've modified the code so that we can do that, but we cycle check. This is done with XFormType.cycleCheck(), which checks to see that the (macro) node which we are about to insert into a graph does not contain that graph as a prototype, recursively. Naturally for non-macro nodes this returns false.