You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Clone https://github.com/DotNetAnalyzers/ReflectionAnalyzers dotnet restore the solution
open in a recent VS.
turn on FSA.
make a change to: C:\github\ReflectionAnalyzers\ReflectionAnalyzers\Helpers\Reflection\BindingFlags.cs
For example, edit internal enum BindingFlags to internal enum BindingFlags1
Wait for all errors to be reported.
This takes roughly 50 seconds on my machine. For comparison, resharper does it in around 5 seconds (see the spinning icon in hte lower right):
That's an order of magnitude difference and greatly impacts the experience around being able to introduce issues then efficiently find and fix them.
The text was updated successfully, but these errors were encountered:
It's unclear to me what's taking so long on the VS side TBH. Perhaps it is trying to do things like figure out "suggestions" instead of prioritizing just getting and reporting compiler issues first?
Note: this is not a large project (maybe around 20k tops). Also, what's extremely strange is that just building only takes around 10 seconds on my machine. So live errors (where we don't actually have to produce and emit IL) takes 5x longer than a real build.
Tagging @heejaechang as he is the expert on IDE analyzer execution algorith,
Just verified that this still repros on latest build even after CodeLens has been turned off. I believe this is due to the fact that we even though we prioritize the compiler analyzer amongst all the analyzers in the compilation, our IDE analyzer execution model still goes file by file and executes all analyzers on each file before moving to next file. We would need to change this to be a 2 pass model - first pass runs compiler analyzer on all pending files to analyze and second pass runs remaining analyzers on all pending files to analyze. Does that sounds correct Heejae?
Repro steps:
Clone https://github.com/DotNetAnalyzers/ReflectionAnalyzers
dotnet restore
the solutionopen in a recent VS.
turn on FSA.
make a change to: C:\github\ReflectionAnalyzers\ReflectionAnalyzers\Helpers\Reflection\BindingFlags.cs
For example, edit
internal enum BindingFlags
tointernal enum BindingFlags1
Wait for all errors to be reported.
This takes roughly 50 seconds on my machine. For comparison, resharper does it in around 5 seconds (see the spinning icon in hte lower right):
That's an order of magnitude difference and greatly impacts the experience around being able to introduce issues then efficiently find and fix them.
The text was updated successfully, but these errors were encountered: