Browse Source

Generate valid C# for implicit conversion to const char*

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
remove-private-fields
Dimitar Dobrev 6 years ago
parent
commit
3cd7fdee25
  1. 1
      src/Generator/Generators/CSharp/CSharpSources.cs
  2. 12
      tests/CSharp/CSharp.Tests.cs
  3. 5
      tests/CSharp/CSharp.cpp
  4. 1
      tests/CSharp/CSharp.h

1
src/Generator/Generators/CSharp/CSharpSources.cs

@ -2901,7 +2901,6 @@ namespace CppSharp.Generators.CSharp @@ -2901,7 +2901,6 @@ namespace CppSharp.Generators.CSharp
ArgName = Helpers.ReturnIdentifier,
ReturnVarName = Helpers.ReturnIdentifier,
ReturnType = returnType,
Parameter = operatorParam,
Function = function
};

12
tests/CSharp/CSharp.Tests.cs

@ -1276,7 +1276,17 @@ public unsafe class CSharpTests : GeneratorTestFixture @@ -1276,7 +1276,17 @@ public unsafe class CSharpTests : GeneratorTestFixture
}
[Test]
public void Test()
public void TestImplicitConversionToString()
{
using (Foo foo = new Foo())
{
string name = foo;
Assert.That(name, Is.EqualTo("test"));
}
}
[Test]
public void TestHasFunctionPointerField()
{
using (var hasFunctionPtrField = new HasFunctionPtrField())
{

5
tests/CSharp/CSharp.cpp

@ -104,6 +104,11 @@ int Foo::operator --() @@ -104,6 +104,11 @@ int Foo::operator --()
return 4;
}
Foo::operator const char*() const
{
return "test";
}
const Foo& Bar::operator[](int i) const
{
return m_foo;

1
tests/CSharp/CSharp.h

@ -38,6 +38,7 @@ public: @@ -38,6 +38,7 @@ public:
int operator ++();
int operator --();
operator const char*() const;
bool btest[5];
QFlags<TestFlag> publicFieldMappedToEnum;

Loading…
Cancel
Save