Skip to content

Commit

Permalink
Revert "Add the capability to walk up the inheritance chain for GetMe…
Browse files Browse the repository at this point in the history
…mberWithSameMetadataDefinitionAs (#69057)"

This reverts commit d0d7c30.
  • Loading branch information
lewing authored May 10, 2022
1 parent 43dd0a7 commit f1b8bc6
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -123,22 +123,7 @@ public sealed override MemberInfo GetMemberWithSameMetadataDefinitionAs(MemberIn
if (member is null)
throw new ArgumentNullException(nameof(member));

// Need to walk up the inheritance chain if member is not found
// Leverage the existing cache mechanism of per type to store members
RuntimeTypeInfo? runtimeType = this;
while (runtimeType != null)
{
MemberInfo result = runtimeType.GetDeclaredMemberWithSameMetadataDefinitionAs(member);
if (result != null)
return result;
runtimeType = runtimeType.BaseType as RuntimeTypeInfo;
}
throw new ArgumentException(SR.Format(SR.Arg_MemberInfoNotFound, member.Name), nameof(member));
}

private MemberInfo GetDeclaredMemberWithSameMetadataDefinitionAs(MemberInfo member)
{
return member.MemberType switch
MemberInfo result = member.MemberType switch
{
MemberTypes.Method => QueryMemberWithSameMetadataDefinitionAs<MethodInfo>(member),
MemberTypes.Constructor => QueryMemberWithSameMetadataDefinitionAs<ConstructorInfo>(member),
Expand All @@ -148,6 +133,11 @@ private MemberInfo GetDeclaredMemberWithSameMetadataDefinitionAs(MemberInfo memb
MemberTypes.NestedType => QueryMemberWithSameMetadataDefinitionAs<Type>(member),
_ => null,
};

if (result is null)
throw new ArgumentException(SR.Format(SR.Arg_MemberInfoNotFound, member.Name), nameof(member));

return result;
}

private M QueryMemberWithSameMetadataDefinitionAs<M>(MemberInfo member) where M : MemberInfo
Expand Down
1 change: 1 addition & 0 deletions src/libraries/System.Reflection/tests/TypeInfoTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1656,6 +1656,7 @@ private static (Type, Type) CreateGeneratedTypes()
}

[Theory, MemberData(nameof(GetMemberWithSameMetadataDefinitionAsData))]
[ActiveIssue("https://github.com/dotnet/runtime/issues/67533", typeof(PlatformDetection), nameof(PlatformDetection.IsNativeAot))]
public void GetMemberWithSameMetadataDefinitionAs(Type openGenericType, Type closedGenericType, bool checkDeclaringType)
{
BindingFlags all = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly;
Expand Down
2 changes: 0 additions & 2 deletions src/libraries/tests.proj
Original file line number Diff line number Diff line change
Expand Up @@ -377,8 +377,6 @@
<!-- Run only a small randomly chosen set of passing test suites -->
<ProjectExclusions Include="$(MSBuildThisFileDirectory)*\tests\**\*.Tests.csproj" />
<ProjectExclusions Remove="$(MSBuildThisFileDirectory)System.Collections\tests\System.Collections.Tests.csproj" />
<ProjectExclusions Remove="$(MSBuildThisFileDirectory)System.Reflection\tests\System.Reflection.Tests.csproj" />
<ProjectExclusions Remove="$(MSBuildThisFileDirectory)System.Runtime\tests\System.Runtime.Tests.csproj" />
</ItemGroup>

<ItemGroup>
Expand Down

0 comments on commit f1b8bc6

Please sign in to comment.