Skip to content

Commit 28a00a9

Browse files
committed
Ignored return parameters when fixing default arguments of overrides.
Signed-off-by: Dimitar Dobrev <[email protected]>
1 parent 4c884e6 commit 28a00a9

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/Generator/Passes/FixDefaultParamValuesOfOverridesPass.cs

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

34
namespace CppSharp.Passes
45
{
@@ -10,10 +11,14 @@ public override bool VisitMethodDecl(Method method)
1011
return true;
1112

1213
Method rootBaseMethod = method.GetRootBaseMethod();
13-
for (int i = 0; i < method.Parameters.Count; i++)
14+
var rootBaseParameters = rootBaseMethod.Parameters.Where(
15+
p => p.Kind != ParameterKind.IndirectReturnType).ToList();
16+
var parameters = method.Parameters.Where(
17+
p => p.Kind != ParameterKind.IndirectReturnType).ToList();
18+
for (int i = 0; i < parameters.Count; i++)
1419
{
15-
var rootBaseParameter = rootBaseMethod.Parameters[i];
16-
var parameter = method.Parameters[i];
20+
var rootBaseParameter = rootBaseParameters[i];
21+
var parameter = parameters[i];
1722
if (rootBaseParameter.DefaultArgument == null)
1823
parameter.DefaultArgument = null;
1924
else

0 commit comments

Comments
 (0)