Browse Source

Fixed the generation of properties to take indirect return types into account. Added "return" as a verb.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/94/head
Dimitar Dobrev 12 years ago
parent
commit
ab548cb6da
  1. 11
      src/Generator/Passes/GetterSetterToPropertyAdvancedPass.cs
  2. 1
      src/Generator/Passes/verbs.txt

11
src/Generator/Passes/GetterSetterToPropertyAdvancedPass.cs

@ -94,7 +94,7 @@ namespace CppSharp.Passes @@ -94,7 +94,7 @@ namespace CppSharp.Passes
{
string name = GetPropertyName(getter.Name);
if (string.Compare(name, afterSet, StringComparison.OrdinalIgnoreCase) == 0 &&
getter.ReturnType == setter.Parameters[0].QualifiedType &&
getter.OriginalReturnType == setter.Parameters[0].QualifiedType &&
!type.Methods.Any(
m =>
m != getter &&
@ -142,7 +142,7 @@ namespace CppSharp.Passes @@ -142,7 +142,7 @@ namespace CppSharp.Passes
Property property = new Property();
property.Name = GetPropertyName(getter.Name);
property.Namespace = type;
property.QualifiedType = getter.ReturnType;
property.QualifiedType = getter.OriginalReturnType;
if (getter.IsOverride || (setter != null && setter.IsOverride))
{
Property baseVirtualProperty = type.GetRootBaseProperty(property);
@ -204,7 +204,7 @@ namespace CppSharp.Passes @@ -204,7 +204,7 @@ namespace CppSharp.Passes
private void DistributeMethod(Method method)
{
if (GetFirstWord(method.Name) == "set" && method.Name.Length > 3 &&
method.ReturnType.Type.IsPrimitiveType(PrimitiveType.Void))
method.OriginalReturnType.Type.IsPrimitiveType(PrimitiveType.Void))
{
if (method.Parameters.Count == 1)
setters.Add(method);
@ -222,8 +222,9 @@ namespace CppSharp.Passes @@ -222,8 +222,9 @@ namespace CppSharp.Passes
private bool IsGetter(Method method)
{
if (method.ReturnType.Type.IsPrimitiveType(PrimitiveType.Void) ||
method.Parameters.Count > 0 || method.IsDestructor)
if (method.IsDestructor ||
(method.OriginalReturnType.Type.IsPrimitiveType(PrimitiveType.Void)) ||
method.Parameters.Any(p => p.Kind != ParameterKind.IndirectReturnType))
return false;
var result = GetFirstWord(method.Name);
return (result.Length < method.Name.Length &&

1
src/Generator/Passes/verbs.txt

@ -7209,6 +7209,7 @@ rettore @@ -7209,6 +7209,7 @@ rettore
rettorn
retune
returf
return
retwine
retwist
retype

Loading…
Cancel
Save