Browse Source

check if a method has the same name as the type and rename

pull/1/head
Andreia Gaita 15 years ago
parent
commit
a0ee2b75f7
  1. 3
      src/Mono.VisualC.Code/Atoms/Method.cs
  2. 11
      src/generator/Main.cs

3
src/Mono.VisualC.Code/Atoms/Method.cs

@ -23,6 +23,7 @@ namespace Mono.VisualC.Code.Atoms { @@ -23,6 +23,7 @@ namespace Mono.VisualC.Code.Atoms {
public CppType RetType { get; set; }
public IList<NameTypePair<CppType>> Parameters { get; set; }
public Class Klass { get; set; }
private string formatted_name;
@ -284,6 +285,8 @@ namespace Mono.VisualC.Code.Atoms { @@ -284,6 +285,8 @@ namespace Mono.VisualC.Code.Atoms {
sb.Append (Name [i]);
}
formatted_name = sb.ToString ();
if (formatted_name == Klass.Name)
formatted_name += "1";
}
return formatted_name;
}

11
src/generator/Main.cs

@ -328,8 +328,15 @@ namespace Mono.VisualC.Tools.Generator { @@ -328,8 +328,15 @@ namespace Mono.VisualC.Tools.Generator {
retType = replaceType (retType, templated.Types[i], genericTypeArgs[i]);
}
var methodAtom = new Method (dtor ? "Destruct" : mname) { RetType = retType, IsVirtual = member.IsTrue ("virtual"), IsStatic = member.IsTrue ("static"), IsConst = member.IsTrue ("const"), IsConstructor = ctor, IsDestructor = dtor };
var methodAtom = new Method (dtor ? "Destruct" : mname) {
RetType = retType,
IsVirtual = member.IsTrue ("virtual"),
IsStatic = member.IsTrue ("static"),
IsConst = member.IsTrue ("const"),
IsConstructor = ctor,
IsDestructor = dtor,
Klass = clas.Class
};
if (AbiTest)
methodAtom.Mangled = new NameTypePair<Type> { Name = member.attributes["mangled"], Type = typeof(ItaniumAbi) };

Loading…
Cancel
Save