private void VisitTypeSymbolWithAnnotations(TypeSymbolWithAnnotations type, AbstractSymbolDisplayVisitor visitorOpt = null)
        {
            var visitor    = visitorOpt ?? this.NotFirstVisitor;
            var typeSymbol = type.TypeSymbol;

            typeSymbol.Accept(visitor);
            AddNullableAnnotations(type);
        }
        private void VisitTypeSymbolWithAnnotations(TypeSymbolWithAnnotations type, AbstractSymbolDisplayVisitor visitorOpt = null)
        {
            var visitor    = (SymbolDisplayVisitor)(visitorOpt ?? this.NotFirstVisitor);
            var typeSymbol = type.TypeSymbol;

            if (typeSymbol.TypeKind == TypeKind.Array)
            {
                visitor.VisitArrayType((IArrayTypeSymbol)typeSymbol, typeOpt: type);
            }
            else
            {
                typeSymbol.Accept(visitor);
                AddNullableAnnotations(type);
            }
        }