public override SyntaxNode VisitLocalDeclarationStatement(LocalDeclarationStatementSyntax node) { string declaredType = node.Declaration.Type.ToString(); bool basicType = SyntaxFactoryExtensions.IsBasicType(declaredType); if (!basicType) { return(node); } if (declaredType.Equals("int")) { return(node); } if (declaredType.Equals("bool")) { return(node); } if (declaredType.Equals("char")) { return(node); } if (declaredType.Equals("string")) { return(node); } foreach (var variable in node.Declaration.Variables) { if (variable.Initializer == null) { continue; } var oldRightValue = variable.Initializer.Value; markedNodes.Add(oldRightValue); var newRightValue = SyntaxFactory.BinaryExpression(SyntaxKind.AddExpression, oldRightValue, SyntaxFactoryExtensions.DefaultValue(declaredType)); replacementNodes.Add(new Tuple <ExpressionSyntax, ExpressionSyntax> (oldRightValue, newRightValue)); } return(node); }