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
// In the future it might be better to have a separate shared type that we add the info to, and have the callers create the appropriate bound nodes from it
// Licensed to the .NET Foundation under one or more agreements.
2
+
// The .NET Foundation licenses this file to you under the MIT license.
3
+
// See the LICENSE file in the project root for more information.
4
+
5
+
namespaceMicrosoft.CodeAnalysis.CSharp;
6
+
7
+
/// <summary>
8
+
/// Tracks the reachability of the end of a bound node that either already is a try/finally, or has the potential to become one during lowering.
9
+
/// Only nodes that can have an await in the finally block are tracked with this enum, for use in <see cref="AsyncExceptionHandlerRewriter.VisitTryStatement(BoundTryStatement)"/>.
10
+
/// Try/finally nodes that are synthesized by the compiler during lowering and do not have an await in the finally block can use <see cref="AsyncTryFinallyEndReachable.Ignored"/>.
11
+
/// </summary>
12
+
internalenumAsyncTryFinallyEndReachable
13
+
{
14
+
/// <summary>
15
+
/// The reachability of the end of the node has not been determined yet.
16
+
/// </summary>
17
+
Unknown,
18
+
19
+
/// <summary>
20
+
/// The end of the node is reachable.
21
+
/// </summary>
22
+
Reachable,
23
+
24
+
/// <summary>
25
+
/// The end of the node is unreachable.
26
+
/// </summary>
27
+
Unreachable,
28
+
29
+
/// <summary>
30
+
/// The reachability of the end of the node is intentionally not set. This should never be encountered in a try/finally that has an await in the finally block.
&&((InternalSpecialType)_method.ReturnType.OriginalDefinition.ExtendedSpecialType)isInternalSpecialType.System_Threading_Tasks_Task or InternalSpecialType.System_Threading_Tasks_ValueTask),
328
+
"return temp should be null for void methods, or for async Task/ValueTask methods");
0 commit comments