Ignore --pathmap in the IDE's F# project options - #20470
Open
xperiandri wants to merge 4 commits into
Open
xperiandri wants to merge 4 commits into
xperiandri wants to merge 4 commits into
Conversation
Contributor
❗ Release notes requiredYou can open this PR in browser to add release notes: open in github.dev
|
xperiandri
added a commit
to xperiandri/fsharp
that referenced
this pull request
Sep 7, 2026
T-Gro
approved these changes
Sep 7, 2026
T-Gro
left a comment
Member
There was a problem hiding this comment.
🤖🕵️ LGTM & approved, but CI is red.
This was referenced Sep 11, 2026
…r tests Test helpers so far put every synthetic file into one Roslyn project. CreateMultiProjectSolution creates one project per synthetic project with project references, the way VS wires project-to-project references; CreateMultiTargetSolution creates one project per target instance sharing the project path and the document paths, the way VS loads a multi-targeted project. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A project built with DeterministicSourcePaths or an explicit PathMap hands the IDE a `--pathmap:` option. FCS applies the map when it pickles the ranges of the in-memory reference other projects check against, so every symbol imported from such a project names a mapped, relative file that no workspace document has, and Go To Definition ends in the generated signature instead of the source. The map is a property of the build output; the IDE now drops it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
xperiandri
added a commit
to xperiandri/fsharp
that referenced
this pull request
Sep 11, 2026
xperiandri
force-pushed
the
fix/ignore-pathmap-in-ide
branch
from
September 11, 2026 16:18
aee3361 to
39cd09d
Compare
This comment has been minimized.
This comment has been minimized.
Contributor
|
🔍 Tooling Safety Check — Affects-Design-Time
|
T-Gro
requested changes
Sep 15, 2026
T-Gro
left a comment
Member
There was a problem hiding this comment.
🤖🕵️ Please make the description more concise using this guidance. Keep the problem and why the change is needed prominent, using short sentences in simplified technical English. Retain necessary caveats.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In a solution whose
Directory.Build.propssets<PathMap>$(MSBuildThisFileDirectory)=.\</PathMap>orDeterministicSourcePaths, Go To Definition from an F# file into another F# project of the solution opens the generated signature instead of the source. The declaration comes back named.\backend\Use cases\Circulars\GraphQL\.\backend\Use cases\Circulars\GraphQL\Types\Circular.fs: the project system passes the build's--pathmap:into the IDE's compilation options, FCS applies it when it pickles the ranges of the in-memory referenced-assembly data, and the implicit include directory it is joined with is mapped too. No lookup by path can find such a file.The map also leaks between projects.
TcGlobalscarries it, and FCS cachesTcGlobalswith the framework imports under a key that does not include it, so one project with a--pathmap:is enough to break navigation into any sibling of the same framework set, and a project with a map is checked without it when a sibling filled the cache first. #20476 fixes the cache; dropping the option in the IDE makes the cached map empty for all of them.FSharpProjectOptionsManagernow drops--pathmap:from the options it takes from the project site, next to the-r:options it already discards. The map only describes what the build should write into its output; nothing in the IDE needs it.🤖 Generated with Claude Code