Browse Source

Unify class method specifier code generation.

pull/778/head
Joao Matos 8 years ago
parent
commit
f70d1d0165
  1. 17
      src/Generator/Generators/CLI/CLIHeaders.cs
  2. 23
      src/Generator/Generators/CSharp/CSharpSources.cs
  3. 8
      src/Generator/Generators/CodeGenerator.cs

17
src/Generator/Generators/CLI/CLIHeaders.cs

@ -687,14 +687,8 @@ namespace CppSharp.Generators.CLI @@ -687,14 +687,8 @@ namespace CppSharp.Generators.CLI
PopBlock(NewLineKind.BeforeNextBlock);
}
public void GenerateMethod(Method method)
public override void GenerateMethodSpecifier(Method method, Class @class)
{
if (ASTUtils.CheckIgnoreMethod(method, Options)) return;
PushBlock(BlockKind.Method, method);
GenerateDeclarationCommon(method);
if ((method.IsVirtual || method.IsOverride) && !method.IsOperator)
Write("virtual ");
@ -722,7 +716,16 @@ namespace CppSharp.Generators.CLI @@ -722,7 +716,16 @@ namespace CppSharp.Generators.CLI
{
Write(" override");
}
}
public void GenerateMethod(Method method)
{
if (ASTUtils.CheckIgnoreMethod(method, Options)) return;
PushBlock(BlockKind.Method, method);
GenerateDeclarationCommon(method);
GenerateMethodSpecifier(method, method.Namespace as Class);
WriteLine(";");
if (method.OperatorKind == CXXOperatorKind.EqualEqual)

23
src/Generator/Generators/CSharp/CSharpSources.cs

@ -2076,16 +2076,8 @@ namespace CppSharp.Generators.CSharp @@ -2076,16 +2076,8 @@ namespace CppSharp.Generators.CSharp
PopBlock(NewLineKind.BeforeNextBlock);
}
public void GenerateMethod(Method method, Class @class)
public override void GenerateMethodSpecifier(Method method, Class @class)
{
PushBlock(BlockKind.Method, method);
GenerateDeclarationCommon(method);
if (method.ExplicitInterfaceImpl == null)
{
Write(Helpers.GetAccess(GetValidMethodAccess(method)));
}
// check if overriding a function from a secondary base
Method rootBaseMethod;
var isOverride = method.IsOverride &&
@ -2126,6 +2118,19 @@ namespace CppSharp.Generators.CSharp @@ -2126,6 +2118,19 @@ namespace CppSharp.Generators.CSharp
Write(FormatMethodParameters(method.Parameters));
Write(")");
}
public void GenerateMethod(Method method, Class @class)
{
PushBlock(BlockKind.Method, method);
GenerateDeclarationCommon(method);
if (method.ExplicitInterfaceImpl == null)
{
Write(Helpers.GetAccess(GetValidMethodAccess(method)));
}
GenerateMethodSpecifier(method, @class);
if (method.SynthKind == FunctionSynthKind.DefaultValueOverload && method.IsConstructor && !method.IsPure)
{

8
src/Generator/Generators/CodeGenerator.cs

@ -226,6 +226,14 @@ namespace CppSharp.Generators @@ -226,6 +226,14 @@ namespace CppSharp.Generators
#endregion
#region Method generation
public virtual void GenerateMethodSpecifier(Method method, Class @class)
{
}
#endregion
#region Visitor methods
public virtual bool VisitDeclaration(Declaration decl)

Loading…
Cancel
Save