public void FixPlatformVersion()

in ILRepack/PlatformFixer.cs [103:148]


        public void FixPlatformVersion(TypeReference reference)
        {
            if (reference == null || targetPlatformDirectory == null)
                return;

            AssemblyNameReference scopeAsm = reference.Scope as AssemblyNameReference;
            if (scopeAsm == null)
                return;

            var platformAsm = GetFixedPlatformVersion(scopeAsm);
            if (platformAsm == null)
                return;

            if (reference is TypeSpecification)
            {
                FixPlatformVersion(((TypeSpecification)reference).ElementType);
                if (reference is OptionalModifierType)
                    FixPlatformVersion(((OptionalModifierType)reference).ModifierType);
                else if (reference is RequiredModifierType)
                    FixPlatformVersion(((RequiredModifierType)reference).ModifierType);
                else if (reference is GenericInstanceType)
                {
                    var instance = (GenericInstanceType)reference;
                    FixPlatformVersion(instance.ElementType);
                    if (instance.HasGenericArguments)
                        foreach (var ga in instance.GenericArguments)
                            FixPlatformVersion(ga);
                }
                else if (reference is FunctionPointerType)
                {
                    var instance = (FunctionPointerType)reference;
                    FixPlatformVersion(instance.ReturnType);
                    if (instance.HasParameters)
                        foreach (var p in instance.Parameters)
                            FixPlatformVersion(p);
                }
            }
            else if (!(reference is GenericParameter))
            {
                reference.Scope = platformAsm;
            }
            if (reference.HasGenericParameters)
                foreach (var gp in reference.GenericParameters)
                    FixPlatformVersion(gp);
            FixPlatformVersion(reference.DeclaringType);
        }