From 387a65e4f14885f9aafe50533511ac9cc3d65759 Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Tue, 27 Jan 2015 02:44:57 -0800 Subject: [PATCH] Update libdparse --- libdparse | 2 +- src/conversion/first.d | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/libdparse b/libdparse index b64fb8c..e8d87d6 160000 --- a/libdparse +++ b/libdparse @@ -1 +1 @@ -Subproject commit b64fb8c91efa17a895567403969d4fc87adaa42a +Subproject commit e8d87d6791890176ce5077f1c079d0453d45f02a diff --git a/src/conversion/first.d b/src/conversion/first.d index 463266e..2320775 100644 --- a/src/conversion/first.d +++ b/src/conversion/first.d @@ -314,15 +314,8 @@ final class FirstPass : ASTVisitor currentSymbol.addChild(symbol); } - override void visit(const EnumMember member) - { -// Log.trace(__FUNCTION__, " ", typeof(member).stringof); - SemanticSymbol* symbol = allocateSemanticSymbol(member.name.text, - CompletionKind.enumMember, symbolFile, member.name.index, member.type); - symbol.parent = currentSymbol; - symbol.acSymbol.doc = internString(member.comment); - currentSymbol.addChild(symbol); - } + mixin visitEnumMember!EnumMember; + mixin visitEnumMember!AnonymousEnumMember; override void visit(const ModuleDeclaration moduleDeclaration) { @@ -514,6 +507,19 @@ final class FirstPass : ASTVisitor private: + template visitEnumMember(T) + { + override void visit(const T member) + { +// Log.trace(__FUNCTION__, " ", typeof(member).stringof); + SemanticSymbol* symbol = allocateSemanticSymbol(member.name.text, + CompletionKind.enumMember, symbolFile, member.name.index, member.type); + symbol.parent = currentSymbol; + symbol.acSymbol.doc = internString(member.comment); + currentSymbol.addChild(symbol); + } + } + void visitAggregateDeclaration(AggType)(AggType dec, CompletionKind kind) { // Log.trace("visiting aggregate declaration ", dec.name.text);