File: System\Reflection\Runtime\MethodInfos\RuntimeDummyMethodInfo.cs
Web Access
Project: src\src\runtime\src\coreclr\nativeaot\System.Private.CoreLib\src\System.Private.CoreLib.csproj (System.Private.CoreLib)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Reflection.Runtime.ParameterInfos;
using System.Reflection.Runtime.TypeInfos;

using Internal.Reflection.Core.Execution;

namespace System.Reflection.Runtime.MethodInfos
{
    //
    // Singleton MethodInfo used as a sentinel for _lazy* latches where we can't use "null" as a sentinel.
    //
    internal sealed class RuntimeDummyMethodInfo : RuntimeNamedMethodInfo
    {
        private RuntimeDummyMethodInfo() { }

        public sealed override bool Equals(object obj) => object.ReferenceEquals(this, obj);
        public sealed override int GetHashCode() => 1;
        public sealed override string ToString() => string.Empty;

        public sealed override MethodInfo GetGenericMethodDefinition() { throw NotImplemented.ByDesign; }
        [RequiresDynamicCode("The native code for this instantiation might not be available at runtime.")]
        [RequiresUnreferencedCode("If some of the generic arguments are annotated (either with DynamicallyAccessedMembersAttribute, or generic constraints), trimming can't validate that the requirements of those annotations are met.")]
        public sealed override MethodInfo MakeGenericMethod(params Type[] typeArguments) { throw NotImplemented.ByDesign; }
        public sealed override MethodAttributes Attributes { get { throw NotImplemented.ByDesign; } }
        public sealed override Type ReflectedType { get { throw NotImplemented.ByDesign; } }
        public sealed override CallingConventions CallingConvention { get { throw NotImplemented.ByDesign; } }
        public sealed override IEnumerable<CustomAttributeData> CustomAttributes { get { throw NotImplemented.ByDesign; } }
        public sealed override bool IsConstructedGenericMethod { get { throw NotImplemented.ByDesign; } }
        public sealed override bool IsGenericMethod { get { throw NotImplemented.ByDesign; } }
        public sealed override bool IsGenericMethodDefinition { get { throw NotImplemented.ByDesign; } }
        internal sealed override int GenericParameterCount { get { throw NotImplemented.ByDesign; } }
        public sealed override bool HasSameMetadataDefinitionAs(MemberInfo other) { throw NotImplemented.ByDesign; }
        public sealed override MethodImplAttributes MethodImplementationFlags { get { throw NotImplemented.ByDesign; } }
        public sealed override Module Module { get { throw NotImplemented.ByDesign; } }
        internal sealed override MethodBase MetadataDefinitionMethod { get { throw NotImplemented.ByDesign; } }
        public sealed override int MetadataToken { get { throw NotImplemented.ByDesign; } }
        public sealed override RuntimeMethodHandle MethodHandle { get { throw NotImplemented.ByDesign; } }
        protected sealed override MethodBaseInvoker UncachedMethodInvoker { get { throw NotImplemented.ByDesign; } }
        internal sealed override RuntimeParameterInfo[] GetRuntimeParameters(RuntimeMethodInfo contextMethod, out RuntimeParameterInfo returnParameter) { throw NotImplemented.ByDesign; }
        internal sealed override RuntimeTypeInfo RuntimeDeclaringType { get { throw NotImplemented.ByDesign; } }
        internal sealed override string RuntimeName { get { throw NotImplemented.ByDesign; } }
        internal sealed override RuntimeTypeInfo[] RuntimeGenericArgumentsOrParameters { get { throw NotImplemented.ByDesign; } }

        protected internal sealed override string ComputeToString(RuntimeMethodInfo contextMethod) { throw NotImplemented.ByDesign; }
        internal sealed override MethodBaseInvoker GetUncachedMethodInvoker(RuntimeTypeInfo[] methodArguments, MemberInfo exceptionPertainant) { throw NotImplemented.ByDesign; }
        internal sealed override RuntimeMethodHandle GetRuntimeMethodHandle(Type[] genericArgs) { throw NotImplemented.ByDesign; }
        internal sealed override RuntimeMethodInfo WithReflectedTypeSetToDeclaringType { get { throw NotImplemented.ByDesign; } }
        public static readonly RuntimeDummyMethodInfo Instance = new RuntimeDummyMethodInfo();
    }
}