changeset 801:c39667f1e814

Fixes to non-virtual functions. Commented out broken method for enums.
author Jari-Matti M?kel? <jmjm@iki.fi>
date Sat, 01 Mar 2008 20:14:56 +0200
parents dcd30b0ba711
children f51305056196
files trunk/src/cmd/DDoc.d trunk/src/cmd/DDocXML.d
diffstat 2 files changed, 63 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- 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;
   }
 
--- 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;
   }
+
 }