1
0
mirror of https://github.com/twiglet/cs2j.git synced 2025-01-18 13:15:17 +01:00

for pretty printing we use <> around type arguments, but otherwise we use *[..]*

This commit is contained in:
Kevin Glynn 2011-03-02 19:31:41 +01:00
parent e8b59d4fdb
commit 792836217a

View File

@ -392,15 +392,22 @@ namespace Twiglet.CS2J.Translator.TypeRep
parStr.Append(")"); parStr.Append(")");
return parStr.ToString(); return parStr.ToString();
} }
protected string mkTypeParams(String[] pars) {
StringBuilder parStr = new StringBuilder();
parStr.Append("*[");
foreach (string p in pars) {
parStr.Append("${"+p+"},");
}
if (parStr[parStr.Length-1] == ',') {
parStr.Remove(parStr.Length-1,1);
}
parStr.Append("]*");
return parStr.ToString();
}
// Instantiate type arguments // Instantiate type arguments
public virtual void Apply(Dictionary<string,TypeRepTemplate> args) public virtual void Apply(Dictionary<string,TypeRepTemplate> args)
{ {
if (!String.IsNullOrEmpty(SurroundingTypeName))
{
SurroundingTypeName = TemplateUtilities.SubstituteInType(SurroundingTypeName, args);
}
} }
#region Equality #region Equality
@ -2186,7 +2193,7 @@ namespace Twiglet.CS2J.Translator.TypeRep
#endregion #endregion
private string _formattedTypeName = null; private string _formattedTypeName = null;
protected string mkFormattedTypeName(bool incNameSpace) protected string mkFormattedTypeName(bool incNameSpace, string langle, string rangle)
{ {
if (_formattedTypeName == null) if (_formattedTypeName == null)
{ {
@ -2194,7 +2201,7 @@ namespace Twiglet.CS2J.Translator.TypeRep
StringBuilder fmt = new StringBuilder(); StringBuilder fmt = new StringBuilder();
if (TypeName == "System.Array") if (TypeName == "System.Array")
{ {
fmt.Append(InstantiatedTypes[0].mkFormattedTypeName(incNameSpace)); fmt.Append(InstantiatedTypes[0].mkFormattedTypeName(incNameSpace, langle, rangle));
fmt.Append("[]"); fmt.Append("[]");
} }
else else
@ -2203,15 +2210,15 @@ namespace Twiglet.CS2J.Translator.TypeRep
if (InstantiatedTypes != null && InstantiatedTypes.Length > 0) if (InstantiatedTypes != null && InstantiatedTypes.Length > 0)
{ {
bool isFirst = true; bool isFirst = true;
fmt.Append("<"); fmt.Append(langle);
foreach (TypeRepTemplate t in InstantiatedTypes) foreach (TypeRepTemplate t in InstantiatedTypes)
{ {
if (!isFirst) if (!isFirst)
fmt.Append(", "); fmt.Append(", ");
fmt.Append(t.mkFormattedTypeName(incNameSpace)); fmt.Append(t.mkFormattedTypeName(incNameSpace, langle, rangle));
isFirst = false; isFirst = false;
} }
fmt.Append(">"); fmt.Append(rangle);
} }
} }
_formattedTypeName = fmt.ToString(); _formattedTypeName = fmt.ToString();
@ -2221,7 +2228,12 @@ namespace Twiglet.CS2J.Translator.TypeRep
protected string mkFormattedTypeName() protected string mkFormattedTypeName()
{ {
return mkFormattedTypeName(true); return mkFormattedTypeName(true, "<", ">");
}
public string mkSafeTypeName()
{
return mkFormattedTypeName(true, "*[", "]*");
} }
public override String ToString() public override String ToString()