// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using Mono.Cecil;
namespace ILLink.Shared.TypeSystemProxy
{
internal readonly partial struct GenericParameterProxy
{
public GenericParameterProxy (GenericParameter genericParameter) => GenericParameter = genericParameter;
public static implicit operator GenericParameterProxy (GenericParameter genericParameter) => new (genericParameter);
internal partial bool HasDefaultConstructorConstraint () => GenericParameter.HasDefaultConstructorConstraint;
internal partial bool HasEnumConstraint ()
{
if (GenericParameter.HasConstraints) {
foreach (GenericParameterConstraint? constraint in GenericParameter.Constraints) {
if (constraint.ConstraintType.Name == "Enum" && constraint.ConstraintType.Namespace == "System")
return true;
}
}
return false;
}
public readonly GenericParameter GenericParameter;
public override string ToString () => GenericParameter.ToString ();
}
}
|