/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Compilers/CSharp/Portable/BoundTree/BoundAwaitableInfo.cs
41 строка
1 KB
Fred Silberberg
Support using a simple overload resolution for finding Await helpers from the BCL (#79135)
09 июл 2025, 00:57
Не верифицирован
09 июл 2025, 00:57
7de7718
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Diagnostics; namespace Microsoft.CodeAnalysis.CSharp; partial class BoundAwaitableInfo { private partial void Validate() { if (RuntimeAsyncAwaitCall is not null) { Debug.Assert(RuntimeAsyncAwaitCall.Method.ContainingType.ExtendedSpecialType == InternalSpecialType.System_Runtime_CompilerServices_AsyncHelpers); Debug.Assert(RuntimeAsyncAwaitCallPlaceholder is not null); switch (RuntimeAsyncAwaitCall.Method.Name) { case "Await": Debug.Assert(GetAwaiter is null); Debug.Assert(IsCompleted is null); Debug.Assert(GetResult is null); break; case "AwaitAwaiter": case "UnsafeAwaitAwaiter": Debug.Assert(GetAwaiter is not null); Debug.Assert(IsCompleted is not null); Debug.Assert(GetResult is not null); break; default: Debug.Fail($"Unexpected RuntimeAsyncAwaitCall: {RuntimeAsyncAwaitCall.Method.Name}"); break; } } Debug.Assert(GetAwaiter is not null || RuntimeAsyncAwaitCall is not null || IsDynamic || HasErrors); } }