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()); }
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); }