# HG changeset patch # User Anders Halager # Date 1216926732 -7200 # Node ID c8e26556c24dc36fee7348850ccef62931ab49e4 # Parent 20ff3c31f6003573629f4eeb81521bf24925a684 Codegen functions in structs diff -r 20ff3c31f600 -r c8e26556c24d gen/CodeGen.d --- a/gen/CodeGen.d Thu Jul 24 21:06:42 2008 +0200 +++ b/gen/CodeGen.d Thu Jul 24 21:12:12 2008 +0200 @@ -222,6 +222,17 @@ table[varDecl.identifier.get] = g; break; + case DeclType.StructDecl: + auto sdecl = cast(StructDecl)decl; + foreach (d; sdecl.decls) + { + auto func = cast(FuncDecl)d; + if (func is null) + continue; + genRootDecl(func); + } + break; + case DeclType.ClassDecl: auto cdecl = cast(ClassDecl)decl; SmallArray!(Constant) functions; @@ -368,7 +379,6 @@ DFunction ftype = type.asFunction(); Type llvm_ftype = llvm(ftype); Value f = null; - Stdout(callExp.callSym).newline; if (callExp.callSym is null) { // Do a virtual function call diff -r 20ff3c31f600 -r c8e26556c24d sema/TypeCheck.d --- a/sema/TypeCheck.d Thu Jul 24 21:06:42 2008 +0200 +++ b/sema/TypeCheck.d Thu Jul 24 21:12:12 2008 +0200 @@ -88,7 +88,6 @@ { super.visitCallExp(exp); - Stdout(exp.exp).newline; if (auto iden = cast(MemberReference)exp.exp) { Symbol[] internalVisitMemberRef(MemberReference m)