diff --git a/libdparse b/libdparse
index 50f0e83..0ed3773 160000
--- a/libdparse
+++ b/libdparse
@@ -1 +1 @@
-Subproject commit 50f0e833ce664ebb46ada342a2e14c1e1eff0c71
+Subproject commit 0ed37730cfe0036b700d8a96fea849a4ac227638
diff --git a/src/analysis/enumarrayliteral.d b/src/analysis/enumarrayliteral.d
index 545851a..0564767 100644
--- a/src/analysis/enumarrayliteral.d
+++ b/src/analysis/enumarrayliteral.d
@@ -49,15 +49,38 @@ class EnumArrayLiteralCheck : BaseAnalyzer
{
if (initializer is null) continue;
if (initializer.nonVoidInitializer is null) continue;
- if (initializer.nonVoidInitializer.arrayInitializer is null) continue;
- addErrorMessage(autoDec.identifiers[i].line,
- autoDec.identifiers[i].column, "dscanner.performance.enum_array_literal",
- "This enum may lead to unnecessary allocation at run-time."
- ~ " Use 'static immutable " ~ autoDec.identifiers[i].text
- ~ " = [ ...' instead.");
+ if (initializer.nonVoidInitializer.assignExpression is null) continue;
+ line = autoDec.identifiers[i].line;
+ column = autoDec.identifiers[i].column;
+ text = autoDec.identifiers[i].text;
+// visit(initializer.nonVoidInitializer.assignExpression);
}
}
autoDec.accept(this);
}
+
+ override void visit(const ArrayLiteral arrayLiteral)
+ {
+ if (!looking)
+ return;
+ addErrorMessage(line, column, "dscanner.performance.enum_array_literal",
+ "This enum may lead to unnecessary allocation at run-time."
+ ~ " Use 'static immutable " ~ text ~ " = [ ...' instead.");
+ }
+
+ override void visit(const AssocArrayLiteral assocArrayLiteral)
+ {
+ if (!looking)
+ return;
+ addErrorMessage(line, column, "dscanner.performance.enum_array_literal",
+ "This enum may lead to unnecessary allocation at run-time."
+ ~ " Use 'static immutable " ~ text ~ " = [ ...' instead.");
+ }
+
+private:
+
+ string text;
+ size_t line;
+ size_t column;
}
diff --git a/src/astprinter.d b/src/astprinter.d
index 8302510..6cf7e1d 100644
--- a/src/astprinter.d
+++ b/src/astprinter.d
@@ -960,10 +960,10 @@ class XMLPrinter : ASTVisitor
override void visit(const VariableDeclaration variableDeclaration)
{
- output.writeln("");
- writeDdoc(variableDeclaration.comment);
- variableDeclaration.accept(this);
- output.writeln("");
+ output.writeln("");
+ writeDdoc(variableDeclaration.comment);
+ variableDeclaration.accept(this);
+ output.writeln("");
}
override void visit(const XorExpression xorExpression)
@@ -985,9 +985,7 @@ class XMLPrinter : ASTVisitor
override void visit(const AliasThisDeclaration aliasThisDeclaration) { mixin (tagAndAccept!"aliasThisDeclaration"); }
override void visit(const ArgumentList argumentList) { mixin (tagAndAccept!"argumentList"); }
override void visit(const Arguments arguments) { mixin (tagAndAccept!"arguments"); }
- override void visit(const ArrayInitializer arrayInitializer) { mixin (tagAndAccept!"arrayInitializer"); }
override void visit(const ArrayLiteral arrayLiteral) { mixin (tagAndAccept!"arrayLiteral"); }
- override void visit(const ArrayMemberInitialization arrayMemberInitialization) { mixin (tagAndAccept!"arrayMemberInitialization"); }
override void visit(const AsmAddExp asmAddExp) { mixin (tagAndAccept!"asmAddExp"); }
override void visit(const AsmAndExp asmAndExp) { mixin (tagAndAccept!"asmAndExp"); }
override void visit(const AsmBrExp asmBrExp) { mixin (tagAndAccept!"asmBrExp"); }