diff --git a/tools/generator/ApiTransform.cs b/tools/generator/ApiTransform.cs
index 5ebd63b65..ce9c738e3 100644
--- a/tools/generator/ApiTransform.cs
+++ b/tools/generator/ApiTransform.cs
@@ -31,30 +31,20 @@ public void WriteTransform (StreamWriter sw)
{
string preserveAttr = PreserveType ? " preserveType=\"true\"" : null;
+ string cls = Class.StartsWith ("[Interface]", StringComparison.Ordinal) ? Class.Substring ("[Interface]".Length) : Class;
+
if (string.IsNullOrEmpty (Parameter)) {
// This is a field
- sw.WriteLine (" {3}", Package, Class, Member, Enum, preserveAttr);
-
- } else if (Class.StartsWith ("[Interface]") && Parameter == "return") {
- // This is the return type on an interface method
- sw.WriteLine (" {3}", Package, Class.Substring ("[Interface]".Length), Member, Enum, preserveAttr);
-
- } else if (Class.StartsWith ("[Interface]")) {
- // This is the return type on an interface method
- sw.WriteLine (" {4}", Package, Class.Substring ("[Interface]".Length), Member, Parameter, Enum, preserveAttr);
-
+ sw.WriteLine (" {3}", Package, Class, Member, Enum, preserveAttr);
} else if (Parameter == "return") {
- // This is the return type on a class method
- sw.WriteLine (" {3}", Package, Class, Member, Enum, preserveAttr);
-
+ // This is the return type
+ sw.WriteLine (" {3}", Package, cls, Member, Enum, preserveAttr);
} else if (Member == "ctor" || Member == "constructor") {
- // This is the return type on a class constructor
- sw.WriteLine (" {3}", Package, Class, Parameter, Enum, preserveAttr);
-
+ // This is the return type
+ sw.WriteLine (" {3}", Package, cls, Parameter, Enum, preserveAttr);
} else {
- // This is a parameter on a class method
- sw.WriteLine (" {4}", Package, Class, Member, Parameter, Enum, preserveAttr);
-
+ // This is a parameter
+ sw.WriteLine (" {4}", Package, cls, Member, Parameter, Enum, preserveAttr);
}
}
}