Skip to content

Commit a0ee2b7

Browse files
committed
check if a method has the same name as the type and rename
1 parent dee7bc6 commit a0ee2b7

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class Method : CodeContainer {
2323
public CppType RetType { get; set; }
2424

2525
public IList<NameTypePair<CppType>> Parameters { get; set; }
26+
public Class Klass { get; set; }
2627

2728
private string formatted_name;
2829

@@ -284,6 +285,8 @@ public string FormattedName {
284285
sb.Append (Name [i]);
285286
}
286287
formatted_name = sb.ToString ();
288+
if (formatted_name == Klass.Name)
289+
formatted_name += "1";
287290
}
288291
return formatted_name;
289292
}

src/generator/Main.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,8 +328,15 @@ void ProcessClasses (List<Entry> entries, List<Entry> removed)
328328
retType = replaceType (retType, templated.Types[i], genericTypeArgs[i]);
329329
}
330330

331-
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 };
332-
331+
var methodAtom = new Method (dtor ? "Destruct" : mname) {
332+
RetType = retType,
333+
IsVirtual = member.IsTrue ("virtual"),
334+
IsStatic = member.IsTrue ("static"),
335+
IsConst = member.IsTrue ("const"),
336+
IsConstructor = ctor,
337+
IsDestructor = dtor,
338+
Klass = clas.Class
339+
};
333340

334341
if (AbiTest)
335342
methodAtom.Mangled = new NameTypePair<Type> { Name = member.attributes["mangled"], Type = typeof(ItaniumAbi) };

0 commit comments

Comments
 (0)