fsprojects-archive / zzarchive-VisualFSharpPowerTools

[ARCHIVED] Power commands for F# in Visual Studio
http://fsprojects.github.io/VisualFSharpPowerTools/
Apache License 2.0
310 stars 77 forks source link

Errors are hidden by Lint warning when Powertools is enabled #1491

Closed abelbraaksma closed 7 years ago

abelbraaksma commented 7 years ago

Description

If Lint issues a warning, it will top the error, showing an orange squiggly instead of a red one and the only way to find out the underlying error is by running a full build.

In this screenshot, it is not clear that "Only functions may be marked inline" is actually an error and not a warning:

image

Or (totally hiding the actual syntax error):

image

Repro steps

You can see this in action in many ways, but this simple example is the one used in the screenshot:

let inline ( $# ) x = if isNull x then String.Empty else x

Or the following (without inline), totally hiding the error:

let ( $# ) x = if isNull x then String.Empty else x

Expected behavior

I would expect the error to have higher precedence when hovering over and when drawing the squiggly. In fact, this is what is shown when starting Visual Studio in /SafeMode:

image

Or:

image

There is more than one thing wrong with the code, result of using a disallowed operator character, but none of these errors is shown.

Actual behavior

The actual syntax errors are hidden. This can be seen in many situations where there is both a warning and an error on the same spot (and this happens a lot). This repro is just one of many ways to repro this.

Known workarounds

Run the build and inspect the build log. Or disable Lint integration. But that isn't really a workaround.

Related information

Problem has been verified by trying to repro with extensions disabled (i.e., /SafeMode).

vasily-kirichenko commented 7 years ago

We're not gonna fix bugs for VS 2015 and we are not gonna support VS 2017. I believe there will be FsLint integration in VS 2017 (via Roslyn Analyzers I think).

abelbraaksma commented 7 years ago

@vasily-kirichenko, that's a bummer, I wasn't aware. Could we add that somewhere when people make a report, for instance in the template? It would save the developers and reporters a lot of time (and frustrations afterwards).

Do you mean that there will be no PowerTools or there will be no FsLint?

vasily-kirichenko commented 7 years ago

@abelbraaksma Sorry for wasting your time :( Basically we are moving all the functionality to Visual F# Tools, about 70% done. So consider VFPT as deprecated.

abelbraaksma commented 7 years ago

@vasily-kirichenko, no, not a problem, I was just surprised. I see you edited the readme.md, thanks!