fsprojects / FSharpLint

Lint tool for F#
https://fsprojects.github.io/FSharpLint/
MIT License
300 stars 73 forks source link

Warning for `override` member names can lead to erroneous suggestions #712

Open tymokvo opened 4 days ago

tymokvo commented 4 days ago

Description

Hello, there is probably a way to deal with this already, but searching through existing issues didn't turn anything up.

With the memberNames.config.naming = camelCase, fsharplint suggests:

Consider changing `ToString` to camelCase.
Error on line 39 starting at column 23
            override z.ToString() =

which cannot be done because this method comes from System.Object and override z.toString() is a compilation error FS0855.

Repro steps

  1. Create a new type
  2. Override ToString()
  3. Lint the file

Expected behavior

I would expect that the linter understands that inherited members that are overridden cannot have their name changed.

Actual behavior

The linter suggests that I change the name of the method in such a way that the project will not compile due to a missing member.

Known workarounds

I will currently use rule suppression on every line where I override a member that doesn't match my project's naming conventions.

Related information