Skip to content

Commit 1defef5

Browse files
committed
Fix handling of array fields
Fixes #75
1 parent d81dd31 commit 1defef5

1 file changed

Lines changed: 19 additions & 1 deletion

File tree

src/ImmutableObjectGraph.Generation/CodeGen.cs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -883,7 +883,25 @@ private static bool HasAttribute<T>(INamedTypeSymbol type)
883883

884884
private static NameSyntax GetFullyQualifiedSymbolName(INamespaceOrTypeSymbol symbol)
885885
{
886-
if (symbol == null || string.IsNullOrEmpty(symbol.Name))
886+
if (symbol == null)
887+
{
888+
return null;
889+
}
890+
891+
if (symbol.Kind == SymbolKind.ArrayType)
892+
{
893+
var arraySymbol = (IArrayTypeSymbol)symbol;
894+
var elementType = GetFullyQualifiedSymbolName(arraySymbol.ElementType);
895+
896+
// I don't know how to create a NameSyntax with an array inside it,
897+
// so use ParseName as an escape hatch.
898+
////return SyntaxFactory.ArrayType(elementType)
899+
//// .AddRankSpecifiers(SyntaxFactory.ArrayRankSpecifier()
900+
//// .AddSizes(SyntaxFactory.OmittedArraySizeExpression()));
901+
return SyntaxFactory.ParseName(elementType.ToString() + "[]");
902+
}
903+
904+
if (string.IsNullOrEmpty(symbol.Name))
887905
{
888906
return null;
889907
}

0 commit comments

Comments
 (0)