I made a fix by creating a new construction treatAsPath in the grammar and used it instead of path in the member of rule. This new construction allows for nested treat as like this:
from Animal h where treat ( treat ( h as Human).favoritePet as Cat).mate = :foo
It fixes the bug I found and all tests passes. See pull request.
This being said, I think there are other places where the treat as construction should be allowed in the grammar. What do you think?
|