Browse Source

Fixed the parsing of an undeclared template specialisation with an extension method.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1015/head
Dimitar Dobrev 8 years ago
parent
commit
35902635ff
  1. 3
      src/Generator/Passes/TrimSpecializationsPass.cs
  2. 1
      tests/CSharp/CSharpTemplates.h

3
src/Generator/Passes/TrimSpecializationsPass.cs

@ -92,7 +92,8 @@ namespace CppSharp.Passes @@ -92,7 +92,8 @@ namespace CppSharp.Passes
private void CleanSpecializations(Class template)
{
template.Specializations.RemoveAll(s =>
!specializations.Contains(s) && !internalSpecializations.Contains(s));
s.SpecializationKind == TemplateSpecializationKind.Undeclared ||
(!specializations.Contains(s) && !internalSpecializations.Contains(s)));
foreach (var specialization in template.Specializations.Where(
s => s is ClassTemplatePartialSpecialization))

1
tests/CSharp/CSharpTemplates.h

@ -318,6 +318,7 @@ public: @@ -318,6 +318,7 @@ public:
T& operator[](const char* string);
private:
T t[1];
HasDefaultTemplateArgument<char> h;
};
template <typename T>

Loading…
Cancel
Save