fsharp icon indicating copy to clipboard operation
fsharp copied to clipboard

Some Signature Files seem to be missing from the SourceLink metadata

Open baronfel opened this issue 3 years ago • 2 comments

I was doing some work in FSAC with the Typed Tree, and tried to go-to-definition on a type that was defined in Symbols\Exprs.fsi, but go-to-definition failed with an error saying that no such file could be found in the list of documents embedded in the PDB. The FSAC logging here is very verbose, so I've embedded it here for perusal:

FSAC output for a failed sourcelink-powered go-to-definition
[16:42:27.205 INF] [FsAutoComplete.Sourcelink] Reading from C:\Users\chusk\.nuget\packages\fsharp.compiler.service\41.0.3\lib\netstandard2.0\FSharp.Compiler.Service.dll for source file d:\a\_work\1\s\src\fsharp\symbols\Exprs.fsi
[16:42:27.206 INF] [FsAutoComplete.Sourcelink] Reading metadata information for DLL C:\Users\chusk\.nuget\packages\fsharp.compiler.service\41.0.3\lib\netstandard2.0\FSharp.Compiler.Service.dll
[16:42:27.222 INF] [FsAutoComplete.Sourcelink] Read sourcelink structure 
    {"documents": {"D:\\a\\_work\\1\\s\\*": "https://raw.githubusercontent.com/dotnet/fsharp/20b60091feda9966a9c12ae56edb39c0e5681f15/*"} }
[16:42:27.227 WRN] [FsAutoComplete.Sourcelink] No sourcelinked source file matched d:\a\_work\1\s\src\fsharp\symbols\Exprs.fsi. 
    Available documents were (normalized paths here): 
        ["D:/a/_work/1/s/artifacts/obj/FSharp.Compiler.Service/Release/netstandard2.0/FSComp.fs"
         "D:/a/_work/1/s/artifacts/obj/FSharp.Compiler.Service/Release/netstandard2.0/FSIstrings.fs"
         "D:/a/_work/1/s/artifacts/obj/FSharp.Compiler.Service/Release/netstandard2.0/UtilsStrings.fs"
         "D:/a/_work/1/s/src/fsharp/utils/sformat.fs"
         "D:/a/_work/1/s/src/fsharp/Logger.fs"
         "D:/a/_work/1/s/src/fsharp/utils/HashMultiMap.fs"
         "D:/a/_work/1/s/src/fsharp/utils/TaggedCollections.fs"
         "D:/a/_work/1/s/src/fsharp/absil/illib.fs"
         "D:/a/_work/1/s/src/fsharp/utils/FileSystem.fs"
         "D:/a/_work/1/s/src/fsharp/InternalCollections.fs"
         "D:/a/_work/1/s/src/fsharp/QueueList.fs"
         "D:/a/_work/1/s/src/fsharp/utils/PathMap.fs"
         "D:/a/_work/1/s/src/fsharp/range.fs"
         "D:/a/_work/1/s/src/fsharp/Diagnostics.fs"
         "D:/a/_work/1/s/src/fsharp/TextLayoutRender.fs"
         "D:/a/_work/1/s/src/fsharp/utils/prim-lexing.fs"
         "D:/a/_work/1/s/src/fsharp/utils/prim-parsing.fs"
         "D:/a/_work/1/s/src/fsharp/ReferenceResolver.fs"
         "D:/a/_work/1/s/src/fsharp/XmlDoc.fs"
         "D:/a/_work/1/s/src/fsharp/SyntaxTrivia.fs"
         "D:/a/_work/1/s/src/fsharp/SyntaxTree.fs"
         "D:/a/_work/1/s/src/fsharp/tainted.fs"
         "D:/a/_work/1/s/src/fsharp/FxResolver.fs"
         "D:/a/_work/1/s/src/fsharp/DependencyManager/AssemblyResolveHandler.fs"
         "D:/a/_work/1/s/src/fsharp/DependencyManager/NativeDllResolveHandler.fs"
         "D:/a/_work/1/s/src/fsharp/DependencyManager/DependencyProvider.fs"
         "D:/a/_work/1/s/src/fsharp/symbols/SymbolHelpers.fs"
         "D:/a/_work/1/s/src/fsharp/symbols/Symbols.fs"
         "D:/a/_work/1/s/src/fsharp/symbols/Exprs.fs"
         "D:/a/_work/1/s/src/fsharp/service/SemanticClassification.fs"
         "D:/a/_work/1/s/src/fsharp/service/ItemKey.fs"
         "D:/a/_work/1/s/src/fsharp/service/SemanticClassificationKey.fs"
         "D:/a/_work/1/s/src/fsharp/service/FSharpSource.fs"
         "D:/a/_work/1/s/src/fsharp/service/IncrementalBuild.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceCompilerDiagnostics.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceConstants.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceDeclarationLists.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceLexing.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceParseTreeWalk.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceNavigation.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceParamInfoLocations.fs"
         "D:/a/_work/1/s/src/fsharp/service/FSharpParseFileResults.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceParsedInputOps.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceAssemblyContent.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceXmlDocParser.fs"
         "D:/a/_work/1/s/src/fsharp/service/ExternalSymbol.fs"
         "D:/a/_work/1/s/src/fsharp/service/QuickParse.fs"
         "D:/a/_work/1/s/src/fsharp/service/FSharpCheckerResults.fs"
         "D:/a/_work/1/s/src/fsharp/service/service.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceInterfaceStubGenerator.fs"
         "D:/a/_work/1/s/src/fsharp/LegacyHostedCompilerForTesting.fs"
         "D:/a/_work/1/s/src/fsharp/fsi/fsi.fs"
         "D:/a/_work/1/s/src/fsharp/FSharp.Compiler.Service/unknown"
         "D:/a/_work/1/s/src/fsharp/fsi/fsi.fsi"
         "D:/a/_work/1/s/src/fsharp/service/ServiceAnalysis.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceAnalysis.fsi"
         "D:/a/_work/1/s/src/fsharp/service/ServiceStructure.fs"
         "D:/a/_work/1/s/src/fsharp/service/ServiceInterfaceStubGenerator.fsi"
         "D:/a/_work/1/s/src/fsharp/service/service.fsi"
         "D:/a/_work/1/s/src/fsharp/service/FSharpCheckerResults.fsi"
         "D:/a/_work/1/s/src/fsharp/service/QuickParse.fsi"
         "D:/a/_work/1/s/src/fsharp/service/ServiceParsedInputOps.fsi"
         "D:/a/_work/1/s/src/fsharp/service/ServiceNavigation.fsi"
         "D:/a/_work/1/s/src/fsharp/service/ServiceLexing.fsi"
         "D:/a/_work/1/s/src/fsharp/service/ServiceDeclarationLists.fsi"
         "D:/a/_work/1/s/src/fsharp/service/IncrementalBuild.fsi"
         "D:/a/_work/1/s/src/fsharp/symbols/SymbolPatterns.fs"
         "D:/a/_work/1/s/src/fsharp/symbols/SymbolPatterns.fsi"
         "D:/a/_work/1/s/src/fsharp/ErrorLogger.fs"
         "D:/a/_work/1/s/src/fsharp/symbols/SymbolHelpers.fsi"
         "D:/a/_work/1/s/src/fsharp/fsc.fs"
         "D:/a/_work/1/s/src/fsharp/CreateILModule.fs"
         "D:/a/_work/1/s/src/fsharp/CreateILModule.fsi"
         "D:/a/_work/1/s/src/fsharp/StaticLinking.fs"
         "D:/a/_work/1/s/src/fsharp/StaticLinking.fsi"
         "D:/a/_work/1/s/src/fsharp/BinaryResourceFormats.fs"
         "D:/a/_work/1/s/src/fsharp/XmlDocFileWriter.fs"
         "D:/a/_work/1/s/src/fsharp/OptimizeInputs.fs"
         "D:/a/_work/1/s/src/fsharp/OptimizeInputs.fsi"
         "D:/a/_work/1/s/src/fsharp/CompilerOptions.fs"
         "D:/a/_work/1/s/src/fsharp/CompilerOptions.fsi"
         "D:/a/_work/1/s/src/fsharp/ScriptClosure.fs"
         "D:/a/_work/1/s/src/fsharp/ParseAndCheckInputs.fs"
         "D:/a/_work/1/s/src/fsharp/ParseAndCheckInputs.fsi"
         "D:/a/_work/1/s/src/fsharp/CompilerDiagnostics.fs"
         "D:/a/_work/1/s/src/fsharp/CompilerDiagnostics.fsi"
         "D:/a/_work/1/s/src/fsharp/CompilerImports.fs"
         "D:/a/_work/1/s/src/fsharp/CompilerConfig.fs"
         "D:/a/_work/1/s/src/fsharp/CompilerConfig.fsi"
         "D:/a/_work/1/s/src/fsharp/BuildGraph.fs"
         "D:/a/_work/1/s/src/fsharp/BuildGraph.fsi"
         "D:/a/_work/1/s/src/fsharp/DependencyManager/DependencyProvider.fsi"
         "D:/a/_work/1/s/src/fsharp/IlxGen.fs"
         "D:/a/_work/1/s/src/fsharp/IlxGen.fsi"
         "D:/a/_work/1/s/src/fsharp/autobox.fs"
         "D:/a/_work/1/s/src/fsharp/autobox.fsi"
         "D:/a/_work/1/s/src/fsharp/LowerStateMachines.fs"
         "D:/a/_work/1/s/src/fsharp/LowerStateMachines.fsi"
         "D:/a/_work/1/s/src/fsharp/LowerCallsAndSeqs.fs"
         "D:/a/_work/1/s/src/fsharp/LowerCallsAndSeqs.fsi"
         "D:/a/_work/1/s/src/fsharp/InnerLambdasToTopLevelFuncs.fs"
         "D:/a/_work/1/s/src/fsharp/InnerLambdasToTopLevelFuncs.fsi"
         "D:/a/_work/1/s/src/fsharp/DetupleArgs.fs"
         "D:/a/_work/1/s/src/fsharp/DetupleArgs.fsi"
         "D:/a/_work/1/s/src/fsharp/Optimizer.fs"
         "D:/a/_work/1/s/src/fsharp/TypedTreePickle.fs"
         "D:/a/_work/1/s/src/fsharp/Optimizer.fsi"
         "D:/a/_work/1/s/src/fsharp/CheckDeclarations.fs"
         "D:/a/_work/1/s/src/fsharp/CheckDeclarations.fsi"
         "D:/a/_work/1/s/src/fsharp/CheckComputationExpressions.fs"
         "D:/a/_work/1/s/src/fsharp/CheckExpressions.fs"
         "D:/a/_work/1/s/src/fsharp/CheckExpressions.fsi"
         "D:/a/_work/1/s/src/fsharp/PostInferenceChecks.fs"
         "D:/a/_work/1/s/src/fsharp/PostInferenceChecks.fsi"
         "D:/a/_work/1/s/src/fsharp/QuotationTranslator.fs"
         "D:/a/_work/1/s/src/fsharp/QuotationTranslator.fsi"
         "D:/a/_work/1/s/src/fsharp/FindUnsolved.fs"
         "D:/a/_work/1/s/src/fsharp/FindUnsolved.fsi"
         "D:/a/_work/1/s/src/fsharp/CheckFormatStrings.fs"
         "D:/a/_work/1/s/src/fsharp/ConstraintSolver.fs"
         "D:/a/_work/1/s/src/fsharp/ConstraintSolver.fsi"
         "D:/a/_work/1/s/src/fsharp/PatternMatchCompilation.fs"
         "D:/a/_work/1/s/src/fsharp/MethodCalls.fs"
         "D:/a/_work/1/s/src/fsharp/MethodOverrides.fs"
         "D:/a/_work/1/s/src/fsharp/SignatureConformance.fs"
         "D:/a/_work/1/s/src/fsharp/NameResolution.fs"
         "D:/a/_work/1/s/src/fsharp/NameResolution.fsi"
         "D:/a/_work/1/s/src/fsharp/AugmentWithHashCompare.fs"
         "D:/a/_work/1/s/src/fsharp/AugmentWithHashCompare.fsi"
         "D:/a/_work/1/s/src/fsharp/NicePrint.fs"
         "D:/a/_work/1/s/src/fsharp/InfoReader.fs"
         "D:/a/_work/1/s/src/fsharp/TypeRelations.fs"
         "D:/a/_work/1/s/src/fsharp/AttributeChecking.fs"
         "D:/a/_work/1/s/src/fsharp/AccessibilityLogic.fs"
         "D:/a/_work/1/s/src/fsharp/infos.fs"
         "D:/a/_work/1/s/src/fsharp/import.fs"
         "D:/a/_work/1/s/src/fsharp/TypedTreePickle.fsi"
         "D:/a/_work/1/s/src/fsharp/TypedTreeOps.fs"
         "D:/a/_work/1/s/src/fsharp/TypedTreeOps.fsi"
         "D:/a/_work/1/s/src/fsharp/TcGlobals.fs"
         "D:/a/_work/1/s/src/fsharp/TypedTreeBasics.fs"
         "D:/a/_work/1/s/src/fsharp/TypedTreeBasics.fsi"
         "D:/a/_work/1/s/src/fsharp/TypedTree.fs"
         "D:/a/_work/1/s/src/fsharp/CompilerGlobalState.fs"
         "D:/a/_work/1/s/src/fsharp/CompilerGlobalState.fsi"
         "D:/a/_work/1/s/src/fsharp/QuotationPickler.fs"
         "D:/a/_work/1/s/src/fsharp/QuotationPickler.fsi"
         "D:/a/_work/1/s/src/fsharp/ExtensionTyping.fs"
         "D:/a/_work/1/s/src/fsharp/ExtensionTyping.fsi"
         "D:/a/_work/1/s/src/fsharp/LexFilter.fs"
         "D:/a/_work/1/s/src/fsharp/lex.fsl"
         "D:/a/_work/1/s/artifacts/obj/FSharp.Compiler.Service/Release/netstandard2.0/lex.fs"
         "D:/a/_work/1/s/src/fsharp/pplex.fsl"
         "D:/a/_work/1/s/artifacts/obj/FSharp.Compiler.Service/Release/netstandard2.0/pplex.fs"
         "D:/a/_work/1/s/src/fsharp/lexhelp.fs"
         "D:/a/_work/1/s/src/fsharp/lexhelp.fsi"
         "D:/a/_work/1/s/src/fsharp/pars.fsy"
         "D:/a/_work/1/s/artifacts/obj/FSharp.Compiler.Service/Release/netstandard2.0/pars.fs"
         "D:/a/_work/1/s/src/fsharp/pppars.fsy"
         "D:/a/_work/1/s/artifacts/obj/FSharp.Compiler.Service/Release/netstandard2.0/pppars.fs"
         "D:/a/_work/1/s/src/fsharp/ParseHelpers.fs"
         "D:/a/_work/1/s/src/fsharp/SyntaxTreeOps.fs"
         "D:/a/_work/1/s/src/fsharp/SyntaxTreeOps.fsi"
         "D:/a/_work/1/s/src/fsharp/XmlDoc.fsi"
         "D:/a/_work/1/s/src/fsharp/UnicodeLexing.fs"
         "D:/a/_work/1/s/src/fsharp/ilx/EraseUnions.fs"
         "D:/a/_work/1/s/src/fsharp/ilx/EraseUnions.fsi"
         "D:/a/_work/1/s/src/fsharp/ilx/EraseClosures.fs"
         "D:/a/_work/1/s/src/fsharp/PrettyNaming.fs"
         "D:/a/_work/1/s/src/fsharp/PrettyNaming.fsi"
         "D:/a/_work/1/s/src/fsharp/utils/CompilerLocationUtils.fs"
         "D:/a/_work/1/s/src/fsharp/utils/CompilerLocationUtils.fsi"
         "D:/a/_work/1/s/src/fsharp/SimulatedMSBuildReferenceResolver.fs"
         "D:/a/_work/1/s/src/fsharp/SimulatedMSBuildReferenceResolver.fsi"
         "D:/a/_work/1/s/src/fsharp/LegacyMSBuildReferenceResolver.fs"
         "D:/a/_work/1/s/src/fsharp/LegacyMSBuildReferenceResolver.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/ilreflect.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilreflect.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/ilwrite.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilwrite.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/ilwritepdb.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilwritepdb.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/ilread.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilread.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/ilbinary.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilbinary.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/ilsupp.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilsupp.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/ilnativeres.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilnativeres.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/ilsign.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilsign.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/ilmorph.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilmorph.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/illex.fsl"
         "D:/a/_work/1/s/artifacts/obj/FSharp.Compiler.Service/Release/netstandard2.0/illex.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilpars.fsy"
         "D:/a/_work/1/s/artifacts/obj/FSharp.Compiler.Service/Release/netstandard2.0/ilpars.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilascii.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ilascii.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/ilx.fs"
         "D:/a/_work/1/s/src/fsharp/absil/il.fs"
         "D:/a/_work/1/s/src/fsharp/absil/il.fsi"
         "D:/a/_work/1/s/src/fsharp/ErrorResolutionHints.fs"
         "D:/a/_work/1/s/src/fsharp/ErrorLogger.fsi"
         "D:/a/_work/1/s/src/fsharp/TextLayoutRender.fsi"
         "D:/a/_work/1/s/src/fsharp/range.fsi"
         "D:/a/_work/1/s/src/fsharp/utils/RidHelpers.fs"
         "D:/a/_work/1/s/src/fsharp/utils/PathMap.fsi"
         "D:/a/_work/1/s/src/fsharp/rational.fs"
         "D:/a/_work/1/s/src/fsharp/rational.fsi"
         "D:/a/_work/1/s/src/fsharp/block.fs"
         "D:/a/_work/1/s/src/fsharp/lib.fs"
         "D:/a/_work/1/s/src/fsharp/lib.fsi"
         "D:/a/_work/1/s/src/fsharp/XmlAdapters.fs"
         "D:/a/_work/1/s/src/fsharp/XmlAdapters.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/zset.fs"
         "D:/a/_work/1/s/src/fsharp/absil/zmap.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ildiag.fs"
         "D:/a/_work/1/s/src/fsharp/absil/ildiag.fsi"
         "D:/a/_work/1/s/src/fsharp/utils/FileSystem.fsi"
         "D:/a/_work/1/s/src/fsharp/absil/illib.fsi"
         "D:/a/_work/1/s/src/fsharp/utils/EditDistance.fs"
         "D:/a/_work/1/s/src/fsharp/utils/ResizeArray.fs"
         "D:/a/_work/1/s/src/fsharp/LanguageFeatures.fs"
         "D:/a/_work/1/s/src/fsharp/LanguageFeatures.fsi"
         "D:/a/_work/1/s/src/fsharp/Logger.fsi"
         "D:/a/_work/1/s/src/fsharp/sr.fs"
         "D:/a/_work/1/s/src/fsharp/sr.fsi"
         "D:/a/_work/1/s/src/fsharp/utils/sformat.fsi"
         "D:/a/_work/1/s/artifacts/obj/FSharp.Compiler.Service/Release/netstandard2.0/buildproperties.fs"]

This is long, but the gist of it (verified by digging into the assembly with ilSpy) is that indeed, the file is missing from the list of sourcelink files embedded into the dll.

I did a pass over the list and collected the list of files that a) are .fs files, and b) could feasibly have .fsi files. I started checking each of them for matching .fsi files, but 63 is a lot. Suffice to say, all of the ones I checked did in fact have a paired .fsi file in the repo, and in the FCS project, but not in the embedded file list in the assembly. The full list is

List of files with missing .fsi files
"D:/a/_work/1/s/src/fsharp/absil/ilx.fs"
"D:/a/_work/1/s/src/fsharp/absil/zmap.fs"
"D:/a/_work/1/s/src/fsharp/absil/zset.fs"
"D:/a/_work/1/s/src/fsharp/AccessibilityLogic.fs"
"D:/a/_work/1/s/src/fsharp/AttributeChecking.fs"
"D:/a/_work/1/s/src/fsharp/BinaryResourceFormats.fs"
"D:/a/_work/1/s/src/fsharp/block.fs"
"D:/a/_work/1/s/src/fsharp/CheckComputationExpressions.fs"
"D:/a/_work/1/s/src/fsharp/CheckFormatStrings.fs"
"D:/a/_work/1/s/src/fsharp/CompilerImports.fs"
"D:/a/_work/1/s/src/fsharp/DependencyManager/AssemblyResolveHandler.fs"
"D:/a/_work/1/s/src/fsharp/DependencyManager/NativeDllResolveHandler.fs"
"D:/a/_work/1/s/src/fsharp/Diagnostics.fs"
"D:/a/_work/1/s/src/fsharp/ErrorResolutionHints.fs"
"D:/a/_work/1/s/src/fsharp/fsc.fs"
"D:/a/_work/1/s/src/fsharp/FSharp.Compiler.Service/unknown"
"D:/a/_work/1/s/src/fsharp/FxResolver.fs"
"D:/a/_work/1/s/src/fsharp/ilx/EraseClosures.fs"
"D:/a/_work/1/s/src/fsharp/import.fs"
"D:/a/_work/1/s/src/fsharp/InfoReader.fs"
"D:/a/_work/1/s/src/fsharp/infos.fs"
"D:/a/_work/1/s/src/fsharp/InternalCollections.fs"
"D:/a/_work/1/s/src/fsharp/LegacyHostedCompilerForTesting.fs"
"D:/a/_work/1/s/src/fsharp/LexFilter.fs"
"D:/a/_work/1/s/src/fsharp/MethodCalls.fs"
"D:/a/_work/1/s/src/fsharp/MethodOverrides.fs"
"D:/a/_work/1/s/src/fsharp/NicePrint.fs"
"D:/a/_work/1/s/src/fsharp/ParseHelpers.fs"
"D:/a/_work/1/s/src/fsharp/PatternMatchCompilation.fs"
"D:/a/_work/1/s/src/fsharp/QueueList.fs"
"D:/a/_work/1/s/src/fsharp/ReferenceResolver.fs"
"D:/a/_work/1/s/src/fsharp/ScriptClosure.fs"
"D:/a/_work/1/s/src/fsharp/service/ExternalSymbol.fs"
"D:/a/_work/1/s/src/fsharp/service/FSharpParseFileResults.fs"
"D:/a/_work/1/s/src/fsharp/service/FSharpSource.fs"
"D:/a/_work/1/s/src/fsharp/service/ItemKey.fs"
"D:/a/_work/1/s/src/fsharp/service/SemanticClassification.fs"
"D:/a/_work/1/s/src/fsharp/service/SemanticClassificationKey.fs"
"D:/a/_work/1/s/src/fsharp/service/ServiceAssemblyContent.fs"
"D:/a/_work/1/s/src/fsharp/service/ServiceCompilerDiagnostics.fs"
"D:/a/_work/1/s/src/fsharp/service/ServiceConstants.fs"
"D:/a/_work/1/s/src/fsharp/service/ServiceParamInfoLocations.fs"
"D:/a/_work/1/s/src/fsharp/service/ServiceParseTreeWalk.fs"
"D:/a/_work/1/s/src/fsharp/service/ServiceStructure.fs"
"D:/a/_work/1/s/src/fsharp/service/ServiceXmlDocParser.fs"
"D:/a/_work/1/s/src/fsharp/SignatureConformance.fs"
"D:/a/_work/1/s/src/fsharp/symbols/Exprs.fs"
"D:/a/_work/1/s/src/fsharp/symbols/Symbols.fs"
"D:/a/_work/1/s/src/fsharp/SyntaxTree.fs"
"D:/a/_work/1/s/src/fsharp/SyntaxTrivia.fs"
"D:/a/_work/1/s/src/fsharp/tainted.fs"
"D:/a/_work/1/s/src/fsharp/TcGlobals.fs"
"D:/a/_work/1/s/src/fsharp/TypedTree.fs"
"D:/a/_work/1/s/src/fsharp/TypeRelations.fs"
"D:/a/_work/1/s/src/fsharp/UnicodeLexing.fs"
"D:/a/_work/1/s/src/fsharp/utils/EditDistance.fs"
"D:/a/_work/1/s/src/fsharp/utils/HashMultiMap.fs"
"D:/a/_work/1/s/src/fsharp/utils/prim-lexing.fs"
"D:/a/_work/1/s/src/fsharp/utils/prim-parsing.fs"
"D:/a/_work/1/s/src/fsharp/utils/ResizeArray.fs"
"D:/a/_work/1/s/src/fsharp/utils/RidHelpers.fs"
"D:/a/_work/1/s/src/fsharp/utils/TaggedCollections.fs"
"D:/a/_work/1/s/src/fsharp/XmlDocFileWriter.fs"

I think there might be a bug in how sourcelink files are embedded into the assembly for the compiler here, which also means there might be a bug in end-user projects as well.

I verified this both with the latest released FCS 41.0.3, as well as a freshly-built FCS dll from main.

Related information

  • Operating system - Windows
  • .NET Runtime kind (.NET Core, .NET Framework, Mono) - .NET SDK 6.0.202
  • Editing Tools (e.g. Visual Studio Version, Visual Studio) - FSAC 0.53.2, FCS package 41.0.3

baronfel avatar May 13 '22 22:05 baronfel

It looks to me like we are only listing debug documents for source that has a debug sequence point:

          Documents = cenv.documents.EntriesAsArray

and

                    match includeSource doc.File with
                    | None -> ()
                    | Some blob ->
                        metadata.AddCustomDebugInformation(DocumentHandle.op_Implicit dbgInfo,
                                                           metadata.GetOrAddGuid embeddedSourceId,
                                                           metadata.GetOrAddBlob blob) |> ignore

I agree we should simply include all the source on the command line.

dsyme avatar May 23 '22 16:05 dsyme

@baronfel I prepped a fix here: https://github.com/dotnet/fsharp/pull/13185/

I haven't tested it, though I'm pretty certain it will address the issue

dsyme avatar May 23 '22 16:05 dsyme

I believe this is fixed.

KevinRansom avatar Apr 17 '23 16:04 KevinRansom