Browse Source

Simplify FixDefaultParamValuesOfOverridesPass.VisitMethodDecl.

pull/818/head
Joao Matos 9 years ago
parent
commit
b86bf4f7cd
  1. 28
      src/Generator/Passes/FixDefaultParamValuesOfOverridesPass.cs

28
src/Generator/Passes/FixDefaultParamValuesOfOverridesPass.cs

@ -6,24 +6,20 @@ namespace CppSharp.Passes
{ {
public override bool VisitMethodDecl(Method method) public override bool VisitMethodDecl(Method method)
{ {
if (method.IsOverride && !method.IsSynthetized) if (!method.IsOverride || method.IsSynthetized)
return true;
Method rootBaseMethod = ((Class)method.Namespace).GetBaseMethod(method);
for (int i = 0; i < method.Parameters.Count; i++)
{ {
Method rootBaseMethod = ((Class) method.Namespace).GetBaseMethod(method); var rootBaseParameter = rootBaseMethod.Parameters[i];
for (int i = 0; i < method.Parameters.Count; i++) var parameter = method.Parameters[i];
{
var rootBaseParameter = rootBaseMethod.Parameters[i]; if (rootBaseParameter.DefaultArgument != null)
var parameter = method.Parameters[i]; parameter.DefaultArgument = rootBaseParameter.DefaultArgument.Clone();
if (rootBaseParameter.DefaultArgument == null)
{
parameter.DefaultArgument = null;
}
else
{
parameter.DefaultArgument = rootBaseParameter.DefaultArgument.Clone();
}
}
} }
return base.VisitMethodDecl(method);
return true;
} }
} }
} }

Loading…
Cancel
Save