diff --git a/src/generators/Silk.NET.SilkTouch.Symbols/SymbolVisitor.cs b/src/generators/Silk.NET.SilkTouch.Symbols/SymbolVisitor.cs index fab812e421..34f757a191 100644 --- a/src/generators/Silk.NET.SilkTouch.Symbols/SymbolVisitor.cs +++ b/src/generators/Silk.NET.SilkTouch.Symbols/SymbolVisitor.cs @@ -118,7 +118,7 @@ protected virtual TypeReference VisitTypeReference(TypeReference typeReference) { if (typeReference is ExternalTypeReference etr) return VisitExternalTypeReference(etr); if (typeReference is InternalTypeReference itr) return VisitInternalTypeReference(itr); - if (typeReference is UnresolvedTypeReference utr) UnresolvedTypeReference.ThrowInvalidSymbol(); + if (typeReference is UnresolvedTypeReference utr) UnresolvedTypeReference.ThrowInvalidSymbol(utr); if (typeReference is PointerTypeReference ptr) return VisitPointerTypeReference(ptr); if (typeReference is FunctionPointerTypeReference fptr) return VisitFunctionPointerTypeReference(fptr); return ThrowUnknownSymbol(typeReference); diff --git a/src/generators/Silk.NET.SilkTouch.Symbols/UnresolvedTypeReference.cs b/src/generators/Silk.NET.SilkTouch.Symbols/UnresolvedTypeReference.cs index d51966a102..b2ffde3d42 100644 --- a/src/generators/Silk.NET.SilkTouch.Symbols/UnresolvedTypeReference.cs +++ b/src/generators/Silk.NET.SilkTouch.Symbols/UnresolvedTypeReference.cs @@ -14,9 +14,12 @@ public sealed record UnresolvedTypeReference(string Text) : TypeReference /// Throw helper to use when encountering when type resolution should've already happened. /// /// - public static void ThrowInvalidSymbol() + public static void ThrowInvalidSymbol(UnresolvedTypeReference utr) { + // This is by far the most common exception during generation, so make sure it's useful!! throw new InvalidOperationException - ($"Visited {nameof(UnresolvedTypeReference)}, but type resolution should have already happened."); + ( + $"Visited {nameof(UnresolvedTypeReference)}, but type resolution should have already happened. Text: \"{utr.Text}\"" + ); } }