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
{{ message }}
Repository navigation
[RuntimeAsync] Handle covariant returns scenarios in combination with task-returning methods. #124238
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.
Activity
dotnet-policy-service commentedon Feb 10, 2026
Tagging subscribers to this area: @agocke
See info in area-owners.md if you want to be subscribed.
Remove RequiresProcessIsolation from AsyncCovariantReturn
Remove RequiresProcessIsolation from AsyncCovariantReturn (#124302)
Remove RequiresProcessIsolation from AsyncCovariantReturn (dotnet#124302
[Runtime Async] Support for covariant override of `Task`- returning b…
[Runtime Async] Support for covariant override of `Task`- returning b…
agocke commentedon Aug 17, 2026
@VSadov Is this done? Or are custom tasks inheriting from Task still a problem?
VSadov commentedon Aug 17, 2026
Looking at custom tasks + covariant overriding + async.
It is an extreme corner case, likely noone does it, but we need a closure on this.