private static string GetChangeToBaseCallCode(ElementBuilder elementBuilder, LanguageElement toReplace, Property property)
        {
            Return oldReturn = toReplace as Return;

            if (oldReturn != null)
            {
                Return newReturn = elementBuilder.AddReturn(null, elementBuilder.BuildQualifiedElementReference(elementBuilder.BuildBaseReferenceExpression(), property.Name));
            }
            Assignment oldAssignment = toReplace as Assignment;

            if (oldAssignment != null)
            {
                Assignment newAssignment = elementBuilder.AddAssignment(null, elementBuilder.BuildQualifiedElementReference(elementBuilder.BuildBaseReferenceExpression(), property.Name), oldAssignment.Expression);
            }
            return(elementBuilder.GenerateCode().Trim());
        }
        private static string GetChangeToFieldCallCode(ElementBuilder elementBuilder, LanguageElement toReplace, Property property)
        {
            string fieldVariableName = CodeRush.Strings.Get("FormatFieldName", property.Name);

            Return oldReturn = toReplace as Return;

            if (oldReturn != null)
            {
                object expression = oldReturn.Expression.LastChild != null ? (object)elementBuilder.BuildQualifiedElementReference(oldReturn.Expression.LastChild, fieldVariableName) : fieldVariableName;
                Return newReturn  = elementBuilder.AddReturn(null, expression);
            }
            Assignment oldAssignment = toReplace as Assignment;

            if (oldAssignment != null)
            {
                object     leftSide      = oldAssignment.LeftSide.LastChild != null ? (object)elementBuilder.BuildQualifiedElementReference(oldAssignment.LeftSide.LastChild, fieldVariableName) : fieldVariableName;
                Assignment newAssignment = elementBuilder.AddAssignment(null, leftSide, oldAssignment.Expression);
            }
            return(elementBuilder.GenerateCode().Trim());
        }
Esempio n. 3
0
 private static void AddFieldDisposeBlock(ElementBuilder elementBuilder, If parentIfDisposingBlock, BaseVariable field)
 {
     If ifFieldIsAssignedBlock = new If();
       ifFieldIsAssignedBlock.Expression = CodeRush.Language.GetNullCheck(field.Name).Invert();
       elementBuilder.AddMethodCall(ifFieldIsAssignedBlock, field.Name + CodeRush.Language.MemberAccessOperator + STR_Dispose);
       if (!field.IsReadOnly)
       elementBuilder.AddAssignment(ifFieldIsAssignedBlock, field.Name, CodeRush.Language.GetNullReferenceExpression());
       parentIfDisposingBlock.AddNode(ifFieldIsAssignedBlock);
 }