Uh oh!
There was an error while loading. Please reload this page.
Make ILTypeDef interface calculation lazy - #17392
Conversation
❗ Release notes required
|
DedSec256
commented
Jul 18, 2024
It appears that important conflicting changes have occurred during this time |
psfinaki
commented
Jul 22, 2024
@DedSec256 yes, likely due to nullness finally merged, sorry. Let us know if you need any help with conflicts. |
T-Gro
commented
Aug 15, 2024
@DedSec256 : Interface implementation can have attributes on it (not expressible in F#/C#, but in IL it is) and C# nullness metadata export makes use of it. The nullness PR started to read it together with interface implementations, which will likely be the biggest conflict - let me know if you need any help with that. Otherwise, once conflicts and CI are resolved, this should be good to be merged. |
DedSec256
commented
Aug 20, 2024
This PR probably requires changes to the API, so some work is still in progress. |
633bed8 to
161af55CompareDedSec256
commented
Aug 21, 2024
In this PR, the interface implementations and their custom attributes have been combined into a single type |
Uh oh!
There was an error while loading. Please reload this page.
vzarytovskii
commented
Aug 30, 2024
Converted to draft for now, lemme know if you need any help resolving issues/testing. |
b08e2ca to
5214c00CompareDedSec256
commented
Sep 5, 2024
Benchmarks update
|
psfinaki
commented
Sep 9, 2024
Is this ready now @DedSec256? Nevermind one failing test, it's failing everywhere now. |
T-Gro
commented
Sep 17, 2024
Alex @DedSec256 , can I move it out of draft now that all is passing? |
psfinaki
commented
Sep 18, 2024
Thanks @DedSec256! |
As stated in #16168

By analogy with custom attributes, reading interfaces is really time-consuming and
ILTypeDefconstructor is a public API but lacks the ability to pass lazy computation of interfaces.This PR proposes the ability to pass lazy computation of interfaces to
ILTypeDefconstructor.As evidence of the need for lazy calculation even for FCS default interfaces reading implementation, a benchmark was conducted for analysis of all files in ReSharper.FSharp/FSharp.Psi.Services with some additional unused opens,
48 files & 471 dll references required for project analysis were taken