Mercurial > projects > ldc
diff ir/irtypefunction.h @ 1364:46f6365a50d7
Added IrTypeFunction and IrTypeDelegate and eliminated IrDType. This means the Type::ir field can be removed. It's the final part needed for the move to a slightly more sane type system. Now the whole thing just needs to be cleaned up :P
Added -v-cg switch, which right now just prints "codegen: module.name (module/name.d)" to stdout, this can really help figuring out where, in some complex build command, things go wrong.
author | Tomas Lindquist Olsen <tomas.l.olsen gmail com> |
---|---|
date | Sat, 16 May 2009 18:19:52 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ir/irtypefunction.h Sat May 16 18:19:52 2009 +0200 @@ -0,0 +1,42 @@ +#ifndef __LDC_IR_IRTYPEFUNCTION_H__ +#define __LDC_IR_IRTYPEFUNCTION_H__ + +#include "ir/irtype.h" + +class IrFuncTy; + +/// +class IrTypeFunction : public IrType +{ +public: + /// + IrTypeFunction(Type* dt); + + /// + IrTypeFunction* isFunction() { return this; } + + /// + const llvm::Type* buildType(); + + IrFuncTy* fty() { return irfty; } + +protected: + /// + IrFuncTy* irfty; +}; + +/// +class IrTypeDelegate : public IrType +{ +public: + /// + IrTypeDelegate(Type* dt); + + /// + IrTypeDelegate* isDelegate() { return this; } + + /// + const llvm::Type* buildType(); +}; + +#endif