Skip to content

Commit 7daf556

Browse files
committed
Added visitor support for typedef name declarations and unify type alias and typedef implementations.
1 parent b86bf4f commit 7daf556

File tree

7 files changed

+33
-9
lines changed

7 files changed

+33
-9
lines changed

src/AST/ASTVisitor.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23

34
namespace CppSharp.AST
45
{
@@ -389,20 +390,22 @@ public virtual bool VisitParameterDecl(Parameter parameter)
389390
return parameter.Type.Visit(this, parameter.QualifiedType.Qualifiers);
390391
}
391392

392-
public virtual bool VisitTypedefDecl(TypedefDecl typedef)
393+
public bool VisitTypedefNameDecl(TypedefNameDecl typedef)
393394
{
394395
if (!VisitDeclaration(typedef))
395396
return false;
396397

397398
return typedef.Type.Visit(this, typedef.QualifiedType.Qualifiers);
398399
}
399400

400-
public bool VisitTypeAliasDecl(TypeAlias typeAlias)
401+
public virtual bool VisitTypedefDecl(TypedefDecl typedef)
401402
{
402-
if (!VisitDeclaration(typeAlias))
403-
return false;
403+
return VisitTypedefNameDecl(typedef);
404+
}
404405

405-
return typeAlias.Type.Visit(this, typeAlias.QualifiedType.Qualifiers);
406+
public bool VisitTypeAliasDecl(TypeAlias typeAlias)
407+
{
408+
return VisitTypedefNameDecl(typeAlias);
406409
}
407410

408411
public virtual bool VisitEnumDecl(Enumeration @enum)

src/AST/CppTypePrinter.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,11 @@ public virtual string VisitNonTypeTemplateParameterDecl(NonTypeTemplateParameter
442442
nonTypeTemplateParameter.DefaultArgument.String);
443443
}
444444

445+
public string VisitTypedefNameDecl(TypedefNameDecl typedef)
446+
{
447+
throw new NotImplementedException();
448+
}
449+
445450
public virtual string VisitTypeAliasTemplateDecl(TypeAliasTemplate typeAliasTemplate)
446451
{
447452
throw new NotImplementedException();

src/AST/Declaration.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,7 @@ public interface IDeclVisitor<out T>
372372
T VisitFunctionDecl(Function function);
373373
T VisitMethodDecl(Method method);
374374
T VisitParameterDecl(Parameter parameter);
375+
T VisitTypedefNameDecl(TypedefNameDecl typedef);
375376
T VisitTypedefDecl(TypedefDecl typedef);
376377
T VisitTypeAliasDecl(TypeAlias typeAlias);
377378
T VisitEnumDecl(Enumeration @enum);

src/Generator.Tests/AST/TestAST.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,11 @@ public bool VisitVarTemplateSpecializationDecl(VarTemplateSpecialization templat
206206
{
207207
throw new NotImplementedException();
208208
}
209+
210+
public bool VisitTypedefNameDecl(TypedefNameDecl typedef)
211+
{
212+
throw new NotImplementedException();
213+
}
209214
}
210215
#endregion
211216

src/Generator/Generators/CSharp/CSharpSources.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2999,7 +2999,7 @@ select string.Format("{0}{1} {2}", GetParameterUsage(param.Usage),
29992999

30003000
#endregion
30013001

3002-
public override bool VisitTypedefDecl(TypedefDecl typedef)
3002+
public override bool VisitTypedefNameDecl(TypedefNameDecl typedef)
30033003
{
30043004
if (!typedef.IsGenerated)
30053005
return false;

src/Generator/Generators/CodeGenerator.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,19 @@ public virtual bool VisitParameterDecl(Parameter parameter)
9090
throw new NotImplementedException();
9191
}
9292

93-
public virtual bool VisitTypedefDecl(TypedefDecl typedef)
93+
public virtual bool VisitTypedefNameDecl(TypedefNameDecl typedef)
9494
{
9595
throw new NotImplementedException();
9696
}
9797

98+
public virtual bool VisitTypedefDecl(TypedefDecl typedef)
99+
{
100+
return VisitTypedefNameDecl(typedef);
101+
}
102+
98103
public virtual bool VisitTypeAliasDecl(TypeAlias typeAlias)
99104
{
100-
throw new NotImplementedException();
105+
return VisitTypedefNameDecl(typeAlias);
101106
}
102107

103108
public virtual bool VisitEnumDecl(Enumeration @enum)

src/Generator/Generators/TypePrinter.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,11 @@ public virtual TypePrinterResult VisitTypedefDecl(TypedefDecl typedef)
274274
throw new NotImplementedException();
275275
}
276276

277+
public TypePrinterResult VisitTypedefNameDecl(TypedefNameDecl typedef)
278+
{
279+
throw new NotImplementedException();
280+
}
281+
277282
public virtual TypePrinterResult VisitTypedefType(TypedefType typedef,
278283
TypeQualifiers quals)
279284
{

0 commit comments

Comments
 (0)