Browse Source

Changed an event to a context with a read-only list of parameters.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/924/head
Dimitar Dobrev 8 years ago
parent
commit
16aa74a20b
  1. 9
      src/AST/Event.cs
  2. 2
      src/AST/Type.cs
  3. 7
      src/Generator/Passes/CheckOperatorsOverloads.cs
  4. 8
      src/Generator/Passes/FunctionToInstanceMethodPass.cs
  5. 10
      src/Generator/Passes/FunctionToStaticMethodPass.cs

9
src/AST/Event.cs

@ -2,13 +2,8 @@ @@ -2,13 +2,8 @@
namespace CppSharp.AST
{
public class Event : Declaration, ITypedDecl
public class Event : DeclarationContext, ITypedDecl
{
public Event()
{
Parameters = new List<Parameter>();
}
public override T Visit<T>(IDeclVisitor<T> visitor)
{
return visitor.VisitEvent(this);
@ -17,7 +12,7 @@ namespace CppSharp.AST @@ -17,7 +12,7 @@ namespace CppSharp.AST
public Type Type { get { return QualifiedType.Type; } }
public QualifiedType QualifiedType { get; set; }
public List<Parameter> Parameters;
public List<Parameter> Parameters { get; } = new List<Parameter>();
public Declaration OriginalDeclaration { get; set; }
}

2
src/AST/Type.cs

@ -258,7 +258,7 @@ namespace CppSharp.AST @@ -258,7 +258,7 @@ namespace CppSharp.AST
: base(type)
{
ReturnType = new QualifiedType((Type) type.ReturnType.Type.Clone(), type.ReturnType.Qualifiers);
Parameters.AddRange(type.Parameters.Select(p => new Parameter(p)).ToList());
Parameters.AddRange(type.Parameters.Select(p => new Parameter(p)));
CallingConvention = type.CallingConvention;
IsDependent = type.IsDependent;
}

7
src/Generator/Passes/CheckOperatorsOverloads.cs

@ -151,11 +151,8 @@ namespace CppSharp.Passes @@ -151,11 +151,8 @@ namespace CppSharp.Passes
ReturnType = op.ReturnType
};
foreach (var parameter in op.Parameters)
{
var newParameter = new Parameter(parameter) { Namespace = method };
method.Parameters.Add(newParameter);
}
method.Parameters.AddRange(op.Parameters.Select(
p => new Parameter(p) { Namespace = method }));
@class.Methods.Insert(index, method);
}

8
src/Generator/Passes/FunctionToInstanceMethodPass.cs

@ -59,11 +59,9 @@ namespace CppSharp.Passes @@ -59,11 +59,9 @@ namespace CppSharp.Passes
FunctionType = function.FunctionType
};
foreach (var parameter in function.Parameters)
{
var newParameter = new Parameter(parameter) { Namespace = method };
method.Parameters.Add(newParameter);
}
method.Parameters.AddRange(function.Parameters.Select(
p => new Parameter(p) { Namespace = method }));
if (Options.GeneratorKind == GeneratorKind.CSharp)
method.Parameters.RemoveAt(0);

10
src/Generator/Passes/FunctionToStaticMethodPass.cs

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
using CppSharp.AST;
using System.Linq;
using CppSharp.AST;
namespace CppSharp.Passes
{
@ -53,11 +54,8 @@ namespace CppSharp.Passes @@ -53,11 +54,8 @@ namespace CppSharp.Passes
Conversion = MethodConversionKind.FunctionToStaticMethod
};
foreach (var parameter in function.Parameters)
{
var newParameter = new Parameter(parameter) { Namespace = method };
method.Parameters.Add(newParameter);
}
method.Parameters.AddRange(function.Parameters.Select(
p => new Parameter(p) { Namespace = method }));
@class.Methods.Add(method);

Loading…
Cancel
Save