# HG changeset patch # User Jari-Matti M?kel? # Date 1204395296 -7200 # Node ID c39667f1e814f8aef3124064f215ea5835901ca3 # Parent dcd30b0ba711a70ccd04966af6e43eb21d14306c Fixes to non-virtual functions. Commented out broken method for enums. diff -r dcd30b0ba711 -r c39667f1e814 trunk/src/cmd/DDoc.d --- a/trunk/src/cmd/DDoc.d Sat Mar 01 17:58:23 2008 +0100 +++ b/trunk/src/cmd/DDoc.d Sat Mar 01 20:14:56 2008 +0200 @@ -544,6 +544,18 @@ }); } + // templated decls are not virtual so we need these: + + /// Writes a class declaration. + void writeClass(ClassDeclaration d) { + writeClassOrInterface(d); + } + + /// Writes an interface declaration. + void writeInterface(InterfaceDeclaration d) { + writeClassOrInterface(d); + } + /// Writes a struct or union declaration. void writeStructOrUnion(T)(T d) { @@ -564,6 +576,18 @@ }); } + // templated decls are not virtual so we need these: + + /// Writes a struct declaration. + void writeStruct(StructDeclaration d) { + writeStructOrUnion(d); + } + + /// Writes an union declaration. + void writeUnion(UnionDeclaration d) { + writeStructOrUnion(d); + } + /// Writes an alias or typedef declaration. void writeAliasOrTypedef(T)(T d) { @@ -683,25 +707,25 @@ D visit(ClassDeclaration d) { - writeClassOrInterface(d); + writeClass(d); return d; } D visit(InterfaceDeclaration d) { - writeClassOrInterface(d); + writeInterface(d); return d; } D visit(StructDeclaration d) { - writeStructOrUnion(d); + writeStruct(d); return d; } D visit(UnionDeclaration d) { - writeStructOrUnion(d); + writeUnion(d); return d; } diff -r dcd30b0ba711 -r c39667f1e814 trunk/src/cmd/DDocXML.d --- a/trunk/src/cmd/DDocXML.d Sat Mar 01 17:58:23 2008 +0100 +++ b/trunk/src/cmd/DDocXML.d Sat Mar 01 20:14:56 2008 +0200 @@ -146,11 +146,23 @@ writeComment(); MEMBERS(is(T == ClassDeclaration) ? "CLASS" : "INTERFACE", { scope s = new Scope(); -/*FIXME*/ d.decls && DefaultVisitor.visit(d.decls); + d.decls && DefaultVisitor.visit(d.decls); }); }); } + // templated decls are not virtual so we need these: + + /// Writes a class declaration. + void writeClass(ClassDeclaration d) { + writeClassOrInterface(d); + } + + /// Writes an interface declaration. + void writeInterface(InterfaceDeclaration d) { + writeClassOrInterface(d); + } + /// Writes a struct or union declaration. void writeStructOrUnion(T)(T d) { @@ -166,11 +178,23 @@ writeComment(); MEMBERS(is(T == StructDeclaration) ? "STRUCT" : "UNION", { scope s = new Scope(); -/*FIXME*/ d.decls && DefaultVisitor.visit(d.decls); + d.decls && DefaultVisitor.visit(d.decls); }); }); } + // templated decls are not virtual so we need these: + + /// Writes a struct declaration. + void writeStruct(StructDeclaration d) { + writeStructOrUnion(d); + } + + /// Writes an union declaration. + void writeUnion(UnionDeclaration d) { + writeStructOrUnion(d); + } + /// Writes an alias or typedef declaration. void writeAliasOrTypedef(T)(T d) { @@ -187,6 +211,7 @@ DESC({ writeComment(); }); } + /// Writes the attributes of a declaration in brackets. void writeAttributes(Declaration d) { @@ -220,10 +245,11 @@ alias Declaration D; -// alias DDocEmitter.visit visit; + alias DDocEmitter.visit visit; D visit(EnumDeclaration d) { + /+ FIXME: broken, infinite recursion :/ if (!ddoc(d)) return d; DECL({ @@ -232,8 +258,10 @@ }, d); DESC({ writeComment(); -/*FIXME*/ MEMBERS("ENUM", { scope s = new Scope(); DefaultVisitor.visit(d); }); + Stdout("help\n"); +///*FIXME*/ MEMBERS("ENUM", { scope s = new Scope(); DDocEmitter.visit(d); }); }); + +/ return d; } @@ -251,7 +279,7 @@ this.tparams = d.tparams; if (d.begin.kind != TOK.Template) { // This is a templatized class/interface/struct/union/function. -/*FIXME*/ DefaultVisitor.visit(d.decls); + DefaultVisitor.visit(d.decls); this.tparams = null; return d; } @@ -266,13 +294,12 @@ writeComment(); MEMBERS("TEMPLATE", { scope s = new Scope(); -/*FIXME*/ DefaultVisitor.visit(d.decls); + DefaultVisitor.visit(d.decls); }); }); return d; } - D visit(ConstructorDeclaration d) { if (!ddoc(d)) @@ -375,4 +402,5 @@ DESC({ writeComment(); }); return d; } + }