Refactored IrType construction to use static get() method.

This also allows us to enable the assert in IrType::IrType.

Unfortunately, this is mostly a "peace of mind" commit, there
doesn't seem to have been a bug actually caused by the transitory
duplicate IrTypePointer/IrTypeStruct instances.

The remaining xyz2llvm static methods are not exactly pretty,
they should probably just be folded into get.
This commit is contained in:
David Nadlinger
2012-12-20 21:30:29 +01:00
parent 464c695814
commit a3a511ca55
9 changed files with 170 additions and 156 deletions

View File

@@ -22,14 +22,11 @@ class IrTypeClass : public IrTypeAggr
{
public:
///
IrTypeClass(ClassDeclaration* cd);
static IrTypeClass* get(ClassDeclaration* cd);
///
virtual IrTypeClass* isClass() { return this; }
///
llvm::Type* buildType();
///
llvm::Type* getLLType();
@@ -53,6 +50,9 @@ public:
unsigned getNumInterfaceVtbls() { return num_interface_vtbls; }
protected:
///
IrTypeClass(ClassDeclaration* cd);
///
ClassDeclaration* cd;
///