Browse Source

Changed function/method return types to be qualified types.

pull/1/head
triton 12 years ago
parent
commit
e2fffddadf
  1. 2
      src/Bridge/ASTVisitor.cs
  2. 7
      src/Bridge/Type.cs
  3. 4
      src/Generator/Generators/CLI/CLIMarshal.cs
  4. 2
      src/Generator/Generators/CLI/CLITypePrinter.cs
  5. 2
      src/Generator/Generators/CSharp/CSharpTypePrinter.cs
  6. 3
      src/Parser/Parser.cpp

2
src/Bridge/ASTVisitor.cs

@ -91,7 +91,7 @@ namespace CppSharp @@ -91,7 +91,7 @@ namespace CppSharp
if (!VisitType(function, quals))
return false;
if (function.ReturnType != null)
if (function.ReturnType.Type != null)
function.ReturnType.Visit(this);
if (Options.VisitFunctionParameters)

7
src/Bridge/Type.cs

@ -145,6 +145,11 @@ namespace CppSharp @@ -145,6 +145,11 @@ namespace CppSharp
public Type Type { get; set; }
public TypeQualifiers Qualifiers { get; set; }
public T Visit<T>(ITypeVisitor<T> visitor)
{
return Type.Visit(visitor, Qualifiers);
}
public override string ToString()
{
return Type.ToString();
@ -211,7 +216,7 @@ namespace CppSharp @@ -211,7 +216,7 @@ namespace CppSharp
public class FunctionType : Type
{
// Return type of the function.
public Type ReturnType;
public QualifiedType ReturnType;
// Argument types.
public List<Parameter> Parameters;

4
src/Generator/Generators/CLI/CLIMarshal.cs

@ -36,7 +36,7 @@ namespace CppSharp.Generators.CLI @@ -36,7 +36,7 @@ namespace CppSharp.Generators.CLI
public override bool VisitFunctionType(FunctionType function, TypeQualifiers quals)
{
var returnType = function.ReturnType;
return returnType.Visit(this, quals);
return returnType.Visit(this);
}
public override bool VisitPointerType(PointerType pointer, TypeQualifiers quals)
@ -299,7 +299,7 @@ namespace CppSharp.Generators.CLI @@ -299,7 +299,7 @@ namespace CppSharp.Generators.CLI
public override bool VisitFunctionType(FunctionType function, TypeQualifiers quals)
{
var returnType = function.ReturnType;
return returnType.Visit(this, quals);
return returnType.Visit(this);
}
public bool VisitDelegateType(FunctionType function, string type)

2
src/Generator/Generators/CLI/CLITypePrinter.cs

@ -63,7 +63,7 @@ namespace CppSharp.Generators.CLI @@ -63,7 +63,7 @@ namespace CppSharp.Generators.CLI
if (arguments.Count > 0)
args = VisitParameters(function.Parameters, hasNames: false);
if (returnType.IsPrimitiveType(PrimitiveType.Void))
if (returnType.Type.IsPrimitiveType(PrimitiveType.Void))
{
if (!string.IsNullOrEmpty(args))
args = string.Format("<{0}>", args);

2
src/Generator/Generators/CSharp/CSharpTypePrinter.cs

@ -121,7 +121,7 @@ namespace CppSharp.Generators.CSharp @@ -121,7 +121,7 @@ namespace CppSharp.Generators.CSharp
if (arguments.Count > 0)
args = VisitParameters(function.Parameters, hasNames: false).Type;
if (returnType.IsPrimitiveType(PrimitiveType.Void))
if (returnType.Type.IsPrimitiveType(PrimitiveType.Void))
{
if (!string.IsNullOrEmpty(args))
args = string.Format("<{0}>", args);

3
src/Parser/Parser.cpp

@ -938,7 +938,8 @@ CppSharp::Type^ Parser::WalkType(clang::QualType QualType, clang::TypeLoc* TL, @@ -938,7 +938,8 @@ CppSharp::Type^ Parser::WalkType(clang::QualType QualType, clang::TypeLoc* TL,
auto RL = FTL.getResultLoc();
auto F = gcnew CppSharp::FunctionType();
F->ReturnType = WalkType(FP->getResultType(), &RL);
F->ReturnType = GetQualifiedType(FP->getResultType(),
WalkType(FP->getResultType(), &RL));
for (unsigned i = 0; i < FP->getNumArgs(); ++i)
{

Loading…
Cancel
Save