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); }