Example #1
0
        INameCreator getMethodNameCreator(MethodDef methodDef, string suggestedName)
        {
            var variableNameState = MemberRenameState.variableNameState;
            INameCreator nameCreator = null;
            string newName = null;

            if (methodDef.MethodDefinition.HasPInvokeInfo)
                newName = getPinvokeName(methodDef);
            else if (methodDef.MethodDefinition.IsStatic)
                nameCreator = variableNameState.staticMethodNameCreator;
            else if (methodDef.isVirtual()) {
                MethodRef otherMethodRef;
                if ((otherMethodRef = MemberRenameState.get(methodDef)) != null)
                    newName = otherMethodRef.NewName;
                else if (methodDef.MethodDefinition.HasOverrides) {
                    var overrideMethod = methodDef.MethodDefinition.Overrides[0];
                    var otherMethodDef = defFinder.findMethod(overrideMethod);
                    if (otherMethodDef != null)
                        newName = getOverrideMethodName(overrideMethod.DeclaringType, otherMethodDef.NewName);
                    else
                        newName = getOverrideMethodName(overrideMethod.DeclaringType, overrideMethod.Name);
                }
                else
                    nameCreator = variableNameState.virtualMethodNameCreator;
            }
            else
                nameCreator = variableNameState.instanceMethodNameCreator;

            if (newName == null)
                newName = suggestedName;
            if (newName != null)
                nameCreator = new OneNameCreator(newName);

            return nameCreator;
        }
Example #2
0
        void renameMethod(MethodDef methodDef, string suggestedName = null)
        {
            if (methodDef.Renamed)
                return;
            methodDef.Renamed = true;
            var variableNameState = MemberRenameState.variableNameState;
            bool isVirtual = methodDef.isVirtual();

            var nameCreator = getMethodNameCreator(methodDef, suggestedName);

            if (!methodDef.MethodDefinition.IsRuntimeSpecialName && !variableNameState.IsValidName(methodDef.OldName))
                methodDef.NewName = nameCreator.newName();

            if (methodDef.ParamDefs.Count > 0) {
                var newVariableNameState = variableNameState.clone();
                foreach (var paramDef in methodDef.ParamDefs) {
                    if (!newVariableNameState.IsValidName(paramDef.OldName)) {
                        paramDef.NewName = newVariableNameState.getNewParamName(paramDef.ParameterDefinition);
                        paramDef.Renamed = true;
                    }
                }
            }

            prepareRenameGenericParams(methodDef.GenericParams, variableNameState.IsValidName, methodDef.Owner == null ? null : methodDef.Owner.genericParams);

            if (isVirtual)
                MemberRenameState.add(methodDef);
        }