Browse Source

Fixed the setting of name-spaces of parameters to actually work.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/921/head
Dimitar Dobrev 8 years ago
parent
commit
9c26b7e648
  1. 2
      src/AST/Function.cs
  2. 4
      src/Generator/Generators/CSharp/CSharpSources.cs
  3. 1
      src/Generator/Passes/ConstructorToConversionOperatorPass.cs
  4. 9
      src/Parser/ASTConverter.cs

2
src/AST/Function.cs

@ -153,6 +153,8 @@ namespace CppSharp.AST @@ -153,6 +153,8 @@ namespace CppSharp.AST
IsReturnIndirect = function.IsReturnIndirect;
HasThisReturn = function.HasThisReturn;
Parameters.AddRange(function.Parameters.Select(p => new Parameter(p)));
foreach (var parameter in Parameters)
parameter.Namespace = this;
IsVariadic = function.IsVariadic;
IsInline = function.IsInline;
IsPure = function.IsPure;

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

@ -1570,7 +1570,7 @@ namespace CppSharp.Generators.CSharp @@ -1570,7 +1570,7 @@ namespace CppSharp.Generators.CSharp
for (int i = 0; i < method.Parameters.Count; i++)
{
var param = method.Parameters[i];
if (!param.IsGenerated)
if (param.Ignore)
continue;
if (param.Kind == ParameterKind.IndirectReturnType)
@ -2517,7 +2517,7 @@ namespace CppSharp.Generators.CSharp @@ -2517,7 +2517,7 @@ namespace CppSharp.Generators.CSharp
if (@interface != null)
{
var printedInterface = @interface.Visit(TypePrinter);
WriteLine($@"return new {printedType}(({printedInterface}) {paramName});");
WriteLine($"return new {printedType}(({printedInterface}) {paramName});");
}
else
WriteLine($"return new {printedType}({paramName});");

1
src/Generator/Passes/ConstructorToConversionOperatorPass.cs

@ -83,6 +83,7 @@ namespace CppSharp.Passes @@ -83,6 +83,7 @@ namespace CppSharp.Passes
};
conversionOperator.Parameters.Add(new Parameter(parameter)
{
Namespace = conversionOperator,
DefaultArgument = null,
OriginalDefaultArgument = null
});

9
src/Parser/ASTConverter.cs

@ -1179,10 +1179,6 @@ namespace CppSharp @@ -1179,10 +1179,6 @@ namespace CppSharp
_function.CallingConvention = VisitCallingConvention(function.CallingConvention);
if (function.InstantiatedFrom != null)
_function.InstantiatedFrom = (AST.Function) Visit(function.InstantiatedFrom);
_function.FunctionType = typeConverter.VisitQualified(function.QualifiedType);
if (function.SpecializationInfo != null)
_function.SpecializationInfo = VisitFunctionTemplateSpecialization(
function.SpecializationInfo);
for (uint i = 0; i < function.ParametersCount; ++i)
{
@ -1190,6 +1186,11 @@ namespace CppSharp @@ -1190,6 +1186,11 @@ namespace CppSharp
var _param = Visit(param) as AST.Parameter;
_function.Parameters.Add(_param);
}
_function.FunctionType = typeConverter.VisitQualified(function.QualifiedType);
if (function.SpecializationInfo != null)
_function.SpecializationInfo = VisitFunctionTemplateSpecialization(
function.SpecializationInfo);
}
public override AST.Declaration VisitFunction(Function decl)

Loading…
Cancel
Save