[WIP] - Suggestion: Don't implicitly append Module suffix if type with same name has type arguments.#1772
[WIP] - Suggestion: Don't implicitly append Module suffix if type with same name has type arguments.#1772KevinRansom merged 1 commit intodotnet:masterfrom kurtschelfthout:module-suffix-fix
Conversation
Don't implicitly append 'Module' to module names if the type with the same name as the module has a type argument. In that case the name is not ambiguous. In addition, the current situation breaks these fairly common use cases for libraries that need to interoperate with other .NET languages, as with the new compiler some modules will suddenly gain a Module suffix. There is no way to turn this off, short of making the module into a static class, which is silly.
|
Both failures are unrelated false negatives. Unrelated: this seems to happen regularly, I think this causes a lot of unnecessary friction and lost time for contributors - I will take a look at the race condition in the async module on AppVeyor which is probably timer related separately. The Ubuntu build fails to restore a bunch of NuGet packages. |
|
Looks like a heisen failure: |
|
There is an issue for that test: #1755 Just as an fyi, that the tests are kicked off again when someone comments or edits is a bit mentally jarring. For example, right now this PR is all green so I'm actually wondering whether to actually add this comment because likely something is going to fail when the build is kicked off again :) As a compromise I decided to take a screenshot as "proof" ;) |
|
@KevinRansom why is this WIP? From my perspective no more changes are needed... |
|
@KevinRansom @kurtschelfthout I approve this PR - I agree it's a necessary design adjustment/fix to an F# 4.1 feature. |

Don't implicitly append 'Module' to module names if the type with the same name as the module has a type argument. In that case the name is not ambiguous.
In addition, the current situation breaks these fairly common use cases for libraries that need to interoperate with other .NET languages, as with the new compiler some modules will suddenly gain a Module suffix.
There is no way to turn this off, short of making the module into a static class, which is silly.
This issue is also discussed in somewhat more detail here: fsharp/fslang-design#108