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 9 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 @@
namespace CppSharp.AST 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) public override T Visit<T>(IDeclVisitor<T> visitor)
{ {
return visitor.VisitEvent(this); return visitor.VisitEvent(this);
@ -17,7 +12,7 @@ namespace CppSharp.AST
public Type Type { get { return QualifiedType.Type; } } public Type Type { get { return QualifiedType.Type; } }
public QualifiedType QualifiedType { get; set; } public QualifiedType QualifiedType { get; set; }
public List<Parameter> Parameters; public List<Parameter> Parameters { get; } = new List<Parameter>();
public Declaration OriginalDeclaration { get; set; } public Declaration OriginalDeclaration { get; set; }
} }

2
src/AST/Type.cs

@ -258,7 +258,7 @@ namespace CppSharp.AST
: base(type) : base(type)
{ {
ReturnType = new QualifiedType((Type) type.ReturnType.Type.Clone(), type.ReturnType.Qualifiers); 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; CallingConvention = type.CallingConvention;
IsDependent = type.IsDependent; IsDependent = type.IsDependent;
} }

7
src/Generator/Passes/CheckOperatorsOverloads.cs

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

8
src/Generator/Passes/FunctionToInstanceMethodPass.cs

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

10
src/Generator/Passes/FunctionToStaticMethodPass.cs

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

Loading…
Cancel
Save