diff --git a/src/Tapper/GlobalNamedTypeCollector.cs b/src/Tapper/GlobalNamedTypeCollector.cs index 2e76eec..2f78db9 100644 --- a/src/Tapper/GlobalNamedTypeCollector.cs +++ b/src/Tapper/GlobalNamedTypeCollector.cs @@ -43,6 +43,11 @@ public override void VisitNamespace(INamespaceSymbol symbol) public override void VisitNamedType(INamedTypeSymbol symbol) { _namedTypeSymbols.Add(symbol); + + foreach (var member in symbol.GetTypeMembers()) + { + member.Accept(this); + } } public INamedTypeSymbol[] ToArray() => _namedTypeSymbols.ToArray(); diff --git a/tests/Tapper.Tests.AsmReference.SourceTypes2/Class1.cs b/tests/Tapper.Tests.AsmReference.SourceTypes2/Class1.cs index 70f2c13..2240504 100644 --- a/tests/Tapper.Tests.AsmReference.SourceTypes2/Class1.cs +++ b/tests/Tapper.Tests.AsmReference.SourceTypes2/Class1.cs @@ -8,3 +8,11 @@ public class Class2 public string? Name2 { get; init; } public Guid Id { get; set; } } + +[TranspilationSource] +public record NestedTypeParentRequest + (IReadOnlyList Items) +{ + [TranspilationSource] + public record NestedTypeNestedTypeParentRequestItem(int Value, string? Message); +} diff --git a/tests/Tapper.Tests.AsmReference/UnitTest1.cs b/tests/Tapper.Tests.AsmReference/UnitTest1.cs index 64ab576..6b8e3a4 100644 --- a/tests/Tapper.Tests.AsmReference/UnitTest1.cs +++ b/tests/Tapper.Tests.AsmReference/UnitTest1.cs @@ -100,5 +100,19 @@ private static async Task ExecCommand(string generatorProject, string projectFul id: string; } +/** Transpiled from Tapper.Tests.AsmReference.SourceTypes2.NestedTypeParentRequest */ +export type NestedTypeParentRequest = { + /** Transpiled from System.Collections.Generic.IReadOnlyList */ + items: NestedTypeNestedTypeParentRequestItem[]; +} + +/** Transpiled from Tapper.Tests.AsmReference.SourceTypes2.NestedTypeParentRequest.NestedTypeNestedTypeParentRequestItem */ +export type NestedTypeNestedTypeParentRequestItem = { + /** Transpiled from int */ + value: number; + /** Transpiled from string? */ + message?: string; +} + "; }