From e6c83354e51a6fdedd04433f94dd0365a85a7317 Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Mon, 17 Feb 2014 21:01:49 -0800 Subject: [PATCH] Fix issue with slice expressions not being visited or printed --- astprinter.d | 20 +++++++++++--------- stdx/d/ast.d | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/astprinter.d b/astprinter.d index 7454753..d8f60c6 100644 --- a/astprinter.d +++ b/astprinter.d @@ -1050,18 +1050,20 @@ class XMLPrinter : ASTVisitor override void visit(SliceExpression sliceExpression) { output.writeln(""); - if (sliceExpression.unaryExpression is null) + visit(sliceExpression.unaryExpression); + if (sliceExpression.lower !is null) { - output.writeln(""); visit(sliceExpression.lower); - output.writeln(""); } - else - visit(sliceExpression.unaryExpression); - output.writeln(""); + if (sliceExpression.upper !is null) + { + output.writeln(""); + visit(sliceExpression.upper); + output.writeln(""); + } + output.writeln(""); } override void visit(Statement statement) diff --git a/stdx/d/ast.d b/stdx/d/ast.d index b3b4b71..14160fe 100644 --- a/stdx/d/ast.d +++ b/stdx/d/ast.d @@ -2741,7 +2741,7 @@ public: mixin (visitIfNotNull!(primaryExpression, newExpression, deleteExpression, castExpression, functionCallExpression, argumentList, unaryExpression, type, identifierOrTemplateInstance, assertExpression, - indexExpression)); + sliceExpression, indexExpression)); } /** */ Type type;