With a cache declaration it is possible to change the caching of an NTA declared in the abstract grammar:
A ::= /A/; syn lazy A A.getA() = new A(); uncache A.getA(); // Should not be allowed.
It is also possible to omit the
lazy in the attribute declaration matching the abstract grammar declared NTA which leads to the same behavior. This issue should not be about fixing what happens when
lazy is omitted, it is just about disabling the caching of an NTA as above.
Note that it is not possible to make a sythesized NTA uncached using a cache declaration:
syn nta A A.ntaA() = new A(); uncache A.ntaA(); // No effect.