private static void VerifyVisitor(ProtoDescriptor descriptor, VisitorVerificationAction verify = null)
        {
            // ReSharper disable once RedundantEmptyObjectOrCollectionInitializer
            var visitor = new CodeGenerationProtoDescriptorVisitor {
            };

            visitor.Visit(descriptor.AssertNotNull());
            verify?.Invoke(visitor, descriptor);
        }
        // TODO: TBD: where were we headed with these? apparently somewhere else why were they private?
        private static void VerifyVisitorThrows <TException>(VisitorVerificationAction verifyVisitor
                                                             , ProtoDescriptor descriptor, Action <TException> verifyException = null)
            where TException : Exception
        {
            Action GetVisitorVerificationAction() => () => VerifyVisitor(descriptor, verifyVisitor);

            var exception = GetVisitorVerificationAction().AssertThrows <TException>();

            verifyException?.Invoke(exception);
        }