It's necessary for preserving DescriptorRenderer invariant, namely only valid code should be generated