Mercurial > projects > qtd
diff generator/dgenerator.cpp @ 363:3b0545d4d479
Fixed enums in designated interfaces
author | Max Samukha <maxter@maxter.com> |
---|---|
date | Thu, 10 Jun 2010 00:57:32 +0300 |
parents | beaf4a2974d7 |
children | a084e2df3776 |
line wrap: on
line diff
--- a/generator/dgenerator.cpp Wed Jun 09 16:37:24 2010 +0300 +++ b/generator/dgenerator.cpp Thu Jun 10 00:57:32 2010 +0300 @@ -148,7 +148,14 @@ if (option & EnumAsInts) s = "int"; else - s = d_type->typeEntry()->qualifiedTargetLangName(); + { + // Hack around forward-referencing the implementing class in an interface. + if (context->typeEntry()->designatedInterface() && d_type->typeEntry()->javaQualifier() == context->name()) + s = d_type->name(); + else + s = d_type->typeEntry()->qualifiedTargetLangName(); + } + } } else if (d_type->isFlags()) { // qtd2 begin if (d_type->isFlags() && ((FlagsTypeEntry *)d_type->typeEntry())->forceInteger()) {