void PrepareRenameMemberDefs(MethodNameGroups groups) {
			if (isVerbose)
				Logger.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();
		}
Beispiel #2
0
        void prepareRenameMemberDefinitions(MethodNameScopes scopes)
        {
            Log.v("Renaming member definitions #1");

            prepareRenameEntryPoints();

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

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

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

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

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

            restoreMethodArgs(scopes);

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