Skip to main content
Source: AL0033UseToImmutableArrayOrEmptyAnalyzer.cs

Description

The pattern ?.ToImmutableArray() ?? ImmutableArray<T>.Empty is verbose. ANcpLua.Roslyn.Utilities provides ToImmutableArrayOrEmpty() for cleaner conversion.

Bad Code

using System.Collections.Immutable;

// Verbose nullable pattern
var result = items?.ToImmutableArray() ?? ImmutableArray<string>.Empty;

Good Code

using ANcpLua.Roslyn.Utilities;

// Clean extension
var result = items.ToImmutableArrayOrEmpty();

Properties

  • Category: Usage
  • Severity: Info
  • Enabled by default: True
  • Code fix available: False

Configuration

dotnet_diagnostic.AL0033.severity = suggestion

Notes

  • Handles null input gracefully
  • Returns ImmutableArray<T>.Empty for null
  • Common pattern in Roslyn analyzer development