コード例 #1
0
                public override bool VisitArrayType(IArrayTypeSymbol symbol)
                {
                    if (symbol.NullableAnnotation() == NullableAnnotation.None)
                    {
                        return(true);
                    }

                    return(Visit(symbol.ElementType));
                }
        protected override SyntaxNode GetTypeSyntaxForArray(IArrayTypeSymbol type)
        {
            var typeName = TypeNameVisitor.GetTypeSyntaxForSymbol(type.ElementType);

            if (type.ElementType.IsReferenceType)
            {
                var additionalAnnotation = type.NullableAnnotation() switch
                {
                    NullableAnnotation.None => NullableSyntaxAnnotationEx.Oblivious,
                    NullableAnnotation.Annotated => NullableSyntaxAnnotationEx.AnnotatedOrNotAnnotated,
                    NullableAnnotation.NotAnnotated => NullableSyntaxAnnotationEx.AnnotatedOrNotAnnotated,
                    _ => null,
                };

                if (additionalAnnotation is not null)
                {
                    typeName = typeName.WithAdditionalAnnotations(additionalAnnotation);
                }
            }

            return(typeName);
        }