Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Find-All-References results incomplete and unstable #7391

Closed
333fred opened this issue Jul 24, 2024 · 5 comments · Fixed by dotnet/roslyn#74566
Closed

Find-All-References results incomplete and unstable #7391

333fred opened this issue Jul 24, 2024 · 5 comments · Fixed by dotnet/roslyn#74566

Comments

@333fred
Copy link
Member

333fred commented Jul 24, 2024

Environment data

dotnet --info output:

`dotnet ---info`
Host:
  Version:      9.0.0-preview.5.24306.7
  Architecture: x64
  Commit:       a5cc707d97

.NET SDKs installed:
  6.0.419 [/home/fred/.dotnet/sdk]
  7.0.404 [/home/fred/.dotnet/sdk]
  8.0.100-rc.1.23463.5 [/home/fred/.dotnet/sdk]
  8.0.100 [/home/fred/.dotnet/sdk]
  8.0.101 [/home/fred/.dotnet/sdk]
  8.0.107 [/home/fred/.dotnet/sdk]
  8.0.303 [/home/fred/.dotnet/sdk]
  9.0.100-preview.3.24204.13 [/home/fred/.dotnet/sdk]
  9.0.100-preview.5.24307.3 [/home/fred/.dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.27 [/home/fred/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.14 [/home/fred/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0-rc.1.23421.29 [/home/fred/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0 [/home/fred/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.1 [/home/fred/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.7 [/home/fred/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 9.0.0-preview.3.24172.13 [/home/fred/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 9.0.0-preview.5.24306.11 [/home/fred/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.27 [/home/fred/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.14 [/home/fred/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-rc.1.23419.4 [/home/fred/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0 [/home/fred/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.1 [/home/fred/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.7 [/home/fred/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 9.0.0-preview.3.24172.9 [/home/fred/.dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 9.0.0-preview.5.24306.7 [/home/fred/.dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  DOTNET_ROOT       [/home/fred/.dotnet]

global.json file:
  /home/fred/git/roslyn/global.json

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download
VS Code version: 1.91.1 C# Extension version: v2.39.29

Steps to reproduce

  1. Open Roslyn
  2. Open https://github.com/dotnet/roslyn/blob/91773064bdc85ab3f64d8118d7b1f562f70dccc6/src/Compilers/CSharp/Portable/Lowering/LocalRewriter/LocalRewriter_StringConcat.cs#L175
  3. Run Find References on GetSpecialTypeMember

Expected behavior

All references to be found and the results to be complete and stable.

Actual behavior

Results change every time, and are always incomplete.

Additional context

lsp trace logs.txt

Some example images from 3 different runs (no code change between each):

image
image
image

@dibarbet
Copy link
Member

dibarbet commented Jul 25, 2024

Can confirm the repro. I checked out roslyn-tools, ran FAR on any Task and get different results every time. Did some testing to see when this broke and it looks like the first non-working version is 2.33.17. Before that, I get 99 results every single time.

Looks like there were a ton of FAR changes in the 2.33.17 release. FYI @CyrusNajmabadi
Interestingly, I cannot reproduce in VS, nor can I in an LSP unit test. Either there is some project specific configuration that can cause this to happen, or maybe some behavior difference in .NET core (LSP unit tests only run on framework unfortunately).

Some notable changes I extracted from the diff between 2.33.14 and 2.33.17

  • Fix issue where FAR results were not getting sent until they were fully complete(PR: #73777)
  • Move the remainder of FAR over to IAsyncEnumerable.(PR: #73613)
  • Compute classifications for FAR results in parallel.(PR: #73599)
  • Remove 'flavors' from FAR results(PR: #73592)
  • Switch to a List as the backing store for the FAR window from an ImmutableList.(PR: #73589)
  • Switch FAR data from an immutable dictionary to an immutable array(PR: #73587)
  • Batch FAR window update messages to lower refresh overhead. (PR: #73534)
  • Avoid unnecessary allocations while finding token matches in a file (PR: #73547)
  • Lower the amount of time FAR spends in classification by 4% (PR: #73533)
The full roslyn diff is here (click to expand) * Fix build host when only the .net 6 SDK is installed (PR: [#73818](https://github.com/dotnet/roslyn/pull/73818)) * Report diagnostic for `field` and `value` identifiers in property accessors where the meaning would change as contextual keywords (PR: [#73570](https://github.com/dotnet/roslyn/pull/73570)) * Interval tree refactorings.(PR: [#73846](https://github.com/dotnet/roslyn/pull/73846)) * Reduce Linq usage in SymbolDisplayVisitor.CreateAliasMap (PR: [#73793](https://github.com/dotnet/roslyn/pull/73793)) * Build interval tree from sorted nodes(PR: [#73819](https://github.com/dotnet/roslyn/pull/73819)) * Optimize helper we use to determine the relevant node of a particular kind the user is on.(PR: [#73812](https://github.com/dotnet/roslyn/pull/73812)) * Always use a by-value temp to capture a reference type receiver (PR: [#73631](https://github.com/dotnet/roslyn/pull/73631)) * Bump Razor to 9.0.0-preview.24281.3 (PR: [#73817](https://github.com/dotnet/roslyn/pull/73817)) * Merge partial properties feature to main (PR: [#73815](https://github.com/dotnet/roslyn/pull/73815)) * Cancel classification work for the portions of the view outside of hte viewport.(PR: [#73811](https://github.com/dotnet/roslyn/pull/73811)) * Change branch mapping (PR: [#73807](https://github.com/dotnet/roslyn/pull/73807)) * Prepare partial properties feature for merge (PR: [#73773](https://github.com/dotnet/roslyn/pull/73773)) * Copy the ITelemetryReporter to a local before using (PR: [#73790](https://github.com/dotnet/roslyn/pull/73790)) * Simplify fix-all code(PR: [#73805](https://github.com/dotnet/roslyn/pull/73805)) * Always use DiagnosticHelper.Create for diagnostics with options (PR: [#73339](https://github.com/dotnet/roslyn/pull/73339)) * Add more boolean simplification cases(PR: [#73806](https://github.com/dotnet/roslyn/pull/73806)) * Address a few locations also need to care about partial properties (PR: [#73792](https://github.com/dotnet/roslyn/pull/73792)) * Perform nav bar computation in two passes(PR: [#73786](https://github.com/dotnet/roslyn/pull/73786)) * Clean up Razor EA (PR: [#73040](https://github.com/dotnet/roslyn/pull/73040)) * Add the LanguageServer folder to CODEOWNERS (PR: [#73791](https://github.com/dotnet/roslyn/pull/73791)) * Fix race causing workspace diagnostics to be stale (PR: [#73653](https://github.com/dotnet/roslyn/pull/73653)) * Collection expressions: report specific conversion errors from overload resolution (PR: [#73307](https://github.com/dotnet/roslyn/pull/73307)) * Improve AddImport conflict detection performance (PR: [#73780](https://github.com/dotnet/roslyn/pull/73780)) * Avoid lambda allocation(PR: [#73785](https://github.com/dotnet/roslyn/pull/73785)) * Move LanguageServer out of Features directory (PR: [#73779](https://github.com/dotnet/roslyn/pull/73779)) * Fix issue where FAR results were not getting sent until they were fully complete(PR: [#73777](https://github.com/dotnet/roslyn/pull/73777)) * Implement alg that determines which projects need to be restarted/rebuilt due to rude edits (PR: [#73598](https://github.com/dotnet/roslyn/pull/73598)) * Modify (Large/Source)Text.ParseLineStart to specify an initial capacity for line count (PR: [#73701](https://github.com/dotnet/roslyn/pull/73701)) * Use a more sensible MEF export for brace completion (PR: [#73756](https://github.com/dotnet/roslyn/pull/73756)) * Update partial properties feature branch from main (PR: [#73774](https://github.com/dotnet/roslyn/pull/73774)) * Don't implicitly load assemblies via MEF in Roslyn language server (PR: [#73566](https://github.com/dotnet/roslyn/pull/73566)) * Pause a short while before computing if fixes or refactorings are available at a particular line(PR: [#73755](https://github.com/dotnet/roslyn/pull/73755)) * Clean up replay docs (PR: [#73775](https://github.com/dotnet/roslyn/pull/73775)) * Partial properties: public API and IDE features (PR: [#73603](https://github.com/dotnet/roslyn/pull/73603)) * On the fly docs exclusion (PR: [#73770](https://github.com/dotnet/roslyn/pull/73770)) * Semantic snippets: allow `cw` snippet in void-returning lambdas (PR: [#73706](https://github.com/dotnet/roslyn/pull/73706)) * Support 'use primary constructor' on no-parameter constructors with attributes(PR: [#73769](https://github.com/dotnet/roslyn/pull/73769)) * Fewer exceptions (PR: [#73766](https://github.com/dotnet/roslyn/pull/73766)) * [main] Update dependencies from dotnet/source-build-externals (PR: [#73764](https://github.com/dotnet/roslyn/pull/73764)) * Run providers in parallel when determining if we should show the lightbulb icon (PR: [#73758](https://github.com/dotnet/roslyn/pull/73758)) * Change the DocumentationCommentId to use a PooledStringBuilder (PR: [#73737](https://github.com/dotnet/roslyn/pull/73737)) * Fix issue where we were querying a linq expression over and over(PR: [#73750](https://github.com/dotnet/roslyn/pull/73750)) * Update config after snap 17.11 Preview 2 (PR: [#73754](https://github.com/dotnet/roslyn/pull/73754)) * Remove explicit GC calls in the asset cache(PR: [#73752](https://github.com/dotnet/roslyn/pull/73752)) * Use a common mechanism so Taggers access the main thread at the same time. (PR: [#67259](https://github.com/dotnet/roslyn/pull/67259)) * Update Debugger.Contracts to 17.11.0-beta.24274.2 (PR: [#73748](https://github.com/dotnet/roslyn/pull/73748)) * Use a new consistent pattern for working with 'args' objects in callbacks(PR: [#73749](https://github.com/dotnet/roslyn/pull/73749)) * Snap 17.11 Preview 2 (PR: [#73753](https://github.com/dotnet/roslyn/pull/73753)) * Lower allocations in tagging(PR: [#73729](https://github.com/dotnet/roslyn/pull/73729)) * Align sort implementation with reference from dotnet/runtime (PR: [#73739](https://github.com/dotnet/roslyn/pull/73739)) * Optimization of (de)serialization of ProjectId.DebugNames (PR: [#73734](https://github.com/dotnet/roslyn/pull/73734)) * Avoid unnecessary array+linq allocs in common case(PR: [#73727](https://github.com/dotnet/roslyn/pull/73727)) * Remove legacy api used only by vs4mac.(PR: [#73724](https://github.com/dotnet/roslyn/pull/73724)) * Don't run code in the async/await highlighter unless on one of those keywords.(PR: [#73721](https://github.com/dotnet/roslyn/pull/73721)) * Switch to work queue for code definition window(PR: [#73723](https://github.com/dotnet/roslyn/pull/73723)) * Streamline brace matcher code(PR: [#73722](https://github.com/dotnet/roslyn/pull/73722)) * Small tweaks to the recursion walk we do when looking for strign indentation regions(PR: [#73719](https://github.com/dotnet/roslyn/pull/73719)) * Avoid unnecessary tree walk when hitting non-relevant directives (PR: [#73720](https://github.com/dotnet/roslyn/pull/73720)) * Reduce lots of allocations in TagSpanIntervalTree(PR: [#73715](https://github.com/dotnet/roslyn/pull/73715)) * Cache the getnode/gettoken classifiers retrieived from the extension manager. (PR: [#73712](https://github.com/dotnet/roslyn/pull/73712)) * Don't push non-intersecting nodes/tokens to the classification stack(PR: [#73717](https://github.com/dotnet/roslyn/pull/73717)) * Move over to IDE using TagSpan uniformly(PR: [#73713](https://github.com/dotnet/roslyn/pull/73713)) * Move interval trees over to being TextSpan based(PR: [#73714](https://github.com/dotnet/roslyn/pull/73714)) * Pool collections during tagging.(PR: [#73708](https://github.com/dotnet/roslyn/pull/73708)) * Do not suppress the warning, which doesn't need to be suppressed (PR: [#73711](https://github.com/dotnet/roslyn/pull/73711)) * Reduce size of interval tree used for tagging (PR: [#73703](https://github.com/dotnet/roslyn/pull/73703)) * Add support for or-pattern in `IDE0010`(PR: [#73574](https://github.com/dotnet/roslyn/pull/73574)) * Convert interval-tree type to a struct (PR: [#73676](https://github.com/dotnet/roslyn/pull/73676)) * Update tagging to avoid jumping back to the UI thread when finished.(PR: [#73699](https://github.com/dotnet/roslyn/pull/73699)) * Utilize ImmutableCollectionsMarshal to get ROS for XxHash128.Hash call (PR: [#73692](https://github.com/dotnet/roslyn/pull/73692)) * Return the SignatureHelp items nearest to the cursor (PR: [#73606](https://github.com/dotnet/roslyn/pull/73606)) * Final editor side changes for "allow ref struct" support (PR: [#73700](https://github.com/dotnet/roslyn/pull/73700)) * Ensure we sync source-generator versions over properly when doing a cone-sync(PR: [#73688](https://github.com/dotnet/roslyn/pull/73688)) * Reduce cost of syntactic classification by around 25% while paging down through a file (and around 50% while arrowing down).(PR: [#73673](https://github.com/dotnet/roslyn/pull/73673)) * Avoid having to go back to the UI thread in the navbar code (PR: [#73681](https://github.com/dotnet/roslyn/pull/73681)) * Include more data for debugging purposes (PR: [#73684](https://github.com/dotnet/roslyn/pull/73684)) * Slow down the work navbar does, and cancel updating it when receiving a high volume of user events(PR: [#73680](https://github.com/dotnet/roslyn/pull/73680)) * Expose XAML IDiagnosticSourceProvider names (PR: [#73674](https://github.com/dotnet/roslyn/pull/73674)) * Move EnC workspace tests down to Features layer (PR: [#73660](https://github.com/dotnet/roslyn/pull/73660)) * Strengthen language version tests for Ref Struct Interfaces (PR: [#73607](https://github.com/dotnet/roslyn/pull/73607)) * Implement ICollection on ArrayBuilder (PR: [#73659](https://github.com/dotnet/roslyn/pull/73659)) * Add test for F1 on "allows ref struct" (PR: [#73654](https://github.com/dotnet/roslyn/pull/73654)) * Drop roslyn impact on scrolling perf by 30%(PR: [#73648](https://github.com/dotnet/roslyn/pull/73648)) * Work around crash in Document Outline (PR: [#73564](https://github.com/dotnet/roslyn/pull/73564)) * Ignore drive casing when comparing on windows platforms (PR: [#73380](https://github.com/dotnet/roslyn/pull/73380)) * Cache classification services(PR: [#73635](https://github.com/dotnet/roslyn/pull/73635)) * Ignore the commits that update us to FileScopedNamespaces(PR: [#73647](https://github.com/dotnet/roslyn/pull/73647)) * Switch to file scoped namespace for tests(PR: [#73634](https://github.com/dotnet/roslyn/pull/73634)) * Simplify code in ForAttributeWithMetadataName(PR: [#73646](https://github.com/dotnet/roslyn/pull/73646)) * Switch to AsNode extension(PR: [#73645](https://github.com/dotnet/roslyn/pull/73645)) * Optimize syntactic classification walk(PR: [#73629](https://github.com/dotnet/roslyn/pull/73629)) * Add object browser support for ref struct interfaces (PR: [#73621](https://github.com/dotnet/roslyn/pull/73621)) * Remove unused usings (PR: [#73633](https://github.com/dotnet/roslyn/pull/73633)) * Update to simple using statements (PR: [#73632](https://github.com/dotnet/roslyn/pull/73632)) * Avoid searching entire trees when looking for implicit constructors in find-refs(PR: [#73625](https://github.com/dotnet/roslyn/pull/73625)) * Add signature help support for ref struct interfaces (PR: [#73624](https://github.com/dotnet/roslyn/pull/73624)) * Use semantics to check for readonly struct (PR: [#72893](https://github.com/dotnet/roslyn/pull/72893)) * Switch SG mode to 'balanced' by default (PR: [#73618](https://github.com/dotnet/roslyn/pull/73618)) * Add extract method support for ref struct interfaces (PR: [#73619](https://github.com/dotnet/roslyn/pull/73619)) * Expose folding range functionality to Razor (PR: [#73609](https://github.com/dotnet/roslyn/pull/73609)) * Fix issue with add-import and cancellation(PR: [#73616](https://github.com/dotnet/roslyn/pull/73616)) * Move the remainder of FAR over to IAsyncEnumerable.(PR: [#73613](https://github.com/dotnet/roslyn/pull/73613)) * Compute classifications for FAR results in parallel.(PR: [#73599](https://github.com/dotnet/roslyn/pull/73599)) * Fix issue where we might run code in the lightbulb post-disposal(PR: [#73604](https://github.com/dotnet/roslyn/pull/73604)) * Add `AllowsKeywordRecommender` to `KeywordCompletionProvider` (PR: [#73608](https://github.com/dotnet/roslyn/pull/73608)) * Update compiler version(PR: [#73602](https://github.com/dotnet/roslyn/pull/73602)) * Only fetch options if needed(PR: [#73600](https://github.com/dotnet/roslyn/pull/73600)) * Remove addOperationsScope as it wasn't being used anywhere (PR: [#73601](https://github.com/dotnet/roslyn/pull/73601)) * Comment out unused telemtry id (PR: [#73597](https://github.com/dotnet/roslyn/pull/73597)) * Partial properties: misc compiler layer work (PR: [#73527](https://github.com/dotnet/roslyn/pull/73527)) * Remove 'flavors' from FAR results(PR: [#73592](https://github.com/dotnet/roslyn/pull/73592)) * Switch to a List as the backing store for the FAR window from an ImmutableList.(PR: [#73589](https://github.com/dotnet/roslyn/pull/73589)) * Revert "[main] Update dependencies from dotnet/arcade" (PR: [#73591](https://github.com/dotnet/roslyn/pull/73591)) * Enable Arcade V3 publishing in PR Validation (PR: [#73221](https://github.com/dotnet/roslyn/pull/73221)) * Switch FAR data from an immutable dictionary to an immutable array(PR: [#73587](https://github.com/dotnet/roslyn/pull/73587)) * Check language version for more ref-struct-interfaces scenarios (PR: [#73586](https://github.com/dotnet/roslyn/pull/73586)) * Update Language Feature Status.md for Ref Struct Interfaces (PR: [#73588](https://github.com/dotnet/roslyn/pull/73588)) * [main] Update dependencies from dotnet/arcade (PR: [#73539](https://github.com/dotnet/roslyn/pull/73539)) * [main] Update dependencies from dotnet/source-build-externals (PR: [#73064](https://github.com/dotnet/roslyn/pull/73064)) * Remove dependency on all Roslyn assemblies from build host (PR: [#73497](https://github.com/dotnet/roslyn/pull/73497)) * Add the PR validation branch to publish data (PR: [#73573](https://github.com/dotnet/roslyn/pull/73573)) * Install .NET 9 Runtime on Single Machine CI (PR: [#73571](https://github.com/dotnet/roslyn/pull/73571)) * Disable nullable comparison optimization for decimals (PR: [#73536](https://github.com/dotnet/roslyn/pull/73536)) * Report EnC warning when entry point is changed (PR: [#73565](https://github.com/dotnet/roslyn/pull/73565)) * Batch FAR window update messages to lower refresh overhead. (PR: [#73534](https://github.com/dotnet/roslyn/pull/73534)) * Merge branch 'features/RefStructInterfaces' into 'main' (PR: [#73567](https://github.com/dotnet/roslyn/pull/73567)) * Check language version for more scenarios (PR: [#73546](https://github.com/dotnet/roslyn/pull/73546)) * Deal with some PROTOTYPE comments (PR: [#73561](https://github.com/dotnet/roslyn/pull/73561)) * Pack values for enum members (PR: [#73562](https://github.com/dotnet/roslyn/pull/73562)) * More classification perf fixes. (PR: [#73535](https://github.com/dotnet/roslyn/pull/73535)) * Avoid unnecessary allocations while finding token matches in a file (PR: [#73547](https://github.com/dotnet/roslyn/pull/73547)) * Fix up a couple places that create a buffer or sourcetext from strings (PR: [#73537](https://github.com/dotnet/roslyn/pull/73537)) * Install SDK in devcontainer based on global.json (PR: [#73526](https://github.com/dotnet/roslyn/pull/73526)) * Fix assert in ref safety analysis around BoundConditionalReceiver node. (PR: [#73491](https://github.com/dotnet/roslyn/pull/73491)) * Target net9.0 in tests and provide real implementation for RuntimeSupportsByRefLikeGenerics helper (PR: [#73525](https://github.com/dotnet/roslyn/pull/73525)) * Lower the amount of time FAR spends in classification by 4% (PR: [#73533](https://github.com/dotnet/roslyn/pull/73533)) * Move AsyncBatchingWorkQueue usage in telemetry to TelemetryLogging level (PR: [#73485](https://github.com/dotnet/roslyn/pull/73485)) * Update "ref in async" feature status (PR: [#73489](https://github.com/dotnet/roslyn/pull/73489)) * Update partial properties feature branch from main (PR: [#73522](https://github.com/dotnet/roslyn/pull/73522)) * Partial properties: attributes (PR: [#73437](https://github.com/dotnet/roslyn/pull/73437)) * Implement keyword recommenders for `allows ref struct` constraint (PR: [#73463](https://github.com/dotnet/roslyn/pull/73463)) * Follow up on merge of ref-unsafe-in-iterators-async feature (PR: [#73502](https://github.com/dotnet/roslyn/pull/73502)) * Rename public API based on API review decision (PR: [#73476](https://github.com/dotnet/roslyn/pull/73476)) * Merge 'main' into RefStructInterfaces (PR: [#73492](https://github.com/dotnet/roslyn/pull/73492)) * Merge 'main' into RefStructInterfaces (PR: [#73478](https://github.com/dotnet/roslyn/pull/73478)) * Recognize 'allows ref struct' constraint in VB compiler (PR: [#73429](https://github.com/dotnet/roslyn/pull/73429)) * Partial properties: basic indexer scenarios and signature mismatch diagnostics (PR: [#73378](https://github.com/dotnet/roslyn/pull/73378)) * [release/dev17.10] Update dependencies from dotnet/arcade (PR: [#73410](https://github.com/dotnet/roslyn/pull/73410)) * Cherry pick fix for expanded message to 17.10 (PR: [#73405](https://github.com/dotnet/roslyn/pull/73405)) * Specially handle more scenarios for type parameters with 'allows ref struct' constraint (PR: [#73363](https://github.com/dotnet/roslyn/pull/73363)) * Update partial properties feature branch from main (PR: [#73377](https://github.com/dotnet/roslyn/pull/73377)) * Partial properties: diagnostics for mismatch between parts (PR: [#73250](https://github.com/dotnet/roslyn/pull/73250)) * Add public API for ref like type parameters (PR: [#73335](https://github.com/dotnet/roslyn/pull/73335)) * Specially handle more scenarios for type parameters with 'allows ref struct' constraint (PR: [#73305](https://github.com/dotnet/roslyn/pull/73305)) * Handle ref safety analysis for type parameters with 'allows ref struct' constraint (PR: [#73281](https://github.com/dotnet/roslyn/pull/73281)) * Partial properties: merging declarations and emit of simple cases (PR: [#72999](https://github.com/dotnet/roslyn/pull/72999)) * Specially handle more scenarios for type parameters with 'allows ref struct' constraint (PR: [#73232](https://github.com/dotnet/roslyn/pull/73232)) * Specially handle more scenarios for type parameters with 'allows ref struct' constraint (PR: [#73111](https://github.com/dotnet/roslyn/pull/73111)) * Merge 'dotnet/main' into RefStructInterfaces (PR: [#73227](https://github.com/dotnet/roslyn/pull/73227)) * Specially handle more scenarios for type parameters with 'allows ref struct' constraint (PR: [#73059](https://github.com/dotnet/roslyn/pull/73059)) * Specially handle some scenarios for type parameters with 'allows ref struct' constraint (PR: [#73025](https://github.com/dotnet/roslyn/pull/73025)) * Merge 'main' into RefStructInterfacest (PR: [#72940](https://github.com/dotnet/roslyn/pull/72940)) * Support ref struct implementing interfaces in `foreach` and `using` statements (PR: [#72810](https://github.com/dotnet/roslyn/pull/72810)) * Move RefStructInterfacesTests to Test3 project (PR: [#72721](https://github.com/dotnet/roslyn/pull/72721)) * Merge 'main' into RefStructInterfaces (PR: [#72715](https://github.com/dotnet/roslyn/pull/72715)) * Merge 'main' into RefStructInterfaces (PR: [#72650](https://github.com/dotnet/roslyn/pull/72650)) * Allow ref structs to implement interfaces, respect "allows ref struct" during constraints check. (PR: [#72537](https://github.com/dotnet/roslyn/pull/72537)) * Merge 'main' into RefStructInterfaces (PR: [#72519](https://github.com/dotnet/roslyn/pull/72519)) * Merge 'main' into RefStructInterfaces (PR: [#72416](https://github.com/dotnet/roslyn/pull/72416)) * Bind `allows` constraint clause (PR: [#72386](https://github.com/dotnet/roslyn/pull/72386)) * Support parsing for `allows` constraint (PR: [#72346](https://github.com/dotnet/roslyn/pull/72346)) * Support UnscopedRef attribute on interface methods and properties (PR: [#72171](https://github.com/dotnet/roslyn/pull/72171))

@dibarbet
Copy link
Member

This is definitely a multitargeting bug actually. This unit test consistently fails 3-5 of the 20 iterations
https://github.com/dibarbet/roslyn/blob/bce3670cf4dd81fc48ff94d792ced7c8266e048a/src/LanguageServer/ProtocolUnitTests/References/FindAllReferencesHandlerFeaturesTests.cs#L85

@CyrusNajmabadi
Copy link
Member

@333fred have you considered bisecting to see where this regression may have been introduced? That would likely help us find the culprit (which certainly will not be me. nosiree).

@333fred
Copy link
Member Author

333fred commented Jul 26, 2024

@333fred have you considered bisecting to see where this regression may have been introduced? That would likely help us find the culprit (which certainly will not be me. nosiree).

Thankfully, a helpful soul managed to track down the issue before I decided to actually give that a try.

@CyrusNajmabadi
Copy link
Member

Introduced in dotnet/roslyn#73613.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants