Skip to content

Commit 249cd7c

Browse files
committed
Update to file-scoped namespace in MethodParameterInfo.cs
Converted to file-scoped namespace syntax for consistency and modern C# style. No functional changes; only formatting and indentation were updated.
1 parent 5dfeeaf commit 249cd7c

1 file changed

Lines changed: 75 additions & 76 deletions

File tree

Lines changed: 75 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,87 @@
1-
namespace BionicCode.Utilities.Net.Reflection
2-
{
3-
using System;
1+
namespace BionicCode.Utilities.Net.Reflection;
42

5-
internal readonly struct MethodParameterInfo : IEquatable<MethodParameterInfo>
6-
{
7-
public WellKnownParameterDescriptor ParameterDescriptor { get; }
8-
public ParameterMemberDescriptor DeclaringMemberDescriptor { get; }
3+
using System;
94

10-
/// <summary>
11-
/// Gets a value indicating whether ambiguity is expected for the associated parameter or member descriptor.
12-
/// </summary>
13-
/// <remarks>Ambiguity is expected when neither the parameter nor the declaring member can be
14-
/// uniquely identified by name, position, or handle. This property can be used to determine if additional
15-
/// disambiguation logic may be required when resolving parameters or members.</remarks>
16-
public bool IsAmbiguityExpected
17-
=> (!ParameterDescriptor.HasParameterName
18-
&& !ParameterDescriptor.HasParameterPosition)
19-
|| !DeclaringMemberDescriptor.HasMemberHandle;
5+
internal readonly struct MethodParameterInfo : IEquatable<MethodParameterInfo>
6+
{
7+
public WellKnownParameterDescriptor ParameterDescriptor { get; }
8+
public ParameterMemberDescriptor DeclaringMemberDescriptor { get; }
209

21-
///// <summary>
22-
///// Gets a value indicating whether the type parameter is declared by a generic method definition.
23-
///// </summary>
24-
///// <value><see langword="true"/> if the type parameter is declared by a generic method definition; otherwise, <see langword="false"/>.</value>
25-
//public bool IsGenericMethodParameter { get; }
10+
/// <summary>
11+
/// Gets a value indicating whether ambiguity is expected for the associated parameter or member descriptor.
12+
/// </summary>
13+
/// <remarks>Ambiguity is expected when neither the parameter nor the declaring member can be
14+
/// uniquely identified by name, position, or handle. This property can be used to determine if additional
15+
/// disambiguation logic may be required when resolving parameters or members.</remarks>
16+
public bool IsAmbiguityExpected
17+
=> (!ParameterDescriptor.HasParameterName
18+
&& !ParameterDescriptor.HasParameterPosition)
19+
|| !DeclaringMemberDescriptor.HasMemberHandle;
2620

27-
/// <summary>
28-
/// Initializes a new instance of the <see cref="MethodParameterInfo"/> class using the specified parameter metadata.
29-
/// </summary>
30-
/// <param name="parameterData">The <see cref="ParameterData"/> describing the parameter, including its position, type, kind, and declaring type. Cannot be
31-
/// null.</param>
32-
/// <exception cref="ArgumentNullException">Thrown when <paramref name="parameterData"/> is <see langword="null"/>.</exception>
33-
public MethodParameterInfo(ParameterData parameterData) : this()
34-
{
35-
ArgumentNullExceptionAdvanced.ThrowIfNull(parameterData);
21+
///// <summary>
22+
///// Gets a value indicating whether the type parameter is declared by a generic method definition.
23+
///// </summary>
24+
///// <value><see langword="true"/> if the type parameter is declared by a generic method definition; otherwise, <see langword="false"/>.</value>
25+
//public bool IsGenericMethodParameter { get; }
3626

37-
RuntimeTypeHandle memberTypeHandle = parameterData.MemberData is MethodData methodData
38-
? methodData.ReturnTypeData.Handle
39-
: default;
27+
/// <summary>
28+
/// Initializes a new instance of the <see cref="MethodParameterInfo"/> class using the specified parameter metadata.
29+
/// </summary>
30+
/// <param name="parameterData">The <see cref="ParameterData"/> describing the parameter, including its position, type, kind, and declaring type. Cannot be
31+
/// null.</param>
32+
/// <exception cref="ArgumentNullException">Thrown when <paramref name="parameterData"/> is <see langword="null"/>.</exception>
33+
public MethodParameterInfo(ParameterData parameterData) : this()
34+
{
35+
ArgumentNullExceptionAdvanced.ThrowIfNull(parameterData);
4036

41-
ParameterDescriptor = new CacheKeyWellKnownParameterDescriptor(
42-
parameterData.Name,
43-
parameterData.Position,
44-
parameterData.ParameterKind,
45-
parameterData.ParameterTypeHandle);
46-
DeclaringMemberDescriptor = new ParameterMemberDescriptor(
47-
parameterData.DeclaringTypeHandle,
48-
parameterData.MemberData.Handle,
49-
parameterData.MemberData.Name,
50-
parameterData.MemberData.Parameters.Count,
51-
parameterData.MemberData.ParameterizedSymbolKind,
52-
TypeList.Empty,
53-
memberTypeHandle);
54-
}
37+
RuntimeTypeHandle memberTypeHandle = parameterData.MemberData is MethodData methodData
38+
? methodData.ReturnTypeData.Handle
39+
: default;
5540

56-
/// <summary>
57-
/// Initializes a new instance of the <see cref="MethodParameterInfo"/> class using the specified symbol information data
58-
/// cache key.
59-
/// </summary>
60-
/// <remarks>Throws an exception if the provided cache key is <see langword="default"/>, its declaring type handle is
61-
/// <see langword="default"/>, or its parameter kind is <see cref="ParameterKind.Undefined"/>. This constructor is intended for scenarios where parameter
62-
/// metadata is anonymously available in a precomputed implicit form. If the explicit metadata of this parameter in form of a <see cref="ParameterData"/> is available, it should be used with the overload <see cref="MethodParameterInfo(ParameterData)"/> instead.</remarks>
63-
/// <param name="parameterInfoDataCacheKey">An object containing metadata about the method parameter, including its position, type, kind, and declaring
64-
/// type. Cannot be <see langword="default"/>.</param>
65-
/// <exception cref="ArgumentNullException">Thrown when <paramref name="parameterInfoDataCacheKey"/> is <see langword="default"/> or its declaring type handle is <see langword="default"/>.</exception>
66-
/// <exception cref="ArgumentException">Thrown when the <see cref="ParameterKind"/> of <paramref name="parameterInfoDataCacheKey"/> is <see cref="ParameterKind.Undefined"/>.</exception>"
67-
public MethodParameterInfo(SymbolReflectionInfoCacheKey parameterInfoDataCacheKey) : this()
68-
{
69-
ArgumentNullExceptionAdvanced.ThrowIfDefault(parameterInfoDataCacheKey.ParameterDescriptor, nameof(parameterInfoDataCacheKey));
70-
ArgumentNullExceptionAdvanced.ThrowIfDefault(parameterInfoDataCacheKey.ParameterMemberDescriptor, nameof(parameterInfoDataCacheKey));
41+
ParameterDescriptor = new CacheKeyWellKnownParameterDescriptor(
42+
parameterData.Name,
43+
parameterData.Position,
44+
parameterData.ParameterKind,
45+
parameterData.ParameterTypeHandle);
46+
DeclaringMemberDescriptor = new ParameterMemberDescriptor(
47+
parameterData.DeclaringTypeHandle,
48+
parameterData.MemberData.Handle,
49+
parameterData.MemberData.Name,
50+
parameterData.MemberData.Parameters.Count,
51+
parameterData.MemberData.ParameterizedSymbolKind,
52+
TypeList.Empty,
53+
memberTypeHandle);
54+
}
7155

72-
WellKnownParameterDescriptor parameterDescriptor = parameterInfoDataCacheKey.ParameterDescriptor;
73-
ParameterMemberDescriptor declaringMemberDescriptor = parameterInfoDataCacheKey.ParameterMemberDescriptor;
74-
ParameterDescriptor = parameterDescriptor;
75-
DeclaringMemberDescriptor = declaringMemberDescriptor;
76-
}
56+
/// <summary>
57+
/// Initializes a new instance of the <see cref="MethodParameterInfo"/> class using the specified symbol information data
58+
/// cache key.
59+
/// </summary>
60+
/// <remarks>Throws an exception if the provided cache key is <see langword="default"/>, its declaring type handle is
61+
/// <see langword="default"/>, or its parameter kind is <see cref="ParameterKind.Undefined"/>. This constructor is intended for scenarios where parameter
62+
/// metadata is anonymously available in a precomputed implicit form. If the explicit metadata of this parameter in form of a <see cref="ParameterData"/> is available, it should be used with the overload <see cref="MethodParameterInfo(ParameterData)"/> instead.</remarks>
63+
/// <param name="parameterInfoDataCacheKey">An object containing metadata about the method parameter, including its position, type, kind, and declaring
64+
/// type. Cannot be <see langword="default"/>.</param>
65+
/// <exception cref="ArgumentNullException">Thrown when <paramref name="parameterInfoDataCacheKey"/> is <see langword="default"/> or its declaring type handle is <see langword="default"/>.</exception>
66+
/// <exception cref="ArgumentException">Thrown when the <see cref="ParameterKind"/> of <paramref name="parameterInfoDataCacheKey"/> is <see cref="ParameterKind.Undefined"/>.</exception>"
67+
public MethodParameterInfo(SymbolReflectionInfoCacheKey parameterInfoDataCacheKey) : this()
68+
{
69+
ArgumentNullExceptionAdvanced.ThrowIfDefault(parameterInfoDataCacheKey.ParameterDescriptor, nameof(parameterInfoDataCacheKey));
70+
ArgumentNullExceptionAdvanced.ThrowIfDefault(parameterInfoDataCacheKey.ParameterMemberDescriptor, nameof(parameterInfoDataCacheKey));
71+
72+
WellKnownParameterDescriptor parameterDescriptor = parameterInfoDataCacheKey.ParameterDescriptor;
73+
ParameterMemberDescriptor declaringMemberDescriptor = parameterInfoDataCacheKey.ParameterMemberDescriptor;
74+
ParameterDescriptor = parameterDescriptor;
75+
DeclaringMemberDescriptor = declaringMemberDescriptor;
76+
}
7777

78-
public override bool Equals(object? obj) => obj is MethodParameterInfo info && Equals(info);
79-
public bool Equals(MethodParameterInfo other) => ParameterDescriptor == other.ParameterDescriptor
80-
&& DeclaringMemberDescriptor == other.DeclaringMemberDescriptor;
78+
public override bool Equals(object? obj) => obj is MethodParameterInfo info && Equals(info);
79+
public bool Equals(MethodParameterInfo other) => ParameterDescriptor == other.ParameterDescriptor
80+
&& DeclaringMemberDescriptor == other.DeclaringMemberDescriptor;
8181

82-
public override int GetHashCode()
83-
=> HashCode.Combine(ParameterDescriptor, DeclaringMemberDescriptor);
82+
public override int GetHashCode()
83+
=> HashCode.Combine(ParameterDescriptor, DeclaringMemberDescriptor);
8484

85-
public static bool operator ==(MethodParameterInfo left, MethodParameterInfo right) => left.Equals(right);
86-
public static bool operator !=(MethodParameterInfo left, MethodParameterInfo right) => !(left == right);
87-
}
85+
public static bool operator ==(MethodParameterInfo left, MethodParameterInfo right) => left.Equals(right);
86+
public static bool operator !=(MethodParameterInfo left, MethodParameterInfo right) => !(left == right);
8887
}

0 commit comments

Comments
 (0)