Browse Source

Fix templates to be abstract if any specialization is abstract.

pull/1301/head
João Matos 5 years ago committed by João Matos
parent
commit
9df2f3c5e9
  1. 6
      src/Generator/Passes/ResolveIncompleteDeclsPass.cs

6
src/Generator/Passes/ResolveIncompleteDeclsPass.cs

@ -44,8 +44,14 @@ namespace CppSharp.Passes @@ -44,8 +44,14 @@ namespace CppSharp.Passes
// store all specializations in the real template class because ClassTemplateDecl only forwards
foreach (var specialization in template.Specializations.Where(
s => !templatedClass.Specializations.Contains(s)))
{
templatedClass.Specializations.Add(specialization);
// TODO: Move this to the AST converter layer?
if (specialization.IsAbstract)
templatedClass.IsAbstract = true;
}
if (templatedClass.TemplateParameters.Count == 0 || complete)
{
templatedClass.TemplateParameters.Clear();

Loading…
Cancel
Save