Files
PURErat-crack-scode/decompiled/Libraries/microsoft.codeanalysis.csharp/Microsoft.CodeAnalysis.CSharp/UnaryOperatorOverloadResolutionResult.cs
T
2026-08-27 10:56:38 -06:00

91 lines
2.3 KiB
C#

using Microsoft.CodeAnalysis.PooledObjects;
namespace Microsoft.CodeAnalysis.CSharp;
internal sealed class UnaryOperatorOverloadResolutionResult
{
public readonly ArrayBuilder<UnaryOperatorAnalysisResult> Results;
public static readonly ObjectPool<UnaryOperatorOverloadResolutionResult> Pool = CreatePool();
public UnaryOperatorAnalysisResult Best
{
get
{
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
UnaryOperatorAnalysisResult result = default(UnaryOperatorAnalysisResult);
Enumerator<UnaryOperatorAnalysisResult> enumerator = Results.GetEnumerator();
while (enumerator.MoveNext())
{
UnaryOperatorAnalysisResult current = enumerator.Current;
if (current.IsValid)
{
if (result.IsValid)
{
return default(UnaryOperatorAnalysisResult);
}
result = current;
}
}
return result;
}
}
public UnaryOperatorOverloadResolutionResult()
{
Results = new ArrayBuilder<UnaryOperatorAnalysisResult>(10);
}
public bool AnyValid()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000b: Unknown result type (might be due to invalid IL or missing references)
Enumerator<UnaryOperatorAnalysisResult> enumerator = Results.GetEnumerator();
while (enumerator.MoveNext())
{
if (enumerator.Current.IsValid)
{
return true;
}
}
return false;
}
public bool SingleValid()
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
bool flag = false;
Enumerator<UnaryOperatorAnalysisResult> enumerator = Results.GetEnumerator();
while (enumerator.MoveNext())
{
if (enumerator.Current.IsValid)
{
if (flag)
{
return false;
}
flag = true;
}
}
return flag;
}
public static UnaryOperatorOverloadResolutionResult GetInstance()
{
return Pool.Allocate();
}
public void Free()
{
Results.Clear();
Pool.Free(this);
}
private static ObjectPool<UnaryOperatorOverloadResolutionResult> CreatePool()
{
return new ObjectPool<UnaryOperatorOverloadResolutionResult>((Factory<UnaryOperatorOverloadResolutionResult>)(() => new UnaryOperatorOverloadResolutionResult()), 10, true);
}
}