Browse Source

Generate valid C# when an external module has an unsupported operator

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1265/head
Dimitar Dobrev 6 years ago
parent
commit
05c70ea515
  1. 3
      src/Generator/Passes/MoveFunctionToClassPass.cs
  2. 5
      tests/NamespacesDerived/NamespacesDerived.cpp
  3. 2
      tests/NamespacesDerived/NamespacesDerived.h

3
src/Generator/Passes/MoveFunctionToClassPass.cs

@ -24,8 +24,7 @@ namespace CppSharp.Passes @@ -24,8 +24,7 @@ namespace CppSharp.Passes
Class @class = FindClassToMoveFunctionTo(function);
if (@class == null ||
@class.TranslationUnit.Module != function.TranslationUnit.Module)
if (@class == null)
return false;
// Create a new fake method so it acts as a static method.

5
tests/NamespacesDerived/NamespacesDerived.cpp

@ -92,3 +92,8 @@ DerivedFromSecondaryBaseInDependency::DerivedFromSecondaryBaseInDependency() @@ -92,3 +92,8 @@ DerivedFromSecondaryBaseInDependency::DerivedFromSecondaryBaseInDependency()
DerivedFromSecondaryBaseInDependency::~DerivedFromSecondaryBaseInDependency()
{
}
bool operator<<(const Base& b, const char* str)
{
return false;
}

2
tests/NamespacesDerived/NamespacesDerived.h

@ -87,6 +87,8 @@ public: @@ -87,6 +87,8 @@ public:
~DerivedFromSecondaryBaseInDependency();
};
DLL_API bool operator<<(const Base& b, const char* str);
namespace NamespacesBase
{
class DLL_API ClassInNamespaceNamedAfterDependency

Loading…
Cancel
Save