[mdoc] Add C#4 default parameter value support.
authorJonathan Pryor <jonpryor@vt.edu>
Sat, 17 Sep 2011 02:01:07 +0000 (22:01 -0400)
committerJonathan Pryor <jonpryor@vt.edu>
Sat, 17 Sep 2011 14:26:35 +0000 (10:26 -0400)
mcs/tools/mdoc/Mono.Documentation/monodocer.cs

index cb39c4e6e54f9783c89a1853e70d3d98cb8828f0..96df06b612ca1a628868eadbc9283e84a1cc4a30 100644 (file)
@@ -1920,7 +1920,7 @@ class MDocUpdater : MDocCommand
                NormalizeWhitespace(e);
        }
 
-       private static string MakeAttributesValueString (object v, TypeReference valueType)
+       public static string MakeAttributesValueString (object v, TypeReference valueType)
        {
                if (v == null)
                        return "null";
@@ -1928,6 +1928,8 @@ class MDocUpdater : MDocCommand
                        return "typeof(" + v.ToString () + ")";
                if (valueType.FullName == "System.String")
                        return "\"" + v.ToString () + "\"";
+               if (valueType.FullName == "System.Char")
+                       return "'" + v.ToString () + "'";
                if (v is Boolean)
                        return (bool)v ? "true" : "false";
                TypeDefinition valueDef = valueType.Resolve ();
@@ -4469,7 +4471,11 @@ class CSharpFullMemberFormatter : MemberFormatter {
                                buf.Append ("ref ");
                }
                buf.Append (GetTypeName (parameter, () => parameter.ParameterType)).Append (" ");
-               return buf.Append (parameter.Name);
+               buf.Append (parameter.Name);
+               if (parameter.HasDefault && parameter.IsOptional && parameter.HasConstant) {
+                       buf.AppendFormat (" = {0}", MDocUpdater.MakeAttributesValueString (parameter.Constant, parameter.ParameterType));
+               }
+               return buf;
        }
 
        protected override string GetPropertyDeclaration (PropertyDefinition property)