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 @@ -6,24 +6,20 @@ namespace CppSharp.Passes
{
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);
for (int i = 0; i < method.Parameters.Count; i++)
{
var rootBaseParameter = rootBaseMethod.Parameters[i];
var parameter = method.Parameters[i];
if (rootBaseParameter.DefaultArgument == null)
{
parameter.DefaultArgument = null;
}
else
{
parameter.DefaultArgument = rootBaseParameter.DefaultArgument.Clone();
}
}
var rootBaseParameter = rootBaseMethod.Parameters[i];
var parameter = method.Parameters[i];
if (rootBaseParameter.DefaultArgument != null)
parameter.DefaultArgument = rootBaseParameter.DefaultArgument.Clone();
}
return base.VisitMethodDecl(method);
return true;
}
}
}

Loading…
Cancel
Save