From 886a1b2b061c11a930904ed9d9d78ba1eeaece39 Mon Sep 17 00:00:00 2001 From: Ivar Nesje Date: Tue, 6 May 2025 21:52:01 +0200 Subject: [PATCH] Use LineSpan.Path instead of SourceTree?.FilePath when trimming Location If the Location is created without referencing the SourceTree, the previous implementation of GetLocationTrimmed lost the file path resulting in diagnostic messages without clickable files. --- src/PolyType.Roslyn/Helpers/RoslynHelpers.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/PolyType.Roslyn/Helpers/RoslynHelpers.cs b/src/PolyType.Roslyn/Helpers/RoslynHelpers.cs index ab60826d..ae2059cc 100644 --- a/src/PolyType.Roslyn/Helpers/RoslynHelpers.cs +++ b/src/PolyType.Roslyn/Helpers/RoslynHelpers.cs @@ -342,7 +342,9 @@ attributeData.ConstructorArguments[0].Value is INamedTypeSymbol typeParam && /// public static Location GetLocationTrimmed(this Location location) { - return Location.Create(location.SourceTree?.FilePath ?? string.Empty, location.SourceSpan, location.GetLineSpan().Span); + var lineSpan = location.GetLineSpan(); + + return Location.Create(lineSpan.Path ?? string.Empty, location.SourceSpan, lineSpan.Span); } public static ICollection GetSortedTypeHierarchy(this ITypeSymbol type)