Browse Source

Put abstract implementations in the proper namespace.

pull/219/merge
Elias Holzer 12 years ago committed by triton
parent
commit
7596ea4b0e
  1. 8
      src/Generator/Passes/GenerateAbstractImplementationsPass.cs
  2. 11
      tests/Basic/Basic.h

8
src/Generator/Passes/GenerateAbstractImplementationsPass.cs

@ -25,8 +25,12 @@ namespace CppSharp.Passes
public override bool VisitTranslationUnit(TranslationUnit unit) public override bool VisitTranslationUnit(TranslationUnit unit)
{ {
var result = base.VisitTranslationUnit(unit); var result = base.VisitTranslationUnit(unit);
unit.Classes.AddRange(internalImpls); foreach (var internalImpl in internalImpls)
if (internalImpl.Namespace != null)
internalImpl.Namespace.Classes.Add(internalImpl);
else
unit.Classes.AddRange(internalImpls);
internalImpls.Clear(); internalImpls.Clear();
return result; return result;

11
tests/Basic/Basic.h

@ -314,4 +314,13 @@ SomeStruct;
class SomeClassExtendingTheStruct : public SomeStruct class SomeClassExtendingTheStruct : public SomeStruct
{ {
}; };
namespace SomeNamespace
{
class AbstractClass
{
public:
virtual void AbstractMethod() = 0;
};
}
Loading…
Cancel
Save