Example #1
0
        void prepareRenameMemberDefinitions(MethodNameGroups groups)
        {
            Log.v("Renaming member definitions #1");

            prepareRenameEntryPoints();

            var virtualMethods = new GroupHelper(memberInfos, modules.AllTypes);
            var ifaceMethods = new GroupHelper(memberInfos, modules.AllTypes);
            var propMethods = new GroupHelper(memberInfos, modules.AllTypes);
            var eventMethods = new GroupHelper(memberInfos, modules.AllTypes);
            foreach (var group in getSorted(groups)) {
                if (group.hasNonRenamableMethod())
                    continue;
                else if (group.hasGetterOrSetterPropertyMethod() && getPropertyMethodType(group.Methods[0]) != PropertyMethodType.Other)
                    propMethods.add(group);
                else if (group.hasAddRemoveOrRaiseEventMethod())
                    eventMethods.add(group);
                else if (group.hasInterfaceMethod())
                    ifaceMethods.add(group);
                else
                    virtualMethods.add(group);
            }

            var prepareHelper = new PrepareHelper(memberInfos, modules.AllTypes);
            prepareHelper.prepare((info) => info.prepareRenameMembers());

            prepareHelper.prepare((info) => info.prepareRenamePropsAndEvents());
            propMethods.visitAll((group) => prepareRenameProperty(group, false));
            eventMethods.visitAll((group) => prepareRenameEvent(group, false));
            propMethods.visitAll((group) => prepareRenameProperty(group, true));
            eventMethods.visitAll((group) => prepareRenameEvent(group, true));

            foreach (var typeDef in modules.AllTypes)
                memberInfos.type(typeDef).initializeEventHandlerNames();

            prepareHelper.prepare((info) => info.prepareRenameMethods());
            ifaceMethods.visitAll((group) => prepareRenameVirtualMethods(group, "imethod_", false));
            virtualMethods.visitAll((group) => prepareRenameVirtualMethods(group, "vmethod_", false));
            ifaceMethods.visitAll((group) => prepareRenameVirtualMethods(group, "imethod_", true));
            virtualMethods.visitAll((group) => prepareRenameVirtualMethods(group, "vmethod_", true));

            restoreMethodArgs(groups);

            foreach (var typeDef in modules.AllTypes)
                memberInfos.type(typeDef).prepareRenameMethods2();
        }