Browse Source

Simplify FixDefaultParamValuesOfOverridesPass.VisitMethodDecl.

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

18
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); Method rootBaseMethod = ((Class)method.Namespace).GetBaseMethod(method);
for (int i = 0; i < method.Parameters.Count; i++) for (int i = 0; i < method.Parameters.Count; i++)
{ {
var rootBaseParameter = rootBaseMethod.Parameters[i]; var rootBaseParameter = rootBaseMethod.Parameters[i];
var parameter = method.Parameters[i]; var parameter = method.Parameters[i];
if (rootBaseParameter.DefaultArgument == null)
{ if (rootBaseParameter.DefaultArgument != null)
parameter.DefaultArgument = null;
}
else
{
parameter.DefaultArgument = rootBaseParameter.DefaultArgument.Clone(); parameter.DefaultArgument = rootBaseParameter.DefaultArgument.Clone();
} }
}
} return true;
return base.VisitMethodDecl(method);
} }
} }
} }

Loading…
Cancel
Save