Files
2026-08-27 10:56:38 -06:00

37 lines
1.2 KiB
C#

namespace Microsoft.CodeAnalysis.CSharp;
internal readonly struct UnaryOperatorAnalysisResult
{
public readonly UnaryOperatorSignature Signature;
public readonly Conversion Conversion;
public readonly OperatorAnalysisResultKind Kind;
public bool IsValid => Kind == OperatorAnalysisResultKind.Applicable;
public bool HasValue => Kind != OperatorAnalysisResultKind.Undefined;
private UnaryOperatorAnalysisResult(OperatorAnalysisResultKind kind, UnaryOperatorSignature signature, Conversion conversion)
{
Kind = kind;
Signature = signature;
Conversion = conversion;
}
public static UnaryOperatorAnalysisResult Applicable(UnaryOperatorSignature signature, Conversion conversion)
{
return new UnaryOperatorAnalysisResult(OperatorAnalysisResultKind.Applicable, signature, conversion);
}
public static UnaryOperatorAnalysisResult Inapplicable(UnaryOperatorSignature signature, Conversion conversion)
{
return new UnaryOperatorAnalysisResult(OperatorAnalysisResultKind.Inapplicable, signature, conversion);
}
public UnaryOperatorAnalysisResult Worse()
{
return new UnaryOperatorAnalysisResult(OperatorAnalysisResultKind.Worse, Signature, Conversion);
}
}