in Agents/Xamarin.Interactive/Representations/Reflection/ReflectionRemoting.cs [326:403]
void WriteTypeName (TypeSpec typeSpec)
{
if (WriteLanguageKeywords && typeSpec.Name.Namespace == "System") {
switch (typeSpec.Name.Name) {
case "Void":
case "SByte":
case "Byte":
case "Double":
case "Decimal":
case "Char":
case "String":
case "Object":
writer.WriteKeyword (typeSpec.Name.Name.ToLowerInvariant ());
return;
case "Boolean":
writer.WriteKeyword ("bool");
return;
case "Int16":
writer.WriteKeyword ("short");
return;
case "UInt16":
writer.WriteKeyword ("ushort");
return;
case "Int32":
writer.WriteKeyword ("int");
return;
case "UInt32":
writer.WriteKeyword ("uint");
return;
case "Int64":
writer.WriteKeyword ("long");
return;
case "UInt64":
writer.WriteKeyword ("ulong");
return;
case "Single":
writer.WriteKeyword ("float");
return;
case "nint":
writer.WriteKeyword ("nint");
return;
case "nuint":
writer.WriteKeyword ("nuint");
return;
case "nfloat":
writer.WriteKeyword ("nfloat");
return;
}
}
if (typeSpec.Name.Namespace != null)
writer.WriteNamespace (typeSpec.Name.Namespace + ".");
int typeNamesConsumed = 0;
int typeArgIndex = 0;
foreach (var name in typeSpec.GetAllNames ()) {
if (!name.Name.StartsWith ("🐵", StringComparison.Ordinal)) {
if (typeNamesConsumed++ > 0)
writer.Write ('.');
writer.WriteTypeName (name.Name);
}
if (name.TypeArgumentCount > 0) {
writer.Write ('<');
for (var i = 0; i < name.TypeArgumentCount; i++, typeArgIndex++) {
if (i > 0) {
writer.Write (',');
writer.Write (' ');
}
VisitTypeSpec (typeSpec.TypeArguments [typeArgIndex]);
}
writer.Write ('>');
}
}
}