Browse Source

Put abstract implementations in the proper namespace.

pull/219/merge
Elias Holzer 11 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 @@ -25,8 +25,12 @@ namespace CppSharp.Passes
public override bool VisitTranslationUnit(TranslationUnit unit)
{
var result = base.VisitTranslationUnit(unit);
unit.Classes.AddRange(internalImpls);
var result = base.VisitTranslationUnit(unit);
foreach (var internalImpl in internalImpls)
if (internalImpl.Namespace != null)
internalImpl.Namespace.Classes.Add(internalImpl);
else
unit.Classes.AddRange(internalImpls);
internalImpls.Clear();
return result;

11
tests/Basic/Basic.h

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