Mosa.Compiler.Framework.MosaTypeLayout.ScanExplicitInterfaceImplementations C# (CSharp) Method

ScanExplicitInterfaceImplementations() private method

private ScanExplicitInterfaceImplementations ( MosaType type, MosaType interfaceType, MosaMethod methodTable ) : void
type MosaType
interfaceType MosaType
methodTable MosaMethod
return void
        private void ScanExplicitInterfaceImplementations(MosaType type, MosaType interfaceType, MosaMethod[] methodTable)
        {
            foreach (var method in type.Methods)
            {
                foreach (var overrideTarget in method.Overrides)
                {
                    // Get clean name for overrideTarget
                    var cleanOverrideTargetName = GetCleanMethodName(overrideTarget.Name);

                    int slot = 0;
                    foreach (var interfaceMethod in interfaceType.Methods)
                    {
                        // Get clean name for interfaceMethod
                        var cleanInterfaceMethodName = GetCleanMethodName(interfaceMethod.Name);

                        // Check that the signatures match, the types and the names
                        if (overrideTarget.Equals(interfaceMethod) && overrideTarget.DeclaringType.Equals(interfaceType) && cleanOverrideTargetName.Equals(cleanInterfaceMethodName))
                        {
                            methodTable[slot] = method;
                        }
                        slot++;
                    }
                }
            }
        }