It's overkill to use the scope machinery for anything except for the top-level variables. This means that in x.a, we resolve x using the scope machinery, but a is just a symbol. This is because once we have resolved the top level, field access should not have any shadowing.
So we will need to change AlgDot to have a Symbol head, and AlgStruct to have an OrderedDict of fields rather than a TypeScope. @kris-brown this is ASKEM priority 1.
It's overkill to use the scope machinery for anything except for the top-level variables. This means that in
x.a
, we resolvex
using the scope machinery, buta
is just a symbol. This is because once we have resolved the top level, field access should not have any shadowing.So we will need to change
AlgDot
to have aSymbol
head, andAlgStruct
to have anOrderedDict
of fields rather than aTypeScope
. @kris-brown this is ASKEM priority 1.