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
Re: #124062 . The PR was a mitigation, but we need actual fixes.
There are two loosely related issues, which may require separate fixes:
Task<T> inherits from Task.
As an example, when a covariant override returns Task<Guid> vs. base method returning Task we may need two async variants for the overriding method - a real one (returns Guid) and a one that matches/overrides the base (calls the real variant, drops the return and returns void).
both Task and Task<T> are not sealed, so a covariant override may return something derived that is not a task at all.
At least in a case where the base was MethodImpl.Async we may need to emit an async variant (thunk) for the overriding method that matches the base, even though the overriding method is not technically task-returning.