Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/api-doc-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mdoc
diff options
context:
space:
mode:
authorJoel Martinez <joelmartinez@gmail.com>2015-06-20 00:20:30 +0300
committerDuncan Mak <duncanm@microsoft.com>2016-10-08 03:31:01 +0300
commit3c7aeda7ccb5dfad04e3423eaeee01658679caad (patch)
treef9fd8030ac79c3dbe5dc68782970353f5cd7e5e7 /mdoc
parent6e08c65d5618d426d0acb30b454980a48a9235dd (diff)
[mdoc] Adds custom formatting for the `ObjCRuntime.Platform` enum.
This enum, which can be found in Xamarin's iOS and Mac products use a custom encoding scheme which resulted in invalid values being shown when processed with mdoc. This patch adds a special case to watch for this particular enumeration value, and decodes the data correctly. Additionally, the code that formats the values for flags enumerations was refactored. Future extensibility of this feature can now be done by simply implementing a new `FlagsFormatter`, and applying the proper logic in the `MakeAttributesValueString` function.
Diffstat (limited to 'mdoc')
-rw-r--r--mdoc/Makefile10
-rw-r--r--mdoc/Mono.Documentation/monodocer.cs235
-rw-r--r--mdoc/Test/DocTest-enumerations.cs79
-rw-r--r--mdoc/Test/en.expected-enumerations/MyNamespace/MyClass.xml141
-rw-r--r--mdoc/Test/en.expected-enumerations/MyNamespace/MyEnum.xml59
-rw-r--r--mdoc/Test/en.expected-enumerations/MyNamespace/MyEnumAttribute.xml63
-rw-r--r--mdoc/Test/en.expected-enumerations/MyNamespace/MyFlagEnumAttribute.xml63
-rw-r--r--mdoc/Test/en.expected-enumerations/ObjCRuntime/Platform.xml568
-rw-r--r--mdoc/Test/en.expected-enumerations/index.xml28
-rw-r--r--mdoc/Test/en.expected-enumerations/ns-MyNamespace.xml6
-rw-r--r--mdoc/Test/en.expected-enumerations/ns-ObjCRuntime.xml6
11 files changed, 1227 insertions, 31 deletions
diff --git a/mdoc/Makefile b/mdoc/Makefile
index ab95b143..a5bced66 100644
--- a/mdoc/Makefile
+++ b/mdoc/Makefile
@@ -127,6 +127,9 @@ Test/DocTest.dll-v2:
-rm -f Test/DocTest.dll
$(MAKE) TEST_CSCFLAGS=$(TEST_CSCFLAGS) Test/DocTest.dll
+Test/DocTest-enumerations.dll:
+ $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-enumerations.cs
+
check-monodocer-addNonGeneric: $(PROGRAM)
-rm -Rf Test/en.actual
# first, make a docset with the generic method
@@ -176,6 +179,12 @@ check-monodocer-internal-interface: $(PROGRAM)
$(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual Test/DocTest-InternalInterface.dll
diff --exclude=.svn -rup Test/en.expected-internal-interface Test/en.actual
+check-monodocer-enumerations: $(PROGRAM)
+ -rm -Rf Test/en.actual
+ $(MAKE) Test/DocTest-enumerations.dll
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual Test/DocTest-enumerations.dll
+ diff --exclude=.svn -rup Test/en.expected-enumerations Test/en.actual
+
check-monodocer-update: $(PROGRAM)
find Test/en.expected -name \*.xml -exec rm "{}" \;
$(MAKE) Test/DocTest.dll-v1
@@ -335,6 +344,7 @@ check-doc-tools-update: check-monodocer-since-update \
check-monodocer-dropns-classic \
check-monodocer-dropns-classic-withsecondary \
check-monodocer-internal-interface \
+ check-monodocer-enumerations \
check-monodocer-delete-update \
check-mdoc-export-html-update \
check-mdoc-export-msxdoc-update \
diff --git a/mdoc/Mono.Documentation/monodocer.cs b/mdoc/Mono.Documentation/monodocer.cs
index 8cdf5e7e..81bcc850 100644
--- a/mdoc/Mono.Documentation/monodocer.cs
+++ b/mdoc/Mono.Documentation/monodocer.cs
@@ -2347,40 +2347,27 @@ class MDocUpdater : MDocCommand
public static string MakeAttributesValueString (object v, TypeReference valueType)
{
- if (v == null)
- return "null";
- if (valueType.FullName == "System.Type") {
- var vTypeRef = v as TypeReference;
- if (vTypeRef != null)
- return "typeof(" + NativeTypeManager.GetTranslatedName (vTypeRef) + ")"; // TODO: drop NS handling
- else
- return "typeof(" + v.ToString () + ")";
+ var formatters = new [] {
+ new AttributeValueFormatter (),
+ new ApplePlatformEnumFormatter (),
+ new StandardFlagsEnumFormatter (),
+ new DefaultAttributeValueFormatter (),
+ };
+
+ ResolvedTypeInfo type = new ResolvedTypeInfo (valueType);
+ foreach (var formatter in formatters) {
+ string formattedValue;
+ if (formatter.TryFormatValue (v, type, out formattedValue)) {
+ return formattedValue;
}
- 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 ();
- if (valueDef == null || !valueDef.IsEnum)
- return v.ToString ();
- string typename = GetDocTypeFullName (valueType);
- var values = GetEnumerationValues (valueDef);
- long c = ToInt64 (v);
- if (values.ContainsKey (c))
- return typename + "." + values [c];
- if (valueDef.CustomAttributes.Any (ca => ca.AttributeType.FullName == "System.FlagsAttribute")) {
- return string.Join (" | ",
- (from i in values.Keys
- where (c & i) != 0
- select typename + "." + values [i])
- .DefaultIfEmpty (v.ToString ()).ToArray ());
}
- return "(" + GetDocTypeFullName (valueType) + ") " + v.ToString ();
+
+ // this should never occur because the DefaultAttributeValueFormatter will always
+ // successfully format the value ... but this is needed to satisfy the compiler :)
+ throw new InvalidDataException (string.Format ("Unable to format attribute value ({0})", v.ToString ()));
}
- private static Dictionary<long, string> GetEnumerationValues (TypeDefinition type)
+ internal static IDictionary<long, string> GetEnumerationValues (TypeDefinition type)
{
var values = new Dictionary<long, string> ();
foreach (var f in
@@ -2392,7 +2379,7 @@ class MDocUpdater : MDocCommand
return values;
}
- static long ToInt64 (object value)
+ internal static long ToInt64 (object value)
{
if (value is ulong)
return (long) (ulong) value;
@@ -5662,4 +5649,190 @@ class FileNameMemberFormatter : SlashDocMemberFormatter {
}
}
+class ResolvedTypeInfo {
+ TypeDefinition typeDef;
+
+ public ResolvedTypeInfo (TypeReference value) {
+ Reference = value;
+ }
+
+ public TypeReference Reference { get; private set; }
+
+ public TypeDefinition Definition {
+ get {
+ if (typeDef == null) {
+ typeDef = Reference.Resolve ();
+ }
+ return typeDef;
+ }
+ }
+}
+
+/// <summary>Formats attribute values. Should return true if it is able to format the value.</summary>
+class AttributeValueFormatter {
+ public virtual bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue)
+ {
+ TypeReference valueType = type.Reference;
+ if (v == null) {
+ returnvalue = "null";
+ return true;
+ }
+ if (valueType.FullName == "System.Type") {
+ var vTypeRef = v as TypeReference;
+ if (vTypeRef != null)
+ returnvalue = "typeof(" + NativeTypeManager.GetTranslatedName (vTypeRef) + ")"; // TODO: drop NS handling
+ else
+ returnvalue = "typeof(" + v.ToString () + ")";
+
+ return true;
+ }
+ if (valueType.FullName == "System.String") {
+ returnvalue = "\"" + v.ToString () + "\"";
+ return true;
+ }
+ if (valueType.FullName == "System.Char") {
+ returnvalue = "'" + v.ToString () + "'";
+ return true;
+ }
+ if (v is Boolean) {
+ returnvalue = (bool)v ? "true" : "false";
+ return true;
+ }
+
+ TypeDefinition valueDef = type.Definition;
+ if (valueDef == null || !valueDef.IsEnum) {
+ returnvalue = v.ToString ();
+ return true;
+ }
+
+ string typename = MDocUpdater.GetDocTypeFullName (valueType);
+ var values = MDocUpdater.GetEnumerationValues (valueDef);
+ long c = MDocUpdater.ToInt64 (v);
+ if (values.ContainsKey (c)) {
+ returnvalue = typename + "." + values [c];
+ return true;
+ }
+
+ returnvalue = null;
+ return false;
+ }
+}
+
+/// <summary>The final value formatter in the pipeline ... if no other formatter formats the value,
+/// then this one will serve as the default implementation.</summary>
+class DefaultAttributeValueFormatter : AttributeValueFormatter {
+ public override bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue)
+ {
+ returnvalue = "(" + MDocUpdater.GetDocTypeFullName (type.Reference) + ") " + v.ToString ();
+ return true;
+ }
+}
+
+/// <summary>Flags enum formatter that assumes powers of two values.</summary>
+/// <remarks>As described here: https://msdn.microsoft.com/en-us/library/vstudio/ms229062(v=vs.100).aspx</remarks>
+class StandardFlagsEnumFormatter : AttributeValueFormatter {
+ public override bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue)
+ {
+ TypeReference valueType = type.Reference;
+ TypeDefinition valueDef = type.Definition;
+ if (valueDef.CustomAttributes.Any (ca => ca.AttributeType.FullName == "System.FlagsAttribute")) {
+
+ string typename = MDocUpdater.GetDocTypeFullName (valueType);
+ var values = MDocUpdater.GetEnumerationValues (valueDef);
+ long c = MDocUpdater.ToInt64 (v);
+ returnvalue = string.Join (" | ",
+ (from i in values.Keys
+ where (c & i) == i && i != 0
+ select typename + "." + values [i])
+ .DefaultIfEmpty (c.ToString ()).ToArray ());
+
+ return true;
+ }
+
+ returnvalue = null;
+ return false;
+ }
+}
+
+/// <summary>A custom formatter for the ObjCRuntime.Platform enumeration.</summary>
+class ApplePlatformEnumFormatter : AttributeValueFormatter {
+ public override bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue)
+ {
+ TypeReference valueType = type.Reference;
+ string typename = MDocUpdater.GetDocTypeFullName (valueType);
+ TypeDefinition valueDef = type.Definition;
+ if (typename.Contains ("ObjCRuntime.Platform") && valueDef.CustomAttributes.Any (ca => ca.AttributeType.FullName == "System.FlagsAttribute")) {
+
+ var values = MDocUpdater.GetEnumerationValues (valueDef);
+ long c = MDocUpdater.ToInt64 (v);
+
+ returnvalue = Format (c, values, typename);
+ return true;
+ }
+
+ returnvalue = null;
+ return false;
+ }
+
+ string Format (long c, IDictionary<long, string> values, string typename)
+ {
+ int iosarch, iosmajor, iosminor, iossubminor;
+ int macarch, macmajor, macminor, macsubminor;
+ GetEncodingiOS (c, out iosarch, out iosmajor, out iosminor, out iossubminor);
+ GetEncodingMac ((ulong)c, out macarch, out macmajor, out macminor, out macsubminor);
+
+ if (iosmajor == 0 & iosminor == 0 && iossubminor == 0) {
+ return FormatValues ("Mac", macarch, macmajor, macminor, macsubminor);
+ }
+
+ if (macmajor == 0 & macminor == 0 && macsubminor == 0) {
+ return FormatValues ("iOS", iosarch, iosmajor, iosminor, iossubminor);
+ }
+
+ return string.Format ("(Platform){0}", c);
+ }
+
+ string FormatValues (string plat, int arch, int major, int minor, int subminor)
+ {
+ string archstring = "";
+ switch (arch) {
+ case 1:
+ archstring = "32";
+ break;
+ case 2:
+ archstring = "64";
+ break;
+ }
+ return string.Format ("Platform.{4}_{0}_{1}{2} | Platform.{4}_Arch{3}",
+ major,
+ minor,
+ subminor == 0 ? "" : "_" + subminor.ToString (),
+ archstring,
+ plat
+ );
+ }
+
+ void GetEncodingiOS (long entireLong, out int archindex, out int major, out int minor, out int subminor)
+ {
+ long lowerBits = entireLong & 0xffffffff;
+ int lowerBitsAsInt = (int) lowerBits;
+ GetEncoding (lowerBitsAsInt, out archindex, out major, out minor, out subminor);
+ }
+
+ void GetEncodingMac (ulong entireLong, out int archindex, out int major, out int minor, out int subminor)
+ {
+ ulong higherBits = entireLong & 0xffffffff00000000;
+ int higherBitsAsInt = (int) ((higherBits) >> 32);
+ GetEncoding (higherBitsAsInt, out archindex, out major, out minor, out subminor);
+ }
+
+ void GetEncoding (Int32 encodedBits, out int archindex, out int major, out int minor, out int subminor)
+ {
+ // format is AAJJNNSS
+ archindex = (int)((encodedBits & 0xFF000000) >> 24);
+ major = (int)((encodedBits & 0x00FF0000) >> 16);
+ minor = (int)((encodedBits & 0x0000FF00) >> 8);
+ subminor = (int)((encodedBits & 0x000000FF) >> 0);
+ }
+}
}
diff --git a/mdoc/Test/DocTest-enumerations.cs b/mdoc/Test/DocTest-enumerations.cs
new file mode 100644
index 00000000..a77d4970
--- /dev/null
+++ b/mdoc/Test/DocTest-enumerations.cs
@@ -0,0 +1,79 @@
+using System;
+using ObjCRuntime;
+namespace ObjCRuntime {
+ [Flags]
+ public enum Platform : ulong {
+ None = 0,
+ iOS_2_0 = 0x0000000000020000,
+ iOS_2_2 = 0x0000000000020200,
+ iOS_3_0 = 0x0000000000030000,
+ iOS_3_1 = 0x0000000000030100,
+ iOS_3_2 = 0x0000000000030200,
+ iOS_4_0 = 0x0000000000040000,
+ iOS_4_1 = 0x0000000000040100,
+ iOS_4_2 = 0x0000000000040200,
+ iOS_4_3 = 0x0000000000040300,
+ iOS_5_0 = 0x0000000000050000,
+ iOS_5_1 = 0x0000000000050100,
+ iOS_6_0 = 0x0000000000060000,
+ iOS_6_1 = 0x0000000000060100,
+ iOS_7_0 = 0x0000000000070000,
+ iOS_7_1 = 0x0000000000070100,
+ iOS_8_0 = 0x0000000000080000,
+ iOS_8_1 = 0x0000000000080100,
+ iOS_8_2 = 0x0000000000080200,
+ iOS_8_3 = 0x0000000000080300,
+ Mac_10_0 = 0x000A000000000000,
+ Mac_10_1 = 0x000A010000000000,
+ Mac_10_2 = 0x000A020000000000,
+ Mac_10_3 = 0x000A030000000000,
+ Mac_10_4 = 0x000A040000000000,
+ Mac_10_5 = 0x000A050000000000,
+ Mac_10_6 = 0x000A060000000000,
+ Mac_10_7 = 0x000A070000000000,
+ Mac_10_8 = 0x000A080000000000,
+ Mac_10_9 = 0x000A090000000000,
+ Mac_10_10 = 0x000A0A0000000000,
+ iOS_Version = 0x0000000000FFFFFF,
+ Mac_Version = 0x00FFFFFF00000000,
+ Mac_Arch32 = 0x0100000000000000,
+ Mac_Arch64 = 0x0200000000000000,
+ Mac_Arch = 0xFF00000000000000,
+ iOS_Arch32 = 0x0000000001000000,
+ iOS_Arch64 = 0x0000000002000000,
+ iOS_Arch = 0x00000000FF000000
+ }
+}
+namespace MyNamespace {
+ public enum MyEnum {
+ One,
+ Two,
+ Three
+ }
+ public class MyFlagEnumAttribute : Attribute {
+ public Platform Enum {get;set;}
+ public MyFlagEnumAttribute(){}
+ public MyFlagEnumAttribute (Platform value) {
+ this.Enum = value;
+ }
+ }
+ public class MyEnumAttribute : Attribute {
+ public MyEnum Enum {get;set;}
+ public MyEnumAttribute(){}
+ public MyEnumAttribute (MyEnum value) {
+ this.Enum = value;
+ }
+ }
+ public class MyClass {
+ [MyFlagEnum(value: Platform.None)]
+ public string None() { return string.Empty; }
+ [MyFlagEnum(value: Platform.Mac_10_8 | Platform.Mac_Arch64)]
+ public string MacMethod() { return string.Empty; }
+ [MyFlagEnum(value: Platform.iOS_Arch32 | Platform.iOS_4_2)]
+ public string iOSMethod() { return string.Empty; }
+ [MyEnum(value: MyEnum.One)]
+ public string RegularEnum() { return string.Empty; }
+ [MyEnum(value: (MyEnum)234234)]
+ public string UnknownEnumValue() { return string.Empty; }
+ }
+}
diff --git a/mdoc/Test/en.expected-enumerations/MyNamespace/MyClass.xml b/mdoc/Test/en.expected-enumerations/MyNamespace/MyClass.xml
new file mode 100644
index 00000000..a52ae972
--- /dev/null
+++ b/mdoc/Test/en.expected-enumerations/MyNamespace/MyClass.xml
@@ -0,0 +1,141 @@
+<Type Name="MyClass" FullName="MyNamespace.MyClass">
+ <TypeSignature Language="C#" Value="public class MyClass" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyClass extends System.Object" />
+ <AssemblyInfo>
+ <AssemblyName>DocTest-enumerations</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public MyClass ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
+ <MemberType>Constructor</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="iOSMethod">
+ <MemberSignature Language="C#" Value="public string iOSMethod ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string iOSMethod() cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Attributes>
+ <Attribute>
+ <AttributeName>MyNamespace.MyFlagEnum(Platform.iOS_4_2 | Platform.iOS_Arch32)</AttributeName>
+ </Attribute>
+ </Attributes>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="MacMethod">
+ <MemberSignature Language="C#" Value="public string MacMethod ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string MacMethod() cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Attributes>
+ <Attribute>
+ <AttributeName>MyNamespace.MyFlagEnum(Platform.Mac_10_8 | Platform.Mac_Arch64)</AttributeName>
+ </Attribute>
+ </Attributes>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="None">
+ <MemberSignature Language="C#" Value="public string None ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string None() cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Attributes>
+ <Attribute>
+ <AttributeName>MyNamespace.MyFlagEnum(ObjCRuntime.Platform.None)</AttributeName>
+ </Attribute>
+ </Attributes>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="RegularEnum">
+ <MemberSignature Language="C#" Value="public string RegularEnum ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string RegularEnum() cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Attributes>
+ <Attribute>
+ <AttributeName>MyNamespace.MyEnum(MyNamespace.MyEnum.One)</AttributeName>
+ </Attribute>
+ </Attributes>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="UnknownEnumValue">
+ <MemberSignature Language="C#" Value="public string UnknownEnumValue ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string UnknownEnumValue() cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Attributes>
+ <Attribute>
+ <AttributeName>MyNamespace.MyEnum((MyNamespace.MyEnum) 234234)</AttributeName>
+ </Attribute>
+ </Attributes>
+ <ReturnValue>
+ <ReturnType>System.String</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnum.xml b/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnum.xml
new file mode 100644
index 00000000..8bbe13fb
--- /dev/null
+++ b/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnum.xml
@@ -0,0 +1,59 @@
+<Type Name="MyEnum" FullName="MyNamespace.MyEnum">
+ <TypeSignature Language="C#" Value="public enum MyEnum" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed MyEnum extends System.Enum" />
+ <AssemblyInfo>
+ <AssemblyName>DocTest-enumerations</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="One">
+ <MemberSignature Language="C#" Value="One" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype MyNamespace.MyEnum One = int32(0)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>MyNamespace.MyEnum</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Three">
+ <MemberSignature Language="C#" Value="Three" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype MyNamespace.MyEnum Three = int32(2)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>MyNamespace.MyEnum</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Two">
+ <MemberSignature Language="C#" Value="Two" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype MyNamespace.MyEnum Two = int32(1)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>MyNamespace.MyEnum</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnumAttribute.xml b/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnumAttribute.xml
new file mode 100644
index 00000000..0d155e63
--- /dev/null
+++ b/mdoc/Test/en.expected-enumerations/MyNamespace/MyEnumAttribute.xml
@@ -0,0 +1,63 @@
+<Type Name="MyEnumAttribute" FullName="MyNamespace.MyEnumAttribute">
+ <TypeSignature Language="C#" Value="public class MyEnumAttribute : Attribute" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyEnumAttribute extends System.Attribute" />
+ <AssemblyInfo>
+ <AssemblyName>DocTest-enumerations</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Attribute</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public MyEnumAttribute ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
+ <MemberType>Constructor</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public MyEnumAttribute (MyNamespace.MyEnum value);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype MyNamespace.MyEnum value) cil managed" />
+ <MemberType>Constructor</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Parameters>
+ <Parameter Name="value" Type="MyNamespace.MyEnum" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Enum">
+ <MemberSignature Language="C#" Value="public MyNamespace.MyEnum Enum { get; set; }" />
+ <MemberSignature Language="ILAsm" Value=".property instance valuetype MyNamespace.MyEnum Enum" />
+ <MemberType>Property</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>MyNamespace.MyEnum</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/mdoc/Test/en.expected-enumerations/MyNamespace/MyFlagEnumAttribute.xml b/mdoc/Test/en.expected-enumerations/MyNamespace/MyFlagEnumAttribute.xml
new file mode 100644
index 00000000..f2c21626
--- /dev/null
+++ b/mdoc/Test/en.expected-enumerations/MyNamespace/MyFlagEnumAttribute.xml
@@ -0,0 +1,63 @@
+<Type Name="MyFlagEnumAttribute" FullName="MyNamespace.MyFlagEnumAttribute">
+ <TypeSignature Language="C#" Value="public class MyFlagEnumAttribute : Attribute" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyFlagEnumAttribute extends System.Attribute" />
+ <AssemblyInfo>
+ <AssemblyName>DocTest-enumerations</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Attribute</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public MyFlagEnumAttribute ();" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
+ <MemberType>Constructor</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName=".ctor">
+ <MemberSignature Language="C#" Value="public MyFlagEnumAttribute (ObjCRuntime.Platform value);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype ObjCRuntime.Platform value) cil managed" />
+ <MemberType>Constructor</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Parameters>
+ <Parameter Name="value" Type="ObjCRuntime.Platform" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ <Member MemberName="Enum">
+ <MemberSignature Language="C#" Value="public ObjCRuntime.Platform Enum { get; set; }" />
+ <MemberSignature Language="ILAsm" Value=".property instance valuetype ObjCRuntime.Platform Enum" />
+ <MemberType>Property</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ <value>To be added.</value>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/mdoc/Test/en.expected-enumerations/ObjCRuntime/Platform.xml b/mdoc/Test/en.expected-enumerations/ObjCRuntime/Platform.xml
new file mode 100644
index 00000000..25ada27e
--- /dev/null
+++ b/mdoc/Test/en.expected-enumerations/ObjCRuntime/Platform.xml
@@ -0,0 +1,568 @@
+<Type Name="Platform" FullName="ObjCRuntime.Platform">
+ <TypeSignature Language="C#" Value="public enum Platform" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Platform extends System.Enum" />
+ <AssemblyInfo>
+ <AssemblyName>DocTest-enumerations</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Flags</AttributeName>
+ </Attribute>
+ </Attributes>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="iOS_2_0">
+ <MemberSignature Language="C#" Value="iOS_2_0" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_2_0 = unsigned int64(131072)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_2_2">
+ <MemberSignature Language="C#" Value="iOS_2_2" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_2_2 = unsigned int64(131584)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_3_0">
+ <MemberSignature Language="C#" Value="iOS_3_0" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_3_0 = unsigned int64(196608)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_3_1">
+ <MemberSignature Language="C#" Value="iOS_3_1" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_3_1 = unsigned int64(196864)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_3_2">
+ <MemberSignature Language="C#" Value="iOS_3_2" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_3_2 = unsigned int64(197120)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_4_0">
+ <MemberSignature Language="C#" Value="iOS_4_0" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_4_0 = unsigned int64(262144)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_4_1">
+ <MemberSignature Language="C#" Value="iOS_4_1" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_4_1 = unsigned int64(262400)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_4_2">
+ <MemberSignature Language="C#" Value="iOS_4_2" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_4_2 = unsigned int64(262656)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_4_3">
+ <MemberSignature Language="C#" Value="iOS_4_3" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_4_3 = unsigned int64(262912)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_5_0">
+ <MemberSignature Language="C#" Value="iOS_5_0" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_5_0 = unsigned int64(327680)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_5_1">
+ <MemberSignature Language="C#" Value="iOS_5_1" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_5_1 = unsigned int64(327936)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_6_0">
+ <MemberSignature Language="C#" Value="iOS_6_0" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_6_0 = unsigned int64(393216)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_6_1">
+ <MemberSignature Language="C#" Value="iOS_6_1" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_6_1 = unsigned int64(393472)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_7_0">
+ <MemberSignature Language="C#" Value="iOS_7_0" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_7_0 = unsigned int64(458752)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_7_1">
+ <MemberSignature Language="C#" Value="iOS_7_1" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_7_1 = unsigned int64(459008)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_8_0">
+ <MemberSignature Language="C#" Value="iOS_8_0" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_8_0 = unsigned int64(524288)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_8_1">
+ <MemberSignature Language="C#" Value="iOS_8_1" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_8_1 = unsigned int64(524544)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_8_2">
+ <MemberSignature Language="C#" Value="iOS_8_2" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_8_2 = unsigned int64(524800)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_8_3">
+ <MemberSignature Language="C#" Value="iOS_8_3" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_8_3 = unsigned int64(525056)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_Arch">
+ <MemberSignature Language="C#" Value="iOS_Arch" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_Arch = unsigned int64(4278190080)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_Arch32">
+ <MemberSignature Language="C#" Value="iOS_Arch32" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_Arch32 = unsigned int64(16777216)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_Arch64">
+ <MemberSignature Language="C#" Value="iOS_Arch64" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_Arch64 = unsigned int64(33554432)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="iOS_Version">
+ <MemberSignature Language="C#" Value="iOS_Version" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform iOS_Version = unsigned int64(16777215)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_0">
+ <MemberSignature Language="C#" Value="Mac_10_0" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_0 = unsigned int64(2814749767106560)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_1">
+ <MemberSignature Language="C#" Value="Mac_10_1" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_1 = unsigned int64(2815849278734336)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_10">
+ <MemberSignature Language="C#" Value="Mac_10_10" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_10 = unsigned int64(2825744883384320)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_2">
+ <MemberSignature Language="C#" Value="Mac_10_2" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_2 = unsigned int64(2816948790362112)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_3">
+ <MemberSignature Language="C#" Value="Mac_10_3" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_3 = unsigned int64(2818048301989888)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_4">
+ <MemberSignature Language="C#" Value="Mac_10_4" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_4 = unsigned int64(2819147813617664)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_5">
+ <MemberSignature Language="C#" Value="Mac_10_5" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_5 = unsigned int64(2820247325245440)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_6">
+ <MemberSignature Language="C#" Value="Mac_10_6" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_6 = unsigned int64(2821346836873216)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_7">
+ <MemberSignature Language="C#" Value="Mac_10_7" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_7 = unsigned int64(2822446348500992)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_8">
+ <MemberSignature Language="C#" Value="Mac_10_8" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_8 = unsigned int64(2823545860128768)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_10_9">
+ <MemberSignature Language="C#" Value="Mac_10_9" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_10_9 = unsigned int64(2824645371756544)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_Arch">
+ <MemberSignature Language="C#" Value="Mac_Arch" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_Arch = unsigned int64(18374686479671623680)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_Arch32">
+ <MemberSignature Language="C#" Value="Mac_Arch32" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_Arch32 = unsigned int64(72057594037927936)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_Arch64">
+ <MemberSignature Language="C#" Value="Mac_Arch64" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_Arch64 = unsigned int64(144115188075855872)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Mac_Version">
+ <MemberSignature Language="C#" Value="Mac_Version" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform Mac_Version = unsigned int64(72057589742960640)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="None">
+ <MemberSignature Language="C#" Value="None" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype ObjCRuntime.Platform None = unsigned int64(0)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>ObjCRuntime.Platform</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/mdoc/Test/en.expected-enumerations/index.xml b/mdoc/Test/en.expected-enumerations/index.xml
new file mode 100644
index 00000000..d46426cc
--- /dev/null
+++ b/mdoc/Test/en.expected-enumerations/index.xml
@@ -0,0 +1,28 @@
+<Overview>
+ <Assemblies>
+ <Assembly Name="DocTest-enumerations" Version="0.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
+ </Assemblies>
+ <Remarks>To be added.</Remarks>
+ <Copyright>To be added.</Copyright>
+ <Types>
+ <Namespace Name="MyNamespace">
+ <Type Name="MyClass" Kind="Class" />
+ <Type Name="MyEnum" Kind="Enumeration" />
+ <Type Name="MyEnumAttribute" Kind="Class" />
+ <Type Name="MyFlagEnumAttribute" Kind="Class" />
+ </Namespace>
+ <Namespace Name="ObjCRuntime">
+ <Type Name="Platform" Kind="Enumeration" />
+ </Namespace>
+ </Types>
+ <Title>DocTest-enumerations</Title>
+</Overview>
diff --git a/mdoc/Test/en.expected-enumerations/ns-MyNamespace.xml b/mdoc/Test/en.expected-enumerations/ns-MyNamespace.xml
new file mode 100644
index 00000000..bd8d4316
--- /dev/null
+++ b/mdoc/Test/en.expected-enumerations/ns-MyNamespace.xml
@@ -0,0 +1,6 @@
+<Namespace Name="MyNamespace">
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Namespace>
diff --git a/mdoc/Test/en.expected-enumerations/ns-ObjCRuntime.xml b/mdoc/Test/en.expected-enumerations/ns-ObjCRuntime.xml
new file mode 100644
index 00000000..b69f121d
--- /dev/null
+++ b/mdoc/Test/en.expected-enumerations/ns-ObjCRuntime.xml
@@ -0,0 +1,6 @@
+<Namespace Name="ObjCRuntime">
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+</Namespace>