Browse Source

Generate valid C# for classes with dependent fields nested in templates with independent fields

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
update-llvm
Dimitar Dobrev 4 years ago
parent
commit
69e766be5d
  1. 2
      src/Generator/Generators/CSharp/CSharpSources.cs
  2. 5
      tests/CSharp/CSharpTemplates.h

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

@ -333,7 +333,7 @@ namespace CppSharp.Generators.CSharp
foreach (var specialization in generated.KeepSingleAllPointersSpecialization()) foreach (var specialization in generated.KeepSingleAllPointersSpecialization())
GenerateClassInternals(specialization); GenerateClassInternals(specialization);
foreach (var group in generated.SelectMany(s => s.Classes).Where( foreach (var group in specializations.SelectMany(s => s.Classes).Where(
c => !c.IsIncomplete).GroupBy(c => c.Name)) c => !c.IsIncomplete).GroupBy(c => c.Name))
{ {
var nested = classTemplate.Classes.FirstOrDefault(c => c.Name == group.Key); var nested = classTemplate.Classes.FirstOrDefault(c => c.Name == group.Key);

5
tests/CSharp/CSharpTemplates.h

@ -85,6 +85,11 @@ class IndependentFields : public T1
{ {
typedef T Type; typedef T Type;
public: public:
class Nested
{
private:
T field;
};
IndependentFields(); IndependentFields();
IndependentFields(const IndependentFields<T>& other); IndependentFields(const IndependentFields<T>& other);
IndependentFields(const T& t); IndependentFields(const T& t);

Loading…
Cancel
Save