safesparrow / fsharp

The F# compiler, F# core library, F# language service, and F# tooling integration for Visual Studio
https://dotnet.microsoft.com/languages/fsharp
MIT License
1 stars 0 forks source link

Tc sig env merging #11

Closed nojaf closed 1 year ago

nojaf commented 1 year ago

Hello,

This resolves the problem that was detected in #10.

I first removed the workaround where a signature file depends on all the signature files that came before it. Surprisingly, I didn't break any unit tests by doing that. This is something to pay closer attention to in the future. Next, I've added my failing test case. Then I updated the merge code and my test case worked. From now on I hope to inspire you to do every next change test driven. This would be a good preparation for the eventual draft PR.

Two more pointers I do want to mention:

safesparrow commented 1 year ago

Can we start always formatting the code? Because you didn't do this, I'm not able to do it either because it would make a PR diff larger than necessary. (See ancient greek tragedy)

Thanks, I've run Fantomas on src/ and the test project now. This caused some conflicts on this PR, I'll look into resolving them.

Please consider abandoning the separate ParallelTypeCheckingTests.fsproj project. Your eventual PR will not be merged in using that. It is best to move the bits to the right projects instead.

Yes, that project is a temporary measure which allows for a quicker feedback loop by avoiding the need to recompile FSharp.Compiler.Service on every change.

From now on I hope to inspire you to do every next change test driven. This would be a good preparation for the eventual draft PR.

Thanks, that is definitely the right approach. I'll try to stick to it 👍

safesparrow commented 1 year ago

I merged a copy of this PR as I didn't have write access to your fork. Thanks for help 👍

safesparrow commented 1 year ago

As noted in https://github.com/safesparrow/fsharp/issues/15 , the changes in this PR do break FCS type-checking, so we need to keep looking.