I'm surprised to see this extra check here rather than just `if (isTrait()) {...} else { super.blah(..)}`. It looks suspicious that we need it? Have we build the field declaration incorrectly in GCUD?