This generated code needs an optimization pass to eliminate the assignments to the opaque members.
This will help in expanding flattening and reducing splitting.