Mercurial > projects > ldc
comparison 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 |
comparison
equal
deleted
inserted
replaced
1363:b7c8506e1eed | 1364:46f6365a50d7 |
---|---|
1 #ifndef __LDC_IR_IRTYPEFUNCTION_H__ | |
2 #define __LDC_IR_IRTYPEFUNCTION_H__ | |
3 | |
4 #include "ir/irtype.h" | |
5 | |
6 class IrFuncTy; | |
7 | |
8 /// | |
9 class IrTypeFunction : public IrType | |
10 { | |
11 public: | |
12 /// | |
13 IrTypeFunction(Type* dt); | |
14 | |
15 /// | |
16 IrTypeFunction* isFunction() { return this; } | |
17 | |
18 /// | |
19 const llvm::Type* buildType(); | |
20 | |
21 IrFuncTy* fty() { return irfty; } | |
22 | |
23 protected: | |
24 /// | |
25 IrFuncTy* irfty; | |
26 }; | |
27 | |
28 /// | |
29 class IrTypeDelegate : public IrType | |
30 { | |
31 public: | |
32 /// | |
33 IrTypeDelegate(Type* dt); | |
34 | |
35 /// | |
36 IrTypeDelegate* isDelegate() { return this; } | |
37 | |
38 /// | |
39 const llvm::Type* buildType(); | |
40 }; | |
41 | |
42 #endif |