diff options
author | katsiaryna_bialiatka <katsiaryna_bialiatka@epam.com> | 2017-12-22 19:15:31 +0300 |
---|---|---|
committer | Joel Martinez <joelmartinez@gmail.com> | 2018-01-12 01:11:42 +0300 |
commit | 6533035ec31f38543532568bc499aba2a98e1788 (patch) | |
tree | c9e7e3bdefd3299bfbf28dd5bd6b5bcc43fd988f /mdoc | |
parent | 8ff2931c4e40e1c3687e8efa6fb4e8078b3a3c4b (diff) |
[mdoc] Support for C++ signatures
Closes #132
Diffstat (limited to 'mdoc')
148 files changed, 12910 insertions, 63 deletions
diff --git a/mdoc/Consts.cs b/mdoc/Consts.cs index 18d74d96..376696a4 100644 --- a/mdoc/Consts.cs +++ b/mdoc/Consts.cs @@ -5,17 +5,23 @@ namespace Mono.Documentation { public static string MonoVersion = "5.4.1.0"; public const string DocId = "DocId"; - public const string VbNet = "VB.NET"; + public const string CppCli = "C++ CLI"; + public const string CppCx = "C++ CX"; + public const string CppWinRt = "C++ WINRT"; + public const string VbNet = "VB.NET"; public const string DocIdLowCase = "docid"; public const string VbNetLowCase = "vb.net"; + public const string CppCliLowCase = "c++/cli"; + public const string CppCxLowCase = "c++/cx"; + public const string CppWinRtLowCase = "c++/winrt"; + public const string Tab = " "; public const string FSharp = "F#"; public const string FSharpLowCase = "f#"; public const string Javascript = "JavaScript"; public const string JavascriptLowCase = "javascript"; - public const string Tab = " "; public const string DependencyPropertyFullName = "System.Windows.DependencyProperty"; public const string DependencyObjectFullName = "System.Windows.DependencyObject"; public const string VoidFullName = "System.Void"; - } + } } diff --git a/mdoc/Makefile b/mdoc/Makefile index cfa1fb2b..55d8be89 100644 --- a/mdoc/Makefile +++ b/mdoc/Makefile @@ -180,7 +180,39 @@ check-monodocer-vbnet: Test/FrameworkTestData -rm -Rf Test/en.actual $(MONO) $(PROGRAM) update -lang vb.net -o Test/en.actual -frameworks Test/FrameworkTestData $(DIFF) Test/en.expected-vbnet Test/en.actual + +check-monodocer-cppcli: Test/FrameworkTestData + -rm -Rf Test/en.actual + $(MONO) $(PROGRAM) update -lang c++/cli -o Test/en.actual -frameworks Test/FrameworkTestData + $(DIFF) Test/en.expected-cppcli Test/en.actual + +check-monodocer-cppwinrtUwp: + -rm -Rf Test/en.actual + $(MONO) $(PROGRAM) update -lib ..\external\Windows --lang c++/winrt -o Test/en.actual Test/UwpTestWinRtComponentCpp.winmd + $(DIFF) Test/ex.expected-cppwinrtuwp Test/en.actual + +check-monodocer-cppcx: Test/FrameworkTestData + -rm -Rf Test/en.actual + $(MONO) $(PROGRAM) update -lang c++/cx -o Test/en.actual -frameworks Test/FrameworkTestData + $(DIFF) Test/en.expected-cppcx Test/en.actual + +check-monodocer-cppcxDocTest: Test/DocTest.dll + -rm -Rf Test/en.actual + $(MONO) $(PROGRAM) update -lang c++/cx -o Test/en.actual Test/DocTest.dll + $(DIFF) Test/en.expected-cppcx2 Test/en.actual + +check-monodocer-cppwinrt: Test/FrameworkTestData + -rm -Rf Test/en.actual + $(MONO) $(PROGRAM) update -lang c++/winrt -o Test/en.actual -frameworks Test/FrameworkTestData + $(DIFF) Test/en.expected-cppwinrt Test/en.actual + +check-monodocer-cppwinrtDocTest: Test/DocTest.dll + -rm -Rf Test/en.actual + $(MONO) $(PROGRAM) update -lang c++/winrt -o Test/en.actual Test/DocTest.dll + $(DIFF) Test/en.expected-cppwinrt2 Test/en.actual + + check-monodocer-vbnet2: -rm -Rf Test/en.actual $(MAKE) Test/DocTest.dll-v1 @@ -559,7 +591,7 @@ run-test-local: check-doc-tools run-test-update : check-doc-tools-update -check-doc-tools: check-monodocer-since \ +check-doc-tools: check-monodocer-since \ check-monodocer-importecmadoc \ check-monodocer-importslashdoc \ check-monodocer-import-fx \ @@ -593,6 +625,12 @@ check-doc-tools: check-monodocer-since \ check-monodocer-fsharp \ check-monodocer-attached-entities \ check-monodocer-members-implementation \ + check-monodocer-cppcli \ + check-monodocer-cppcxDocTest\ + check-monodocer-cppcx\ + check-monodocer-cppwinrtDocTest\ + check-monodocer-cppwinrt\ + check-monodocer-cppwinrtUwp\ check-doc-tools-update: check-monodocer-since-update \ diff --git a/mdoc/Mono.Documentation/MDocUpdater.cs b/mdoc/Mono.Documentation/MDocUpdater.cs index 2dde2be9..2d33eddb 100644 --- a/mdoc/Mono.Documentation/MDocUpdater.cs +++ b/mdoc/Mono.Documentation/MDocUpdater.cs @@ -10,8 +10,10 @@ using System.Xml; using System.Xml.Linq; using System.Xml.XPath; using mdoc.Mono.Documentation.Updater.Formatters; +using Mono.Documentation.Updater.Formatters.CppFormatters; using Mono.Cecil; using Mono.Documentation.Updater; +using Mono.Documentation.Updater.CppFormatters; using Mono.Documentation.Updater.Frameworks; using Mono.Documentation.Updater.Statistics; using Mono.Documentation.Util; @@ -51,11 +53,13 @@ namespace Mono.Documentation static MemberFormatter[] typeFormatters = new MemberFormatter[]{ new CSharpMemberFormatter (), new ILMemberFormatter (), + }; static MemberFormatter[] memberFormatters = new MemberFormatter[]{ new CSharpFullMemberFormatter (), - new ILFullMemberFormatter () + new ILFullMemberFormatter (), + }; internal static readonly MemberFormatter slashdocFormatter = new SlashDocMemberFormatter (); @@ -260,7 +264,7 @@ namespace Mono.Documentation Version = f.Elements("package") ?.FirstOrDefault()?.Attribute("Version")?.Value, Id = f.Elements("package") - ?.FirstOrDefault()?.Attribute("Id")?.Value
+ ?.FirstOrDefault()?.Attribute("Id")?.Value }) .Where (f => Directory.Exists (f.Path)); @@ -400,6 +404,18 @@ namespace Mono.Documentation typeFormatter = new VBMemberFormatter(); memberFormatter = new VBMemberFormatter(); break; + case Consts.CppCliLowCase: + typeFormatter = new CppMemberFormatter(); + memberFormatter = new CppFullMemberFormatter(); + break; + case Consts.CppCxLowCase: + typeFormatter = new CppCxMemberFormatter(); + memberFormatter = new CppCxFullMemberFormatter(); + break; + case Consts.CppWinRtLowCase: + typeFormatter = new CppWinRtMemberFormatter(); + memberFormatter = new CppWinRtFullMemberFormatter(); + break; case Consts.FSharpLowCase: case "fsharp": typeFormatter = new FSharpMemberFormatter(); @@ -994,13 +1010,13 @@ namespace Mono.Documentation } string defaultTitle = "Untitled"; - if (processedAssemblyCount == 1 && assemblies[0] != null)
- {
- var assembly = assemblies[0].Assemblies.FirstOrDefault();
- if (assembly != null)
- defaultTitle = assembly.Name.Name;
- else
- Warning($"Seems to be an issue with assembly group '{assemblies[0].Name}'. There are no assemblies loaded.");
+ if (processedAssemblyCount == 1 && assemblies[0] != null) + { + var assembly = assemblies[0].Assemblies.FirstOrDefault(); + if (assembly != null) + defaultTitle = assembly.Name.Name; + else + Warning($"Seems to be an issue with assembly group '{assemblies[0].Name}'. There are no assemblies loaded."); } WriteElementInitialText (index.DocumentElement, "Title", defaultTitle); @@ -1480,8 +1496,9 @@ namespace Mono.Documentation if (m is TypeDefinition) return false; string cssig = memberFormatters[0].GetDeclaration (m); if (cssig == null) return false; + string sig = memberFormatters[1].GetDeclaration (m); - if (seenmembers.ContainsKey (sig)) return false; + if (sig==null || seenmembers.ContainsKey (sig)) return false; // Verify that the member isn't an explicitly implemented // member of an internal interface, in which case we shouldn't return true. @@ -2226,13 +2243,13 @@ namespace Mono.Documentation e.RemoveAll(); foreach (var implementedMember in implementedMembers) - {
- var value = slashdocFormatter.GetDeclaration(implementedMember);
- WriteElementText(e, "InterfaceMember", value, true);
- }
-
- if (e.ParentNode == null)
- root.AppendChild(e);
+ { + var value = slashdocFormatter.GetDeclaration(implementedMember); + WriteElementText(e, "InterfaceMember", value, true); + } + + if (e.ParentNode == null) + root.AppendChild(e); } static void AddXmlNode (XmlElement[] relevant, Func<XmlElement, bool> valueMatches, Action<XmlElement> setValue, Func<XmlElement> makeNewNode, MemberReference member) diff --git a/mdoc/Mono.Documentation/Updater/DocUtils.cs b/mdoc/Mono.Documentation/Updater/DocUtils.cs index b6eabffe..83543f90 100644 --- a/mdoc/Mono.Documentation/Updater/DocUtils.cs +++ b/mdoc/Mono.Documentation/Updater/DocUtils.cs @@ -66,6 +66,14 @@ namespace Mono.Documentation.Updater propagateStyle ();
}
}
+ public static string GetFormattedTypeName(string name)
+ {
+ int index = name.IndexOf("`", StringComparison.Ordinal);
+ if (index >= 0)
+ return name.Substring(0, index);
+
+ return name;
+ }
public static void AddApiStyle (this XmlNode node, ApiStyle style)
{
string styleString = style.ToString ().ToLowerInvariant ();
@@ -169,8 +177,11 @@ namespace Mono.Documentation.Updater GetMember (pi.Name)});
}
- public static string GetNamespace (TypeReference type)
+ public static string GetNamespace (TypeReference type, string delimeter = null)
{
+ if (type == null)
+ return string.Empty;
+
if (type.GetElementType ().IsNested)
type = type.GetElementType ();
while (type != null && type.IsNested)
@@ -180,12 +191,17 @@ namespace Mono.Documentation.Updater string typeNS = type.Namespace;
+ if (!string.IsNullOrEmpty(delimeter))
+ {
+ typeNS = typeNS.Replace(".", delimeter);
+ }
+
// first, make sure this isn't a type reference to another assembly/module
bool isInAssembly = MDocUpdater.IsInAssemblies (type.Module.Name);
if (isInAssembly && !typeNS.StartsWith ("System") && MDocUpdater.HasDroppedNamespace (type))
{
- typeNS = string.Format ("{0}.{1}", MDocUpdater.droppedNamespace, typeNS);
+ typeNS = string.Format ("{0}{1}{2}", MDocUpdater.droppedNamespace, delimeter ?? ".", typeNS);
}
return typeNS;
}
diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs new file mode 100644 index 00000000..66774adc --- /dev/null +++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs @@ -0,0 +1,572 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using Mono.Cecil; +using Mono.Documentation.Util; + +namespace Mono.Documentation.Updater.Formatters.CppFormatters +{ + public class CppCxFullMemberFormatter : CppFullMemberFormatter + { + public override string Language => Consts.CppCx; + protected override string RefTypeModifier => " & "; + + protected readonly IEnumerable<string> ValueClassPropertyTypeAllowed = new List<string>() + { + "System.String", + "Platform.IBox<T>", + //fundamental numeric types + "System.SByte", + "System.Byte", + "System.Int16", + "System.UInt16", + "System.Int32", + "System.UInt32", + "System.Int64", + "System.UInt64", + "System.Single", + "System.Double", + "System.Decimal" + }; + + protected readonly IEnumerable<string> CustomAttributesFieldTypesAllowed = new List<string>() + { + "System.Int32", + "System.UInt32", + "System.Boolean", + "System.String", + "Windows.Foundation.HResult", + "Platform.Type" + }; + + protected static readonly IEnumerable<string> AllowedFundamentalTypes = new List<string>() + { + //fundamental numeric types + "System.Byte", + "System.Int16", + "System.UInt16", + "System.Int32", + "System.UInt32", + "System.Int64", + "System.UInt64", + "System.Single", + "System.Double", + "System.SByte", + //other fundamental types + "System.Object", + "System.Boolean", + "System.Char", + "System.Void", + "System.String", + "System.ValueType", + "System.Enum", + }; + + protected virtual IList<string> GetAllowedTypes() + { + return new List<string>(AllowedFundamentalTypes) + { + "System.Delegate", + "System.MulticastDelegate", + "System.Type", + "System.Attribute" + }; + + } + protected readonly IEnumerable<string> CppCxSpecificNamespases = new List<string>() + { + "Platform", + "Platform.Collections", + "Platform.Collections.Details", + "Platform.Details", + "Platform.Metadata", + "Platform.Runtime.CompilerServices", + "Platform.Runtime.InteropServices", + "Windows.Foundation.Collections" + }; + + protected override StringBuilder AppendNamespace(StringBuilder buf, TypeReference type) + { + string ns = DocUtils.GetNamespace(type, NestedTypeSeparator); + if (GetCppType(type.FullName) == null && !string.IsNullOrEmpty(ns) && ns != "System") + buf.Append(ns).Append(NestedTypeSeparator); + return buf; + } + + protected override string GetCppType(string t) + { + // make sure there are no modifiers in the type string (add them back before returning) + string typeToCompare = t; + string[] splitType = null; + if (t.Contains(' ')) + { + splitType = t.Split(' '); + typeToCompare = splitType[0]; + } + + switch (typeToCompare) + { + case "System.Byte": typeToCompare = "byte"; break; + case "System.Int16": typeToCompare = "short"; break; + case "System.Int32": typeToCompare = "int"; break; + case "System.Int64": typeToCompare = "long long"; break; + + case "System.UInt16": typeToCompare = "unsigned short"; break; + case "System.UInt32": typeToCompare = "unsigned int"; break; + case "System.UInt64": typeToCompare = "unsigned long long"; break; + + case "System.Single": typeToCompare = "float"; break; + case "System.Double": typeToCompare = "double"; break; + case "System.Boolean": typeToCompare = "bool"; break; + case "System.Char": typeToCompare = "char16"; break; + case "System.Void": typeToCompare = "void"; break; + case "System.String": typeToCompare = "Platform::String"; break; + case "System.Object": typeToCompare = "Platform::Object"; break; + case "System.Type": typeToCompare = "Platform::Type"; break; + case "System.Attribute": typeToCompare = "Platform::Metadata::Attribute"; break; + } + + if (splitType != null) + { + // re-add modreq/modopt if it was there + splitType[0] = typeToCompare; + typeToCompare = string.Join(" ", splitType); + } + return typeToCompare == t ? null : typeToCompare; + } + + protected override StringBuilder AppendArrayTypeName(StringBuilder buf, TypeReference type, + DynamicParserContext context) + { + buf.Append("Platform::Array <"); + + var item = type is TypeSpecification spec ? spec.ElementType : type.GetElementType(); + _AppendTypeName(buf, item, context); + AppendHat(buf, item); + + if (type is ArrayType arrayType) + { + int rank = arrayType.Rank; + if (rank > 1) + { + buf.AppendFormat(", {0}", rank); + } + } + + buf.Append(">"); + + return buf; + } + + protected override string GetTypeDeclaration(TypeDefinition type) + { + string visibility = GetTypeVisibility(type.Attributes); + if (visibility == null) + return null; + + StringBuilder buf = new StringBuilder(); + + if (!visibility.Contains(":")) + { + AppendWebHostHiddenAttribute(buf, type); + } + + buf.Append(visibility); + buf.Append(" "); + + if (visibility.Contains(":")) + { + AppendWebHostHiddenAttribute(buf, type); + } + + CppFullMemberFormatter full = new CppCxFullMemberFormatter(); + + if (DocUtils.IsDelegate(type)) + { + buf.Append("delegate "); + MethodDefinition invoke = type.GetMethod("Invoke"); + buf.Append(full.GetNameWithOptions(invoke.ReturnType)).Append(" "); + buf.Append(GetNameWithOptions(type, false, false)); + AppendParameters(buf, invoke, invoke.Parameters); + buf.Append(";"); + + return buf.ToString(); + } + + buf.Append(GetTypeKind(type)); + buf.Append(" "); + buf.Append(GetCppType(type.FullName) == null + ? GetNameWithOptions(type, false, false) + : type.Name); + + if (type.IsAbstract && !type.IsInterface) + buf.Append(" abstract"); + if (type.IsSealed && !DocUtils.IsDelegate(type) && !type.IsValueType) + buf.Append(" sealed"); + + if (!type.IsEnum) + { + TypeReference basetype = type.BaseType; + if (basetype != null && basetype.FullName == "System.Object" || type.IsValueType) // FIXME + basetype = null; + + List<string> interfaceNames; + try + { + //for c++/cx Resolve() can fail as Cecil understands CX types as .net (eg, "System.Attribute" instead of "Platform::Metadata::Attribute") + interfaceNames = DocUtils.GetUserImplementedInterfaces(type) + .Select(iface => full.GetNameWithOptions(iface, true, false)) + .OrderBy(s => s) + .ToList(); + } + catch + { + interfaceNames = null; + } + + if (basetype != null || interfaceNames?.Count > 0) + buf.Append(" : "); + + if (basetype != null) + { + var appendValue = GetCppType(basetype.FullName); + buf.Append(appendValue ?? full.GetNameWithOptions(basetype, true, false)); + if (interfaceNames?.Count > 0) + buf.Append(", "); + } + + for (int i = 0; i < interfaceNames?.Count; i++) + { + if (i != 0) + buf.Append(", "); + buf.Append(interfaceNames?[i]); + } + + } + + return buf.ToString(); + } + + public void AppendWebHostHiddenAttribute(StringBuilder buf, TypeDefinition typeDef) + { + //public unsealed ref class needs to be marked with attribute + //to ensure that is not visible to UWP apps that are written in JavaScript + if (typeDef.IsClass && !typeDef.IsSealed && (typeDef.IsPublic || typeDef.IsNestedPublic) && typeDef.CustomAttributes.All(x => x.GetDeclaringType() != "Windows.Foundation.Metadata.WebHostHiddenAttribute")) + { + buf.Append("[Windows::Foundation::Metadata::WebHostHidden]").Append(GetLineEnding()); + } + } + + protected override StringBuilder AppendExplisitImplementationMethod(StringBuilder buf, MethodDefinition method) + { + if(IsExplicitlyImplemented(method)) + { + buf.Append(" = "); + + var interfaceMethodReference = method.Overrides.FirstOrDefault(); + + buf.Append(GetTypeNameWithOptions(interfaceMethodReference?.DeclaringType, !AppendHatOnReturn, true)) + .Append(NestedTypeSeparator); + buf.Append(interfaceMethodReference?.Name); + } + return buf; + } + + protected override string AppendSealedModifiers(string modifiersString, MethodDefinition method) + { + if (!IsExplicitlyImplemented(method)) + { + if (method.IsFinal) modifiersString += " sealed"; + if (modifiersString == " virtual sealed") modifiersString = ""; + } + + return modifiersString; + } + + private bool IsExplicitlyImplemented(MethodDefinition method) + { + if (!method.HasOverrides) return false; + + //apply logic for explicit implementation of interface methods + var interfaceMethodReference = method.Overrides.FirstOrDefault(); + + if (interfaceMethodReference != null + //need to filter UWP specific interfaces, generated by default + //eg from decompile, public sealed class Class1 : __IClass1PublicNonVirtuals, __IClass1ProtectedNonVirtuals + && !Regex.IsMatch(interfaceMethodReference.DeclaringType.Name, + $"^.*{method.DeclaringType.Name}.*Virtual.*$")) + { + return true; + } + + return false; + } + + public override bool IsSupported(TypeReference tref) + { + if (HasNestedClassesDuplicateNames(tref)) + return false; + + var allowedTypes = GetAllowedTypes(); + + //no support of jagged arrays + if (tref is ArrayType) + { + var typeOfArray= tref is TypeSpecification spec ? spec.ElementType : tref.GetElementType(); + if (typeOfArray is ArrayType) + { + return false; + } + + if (allowedTypes.Contains(typeOfArray.FullName) || + CppCxSpecificNamespases.Contains(typeOfArray.Namespace)) + { + return true; + } + } + + if (allowedTypes.Contains(tref.FullName.Split(' ')[0]) || CppCxSpecificNamespases.Contains(tref.Namespace)) + { + return true; + } + + var ns = DocUtils.GetNamespace(tref); + + var typedef = tref.Resolve(); + if (typedef != null) + { + if (DocUtils.IsDelegate(typedef)) + { + if (typedef.HasGenericParameters && typedef.IsPublic) + //generic delegates cannot be declared as public + return false; + + return + //check types of delegate signature + IsSupported(typedef.GetMethod("Invoke")) + //check type + && base.IsSupported(tref) && ! (ns.StartsWith("System.") || ns.StartsWith("System")); + } + + if (typedef.IsInterface && typedef.HasGenericParameters && + typedef.GenericParameters.Any(x => x.HasConstraints + || x.HasReferenceTypeConstraint + || x.HasDefaultConstructorConstraint + || x.HasNotNullableValueTypeConstraint) + ) + { + //generic interface - Type parameters cannot be constrained + return false; + } + + if (HasUnsupportedParent(typedef)) + { + return false; + } + + var typeVisibility = typedef.Attributes & TypeAttributes.VisibilityMask; + + if (typeVisibility == TypeAttributes.Public + //all public types, including those in your own code, must be declared in a namespace + && (string.IsNullOrEmpty(ns) + //public standard C++ types are not allowed + || ns.StartsWith("std") || ns.StartsWith("cli")) + ) + { + return false; + } + + if (typeVisibility == TypeAttributes.NestedPublic + && (typedef.IsEnum || typedef.IsClass) + ) + { + //no support of nested public classes/enums + return false; + } + + if (typedef.IsClass && typeVisibility == TypeAttributes.Public && typedef.HasGenericParameters) + { + //Public ref classes that have type parameters (generics) are not permitted. + return false; + } + + if (typedef.IsClass && typeVisibility == TypeAttributes.Public) + { + //A public ref class that has a public constructor must also be declared as sealed + //to prevent further derivation through the application binary interface (ABI). + if (typedef.Methods.Any(x => x.IsConstructor && x.IsPublic) && !typedef.IsSealed) + { + return false; + } + } + + if (typedef.IsValueType && !typedef.IsEnum && typedef.Fields.Any(x => + !ValueClassPropertyTypeAllowed.Contains(x.FieldType.FullName) && !x.FieldType.Resolve().IsEnum)) + { + //A value struct or value class can contain as fields only + //fundamental numeric types, enum classes, Platform::String^, or Platform::IBox <T>^ + return false; + } + + + bool condition; + try + { + //custom attribute can contain only public fields and only with allowed types or enums + condition = IsCustomAttribute(typedef) + && (typedef.Fields.Any(z => + !CustomAttributesFieldTypesAllowed.Contains(z.FieldType.FullName) + && !z.FieldType.Resolve().IsEnum + ) + || typedef.Properties.Count != 0 + || typedef.Methods.Count(x => !x.IsConstructor) != 0 + || typedef.Events.Count != 0 + ); + } + catch + { + condition = false; + } + + if (condition) + { + //custom attribute can contain only public fields and only with allowed types or enums + return false; + } + } + + //cannot support .Net types + return !ns.StartsWith("System.") && !ns.Equals("System") && base.IsSupported(tref); + } + + protected bool HasUnsupportedParent(TypeDefinition typedef) + { + var collect = new List<TypeDefinition>(); + TypeReference baseTypeReference = typedef.BaseType; + TypeDefinition basetypeDefenition = null; + + var allowedTypes = GetAllowedTypes(); + + try + { + //iterate through all classes in in inheritance hierarhy to exclude usage of .net types + basetypeDefenition = baseTypeReference?.Resolve(); + while (basetypeDefenition != null) + { + if (allowedTypes.Contains(basetypeDefenition.FullName) || basetypeDefenition.BaseType == null) + { + break; + } + + collect.Add(basetypeDefenition); + + //needs to call Resolve to grab all base classes + basetypeDefenition = basetypeDefenition.BaseType?.Resolve(); + } + } + catch (Exception) + { + //for c++/cx Resolve() can fail as Cecil understands types as .net (eg, "System.Attribute" instead of "Platform::Metadata::Attribute") + //needs to ignore those errors + baseTypeReference = basetypeDefenition?.BaseType ?? baseTypeReference; + } + + if (collect.Any(x => DocUtils.GetNamespace(x).StartsWith("System.") || DocUtils.GetNamespace(x).Equals("System")) + || !allowedTypes.Contains(baseTypeReference?.FullName) + && ( + DocUtils.GetNamespace(baseTypeReference).StartsWith("System.") + || DocUtils.GetNamespace(baseTypeReference).Equals("System") + ) + ) + //can only be Windows Runtime types(no support for .net types) + return true; + + try + { + IEnumerable<TypeReference> interfaceNames = DocUtils.GetUserImplementedInterfaces(typedef).ToList(); + + if (interfaceNames.Any(x => DocUtils.GetNamespace(x).StartsWith("System.") || DocUtils.GetNamespace(x).Equals("System"))) + { + //can only be Windows Runtime types(no support for .net types) + return true; + } + } + catch + { + //for c++/cx Resolve() can fail as Cecil understands types as .net (eg, "System.Attribute" instead of "Platform::Metadata::Attribute") + //needs to ignore those errors + } + + return false; + } + + public override bool IsSupportedField(FieldDefinition fdef) + { + bool isEnumFieldType; + try + { + var typedef = fdef.FieldType.Resolve(); + isEnumFieldType = typedef.IsEnum; + } + catch + { + //for c++/cx Resolve() can fail as Cecil understands types as .net (eg, "System.Attribute" instead of "Platform::Metadata::Attribute") + //needs to ignore those errors + isEnumFieldType = false; + } + + if (IsCustomAttribute(fdef.DeclaringType)) + { + return !CustomAttributesFieldTypesAllowed.Contains(fdef.FieldType.FullName) || + !isEnumFieldType; + } + + if (fdef.IsPublic && fdef.DeclaringType.IsClass && !fdef.DeclaringType.IsValueType && !fdef.DeclaringType.IsEnum) + { + //Public fields are not allowed in ref class + return false; + } + + //todo: no const members - which can be?? + //const member functions + pointers + + return base.IsSupportedField(fdef); + } + + public override bool IsSupportedProperty(PropertyDefinition pdef) + { + var propVisibility = GetPropertyVisibility(pdef, out _, out _); + if ((propVisibility.Contains("public:") + || propVisibility.Contains("protected:")) + && pdef.Parameters.Count > 0) + //no support of public indexed property + return false; + + return base.IsSupportedProperty(pdef); + } + + public override bool IsSupportedMethod(MethodDefinition mdef) + { + if (mdef.Parameters.Any(IsParamsParameter)) + { + return false; + } + + return base.IsSupportedMethod(mdef); + } + + private bool IsCustomAttribute(TypeDefinition typedef) + { + var containingTypeNamespace = DocUtils.GetNamespace(typedef); + + if (typedef.BaseType?.FullName == "System.Attribute" && !containingTypeNamespace.StartsWith("System.") && !containingTypeNamespace.StartsWith("System")) + { + return true; + } + + return false; + } + } +}
\ No newline at end of file diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxMemberFormatter.cs new file mode 100644 index 00000000..8aa206ca --- /dev/null +++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxMemberFormatter.cs @@ -0,0 +1,13 @@ +using System.Text; +using Mono.Cecil; + +namespace Mono.Documentation.Updater.Formatters.CppFormatters +{ + public class CppCxMemberFormatter : CppCxFullMemberFormatter + { + protected override StringBuilder AppendNamespace (StringBuilder buf, TypeReference type) + { + return buf; + } + } +}
\ No newline at end of file diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs new file mode 100644 index 00000000..025191bd --- /dev/null +++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs @@ -0,0 +1,1098 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using Mono.Cecil; +using Mono.Collections.Generic; +using Mono.Documentation.Util; + +namespace Mono.Documentation.Updater.Formatters.CppFormatters +{ + public class CppFullMemberFormatter : MemberFormatter + { + protected virtual bool AppendHatOnReturn => true; + + public override string Language => Consts.CppCli; + + protected override string RefTypeModifier => " %"; + + protected virtual string HatModifier => " ^"; + + protected override string NestedTypeSeparator => "::"; + + protected virtual IEnumerable<string> NoHatTypes => new List<string>() + { + "System.Void", + "Mono.Cecil.GenericParameter" + }; + + protected override StringBuilder AppendNamespace (StringBuilder buf, TypeReference type) + { + string ns = DocUtils.GetNamespace(type, NestedTypeSeparator); + if (GetCppType(type.FullName) == null && !string.IsNullOrEmpty(ns) && ns != "System") + buf.Append(ns).Append(NestedTypeSeparator); + return buf; + } + + protected virtual string GetCppType (string t) + { + // make sure there are no modifiers in the type string (add them back before returning) + string typeToCompare = t; + string[] splitType = null; + if (t.Contains (' ')) + { + splitType = t.Split (' '); + typeToCompare = splitType[0]; + //for (int i = 1; i < splitType.Length; i++) + //{ + // var str = splitType[i]; + // if (str == "modopt(System.Runtime.CompilerServices.IsLong)" && typeToCompare == "System.Int32") + // return "long"; + // if (str == "modopt(System.Runtime.CompilerServices.IsSignUnspecifiedByte)" && typeToCompare == "System.SByte") + // return "char"; + // //if (typeToCompare == "System.Byte") + // // return "unsigned char"; + // //if (typeToCompare == "System.SByte") + // // return "signed char"; + //} + + foreach (var str in splitType) + { + if (str == "modopt(System.Runtime.CompilerServices.IsLong)" && typeToCompare == "System.Int32") + return "long"; + if (str == "modopt(System.Runtime.CompilerServices.IsSignUnspecifiedByte)" && typeToCompare == "System.SByte") + return "char"; + //if (typeToCompare == "System.Byte") + // return "unsigned char"; + //if (typeToCompare == "System.SByte") + // return "signed char"; + } + + } + + switch (typeToCompare) + { + case "System.Byte": typeToCompare = "System::Byte"; break; + case "System.SByte": typeToCompare = "System::SByte"; break; + case "System.Int16": typeToCompare = "short"; break; + case "System.Int32": typeToCompare = "int"; break; + case "System.Int64": typeToCompare = "long"; break; + + case "System.UInt16": typeToCompare = "System::UInt16"; break; + case "System.UInt32": typeToCompare = "System::UInt32"; break; + case "System.UInt64": typeToCompare = "System::UInt64"; break; + + case "System.Single": typeToCompare = "float"; break; + case "System.Double": typeToCompare = "double"; break; + case "System.Decimal": typeToCompare = "System::Decimal"; break; + case "System.Boolean": typeToCompare = "bool"; break; + case "System.Char": typeToCompare = "char"; break; + case "System.Void": typeToCompare = "void"; break; + case "System.String": typeToCompare = "System::String"; break; + case "System.Object": typeToCompare = "System::Object"; break; + } + + if (splitType != null) + { + // re-add modreq/modopt if it was there + splitType[0] = typeToCompare; + typeToCompare = string.Join (" ", splitType); + } + return typeToCompare == t ? null : typeToCompare; + } + + protected override StringBuilder AppendTypeName (StringBuilder buf, TypeReference type, DynamicParserContext context) + { + string typeFullName = type.FullName; + if (!typeFullName.StartsWith ("System.")) + { + return base.AppendTypeName(buf, type, context); + } + + string cppType = GetCppType(typeFullName); + if (cppType != null) + { + return buf.Append(cppType); + } + + return base.AppendTypeName(buf, type, context); + } + + public override string GetDeclaration(TypeReference tref) + { + if (!IsSupported(tref)) + return null; + + TypeDefinition def = tref.Resolve(); + return def != null + ? GetTypeDeclaration(def) + : GetTypeNameWithOptions(tref, !AppendHatOnReturn, false); + } + + protected override string GetTypeDeclaration (TypeDefinition type) + { + string visibility = GetTypeVisibility (type.Attributes); + if (visibility == null) + return null; + + StringBuilder buf = new StringBuilder (); + + var genericParamList = GetTypeSpecifiGenericParameters(type); + + if (!visibility.Contains(":")) + { + AppendGenericItem(buf, genericParamList); + AppendGenericTypeConstraints(buf, type); + + } + + buf.Append(visibility); + buf.Append(" "); + + if (visibility.Contains(":")) + { + AppendGenericItem(buf, genericParamList); + AppendGenericTypeConstraints(buf, type); + } + + CppFullMemberFormatter full = new CppFullMemberFormatter (); + + if (DocUtils.IsDelegate (type)) + { + buf.Append("delegate "); + MethodDefinition invoke = type.GetMethod ("Invoke"); + buf.Append(full.GetNameWithOptions(invoke.ReturnType)); + buf.Append(" "); + buf.Append(GetNameWithOptions(type, false, false)); + AppendParameters (buf, invoke, invoke.Parameters); + buf.Append(";"); + + return buf.ToString (); + } + + buf.Append(GetTypeKind (type)); + buf.Append(" "); + buf.Append(GetCppType(type.FullName) == null + ? GetNameWithOptions(type, false, false) + : type.Name); + + if (type.IsAbstract && !type.IsInterface) + buf.Append(" abstract"); + if (type.IsSealed && !DocUtils.IsDelegate(type) && !type.IsValueType) + buf.Append(" sealed"); + + if (!type.IsEnum) + { + TypeReference basetype = type.BaseType; + if (basetype != null && basetype.FullName == "System.Object" || type.IsValueType) // FIXME + basetype = null; + + List<string> interfaceNames = DocUtils.GetUserImplementedInterfaces (type) + .Select (iface => full.GetNameWithOptions(iface, true, false)) + .OrderBy (s => s) + .ToList (); + + if (basetype != null || interfaceNames.Count > 0) + buf.Append(" : "); + + if (basetype != null) + { + buf.Append(full.GetNameWithOptions(basetype, true, false)); + if (interfaceNames.Count > 0) + buf.Append(", "); + } + + for (int i = 0; i < interfaceNames.Count; i++) + { + if (i != 0) + buf.Append(", "); + buf.Append(interfaceNames[i]); + } + } + + return buf.ToString (); + } + + protected virtual IList<GenericParameter> GetTypeSpecifiGenericParameters(TypeDefinition type) + { + var returnItems = new Collection<GenericParameter>(); + + List<TypeReference> decls = DocUtils.GetDeclaringTypes(type); + List<TypeReference> genArgs = GetGenericArguments(type); + int argIndex = 0; + int previouslyAppliedCount = 0; + + var lastItem = decls.Last(); + + foreach (var decl in decls) + { + TypeReference declDef = decl.Resolve() ?? decl; + + int argumentCount = DocUtils.GetGenericArgumentCount(declDef); + int countLeftUnupplied = argumentCount - previouslyAppliedCount; + previouslyAppliedCount = argumentCount; + + if (decl != lastItem) + { + argIndex = argIndex + argumentCount; + } + + if (countLeftUnupplied > 0 && decl==lastItem) + { + + for (int i = 0; i < countLeftUnupplied; ++i) + { + returnItems.Add((GenericParameter)genArgs[argIndex++]); + } + } + } + + return returnItems; + } + + protected virtual string GetTypeKind (TypeDefinition t) + { + if (t.IsEnum) + return "enum class"; + if (t.IsValueType) + //pure struct is unmanaged so cannot be used in managed context + return "value class"; + if (t.IsClass || t.FullName == "System.Enum") + return "ref class"; + if (t.IsInterface) + return "interface class"; + throw new ArgumentException (t.FullName); + } + + protected virtual string GetTypeNameWithOptions(TypeReference type, bool appendHat, bool appendGeneric = true) + { + var typeName = GetTypeName(type, null, appendGeneric); + var hatTypeName = + !type.IsByReference && !type.IsPointer + ? AppendHat(typeName, type, appendHat) + : typeName; + + return hatTypeName; + } + + protected virtual string AppendHat(string stringToApply, TypeReference type, bool appendHat = true) + { + var buffer = new StringBuilder(stringToApply); + AppendHat(buffer, type, appendHat); + + return buffer.ToString(); + } + + protected virtual StringBuilder AppendHat(StringBuilder buffer, TypeReference type, bool appendHat = true) + { + //no hat for value type with modopt (like short, which is represented as Int32 with modopt value ) + if (!type.IsArray && type.GetElementType().IsValueType && type.FullName.Contains("modopt")) + return buffer; + + if (type is PointerType || type is ByReferenceType) + { + var typeToCheck = type is TypeSpecification + ? ((TypeSpecification)type).ElementType + :type.GetElementType(); + if (!typeToCheck.IsValueType + && !typeToCheck.IsPointer + && !NoHatTypes.Contains(typeToCheck.FullName) + //check for generic type + && !NoHatTypes.Contains(typeToCheck.GetType().FullName) + ) + { + buffer.Append(HatModifier); + } + return buffer; + } + + if ( !type.IsValueType + //is checked to skip hat for type declaration + && appendHat + //check for standart types + && !NoHatTypes.Contains(type.FullName) + //check for generic type + && !NoHatTypes.Contains(type.GetType().FullName) + + ) + { + //add handler for reference types to have managed context + buffer.Append(HatModifier); + } + + return buffer; + } + + protected virtual string GetTypeVisibility (TypeAttributes ta) + { + switch (ta & TypeAttributes.VisibilityMask) + { + case TypeAttributes.Public: + return "public"; + case TypeAttributes.NestedPublic: + return "public:"; + + case TypeAttributes.NestedFamORAssem: + return "public protected"; + case TypeAttributes.NestedFamily: + return "protected:"; + + default: + return null; + } + } + + protected override StringBuilder AppendGenericTypeConstraints (StringBuilder buf, TypeReference type) + { + if (type.GenericParameters.Count == 0) + return buf; + return AppendConstraints (buf, type.GenericParameters); + } + + private StringBuilder AppendConstraints (StringBuilder buf, IList<GenericParameter> genArgs) + { + foreach (GenericParameter genArg in genArgs) + { + GenericParameterAttributes attrs = genArg.Attributes; + IList<TypeReference> constraints = genArg.Constraints; + if (attrs == GenericParameterAttributes.NonVariant && constraints.Count == 0) + continue; + + bool isref = (attrs & GenericParameterAttributes.ReferenceTypeConstraint) != 0; + bool isvt = (attrs & GenericParameterAttributes.NotNullableValueTypeConstraint) != 0; + bool isnew = (attrs & GenericParameterAttributes.DefaultConstructorConstraint) != 0; + bool comma = false; + + if (!isref && !isvt && !isnew && constraints.Count == 0) + continue; + buf.Append(" where ").Append(genArg.Name).Append(" : "); + if (isref) + { + buf.Append("class"); + comma = true; + } + else if (isvt) + { + buf.Append("value class"); + comma = true; + } + if (constraints.Count > 0 && !isvt) + { + if (comma) + buf.Append(", "); + buf.Append(GetTypeName (constraints[0])); + for (int i = 1; i < constraints.Count; ++i) + buf.Append(", ").Append(GetTypeName (constraints[i])); + } + if (isnew && !isvt) + { + if (comma) + buf.Append(", "); + buf.Append("gcnew()"); + } + } + return buf; + } + + protected override string GetConstructorDeclaration (MethodDefinition constructor) + { + StringBuilder buf = new StringBuilder (); + AppendVisibility (buf, constructor); + + + buf.Append(' '); + base.AppendTypeName(buf, constructor.DeclaringType.Name); + AppendParameters(buf, constructor, constructor.Parameters); + buf.Append(';'); + + return buf.ToString (); + } + + protected override string GetMethodDeclaration (MethodDefinition method) + { + if (method.HasCustomAttributes && method.CustomAttributes.Any( + ca => ca.GetDeclaringType() == "System.Diagnostics.Contracts.ContractInvariantMethodAttribute")) + return null; + + // Special signature for destructors. + if (method.Name == "Finalize" && method.Parameters.Count == 0) + return GetFinalizerName(method); + + StringBuilder buf = new StringBuilder(); + + AppendVisibility(buf, method); + AppendGenericMethod(buf, method); + AppendGenericMethodConstraints(buf, method); + + if (DocUtils.IsExtensionMethod(method)) + { + //no notion of Extension method; needs to mark with attribute and call as standard static method + buf.Append("[System::Runtime::CompilerServices::Extension]").Append(GetLineEnding()); + } + + AppendModifiers(buf, method); + + if (buf.Length != 0) + buf.Append(" "); + + buf.Append(GetTypeNameWithOptions(method.ReturnType, AppendHatOnReturn)).Append(" "); + + AppendMethodName(buf, method); + AppendParameters(buf, method, method.Parameters); + AppendExplisitImplementationMethod(buf, method); + + return buf.Append(";").ToString(); + } + + protected virtual StringBuilder AppendExplisitImplementationMethod(StringBuilder buf, MethodDefinition method) + { + if (method.HasOverrides) + { + //apply logic for explicit implementation om interface methods + var interfaceMethodReference = method.Overrides.FirstOrDefault(); + buf.Append(" = "); + buf.Append(GetTypeNameWithOptions(interfaceMethodReference?.DeclaringType, !AppendHatOnReturn)) + .Append(NestedTypeSeparator); + buf.Append(interfaceMethodReference?.Name); + } + return buf; + } + + protected override StringBuilder AppendMethodName(StringBuilder buf, MethodDefinition method) + { + if (!method.Name.StartsWith("op_", StringComparison.Ordinal)) + return base.AppendMethodName(buf, method); + + // this is an operator + switch (method.Name) + { + case "op_Implicit": + case "op_Explicit": + buf.Length--; // remove the last space, which assumes a member name is coming + return buf; + case "op_Addition": + case "op_UnaryPlus": + return buf.Append("operator +"); + case "op_Subtraction": + case "op_UnaryNegation": + return buf.Append("operator -"); + case "op_Division": + return buf.Append("operator /"); + case "op_Multiply": + return buf.Append("operator *"); + case "op_Modulus": + return buf.Append("operator %"); + case "op_BitwiseAnd": + return buf.Append("operator &"); + case "op_BitwiseOr": + return buf.Append("operator |"); + case "op_ExclusiveOr": + return buf.Append("operator ^"); + case "op_LeftShift": + return buf.Append("operator <<"); + case "op_RightShift": + return buf.Append("operator >>"); + case "op_LogicalNot": + return buf.Append("operator !"); + case "op_OnesComplement": + return buf.Append("operator ~"); + case "op_Decrement": + return buf.Append("operator --"); + case "op_Increment": + return buf.Append("operator ++"); + case "op_True": + return buf.Append("operator true"); + case "op_False": + return buf.Append("operator false"); + case "op_Equality": + return buf.Append("operator =="); + case "op_Inequality": + return buf.Append("operator !="); + case "op_LessThan": + return buf.Append("operator <"); + case "op_LessThanOrEqual": + return buf.Append("operator <="); + case "op_GreaterThan": + return buf.Append("operator >"); + case "op_GreaterThanOrEqual": + return buf.Append("operator >="); + default: + return base.AppendMethodName(buf, method); + } + + } + + protected override StringBuilder AppendGenericMethodConstraints (StringBuilder buf, MethodDefinition method) + { + if (method.GenericParameters.Count == 0) + return buf; + return AppendConstraints (buf, method.GenericParameters); + } + + protected override StringBuilder AppendGenericType(StringBuilder buf, TypeReference type, DynamicParserContext context, bool appendGeneric = true) + { + List<TypeReference> decls = DocUtils.GetDeclaringTypes( + type is GenericInstanceType ? type.GetElementType() : type); + List<TypeReference> genArgs = GetGenericArguments(type); + int argIndex = 0; + int previouslyAppliedCount = 0; + bool insertNested = false; + foreach (var decl in decls) + { + TypeReference declDef; + try + { + declDef = decl.Resolve(); + } + catch + { + //Resolve() can fail as sometimes Cecil understands types as .net + //needs to ignore those errors + declDef = decl; + } + + if (insertNested) + { + buf.Append(NestedTypeSeparator); + } + insertNested = true; + AppendTypeName(buf, declDef, context); + int argumentCount = DocUtils.GetGenericArgumentCount(declDef); + int countLeftUnapplied = argumentCount - previouslyAppliedCount; + previouslyAppliedCount = argumentCount; + var lastItem = decls.Last(); + if (countLeftUnapplied > 0 + && (appendGeneric + //this is to add generic syntax for parent classes in declaration of nested class + //eg, ref class MyList<T>::Helper -> needs to add <T> to MyList class + || decls.Count>=2 && decl != lastItem) + ) + { + buf.Append(GenericTypeContainer[0]); + var origState = MemberFormatterState; + MemberFormatterState = MemberFormatterState.WithinGenericTypeParameters; + + var item = genArgs[argIndex++]; + _AppendTypeName(buf, item, context); + if (declDef.GenericParameters.All(x => x.FullName != item.FullName)) + { + AppendHat(buf, item, AppendHatOnReturn); + } + + for (int i = 1; i < countLeftUnapplied; ++i) + { + var newItem = genArgs[argIndex++]; + _AppendTypeName(buf.Append(", "), newItem, context); + if (declDef.GenericParameters.All(x => x.FullName != newItem.FullName)) + { + //add hat only for non-generic types + AppendHat(buf, newItem); + } + } + MemberFormatterState = origState; + buf.Append(GenericTypeContainer[1]); + } + } + return buf; + } + + protected override string GetFinalizerName (MethodDefinition method) + { + //~classname() { } // destructor + //!classname() { } // finalizer + return "!" + method.DeclaringType.Name + " ()"; + } + + protected override StringBuilder AppendVisibility (StringBuilder buf, MethodDefinition method) + { + if (method == null) + return buf; + if (method.IsPublic) + return buf.Append ("public:").Append(GetLineEnding()); + if (method.IsFamily ) + return buf.Append ("protected:").Append(GetLineEnding()); + if(method.IsFamilyOrAssembly) + return buf.Append("protected public:").Append(GetLineEnding()); + return buf; + } + + protected override StringBuilder AppendModifiers (StringBuilder buf, MethodDefinition method) + { + string modifiers = String.Empty; + if (method.IsStatic) modifiers += " static"; + if (method.IsVirtual && !method.IsAbstract) + { + if ((method.Attributes & MethodAttributes.NewSlot) != 0) modifiers += " virtual"; + else modifiers += " override"; + } + TypeDefinition declType = method.DeclaringType; + if (method.IsAbstract && !declType.IsInterface) modifiers += " abstract"; + + modifiers = AppendSealedModifiers(modifiers, method); + + switch (method.Name) + { + case "op_Implicit": + modifiers += " operator"; + break; + case "op_Explicit": + modifiers += " explicit operator"; + break; + } + + return buf.Append (modifiers); + } + + protected virtual string AppendSealedModifiers(string modifiersString, MethodDefinition method) + { + //no need to apply sealed here as virtual keyword is used for interface implementation even for sealed classes + return modifiersString; + } + + protected override StringBuilder AppendGenericMethod (StringBuilder buf, MethodDefinition method) + { + if (method.IsGenericMethod ()) + { + IList<GenericParameter> args = method.GenericParameters; + AppendGenericItem(buf, args); + } + return buf; + } + + protected virtual StringBuilder AppendGenericItem(StringBuilder buf, IList<GenericParameter> args) + { + if (args!=null && args.Any()) + { + buf.Append("generic <typename "); + buf.Append(args[0].Name); + for (int i = 1; i < args.Count; ++i) + buf.Append(", typename ").Append(args[i].Name); + buf.Append(">"); + buf.Append(GetLineEnding()); + } + return buf; + } + + protected override StringBuilder AppendParameters (StringBuilder buf, MethodDefinition method, IList<ParameterDefinition> parameters) + { + return AppendParameters (buf, parameters, '(', ')'); + } + + private StringBuilder AppendParameters (StringBuilder buf,IList<ParameterDefinition> parameters, char? begin, char? end) + { + buf.Append (begin); + + if (parameters.Count > 0) + { + AppendParameter (buf, parameters[0]); + for (int i = 1; i < parameters.Count; ++i) + { + buf.Append (", "); + AppendParameter (buf, parameters[i]); + } + } + + return buf.Append (end); + } + + protected virtual StringBuilder AppendParameter (StringBuilder buf, ParameterDefinition parameter) + { + if (parameter.ParameterType is ByReferenceType) + { + if (parameter.IsOut) + { + //no notion of out -> mark with attribute to distinguish in other languages + buf.Append("[Runtime::InteropServices::Out] "); + } + } + + if (IsParamsParameter(parameter)) + buf.AppendFormat ("... "); + + buf.Append(GetTypeNameWithOptions(parameter.ParameterType, AppendHatOnReturn)).Append(" "); + buf.Append(parameter.Name); + + return buf; + } + + protected bool IsParamsParameter(ParameterDefinition parameter) + { + if (parameter.HasCustomAttributes) + { + var isParams = parameter.CustomAttributes.Any(ca => ca.AttributeType.Name == "ParamArrayAttribute"); + if (isParams) + return true; + } + return false; + } + + protected override StringBuilder AppendArrayModifiers(StringBuilder buf, ArrayType array) + { + return buf; + } + + protected override StringBuilder AppendArrayTypeName(StringBuilder buf, TypeReference type, DynamicParserContext context) + { + buf.Append("cli::array <"); + + var item = type is TypeSpecification spec ? spec.ElementType : type.GetElementType(); + _AppendTypeName(buf, item, context); + AppendHat(buf, item); + + if (type is ArrayType arrayType) + { + int rank = arrayType.Rank; + if (rank > 1) + { + buf.AppendFormat(", {0}", rank); + } + } + + buf.Append(">"); + + return buf; + } + + protected override StringBuilder AppendRefTypeName(StringBuilder buf, TypeReference type, DynamicParserContext context) + { + TypeSpecification spec = type as TypeSpecification; + _AppendTypeName(buf, spec != null ? spec.ElementType : type.GetElementType(), context); + AppendHat(buf, type); + buf.Append(RefTypeModifier); + + return buf; + } + + protected override StringBuilder AppendPointerTypeName(StringBuilder buf, TypeReference type, DynamicParserContext context) + { + TypeSpecification spec = type as TypeSpecification; + _AppendTypeName(buf, spec != null ? spec.ElementType : type.GetElementType(), context); + AppendHat(buf, type); + buf.Append(PointerModifier); + return buf; + } + + protected override string GetPropertyDeclaration (PropertyDefinition property) + { + var propVisib = GetPropertyVisibility(property, out var getVisible, out var setVisible); + + var buf=new StringBuilder(); + buf.Append(propVisib); + + // Pick an accessor to use for static/virtual/override/etc. checks. + var method = property.SetMethod ?? property.GetMethod; + + string modifiers = String.Empty; + if (method.IsStatic) modifiers += " static"; + if (method.IsVirtual && !method.IsAbstract) + { + if (((method.Attributes & MethodAttributes.SpecialName) != 0)) + modifiers += " virtual"; + else + modifiers += " override"; + } + TypeDefinition declDef = (TypeDefinition)method.DeclaringType; + if (method.IsAbstract && !declDef.IsInterface) + modifiers += " abstract"; + if (method.IsFinal) + modifiers += " sealed"; + if (modifiers == " virtual sealed") + modifiers = ""; + buf.Append(modifiers).Append(' ').Append("property "); + + var typeName = GetTypeNameWithOptions(property.PropertyType, AppendHatOnReturn); + + buf.Append(typeName).Append(' '); + + IEnumerable<MemberReference> defs = property.DeclaringType.GetDefaultMembers(); + string propertyName = property.Name; + foreach (MemberReference mi in defs) + { + if (mi == property) + { + propertyName = "default"; + break; + } + } + buf.Append(propertyName == "default" ? propertyName : DocUtils.GetPropertyName(property)); + + bool hasParams=false; + if (property.Parameters.Count != 0) + { + hasParams = true; + buf.Append('['); + buf.Append(GetTypeNameWithOptions(property.Parameters[0].ParameterType, AppendHatOnReturn)); + for (int i = 1; i < property.Parameters.Count; ++i) + { + buf.Append(", "); + buf.Append(GetTypeNameWithOptions(property.Parameters[i].ParameterType, AppendHatOnReturn)); + } + buf.Append(']'); + } + + buf.Append(" { "); + if (getVisible != null) + { + if (getVisible != propVisib) + buf.Append(' ').Append(getVisible); + buf.AppendFormat("{0} get", typeName); + + if (hasParams) AppendParameters(buf, property.Parameters, '(', ')'); + else buf.Append("()"); + + buf.Append(";"); + } + if (setVisible != null) + { + if (setVisible != propVisib) + buf.Append(' ').Append(setVisible); + buf.Append(' ').AppendFormat("void set("); + + if (hasParams) + {//no need for braces since they are added in other place + AppendParameters(buf, property.Parameters, null, null); + buf.Append(", "); + } + buf.AppendFormat("{0} value)", typeName); + buf.Append(";"); + } + buf.Append(" };"); + + return buf[0] != ' ' ? buf.ToString () : buf.ToString (1, buf.Length - 1); + } + + protected virtual string GetPropertyVisibility(PropertyDefinition property, out string getVisible, out string setVisible ) + { + getVisible = null; + setVisible = null; + + if (DocUtils.IsAvailablePropertyMethod(property.GetMethod)) + getVisible = AppendVisibility(new StringBuilder(), property.GetMethod).ToString(); + if (DocUtils.IsAvailablePropertyMethod(property.SetMethod)) + setVisible = AppendVisibility(new StringBuilder(), property.SetMethod).ToString(); + + if (setVisible == null && getVisible == null) + return null; + + StringBuilder buf = new StringBuilder(); + if (getVisible != null && (setVisible == null || getVisible == setVisible)) + buf.Append(getVisible); + else if (setVisible != null && getVisible == null) + buf.Append(setVisible); + else + buf.Append("public: "); + + return buf.ToString(); + } + + protected override string GetFieldDeclaration (FieldDefinition field) + { + TypeDefinition declType = field.DeclaringType; + if (declType.IsEnum && field.Name == "value__") + return null; // This member of enums aren't documented. + + StringBuilder buf = new StringBuilder (); + AppendFieldVisibility (buf, field); + + if (declType.IsEnum) + return field.Name; + + if (field.IsStatic && !field.IsLiteral) + buf.Append("static "); + if (field.IsInitOnly) + buf.Append("initonly "); + + string fieldFullName = field.FullName; + if (fieldFullName.Contains(' ')) + { + var splitType = fieldFullName.Split(' '); + + if (splitType.Any(str => str == "modopt(System.Runtime.CompilerServices.IsConst)")) + { + buf.Append("const "); + } + } + + buf.Append(GetTypeNameWithOptions(field.FieldType, AppendHatOnReturn)).Append(' '); + buf.Append(field.Name); + AppendFieldValue (buf, field); + buf.Append(';'); + + return buf.ToString (); + } + + protected virtual StringBuilder AppendFieldVisibility (StringBuilder buf, FieldDefinition field) + { + if (field.IsPublic) + return buf.Append("public: "); + if (field.IsFamily) + return buf.Append("protected: "); + if(field.IsFamilyOrAssembly) + return buf.Append("protected public: "); + return buf; + } + + protected static StringBuilder AppendFieldValue (StringBuilder buf, FieldDefinition field) + { + // enums have a value__ field, which we ignore + if (field.DeclaringType.IsEnum || + field.DeclaringType.IsGenericType ()) + return buf; + if (field.HasConstant && field.IsLiteral) + { + object val = null; + try + { + val = field.Constant; + } + catch + { + return buf; + } + if (val == null) + buf.Append(" = ").Append("nullptr"); + else if (val is Enum) + buf.Append(" = ").Append(val); + else if (val is IFormattable) + { + string value = ((IFormattable)val).ToString (null, CultureInfo.InvariantCulture); + buf.Append(" = ").Append(value); + } + } + return buf; + } + + protected override string GetEventDeclaration (EventDefinition e) + { + StringBuilder buf = new StringBuilder (); + if (AppendVisibility (buf, e.AddMethod).Length == 0) + { + return null; + } + + AppendModifiers(buf, e.AddMethod); + + buf.Append(" event "); + + var typeName = GetTypeNameWithOptions(e.EventType, AppendHatOnReturn); + + buf.Append(typeName).Append(' '); + buf.Append(e.Name).Append(';'); + + return buf.ToString (); + } + + public virtual string GetNameWithOptions(MemberReference member, bool appendGeneric = true, bool appendHat = true) + { + if (member is TypeReference type) + return GetTypeNameWithOptions(type, appendHat, appendGeneric); + var method = member as MethodReference; + if (method != null && method.Name == ".ctor") // method.IsConstructor + return GetConstructorName(method); + if (method != null) + return GetMethodName(method); + if (member is PropertyReference prop) + return GetPropertyName(prop); + if (member is FieldReference field) + return GetFieldName(field); + if (member is EventReference e) + return GetEventName(e); + throw new NotSupportedException("Can't handle: " + + (member?.GetType().ToString() ?? "null")); + } + + public override bool IsSupported(MemberReference mref) + { + if (mref.IsDefinition == false) + mref = mref.Resolve() as MemberReference; + + switch (mref) + { + case FieldDefinition field: + return IsSupportedField(field); + case MethodDefinition method: + return IsSupportedMethod(method); + case PropertyDefinition property: + return IsSupportedProperty(property); + case EventDefinition @event: + return IsSupportedEvent(@event); + } + + throw new NotSupportedException("Unsupported member type: " + mref?.GetType().FullName); + } + + public virtual bool IsSupportedMethod(MethodDefinition mdef) + { + return + IsSupported(mdef.ReturnType) + && mdef.Parameters.All(i => IsSupported(i.ParameterType)) + //no possibility for default parameters + && mdef.Parameters.All(i => !i.HasDefault && !i.IsOptional && !i.HasConstant) + ; + } + public virtual bool IsSupportedField(FieldDefinition fdef) + { + return IsSupported(fdef.FieldType); + } + public virtual bool IsSupportedProperty(PropertyDefinition pdef) + { + return IsSupported(pdef.PropertyType); + } + + public virtual bool IsSupportedEvent(EventDefinition edef) + { + return IsSupported(edef.EventType); + } + + public bool HasNestedClassesDuplicateNames(TypeReference tref) + { + string inputName = DocUtils.GetFormattedTypeName(tref.Name); + TypeDefinition parentType; + try + { + parentType = tref.DeclaringType?.Resolve(); + } + catch + { + //Resolve() can fail as sometimes Cecil understands types as .net + //needs to ignore those errors + parentType = null; + } + + if (parentType != null && parentType.HasNestedTypes) + { + var listOfNested = parentType.NestedTypes; + int count = listOfNested.Select(x => DocUtils.GetFormattedTypeName(x.Name)).Count(y => y == inputName); + if (count > 1) + return true; + } + return false; + } + + public override bool IsSupported(TypeReference tref) + { + + return !HasNestedClassesDuplicateNames(tref) + && IsSupportedGenericParameter(tref) + && base.IsSupported(tref) + ; + } + + protected bool IsSupportedGenericParameter(TypeReference tref) + { + if (tref is GenericParameter parameter) + { + //no support for parameter covariance/contrvariance + GenericParameterAttributes attrs = parameter.Attributes; + bool isout = (attrs & GenericParameterAttributes.Covariant) != 0; + bool isin = (attrs & GenericParameterAttributes.Contravariant) != 0; + if (isin || isout) + return false; + } + + return true; + } + } +}
\ No newline at end of file diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppMemberFormatter.cs new file mode 100644 index 00000000..d6d4a765 --- /dev/null +++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppMemberFormatter.cs @@ -0,0 +1,14 @@ +using System.Text; +using Mono.Cecil; +using Mono.Documentation.Updater.CppFormatters; + +namespace Mono.Documentation.Updater.Formatters.CppFormatters +{ + public class CppMemberFormatter : CppFullMemberFormatter + { + protected override StringBuilder AppendNamespace (StringBuilder buf, TypeReference type) + { + return buf; + } + } +}
\ No newline at end of file diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtFullMemberFormatter.cs new file mode 100644 index 00000000..26193ecc --- /dev/null +++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtFullMemberFormatter.cs @@ -0,0 +1,348 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Mono.Cecil; +using Mono.Documentation.Updater.Formatters.CppFormatters; + +namespace Mono.Documentation.Updater.CppFormatters +{ + public class CppWinRtFullMemberFormatter : CppCxFullMemberFormatter + { + protected override bool AppendHatOnReturn => false; + protected override string HatModifier => $" const{RefTypeModifier}"; + public override string Language => Consts.CppWinRt; + protected override string RefTypeModifier => " &"; + + protected override IList<string> GetAllowedTypes() + { + return new List<string>(AllowedFundamentalTypes); + } + + protected override StringBuilder AppendNamespace(StringBuilder buf, TypeReference type) + { + var @namespace=base.AppendNamespace(buf, type); + if (@namespace.ToString().StartsWith($"Windows{NestedTypeSeparator}")) + { + buf.Insert(0, $"winrt{NestedTypeSeparator}"); + } + + return @namespace; + } + + protected override string GetCppType(string t) + { + // make sure there are no modifiers in the type string (add them back before returning) + string typeToCompare = t; + string[] splitType = null; + if (t.Contains(' ')) + { + splitType = t.Split(' '); + typeToCompare = splitType[0]; + + foreach (var str in splitType) + { + if (str == "modopt(System.Runtime.CompilerServices.IsLong)" && typeToCompare == "System.Int32") + return "long"; + if (str == "modopt(System.Runtime.CompilerServices.IsSignUnspecifiedByte)" && + typeToCompare == "System.SByte") + return "char"; + } + } + + switch (typeToCompare) + { + case "System.Byte": typeToCompare = "byte"; break; + case "System.Int16": typeToCompare = "short"; break; + case "System.Int32": typeToCompare = "int"; break; + case "System.Int64": typeToCompare = "long"; break; + case "System.UInt16": typeToCompare = "unsigned short"; break; + case "System.UInt32": typeToCompare = "unsigned int"; break; + case "System.UInt64": typeToCompare = "unsigned long";break; + + case "System.Single": typeToCompare = "float"; break; + case "System.Double": typeToCompare = "double"; break; + + case "System.Boolean": typeToCompare = "bool"; break; + case "System.Char": typeToCompare = "char"; break; + case "System.Void": typeToCompare = "void"; break; + //API specific type is "winrt::hstring"; but c++ in built type is better variant + case "System.String": typeToCompare = "std::wstring"; break; + case "System.Object": typeToCompare = "winrt::Windows::Foundation::IInspectable"; break; + } + + if (splitType != null) + { + // re-add modreq/modopt if it was there + splitType[0] = typeToCompare; + typeToCompare = string.Join(" ", splitType); + } + return typeToCompare == t ? null : typeToCompare; + } + + protected override StringBuilder AppendParameter(StringBuilder buf, ParameterDefinition parameter) + { + if (parameter.ParameterType is ByReferenceType && parameter.IsOut) + { + //no notion of out -> mark with attribute to distinguish in other languages + buf.Append("[Runtime::InteropServices::Out] "); + } + + if (parameter.HasCustomAttributes) + { + var isParams = parameter.CustomAttributes.Any(ca => ca.AttributeType.Name == "ParamArrayAttribute"); + if (isParams) + buf.AppendFormat("... "); + } + + buf.Append(GetTypeNameWithOptions(parameter.ParameterType, !AppendHatOnReturn)).Append(" "); + 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 GetTypeKind(TypeDefinition t) + { + if (t.IsEnum || t.FullName == "System.Enum") + return "enum"; + if (t.IsValueType) + return "struct"; + if (t.IsClass) + return "class"; + if (t.IsInterface) + return "__interface"; + throw new ArgumentException(t.FullName); + } + + protected override StringBuilder AppendArrayTypeName(StringBuilder buf, TypeReference type, + DynamicParserContext context) + { + buf.Append("std::Array <"); + + var item = type is TypeSpecification spec ? spec.ElementType : type.GetElementType(); + _AppendTypeName(buf, item, context); + AppendHat(buf, item); + + if (type is ArrayType arrayType) + { + int rank = arrayType.Rank; + if (rank > 1) + { + buf.AppendFormat(", {0}", rank); + } + } + + buf.Append(">"); + + return buf; + } + + protected override StringBuilder AppendExplisitImplementationMethod(StringBuilder buf, MethodDefinition method) + { + //no need to add additional syntax + return buf; + } + + protected override string GetTypeDeclaration(TypeDefinition type) + { + StringBuilder buf = new StringBuilder(); + + var genericParamList = GetTypeSpecifiGenericParameters(type); + AppendGenericItem(buf, genericParamList); + AppendGenericTypeConstraints(buf, type); + + AppendWebHostHiddenAttribute(buf, type); + + buf.Append(GetTypeKind(type)); + buf.Append(" "); + buf.Append(GetCppType(type.FullName) == null + ? GetNameWithOptions(type, false, false) + : type.Name); + + if (type.IsAbstract && !type.IsInterface) + buf.Append(" abstract"); + if (type.IsSealed && !DocUtils.IsDelegate(type) && !type.IsValueType) + buf.Append(" sealed"); + + CppWinRtFullMemberFormatter full = new CppWinRtFullMemberFormatter(); + + if (!type.IsEnum) + { + TypeReference basetype = type.BaseType; + if (basetype != null && basetype.FullName == "System.Object" || type.IsValueType) // FIXME + basetype = null; + + List<string> interfaceNames; + try + { + //for winRt Resolve() can fail as Cecil understands winRt types as .net (eg, "System.Object" cannot be resolved) + interfaceNames = DocUtils.GetUserImplementedInterfaces(type) + .Select(iface => full.GetNameWithOptions(iface, true, false)) + .OrderBy(s => s) + .ToList(); + } + catch + { + interfaceNames = null; + } + + if (basetype != null || interfaceNames?.Count > 0) + buf.Append(" : "); + + if (basetype != null) + { + buf.Append(full.GetNameWithOptions(basetype, true, false)); + if (interfaceNames?.Count > 0) + buf.Append(", "); + } + + for (int i = 0; i < interfaceNames?.Count; i++) + { + if (i != 0) + buf.Append(", "); + buf.Append(interfaceNames?[i]); + } + + } + + return buf.ToString(); + } + + protected override string GetTypeVisibility(TypeAttributes ta) + { + //Cannot have pubic/protected visibility since it uses native C++ which cannot be exposed + return string.Empty; + } + + protected override StringBuilder AppendVisibility(StringBuilder buf, MethodDefinition method) + { + //Cannot have pubic/protected visibility since it uses native C++ which cannot be exposed + return buf; + } + + protected override StringBuilder AppendFieldVisibility(StringBuilder buf, FieldDefinition field) + { + //Cannot have pubic/protected visibility since it uses native C++ which cannot be exposed + return buf; + } + + protected override StringBuilder AppendGenericItem(StringBuilder buf, IList<GenericParameter> args) + { + if (args != null && args.Any()) + { + buf.Append("template <typename "); + buf.Append(args[0].Name); + for (int i = 1; i < args.Count; ++i) + buf.Append(", typename ").Append(args[i].Name); + buf.Append(">"); + buf.Append(GetLineEnding()); + } + return buf; + } + + protected override string AppendSealedModifiers(string modifiersString, MethodDefinition method) + { + if (method.IsFinal) modifiersString += " sealed"; + if (modifiersString == " virtual sealed") modifiersString = ""; + + return modifiersString; + } + + public override bool IsSupported(TypeReference tref) + { + if (HasNestedClassesDuplicateNames(tref)) + return false; + + var ns = DocUtils.GetNamespace(tref); + var allowedTypes = GetAllowedTypes(); + + if (allowedTypes.Contains(tref.FullName.Split(' ')[0]) + //winRt specific namespaces so no need for further check + || ns.StartsWith("Windows.") + ) + { + return true; + } + + TypeDefinition typedef = null; + try + { + typedef = tref.Resolve(); + } + catch + { + //for winRt Resolve() can fail as Cecil understands winRt types as .net (eg, "System.Object" cannot be resolved) + } + + if (typedef != null) + { + if(allowedTypes.Contains(typedef.FullName)) + //to check type of array + return true; + + if (DocUtils.IsDelegate(typedef)) + { + //delegates can be used only in managed context + return false; + } + + if (typedef.HasGenericParameters && + typedef.GenericParameters.Any(x => x.HasConstraints + || x.HasReferenceTypeConstraint + || x.HasDefaultConstructorConstraint + || x.HasNotNullableValueTypeConstraint) + ) + { + //Type parameters cannot be constrained + return false; + } + + if (HasUnsupportedParent(typedef)) + { + return false; + } + } + + return IsSupportedGenericParameter(tref) + && !ns.StartsWith("System.") && !ns.Equals("System"); + } + + public override bool IsSupportedProperty(PropertyDefinition pdef) + { + //properties can be used only in managed context + return false; + } + + public override bool IsSupportedEvent(EventDefinition edef) + { + //events can be used only in managed context + return false; + } + + public override bool IsSupportedField(FieldDefinition fdef) + { + return IsSupported(fdef.FieldType); + } + + public override bool IsSupportedMethod(MethodDefinition mdef) + { + if (DocUtils.IsExtensionMethod(mdef) + //no support of 'params'; + //can be substituted with 'Variadic functions' hovewer it's not full equivalent(not type safe + specific mechanism for reading) + || mdef.Parameters.Any(IsParamsParameter) + ) + { + return false; + } + + return + IsSupported(mdef.ReturnType) + && mdef.Parameters.All(i => IsSupported(i.ParameterType)); + } + } +}
\ No newline at end of file diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtMemberFormatter.cs new file mode 100644 index 00000000..86bc446f --- /dev/null +++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtMemberFormatter.cs @@ -0,0 +1,14 @@ +using System.Text; +using Mono.Cecil; +using Mono.Documentation.Updater.CppFormatters; + +namespace Mono.Documentation.Updater.Formatters.CppFormatters +{ + public class CppWinRtMemberFormatter : CppWinRtFullMemberFormatter + { + protected override StringBuilder AppendNamespace(StringBuilder buf, TypeReference type) + { + return buf; + } + } +} diff --git a/mdoc/Mono.Documentation/Updater/Formatters/DocTypeFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/DocTypeFullMemberFormatter.cs index 53f78567..f1b277d5 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/DocTypeFullMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/DocTypeFullMemberFormatter.cs @@ -1,12 +1,12 @@ -namespace Mono.Documentation.Updater +namespace Mono.Documentation.Updater
{
- class DocTypeFullMemberFormatter : MemberFormatter - { - public static readonly MemberFormatter Default = new DocTypeFullMemberFormatter (); - - protected override string NestedTypeSeparator - { - get { return "+"; } - } - } + class DocTypeFullMemberFormatter : MemberFormatter
+ {
+ public static readonly MemberFormatter Default = new DocTypeFullMemberFormatter ();
+
+ protected override string NestedTypeSeparator
+ {
+ get { return "+"; }
+ }
+ }
}
\ No newline at end of file diff --git a/mdoc/Mono.Documentation/Updater/Formatters/FileNameMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/FileNameMemberFormatter.cs index 3e0e99c9..5d3a3432 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/FileNameMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/FileNameMemberFormatter.cs @@ -1,19 +1,19 @@ -using System.Text; - -using Mono.Cecil; +using System.Text;
-namespace Mono.Documentation.Updater +using Mono.Cecil;
+
+namespace Mono.Documentation.Updater
{
- class FileNameMemberFormatter : SlashDocMemberFormatter - { - protected override StringBuilder AppendNamespace (StringBuilder buf, TypeReference type) - { - return buf; - } - - protected override string NestedTypeSeparator - { - get { return "+"; } - } - } + class FileNameMemberFormatter : SlashDocMemberFormatter
+ {
+ protected override StringBuilder AppendNamespace (StringBuilder buf, TypeReference type)
+ {
+ return buf;
+ }
+
+ protected override string NestedTypeSeparator
+ {
+ get { return "+"; }
+ }
+ }
}
\ No newline at end of file diff --git a/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs index 4df41918..0e2816b9 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Linq; using System.Text; - using Mono.Documentation.Util; using Mono.Cecil; @@ -109,9 +108,7 @@ namespace Mono.Documentation.Updater { if (type is ArrayType) { - return AppendArrayTypeName(buf, type, context); - } if (type is ByReferenceType) { diff --git a/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs index e1a1bb8c..493b7b2e 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs @@ -5,14 +5,15 @@ using System.Text; using Mono.Cecil; using Mono.Documentation.Util; -
+ namespace Mono.Documentation.Updater -{
+{ class SlashDocMemberFormatter : MemberFormatter { protected override string[] GenericTypeContainer { + get { return new string[] { "{", "}" }; } } @@ -322,7 +323,7 @@ namespace Mono.Documentation.Updater { string name = GetName(e); if (name == null) - return null;
+ return null; return "E:" + name; } @@ -330,7 +331,7 @@ namespace Mono.Documentation.Updater { string name = GetName(a); if (name == null) - return null;
+ return null; return "P:" + name; } } diff --git a/mdoc/Test/UwpTestWinRtComponentCpp.winmd b/mdoc/Test/UwpTestWinRtComponentCpp.winmd Binary files differnew file mode 100644 index 00000000..5cbfe427 --- /dev/null +++ b/mdoc/Test/UwpTestWinRtComponentCpp.winmd diff --git a/mdoc/Test/en.expected-cppcli/FrameworksIndex/One.xml b/mdoc/Test/en.expected-cppcli/FrameworksIndex/One.xml new file mode 100644 index 00000000..a60754a0 --- /dev/null +++ b/mdoc/Test/en.expected-cppcli/FrameworksIndex/One.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<Framework Name="One"> + <Namespace Name="MyFramework.MyNamespace"> + <Type Name="MyFramework.MyNamespace.MyClass" Id="T:MyFramework.MyNamespace.MyClass"> + <Member Id="M:MyFramework.MyNamespace.MyClass.#ctor" /> + <Member Id="M:MyFramework.MyNamespace.MyClass.Hello(System.Int32)" /> + <Member Id="P:MyFramework.MyNamespace.MyClass.MyProperty" /> + <Member Id="P:MyFramework.MyNamespace.MyClass.OnlyInClassic" /> + </Type> + <Type Name="MyFramework.MyNamespace.MyClassExtensions" Id="T:MyFramework.MyNamespace.MyClassExtensions"> + <Member Id="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" /> + </Type> + </Namespace> + <Namespace Name="MyNamespace"> + <Type Name="MyNamespace.MyClass" Id="T:MyNamespace.MyClass"> + <Member Id="M:MyNamespace.MyClass.#ctor" /> + <Member Id="M:MyNamespace.MyClass.SomeMethod``1" /> + </Type> + </Namespace> +</Framework>
\ No newline at end of file diff --git a/mdoc/Test/en.expected-cppcli/FrameworksIndex/Two.xml b/mdoc/Test/en.expected-cppcli/FrameworksIndex/Two.xml new file mode 100644 index 00000000..b697626e --- /dev/null +++ b/mdoc/Test/en.expected-cppcli/FrameworksIndex/Two.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<Framework Name="Two"> + <Namespace Name="MyFramework.MyOtherNamespace"> + <Type Name="MyFramework.MyOtherNamespace.MyOtherClass" Id="T:MyFramework.MyOtherNamespace.MyOtherClass"> + <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.#ctor" /> + <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.Hello(System.Double)" /> + <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.Hello(System.Int32)" /> + <Member Id="P:MyFramework.MyOtherNamespace.MyOtherClass.MyProperty" /> + </Type> + </Namespace> + <Namespace Name="MyNamespace"> + <Type Name="MyNamespace.MyClass" Id="T:MyNamespace.MyClass"> + <Member Id="M:MyNamespace.MyClass.#ctor" /> + <Member Id="M:MyNamespace.MyClass.SomeMethod``1" /> + </Type> + </Namespace> +</Framework>
\ No newline at end of file diff --git a/mdoc/Test/en.expected-cppcli/MyFramework.MyNamespace/MyClass.xml b/mdoc/Test/en.expected-cppcli/MyFramework.MyNamespace/MyClass.xml new file mode 100644 index 00000000..11a1997b --- /dev/null +++ b/mdoc/Test/en.expected-cppcli/MyFramework.MyNamespace/MyClass.xml @@ -0,0 +1,92 @@ +<Type Name="MyClass" FullName="MyFramework.MyNamespace.MyClass"> + <TypeSignature Language="C#" Value="public class MyClass" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyClass extends System.Object" /> + <TypeSignature Language="C++ CLI" Value="public ref class MyClass" /> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</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" /> + <MemberSignature Language="C++ CLI" Value="public:
 MyClass();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Hello"> + <MemberSignature Language="C#" Value="public float Hello (int value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" /> + <MemberSignature Language="C++ CLI" Value="public:
 float Hello(int value);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="MyProperty"> + <MemberSignature Language="C#" Value="public string MyProperty { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" /> + <MemberSignature Language="C++ CLI" Value="public:
 property System::String ^ MyProperty { System::String ^ get(); void set(System::String ^ value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="OnlyInClassic"> + <MemberSignature Language="C#" Value="public double OnlyInClassic { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" /> + <MemberSignature Language="C++ CLI" Value="public:
 property double OnlyInClassic { double get(); void set(double value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</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-cppcli/MyFramework.MyNamespace/MyClassExtensions.xml b/mdoc/Test/en.expected-cppcli/MyFramework.MyNamespace/MyClassExtensions.xml new file mode 100644 index 00000000..5cc4e950 --- /dev/null +++ b/mdoc/Test/en.expected-cppcli/MyFramework.MyNamespace/MyClassExtensions.xml @@ -0,0 +1,41 @@ +<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions"> + <TypeSignature Language="C#" Value="public static class MyClassExtensions" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" /> + <TypeSignature Language="C++ CLI" Value="public ref class MyClassExtensions abstract sealed" /> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</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="AnExtension"> + <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" /> + <MemberSignature Language="C++ CLI" Value="public:
[System::Runtime::CompilerServices::Extension]
 static bool AnExtension(MyFramework::MyNamespace::MyClass ^ value);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <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-cppcli/MyFramework.MyOtherNamespace/MyOtherClass.xml b/mdoc/Test/en.expected-cppcli/MyFramework.MyOtherNamespace/MyOtherClass.xml new file mode 100644 index 00000000..31718e42 --- /dev/null +++ b/mdoc/Test/en.expected-cppcli/MyFramework.MyOtherNamespace/MyOtherClass.xml @@ -0,0 +1,96 @@ +<Type Name="MyOtherClass" FullName="MyFramework.MyOtherNamespace.MyOtherClass"> + <TypeSignature Language="C#" Value="public class MyOtherClass" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyOtherClass extends System.Object" /> + <TypeSignature Language="C++ CLI" Value="public ref class MyOtherClass" /> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</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 MyOtherClass ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CLI" Value="public:
 MyOtherClass();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Hello"> + <MemberSignature Language="C#" Value="public float Hello (double value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(float64 value) cil managed" /> + <MemberSignature Language="C++ CLI" Value="public:
 float Hello(double value);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Double" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Hello"> + <MemberSignature Language="C#" Value="public float Hello (int value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" /> + <MemberSignature Language="C++ CLI" Value="public:
 float Hello(int value);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="MyProperty"> + <MemberSignature Language="C#" Value="public string MyProperty { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" /> + <MemberSignature Language="C++ CLI" Value="public:
 property System::String ^ MyProperty { System::String ^ get(); void set(System::String ^ value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</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-cppcli/MyNamespace/MyClass.xml b/mdoc/Test/en.expected-cppcli/MyNamespace/MyClass.xml new file mode 100644 index 00000000..a9e44432 --- /dev/null +++ b/mdoc/Test/en.expected-cppcli/MyNamespace/MyClass.xml @@ -0,0 +1,57 @@ +<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" /> + <TypeSignature Language="C++ CLI" Value="public ref class MyClass" /> + <AssemblyInfo> + <AssemblyName>DocTest-addNonGeneric</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" /> + <MemberSignature Language="C++ CLI" Value="public:
 MyClass();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-addNonGeneric</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="SomeMethod<T>"> + <MemberSignature Language="C#" Value="public string SomeMethod<T> ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string SomeMethod<T>() cil managed" /> + <MemberSignature Language="C++ CLI" Value="public:
generic <typename T>
 System::String ^ SomeMethod();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-addNonGeneric</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="T">To be added.</typeparam> + <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-cppcli/index.xml b/mdoc/Test/en.expected-cppcli/index.xml new file mode 100644 index 00000000..e4a6fd3b --- /dev/null +++ b/mdoc/Test/en.expected-cppcli/index.xml @@ -0,0 +1,73 @@ +<Overview> + <Assemblies> + <Assembly Name="DocTest-DropNS-classic" 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> + <Assembly Name="DocTest-DropNS-classic-secondary" 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> + <Assembly Name="DocTest-addNonGeneric" 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="MyFramework.MyNamespace"> + <Type Name="MyClass" Kind="Class" /> + <Type Name="MyClassExtensions" Kind="Class" /> + </Namespace> + <Namespace Name="MyFramework.MyOtherNamespace"> + <Type Name="MyOtherClass" Kind="Class" /> + </Namespace> + <Namespace Name="MyNamespace"> + <Type Name="MyClass" Kind="Class" /> + </Namespace> + </Types> + <Title>Untitled</Title> + <ExtensionMethods> + <ExtensionMethod> + <Targets> + <Target Type="T:MyFramework.MyNamespace.MyClass" /> + </Targets> + <Member MemberName="AnExtension"> + <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" /> + <MemberSignature Language="C++ CLI" Value="public:
[System::Runtime::CompilerServices::Extension]
 static bool AnExtension(MyFramework::MyNamespace::MyClass ^ value);" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" /> + </Member> + </ExtensionMethod> + </ExtensionMethods> +</Overview> diff --git a/mdoc/Test/en.expected-cppcli/ns-MyFramework.MyNamespace.xml b/mdoc/Test/en.expected-cppcli/ns-MyFramework.MyNamespace.xml new file mode 100644 index 00000000..74df75af --- /dev/null +++ b/mdoc/Test/en.expected-cppcli/ns-MyFramework.MyNamespace.xml @@ -0,0 +1,6 @@ +<Namespace Name="MyFramework.MyNamespace"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppcli/ns-MyFramework.MyOtherNamespace.xml b/mdoc/Test/en.expected-cppcli/ns-MyFramework.MyOtherNamespace.xml new file mode 100644 index 00000000..8bdef1c7 --- /dev/null +++ b/mdoc/Test/en.expected-cppcli/ns-MyFramework.MyOtherNamespace.xml @@ -0,0 +1,6 @@ +<Namespace Name="MyFramework.MyOtherNamespace"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppcli/ns-MyNamespace.xml b/mdoc/Test/en.expected-cppcli/ns-MyNamespace.xml new file mode 100644 index 00000000..bd8d4316 --- /dev/null +++ b/mdoc/Test/en.expected-cppcli/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-cppcx/FrameworksIndex/One.xml b/mdoc/Test/en.expected-cppcx/FrameworksIndex/One.xml new file mode 100644 index 00000000..a60754a0 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx/FrameworksIndex/One.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<Framework Name="One"> + <Namespace Name="MyFramework.MyNamespace"> + <Type Name="MyFramework.MyNamespace.MyClass" Id="T:MyFramework.MyNamespace.MyClass"> + <Member Id="M:MyFramework.MyNamespace.MyClass.#ctor" /> + <Member Id="M:MyFramework.MyNamespace.MyClass.Hello(System.Int32)" /> + <Member Id="P:MyFramework.MyNamespace.MyClass.MyProperty" /> + <Member Id="P:MyFramework.MyNamespace.MyClass.OnlyInClassic" /> + </Type> + <Type Name="MyFramework.MyNamespace.MyClassExtensions" Id="T:MyFramework.MyNamespace.MyClassExtensions"> + <Member Id="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" /> + </Type> + </Namespace> + <Namespace Name="MyNamespace"> + <Type Name="MyNamespace.MyClass" Id="T:MyNamespace.MyClass"> + <Member Id="M:MyNamespace.MyClass.#ctor" /> + <Member Id="M:MyNamespace.MyClass.SomeMethod``1" /> + </Type> + </Namespace> +</Framework>
\ No newline at end of file diff --git a/mdoc/Test/en.expected-cppcx/FrameworksIndex/Two.xml b/mdoc/Test/en.expected-cppcx/FrameworksIndex/Two.xml new file mode 100644 index 00000000..b697626e --- /dev/null +++ b/mdoc/Test/en.expected-cppcx/FrameworksIndex/Two.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<Framework Name="Two"> + <Namespace Name="MyFramework.MyOtherNamespace"> + <Type Name="MyFramework.MyOtherNamespace.MyOtherClass" Id="T:MyFramework.MyOtherNamespace.MyOtherClass"> + <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.#ctor" /> + <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.Hello(System.Double)" /> + <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.Hello(System.Int32)" /> + <Member Id="P:MyFramework.MyOtherNamespace.MyOtherClass.MyProperty" /> + </Type> + </Namespace> + <Namespace Name="MyNamespace"> + <Type Name="MyNamespace.MyClass" Id="T:MyNamespace.MyClass"> + <Member Id="M:MyNamespace.MyClass.#ctor" /> + <Member Id="M:MyNamespace.MyClass.SomeMethod``1" /> + </Type> + </Namespace> +</Framework>
\ No newline at end of file diff --git a/mdoc/Test/en.expected-cppcx/MyFramework.MyNamespace/MyClass.xml b/mdoc/Test/en.expected-cppcx/MyFramework.MyNamespace/MyClass.xml new file mode 100644 index 00000000..0e655765 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx/MyFramework.MyNamespace/MyClass.xml @@ -0,0 +1,91 @@ +<Type Name="MyClass" FullName="MyFramework.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-DropNS-classic</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" /> + <MemberSignature Language="C++ CX" Value="public:
 MyClass();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Hello"> + <MemberSignature Language="C#" Value="public float Hello (int value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 float Hello(int value);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="MyProperty"> + <MemberSignature Language="C#" Value="public string MyProperty { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" /> + <MemberSignature Language="C++ CX" Value="public:
 property Platform::String ^ MyProperty { Platform::String ^ get(); void set(Platform::String ^ value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="OnlyInClassic"> + <MemberSignature Language="C#" Value="public double OnlyInClassic { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" /> + <MemberSignature Language="C++ CX" Value="public:
 property double OnlyInClassic { double get(); void set(double value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</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-cppcx/MyFramework.MyNamespace/MyClassExtensions.xml b/mdoc/Test/en.expected-cppcx/MyFramework.MyNamespace/MyClassExtensions.xml new file mode 100644 index 00000000..522c5fb8 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx/MyFramework.MyNamespace/MyClassExtensions.xml @@ -0,0 +1,40 @@ +<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions"> + <TypeSignature Language="C#" Value="public static class MyClassExtensions" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" /> + <TypeSignature Language="C++ CX" Value="public ref class MyClassExtensions abstract sealed" /> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</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="AnExtension"> + <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <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-cppcx/MyFramework.MyOtherNamespace/MyOtherClass.xml b/mdoc/Test/en.expected-cppcx/MyFramework.MyOtherNamespace/MyOtherClass.xml new file mode 100644 index 00000000..e0c0748e --- /dev/null +++ b/mdoc/Test/en.expected-cppcx/MyFramework.MyOtherNamespace/MyOtherClass.xml @@ -0,0 +1,95 @@ +<Type Name="MyOtherClass" FullName="MyFramework.MyOtherNamespace.MyOtherClass"> + <TypeSignature Language="C#" Value="public class MyOtherClass" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyOtherClass extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</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 MyOtherClass ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 MyOtherClass();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Hello"> + <MemberSignature Language="C#" Value="public float Hello (double value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(float64 value) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 float Hello(double value);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Double" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Hello"> + <MemberSignature Language="C#" Value="public float Hello (int value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 float Hello(int value);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="MyProperty"> + <MemberSignature Language="C#" Value="public string MyProperty { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" /> + <MemberSignature Language="C++ CX" Value="public:
 property Platform::String ^ MyProperty { Platform::String ^ get(); void set(Platform::String ^ value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</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-cppcx/MyNamespace/MyClass.xml b/mdoc/Test/en.expected-cppcx/MyNamespace/MyClass.xml new file mode 100644 index 00000000..4c44fbbb --- /dev/null +++ b/mdoc/Test/en.expected-cppcx/MyNamespace/MyClass.xml @@ -0,0 +1,56 @@ +<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-addNonGeneric</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" /> + <MemberSignature Language="C++ CX" Value="public:
 MyClass();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-addNonGeneric</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="SomeMethod<T>"> + <MemberSignature Language="C#" Value="public string SomeMethod<T> ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string SomeMethod<T>() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename T>
 Platform::String ^ SomeMethod();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-addNonGeneric</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="T">To be added.</typeparam> + <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-cppcx/index.xml b/mdoc/Test/en.expected-cppcx/index.xml new file mode 100644 index 00000000..6abf1402 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx/index.xml @@ -0,0 +1,72 @@ +<Overview> + <Assemblies> + <Assembly Name="DocTest-DropNS-classic" 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> + <Assembly Name="DocTest-DropNS-classic-secondary" 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> + <Assembly Name="DocTest-addNonGeneric" 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="MyFramework.MyNamespace"> + <Type Name="MyClass" Kind="Class" /> + <Type Name="MyClassExtensions" Kind="Class" /> + </Namespace> + <Namespace Name="MyFramework.MyOtherNamespace"> + <Type Name="MyOtherClass" Kind="Class" /> + </Namespace> + <Namespace Name="MyNamespace"> + <Type Name="MyClass" Kind="Class" /> + </Namespace> + </Types> + <Title>Untitled</Title> + <ExtensionMethods> + <ExtensionMethod> + <Targets> + <Target Type="T:MyFramework.MyNamespace.MyClass" /> + </Targets> + <Member MemberName="AnExtension"> + <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" /> + </Member> + </ExtensionMethod> + </ExtensionMethods> +</Overview> diff --git a/mdoc/Test/en.expected-cppcx/ns-MyFramework.MyNamespace.xml b/mdoc/Test/en.expected-cppcx/ns-MyFramework.MyNamespace.xml new file mode 100644 index 00000000..74df75af --- /dev/null +++ b/mdoc/Test/en.expected-cppcx/ns-MyFramework.MyNamespace.xml @@ -0,0 +1,6 @@ +<Namespace Name="MyFramework.MyNamespace"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppcx/ns-MyFramework.MyOtherNamespace.xml b/mdoc/Test/en.expected-cppcx/ns-MyFramework.MyOtherNamespace.xml new file mode 100644 index 00000000..8bdef1c7 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx/ns-MyFramework.MyOtherNamespace.xml @@ -0,0 +1,6 @@ +<Namespace Name="MyFramework.MyOtherNamespace"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppcx/ns-MyNamespace.xml b/mdoc/Test/en.expected-cppcx/ns-MyNamespace.xml new file mode 100644 index 00000000..bd8d4316 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx/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-cppcx2/Mono.DocTest.Generic/Extensions.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/Extensions.xml new file mode 100644 index 00000000..af278a08 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/Extensions.xml @@ -0,0 +1,143 @@ +<Type Name="Extensions" FullName="Mono.DocTest.Generic.Extensions"> + <TypeSignature Language="C#" Value="public static class Extensions" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit Extensions extends System.Object" /> + <TypeSignature Language="C++ CX" Value="public ref class Extensions abstract sealed" /> + <AssemblyInfo> + <AssemblyName>DocTest</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="Bar<T>"> + <MemberSignature Language="C#" Value="public static void Bar<T> (this Mono.DocTest.Generic.IFoo<T> self, string s);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Bar<T>(class Mono.DocTest.Generic.IFoo`1<!!T> self, string s) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename T>
[System::Runtime::CompilerServices::Extension]
 static void Bar(Mono::DocTest::Generic::IFoo<T> ^ self, Platform::String ^ s);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="Mono.DocTest.Generic.IFoo<T>" RefType="this" /> + <Parameter Name="s" Type="System.String" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <param name="s">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ForEach<T>"> + <MemberSignature Language="C#" Value="public static void ForEach<T> (this System.Collections.Generic.IEnumerable<T> self, Action<T> a);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void ForEach<T>(class System.Collections.Generic.IEnumerable`1<!!T> self, class System.Action`1<!!T> a) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="System.Collections.Generic.IEnumerable<T>" RefType="this" /> + <Parameter Name="a" Type="System.Action<T>" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <param name="a">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ToDouble"> + <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable<double> ToDouble (this System.Collections.Generic.IEnumerable<int> list);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1<float64> ToDouble(class System.Collections.Generic.IEnumerable`1<int32> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerable<System.Double></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="System.Collections.Generic.IEnumerable<System.Int32>" RefType="this" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ToDouble<T>"> + <MemberSignature Language="C#" Value="public static double ToDouble<T> (this T val) where T : Mono.DocTest.Generic.IFoo<T>;" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 ToDouble<(class Mono.DocTest.Generic.IFoo`1<!!T>) T>(!!T val) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename T>
 where T : Mono::DocTest::Generic::IFoo<T>[System::Runtime::CompilerServices::Extension]
 static double ToDouble(T val);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T"> + <Constraints> + <InterfaceName>Mono.DocTest.Generic.IFoo<T></InterfaceName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="val" Type="T" RefType="this" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="val">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ToEnumerable<T>"> + <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable<T> ToEnumerable<T> (this T self);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1<!!T> ToEnumerable<T>(!!T self) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerable<T></ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="T" RefType="this" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <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-cppcx2/Mono.DocTest.Generic/Func`2.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/Func`2.xml new file mode 100644 index 00000000..2d8dcf09 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/Func`2.xml @@ -0,0 +1,64 @@ +<Type Name="Func<TArg,TRet>" FullName="Mono.DocTest.Generic.Func<TArg,TRet>"> + <TypeSignature Language="C#" Value="public delegate TRet Func<in TArg,out TRet>(TArg a) where TArg : Exception;" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Func`2<(class System.Exception) - TArg, + TRet> extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="TArg"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("arg!")</AttributeName> + </Attribute> + </Attributes> + <Constraints> + <ParameterAttribute>Contravariant</ParameterAttribute> + <BaseTypeName>System.Exception</BaseTypeName> + </Constraints> + </TypeParameter> + <TypeParameter Name="TRet"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("ret!")</AttributeName> + </Attribute> + </Attributes> + <Constraints> + <ParameterAttribute>Covariant</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("method")</AttributeName> + </Attribute> + </Attributes> + <Parameters> + <Parameter Name="a" Type="TArg"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("arg-actual")</AttributeName> + </Attribute> + </Attributes> + </Parameter> + </Parameters> + <ReturnValue> + <ReturnType>TRet</ReturnType> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("return", Field=false)</AttributeName> + </Attribute> + </Attributes> + </ReturnValue> + <Docs> + <typeparam name="TArg">To be added.</typeparam> + <typeparam name="TRet">To be added.</typeparam> + <param name="a">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml new file mode 100644 index 00000000..60def22f --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml @@ -0,0 +1,35 @@ +<Type Name="GenericBase<U>+FooEventArgs" FullName="Mono.DocTest.Generic.GenericBase<U>+FooEventArgs"> + <TypeSignature Language="C#" Value="public class GenericBase<U>.FooEventArgs : EventArgs" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit GenericBase`1/FooEventArgs<U> extends System.EventArgs" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Base> + <BaseTypeName>System.EventArgs</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public FooEventArgs ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 FooEventArgs();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml new file mode 100644 index 00000000..b7f25170 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml @@ -0,0 +1,21 @@ +<Type Name="GenericBase<U>+NestedCollection+Enumerator" FullName="Mono.DocTest.Generic.GenericBase<U>+NestedCollection+Enumerator"> + <TypeSignature Language="C#" Value="protected internal struct GenericBase<U>.NestedCollection.Enumerator" /> + <TypeSignature Language="ILAsm" Value=".class nested protected sequential ansi sealed beforefieldinit GenericBase`1/NestedCollection/Enumerator<U> extends System.ValueType" /> + <TypeSignature Language="C++ CX" Value="public protected value class GenericBase<U>::NestedCollection::Enumerator" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Base> + <BaseTypeName>System.ValueType</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members /> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml new file mode 100644 index 00000000..e29aff66 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml @@ -0,0 +1,35 @@ +<Type Name="GenericBase<U>+NestedCollection" FullName="Mono.DocTest.Generic.GenericBase<U>+NestedCollection"> + <TypeSignature Language="C#" Value="public class GenericBase<U>.NestedCollection" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit GenericBase`1/NestedCollection<U> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <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 NestedCollection ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 NestedCollection();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1.xml new file mode 100644 index 00000000..8023a01c --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/GenericBase`1.xml @@ -0,0 +1,147 @@ +<Type Name="GenericBase<U>" FullName="Mono.DocTest.Generic.GenericBase<U>"> + <TypeSignature Language="C#" Value="public class GenericBase<U>" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit GenericBase`1<U> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="U">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public GenericBase ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 GenericBase();" /> + <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="BaseMethod<S>"> + <MemberSignature Language="C#" Value="public U BaseMethod<S> (S genericParameter);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance !U BaseMethod<S>(!!S genericParameter) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename S>
 U BaseMethod(S genericParameter);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>U</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="S"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("S")</AttributeName> + </Attribute> + </Attributes> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="genericParameter" Type="S" /> + </Parameters> + <Docs> + <typeparam name="S">To be added.</typeparam> + <param name="genericParameter">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ConstField1"> + <MemberSignature Language="C#" Value="public const int ConstField1;" /> + <MemberSignature Language="ILAsm" Value=".field public static literal int32 ConstField1" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ItemChanged"> + <MemberSignature Language="C#" Value="public event Action<Mono.DocTest.Generic.MyList<U>,Mono.DocTest.Generic.MyList<U>.Helper<U,U>> ItemChanged;" /> + <MemberSignature Language="ILAsm" Value=".event class System.Action`2<class Mono.DocTest.Generic.MyList`1<!U>, class Mono.DocTest.Generic.MyList`1/Helper`2<!U, !U, !U>> ItemChanged" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Action<Mono.DocTest.Generic.MyList<U>,Mono.DocTest.Generic.MyList<U>+Helper<U,U>></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="MyEvent"> + <MemberSignature Language="C#" Value="public event EventHandler<Mono.DocTest.Generic.GenericBase<U>.FooEventArgs> MyEvent;" /> + <MemberSignature Language="ILAsm" Value=".event class System.EventHandler`1<class Mono.DocTest.Generic.GenericBase`1/FooEventArgs<!U>> MyEvent" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.EventHandler<Mono.DocTest.Generic.GenericBase<U>+FooEventArgs></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_Explicit"> + <MemberSignature Language="C#" Value="public static explicit operator U (Mono.DocTest.Generic.GenericBase<U> list);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname !U op_Explicit(class Mono.DocTest.Generic.GenericBase`1<!U> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>U</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="Mono.DocTest.Generic.GenericBase<U>" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="StaticField1"> + <MemberSignature Language="C#" Value="public static readonly Mono.DocTest.Generic.GenericBase<U> StaticField1;" /> + <MemberSignature Language="ILAsm" Value=".field public static initonly class Mono.DocTest.Generic.GenericBase`1<!U> StaticField1" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Generic.GenericBase<U></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/IFoo`1.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/IFoo`1.xml new file mode 100644 index 00000000..70c354b7 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/IFoo`1.xml @@ -0,0 +1,47 @@ +<Type Name="IFoo<T>" FullName="Mono.DocTest.Generic.IFoo<T>"> + <TypeSignature Language="C#" Value="public interface IFoo<T>" /> + <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IFoo`1<T>" /> + <TypeSignature Language="C++ CX" Value="public interface class IFoo" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Interfaces /> + <Docs> + <typeparam name="T">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="Method<U>"> + <MemberSignature Language="C#" Value="public T Method<U> (T t, U u);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance !T Method<U>(!T t, !!U u) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename U>
 T Method(T t, U u);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>T</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Parameters> + <Parameter Name="t" Type="T" /> + <Parameter Name="u" Type="U" /> + </Parameters> + <Docs> + <typeparam name="U">To be added.</typeparam> + <param name="t">To be added.</param> + <param name="u">To be added.</param> + <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-cppcx2/Mono.DocTest.Generic/MyList`1+Helper`2.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/MyList`1+Helper`2.xml new file mode 100644 index 00000000..d3f762b4 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/MyList`1+Helper`2.xml @@ -0,0 +1,63 @@ +<Type Name="MyList<T>+Helper<U,V>" FullName="Mono.DocTest.Generic.MyList<T>+Helper<U,V>"> + <TypeSignature Language="C#" Value="public class MyList<T>.Helper<U,V>" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit MyList`1/Helper`2<T, U, V> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="T" /> + <TypeParameter Name="U" /> + <TypeParameter Name="V" /> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="U">To be added.</typeparam> + <typeparam name="V">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public Helper ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 Helper();" /> + <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="UseT"> + <MemberSignature Language="C#" Value="public void UseT (T a, U b, V c);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void UseT(!T a, !U b, !V c) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 void UseT(T a, U b, V c);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="a" Type="T" /> + <Parameter Name="b" Type="U" /> + <Parameter Name="c" Type="V" /> + </Parameters> + <Docs> + <param name="a">To be added.</param> + <param name="b">To be added.</param> + <param name="c">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/MyList`1.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/MyList`1.xml new file mode 100644 index 00000000..520a0633 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/MyList`1.xml @@ -0,0 +1,209 @@ +<Type Name="MyList<T>" FullName="Mono.DocTest.Generic.MyList<T>"> + <TypeSignature Language="C#" Value="public class MyList<T> : Mono.DocTest.Generic.GenericBase<T>, System.Collections.Generic.IEnumerable<int[]>" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyList`1<T> extends Mono.DocTest.Generic.GenericBase`1<!T> implements class System.Collections.Generic.IEnumerable`1<int32[]>, class System.Collections.IEnumerable" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="T"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("Type Parameter!")</AttributeName> + </Attribute> + </Attributes> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>Mono.DocTest.Generic.GenericBase<T></BaseTypeName> + <BaseTypeArguments> + <BaseTypeArgument TypeParamName="U">T</BaseTypeArgument> + </BaseTypeArguments> + </Base> + <Interfaces> + <Interface> + <InterfaceName>System.Collections.Generic.IEnumerable<System.Int32[]></InterfaceName> + </Interface> + </Interfaces> + <Docs> + <typeparam name="T">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public MyList ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 MyList();" /> + <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="GetEnumerator"> + <MemberSignature Language="C#" Value="public System.Collections.Generic.IEnumerator<int[]> GetEnumerator ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Collections.Generic.IEnumerator`1<int32[]> GetEnumerator() cil managed" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.IEnumerable`1.GetEnumerator</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerator<System.Int32[]></ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="GetHelper<U,V>"> + <MemberSignature Language="C#" Value="public Mono.DocTest.Generic.MyList<T>.Helper<U,V> GetHelper<U,V> ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class Mono.DocTest.Generic.MyList`1/Helper`2<!T, !!U, !!V> GetHelper<U, V>() cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Generic.MyList<T>+Helper<U,V></ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + <TypeParameter Name="V" /> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="U">To be added.</typeparam> + <typeparam name="V">To be added.</typeparam> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Method<U>"> + <MemberSignature Language="C#" Value="public void Method<U> (T t, U u);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Method<U>(!T t, !!U u) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename U>
 void Method(T t, U u);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Parameters> + <Parameter Name="t" Type="T" /> + <Parameter Name="u" Type="U" /> + </Parameters> + <Docs> + <typeparam name="U">To be added.</typeparam> + <param name="t">To be added.</param> + <param name="u">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="RefMethod<U>"> + <MemberSignature Language="C#" Value="public void RefMethod<U> (ref T t, ref U u);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void RefMethod<U>(!T& t, !!U& u) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename U>
 void RefMethod(T & t, U & u);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Parameters> + <Parameter Name="t" Type="T&" RefType="ref" /> + <Parameter Name="u" Type="U&" RefType="ref" /> + </Parameters> + <Docs> + <typeparam name="U">To be added.</typeparam> + <param name="t">To be added.</param> + <param name="u">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.IEnumerable.GetEnumerator"> + <MemberSignature Language="C#" Value="System.Collections.IEnumerator IEnumerable.GetEnumerator ();" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() cil managed" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.IEnumerable.GetEnumerator</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.IEnumerator</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Test"> + <MemberSignature Language="C#" Value="public void Test (T t);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Test(!T t) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 void Test(T t);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="t" Type="T" /> + </Parameters> + <Docs> + <param name="t">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="UseHelper<U,V>"> + <MemberSignature Language="C#" Value="public void UseHelper<U,V> (Mono.DocTest.Generic.MyList<T>.Helper<U,V> helper);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void UseHelper<U, V>(class Mono.DocTest.Generic.MyList`1/Helper`2<!T, !!U, !!V> helper) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + <TypeParameter Name="V" /> + </TypeParameters> + <Parameters> + <Parameter Name="helper" Type="Mono.DocTest.Generic.MyList<T>+Helper<U,V>" /> + </Parameters> + <Docs> + <typeparam name="U">To be added.</typeparam> + <typeparam name="V">To be added.</typeparam> + <param name="helper">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/MyList`2.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/MyList`2.xml new file mode 100644 index 00000000..e4a887c7 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/MyList`2.xml @@ -0,0 +1,443 @@ +<Type Name="MyList<A,B>" FullName="Mono.DocTest.Generic.MyList<A,B>"> + <TypeSignature Language="C#" Value="public class MyList<A,B> : Mono.DocTest.Generic.GenericBase<System.Collections.Generic.Dictionary<A,B>>, Mono.DocTest.Generic.IFoo<A>, System.Collections.Generic.ICollection<A>, System.Collections.Generic.IEnumerable<A>, System.Collections.Generic.IEnumerator<A> where A : class, IList<B>, new() where B : class, A" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyList`2<class .ctor (class System.Collections.Generic.IList`1<!B>) A, class (!A) B> extends Mono.DocTest.Generic.GenericBase`1<class System.Collections.Generic.Dictionary`2<!A, !B>> implements class Mono.DocTest.Generic.IFoo`1<!A>, class System.Collections.Generic.ICollection`1<!A>, class System.Collections.Generic.IEnumerable`1<!A>, class System.Collections.Generic.IEnumerator`1<!A>, class System.Collections.IEnumerable, class System.Collections.IEnumerator, class System.IDisposable" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="A"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + <InterfaceName>System.Collections.Generic.IList<B></InterfaceName> + </Constraints> + </TypeParameter> + <TypeParameter Name="B"> + <Constraints> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + <BaseTypeName>A</BaseTypeName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>Mono.DocTest.Generic.GenericBase<System.Collections.Generic.Dictionary<A,B>></BaseTypeName> + <BaseTypeArguments> + <BaseTypeArgument TypeParamName="U">System.Collections.Generic.Dictionary<A,B></BaseTypeArgument> + </BaseTypeArguments> + </Base> + <Interfaces> + <Interface> + <InterfaceName>Mono.DocTest.Generic.IFoo<A></InterfaceName> + </Interface> + <Interface> + <InterfaceName>System.Collections.Generic.ICollection<A></InterfaceName> + </Interface> + <Interface> + <InterfaceName>System.Collections.Generic.IEnumerable<A></InterfaceName> + </Interface> + <Interface> + <InterfaceName>System.Collections.Generic.IEnumerator<A></InterfaceName> + </Interface> + </Interfaces> + <Docs> + <typeparam name="A">To be added.</typeparam> + <typeparam name="B">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public MyList ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 MyList();" /> + <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="CopyTo"> + <MemberSignature Language="C#" Value="public void CopyTo (A[] array, int arrayIndex);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void CopyTo(!A[] array, int32 arrayIndex) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 void CopyTo(Platform::Array <A> ^ array, int arrayIndex);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="array" Type="A[]" /> + <Parameter Name="arrayIndex" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="array">To be added.</param> + <param name="arrayIndex">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Count"> + <MemberSignature Language="C#" Value="public int Count { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int32 Count" /> + <MemberSignature Language="C++ CX" Value="public:
 property int Count { int get(); };" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:System.Collections.Generic.ICollection`1.Count</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Current"> + <MemberSignature Language="C#" Value="public A Current { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance !A Current" /> + <MemberSignature Language="C++ CX" Value="public:
 property A Current { A get(); };" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:System.Collections.Generic.IEnumerator`1.Current</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>A</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Dispose"> + <MemberSignature Language="C#" Value="public void Dispose ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Dispose() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 void Dispose();" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.IDisposable.Dispose</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Foo"> + <MemberSignature Language="C#" Value="public System.Collections.Generic.KeyValuePair<System.Collections.Generic.IEnumerable<A>,System.Collections.Generic.IEnumerable<B>> Foo ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance valuetype System.Collections.Generic.KeyValuePair`2<class System.Collections.Generic.IEnumerable`1<!A>, class System.Collections.Generic.IEnumerable`1<!B>> Foo() cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.KeyValuePair<System.Collections.Generic.IEnumerable<A>,System.Collections.Generic.IEnumerable<B>></ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="GetEnumerator"> + <MemberSignature Language="C#" Value="public System.Collections.Generic.List<A>.Enumerator GetEnumerator ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance valuetype System.Collections.Generic.List`1/Enumerator<!A> GetEnumerator() cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.List<A>+Enumerator</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Mono.DocTest.Generic.IFoo<A>.Method<U>"> + <MemberSignature Language="C#" Value="A IFoo<A>.Method<U> (A a, U u);" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance !A Mono.DocTest.Generic.IFoo<A>.Method<U>(!A a, !!U u) cil managed" /> + <MemberSignature Language="C++ CX" Value="generic <typename U>
 virtual A Mono.DocTest.Generic.IFoo<A>.Method(A a, U u) = Mono::DocTest::Generic::IFoo<A>::Method;" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:Mono.DocTest.Generic.IFoo`1.Method``1(`0,``0)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>A</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Parameters> + <Parameter Name="a" Type="A" /> + <Parameter Name="u" Type="U" /> + </Parameters> + <Docs> + <typeparam name="U">To be added.</typeparam> + <param name="a">To be added.</param> + <param name="u">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="MoveNext"> + <MemberSignature Language="C#" Value="public bool MoveNext ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool MoveNext() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 bool MoveNext();" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.IEnumerator.MoveNext</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Reset"> + <MemberSignature Language="C#" Value="public void Reset ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Reset() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 void Reset();" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.IEnumerator.Reset</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.ICollection<A>.Add"> + <MemberSignature Language="C#" Value="void ICollection<A>.Add (A item);" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Collections.Generic.ICollection<A>.Add(!A item) cil managed" /> + <MemberSignature Language="C++ CX" Value=" virtual void System.Collections.Generic.ICollection<A>.Add(A item) = System::Collections::Generic::ICollection<A>::Add;" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.ICollection`1.Add(`0)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="item" Type="A" /> + </Parameters> + <Docs> + <param name="item">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.ICollection<A>.Clear"> + <MemberSignature Language="C#" Value="void ICollection<A>.Clear ();" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Collections.Generic.ICollection<A>.Clear() cil managed" /> + <MemberSignature Language="C++ CX" Value=" virtual void System.Collections.Generic.ICollection<A>.Clear() = System::Collections::Generic::ICollection<A>::Clear;" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.ICollection`1.Clear</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.ICollection<A>.Contains"> + <MemberSignature Language="C#" Value="bool ICollection<A>.Contains (A item);" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance bool System.Collections.Generic.ICollection<A>.Contains(!A item) cil managed" /> + <MemberSignature Language="C++ CX" Value=" virtual bool System.Collections.Generic.ICollection<A>.Contains(A item) = System::Collections::Generic::ICollection<A>::Contains;" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.ICollection`1.Contains(`0)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="item" Type="A" /> + </Parameters> + <Docs> + <param name="item">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.ICollection<A>.IsReadOnly"> + <MemberSignature Language="C#" Value="bool System.Collections.Generic.ICollection<A>.IsReadOnly { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance bool System.Collections.Generic.ICollection<A>.IsReadOnly" /> + <MemberSignature Language="C++ CX" Value="property bool System.Collections.Generic.ICollection<A>.IsReadOnly { bool get(); };" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:System.Collections.Generic.ICollection`1.IsReadOnly</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.ICollection<A>.Remove"> + <MemberSignature Language="C#" Value="bool ICollection<A>.Remove (A item);" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance bool System.Collections.Generic.ICollection<A>.Remove(!A item) cil managed" /> + <MemberSignature Language="C++ CX" Value=" virtual bool System.Collections.Generic.ICollection<A>.Remove(A item) = System::Collections::Generic::ICollection<A>::Remove;" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.ICollection`1.Remove(`0)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="item" Type="A" /> + </Parameters> + <Docs> + <param name="item">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.IEnumerable<A>.GetEnumerator"> + <MemberSignature Language="C#" Value="System.Collections.Generic.IEnumerator<A> IEnumerable<A>.GetEnumerator ();" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.Generic.IEnumerator`1<!A> System.Collections.Generic.IEnumerable<A>.GetEnumerator() cil managed" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.IEnumerable`1.GetEnumerator</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerator<A></ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.IEnumerator<A>.Current"> + <MemberSignature Language="C#" Value="A System.Collections.Generic.IEnumerator<A>.Current { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance !A System.Collections.Generic.IEnumerator<A>.Current" /> + <MemberSignature Language="C++ CX" Value="property A System.Collections.Generic.IEnumerator<A>.Current { A get(); };" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:System.Collections.Generic.IEnumerator`1.Current</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>A</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.IEnumerable.GetEnumerator"> + <MemberSignature Language="C#" Value="System.Collections.IEnumerator IEnumerable.GetEnumerator ();" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() cil managed" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.IEnumerable.GetEnumerator</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.IEnumerator</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.IEnumerator.Current"> + <MemberSignature Language="C#" Value="object System.Collections.IEnumerator.Current { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance object System.Collections.IEnumerator.Current" /> + <MemberSignature Language="C++ CX" Value="property Platform::Object ^ System.Collections.IEnumerator.Current { Platform::Object ^ get(); };" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:System.Collections.IEnumerator.Current</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Object</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-cppcx2/Mono.DocTest/Color.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Color.xml new file mode 100644 index 00000000..84afcc12 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Color.xml @@ -0,0 +1,82 @@ +<Type Name="Color" FullName="Mono.DocTest.Color"> + <TypeSignature Language="C#" Value="public enum Color" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Color extends System.Enum" /> + <TypeSignature Language="C++ CX" Value="public enum class Color" /> + <AssemblyInfo> + <AssemblyName>DocTest</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="AnotherGreen"> + <MemberSignature Language="C#" Value="AnotherGreen" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Color AnotherGreen = int32(2)" /> + <MemberSignature Language="C++ CX" Value="AnotherGreen" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <MemberValue>2</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="Blue"> + <MemberSignature Language="C#" Value="Blue" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Color Blue = int32(1)" /> + <MemberSignature Language="C++ CX" Value="Blue" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <MemberValue>1</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="Green"> + <MemberSignature Language="C#" Value="Green" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Color Green = int32(2)" /> + <MemberSignature Language="C++ CX" Value="Green" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <MemberValue>2</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="Red"> + <MemberSignature Language="C#" Value="Red" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Color Red = int32(0)" /> + <MemberSignature Language="C++ CX" Value="Red" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <MemberValue>0</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/D.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/D.xml new file mode 100644 index 00000000..fffe57fa --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/D.xml @@ -0,0 +1,23 @@ +<Type Name="D" FullName="Mono.DocTest.D"> + <TypeSignature Language="C#" Value="public delegate dynamic D(Func<string,dynamic,object> value);" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed D extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Parameters> + <Parameter Name="value" Type="System.Func<System.String,System.Object,System.Object>" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Object</ReturnType> + </ReturnValue> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/DocAttribute.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/DocAttribute.xml new file mode 100644 index 00000000..094bb0c4 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/DocAttribute.xml @@ -0,0 +1,105 @@ +<Type Name="DocAttribute" FullName="Mono.DocTest.DocAttribute"> + <TypeSignature Language="C#" Value="public class DocAttribute : Attribute" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit DocAttribute extends System.Attribute" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Attribute</BaseTypeName> + </Base> + <Interfaces /> + <Attributes> + <Attribute> + <AttributeName>System.AttributeUsage(System.AttributeTargets.All)</AttributeName> + </Attribute> + </Attributes> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public DocAttribute (string docs);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string docs) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 DocAttribute(Platform::String ^ docs);" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters> + <Parameter Name="docs" Type="System.String" /> + </Parameters> + <Docs> + <param name="docs">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Field"> + <MemberSignature Language="C#" Value="public bool Field;" /> + <MemberSignature Language="ILAsm" Value=".field public bool Field" /> + <MemberSignature Language="C++ CX" Value="public: bool Field;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="FlagsEnum"> + <MemberSignature Language="C#" Value="public ConsoleModifiers FlagsEnum;" /> + <MemberSignature Language="ILAsm" Value=".field public valuetype System.ConsoleModifiers FlagsEnum" /> + <MemberSignature Language="C++ CX" Value="public: ConsoleModifiers FlagsEnum;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.ConsoleModifiers</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="NonFlagsEnum"> + <MemberSignature Language="C#" Value="public Mono.DocTest.Color NonFlagsEnum;" /> + <MemberSignature Language="ILAsm" Value=".field public valuetype Mono.DocTest.Color NonFlagsEnum" /> + <MemberSignature Language="C++ CX" Value="public: Mono::DocTest::Color NonFlagsEnum;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Property"> + <MemberSignature Language="C#" Value="public Type Property { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance class System.Type Property" /> + <MemberSignature Language="C++ CX" Value="public:
 property Platform::Type ^ Property { Platform::Type ^ get(); void set(Platform::Type ^ value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Type</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-cppcx2/Mono.DocTest/DocValueType.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/DocValueType.xml new file mode 100644 index 00000000..96340188 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/DocValueType.xml @@ -0,0 +1,59 @@ +<Type Name="DocValueType" FullName="Mono.DocTest.DocValueType"> + <TypeSignature Language="C#" Value="public struct DocValueType : Mono.DocTest.IProcess" /> + <TypeSignature Language="ILAsm" Value=".class public sequential ansi sealed beforefieldinit DocValueType extends System.ValueType implements class Mono.DocTest.IProcess" /> + <TypeSignature Language="C++ CX" Value="public value class DocValueType : Mono::DocTest::IProcess" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.ValueType</BaseTypeName> + </Base> + <Interfaces> + <Interface> + <InterfaceName>Mono.DocTest.IProcess</InterfaceName> + </Interface> + </Interfaces> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="M"> + <MemberSignature Language="C#" Value="public void M (int i);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M(int32 i) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 void M(int i);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="total"> + <MemberSignature Language="C#" Value="public int total;" /> + <MemberSignature Language="ILAsm" Value=".field public int32 total" /> + <MemberSignature Language="C++ CX" Value="public: int total;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/IProcess.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/IProcess.xml new file mode 100644 index 00000000..7ea6ad43 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/IProcess.xml @@ -0,0 +1,15 @@ +<Type Name="IProcess" FullName="Mono.DocTest.IProcess"> + <TypeSignature Language="C#" Value="public interface IProcess" /> + <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IProcess" /> + <TypeSignature Language="C++ CX" Value="public interface class IProcess" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Interfaces /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members /> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/UseLists.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/UseLists.xml new file mode 100644 index 00000000..27b80284 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/UseLists.xml @@ -0,0 +1,169 @@ +<Type Name="UseLists" FullName="Mono.DocTest.UseLists"> + <TypeSignature Language="C#" Value="public class UseLists" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit UseLists extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 UseLists ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 UseLists();" /> + <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="GetValues<T>"> + <MemberSignature Language="C#" Value="public Mono.DocTest.Generic.MyList<T> GetValues<T> (T value) where T : struct;" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class Mono.DocTest.Generic.MyList`1<!!T> GetValues<struct .ctor (class System.ValueType) T>(!!T value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Generic.MyList<T></ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>NotNullableValueTypeConstraint</ParameterAttribute> + <BaseTypeName>System.ValueType</BaseTypeName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="value" Type="T" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Process"> + <MemberSignature Language="C#" Value="public void Process (Mono.DocTest.Generic.MyList<int> list);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Process(class Mono.DocTest.Generic.MyList`1<int32> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="Mono.DocTest.Generic.MyList<System.Int32>" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Process"> + <MemberSignature Language="C#" Value="public void Process (System.Collections.Generic.List<int> list);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Process(class System.Collections.Generic.List`1<int32> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="System.Collections.Generic.List<System.Int32>" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Process"> + <MemberSignature Language="C#" Value="public void Process (System.Collections.Generic.List<Predicate<int>> list);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Process(class System.Collections.Generic.List`1<class System.Predicate`1<int32>> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="System.Collections.Generic.List<System.Predicate<System.Int32>>" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Process<T>"> + <MemberSignature Language="C#" Value="public void Process<T> (System.Collections.Generic.List<Predicate<T>> list);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Process<T>(class System.Collections.Generic.List`1<class System.Predicate`1<!!T>> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="list" Type="System.Collections.Generic.List<System.Predicate<T>>" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="UseHelper<T,U,V>"> + <MemberSignature Language="C#" Value="public void UseHelper<T,U,V> (Mono.DocTest.Generic.MyList<T>.Helper<U,V> helper);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void UseHelper<T, U, V>(class Mono.DocTest.Generic.MyList`1/Helper`2<!!T, !!U, !!V> helper) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + <TypeParameter Name="U" /> + <TypeParameter Name="V" /> + </TypeParameters> + <Parameters> + <Parameter Name="helper" Type="Mono.DocTest.Generic.MyList<T>+Helper<U,V>" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <typeparam name="U">To be added.</typeparam> + <typeparam name="V">To be added.</typeparam> + <param name="helper">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+Del.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+Del.xml new file mode 100644 index 00000000..89e90baf --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+Del.xml @@ -0,0 +1,23 @@ +<Type Name="Widget+Del" FullName="Mono.DocTest.Widget+Del"> + <TypeSignature Language="C#" Value="public delegate void Widget.Del(int i);" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi sealed Widget/Del extends System.MulticastDelegate" /> + <TypeSignature Language="C++ CX" Value="public: delegate void Widget::Del(int i);" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Docs> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+Direction.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+Direction.xml new file mode 100644 index 00000000..0d001902 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+Direction.xml @@ -0,0 +1,87 @@ +<Type Name="Widget+Direction" FullName="Mono.DocTest.Widget+Direction"> + <TypeSignature Language="C#" Value="protected internal enum Widget.Direction" /> + <TypeSignature Language="ILAsm" Value=".class nested protected auto ansi sealed Widget/Direction extends System.Enum" /> + <TypeSignature Language="C++ CX" Value="public protected enum class Widget::Direction" /> + <AssemblyInfo> + <AssemblyName>DocTest</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="East"> + <MemberSignature Language="C#" Value="East" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Widget/Direction East = int32(2)" /> + <MemberSignature Language="C++ CX" Value="East" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Direction</ReturnType> + </ReturnValue> + <MemberValue>2</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="North"> + <MemberSignature Language="C#" Value="North" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Widget/Direction North = int32(0)" /> + <MemberSignature Language="C++ CX" Value="North" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Direction</ReturnType> + </ReturnValue> + <MemberValue>0</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="South"> + <MemberSignature Language="C#" Value="South" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Widget/Direction South = int32(1)" /> + <MemberSignature Language="C++ CX" Value="South" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Direction</ReturnType> + </ReturnValue> + <MemberValue>1</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="West"> + <MemberSignature Language="C#" Value="West" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Widget/Direction West = int32(3)" /> + <MemberSignature Language="C++ CX" Value="West" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Direction</ReturnType> + </ReturnValue> + <MemberValue>3</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+IMenuItem.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+IMenuItem.xml new file mode 100644 index 00000000..1d4952d8 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+IMenuItem.xml @@ -0,0 +1,50 @@ +<Type Name="Widget+IMenuItem" FullName="Mono.DocTest.Widget+IMenuItem"> + <TypeSignature Language="C#" Value="public interface Widget.IMenuItem" /> + <TypeSignature Language="ILAsm" Value=".class nested public interface auto ansi abstract Widget/IMenuItem" /> + <TypeSignature Language="C++ CX" Value="public: interface class Widget::IMenuItem" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Interfaces /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="A"> + <MemberSignature Language="C#" Value="public void A ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void A() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 void A();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="B"> + <MemberSignature Language="C#" Value="public int B { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int32 B" /> + <MemberSignature Language="C++ CX" Value="public:
 property int B { int get(); void set(int value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</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-cppcx2/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml new file mode 100644 index 00000000..312c8d46 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml @@ -0,0 +1,32 @@ +<Type Name="Widget+NestedClass+Double+Triple+Quadruple" FullName="Mono.DocTest.Widget+NestedClass+Double+Triple+Quadruple"> + <TypeSignature Language="C#" Value="public class Widget.NestedClass.Double.Triple.Quadruple" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit Widget/NestedClass/Double/Triple/Quadruple extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 Quadruple ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 Quadruple();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass+Double+Triple.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass+Double+Triple.xml new file mode 100644 index 00000000..1eeee106 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass+Double+Triple.xml @@ -0,0 +1,32 @@ +<Type Name="Widget+NestedClass+Double+Triple" FullName="Mono.DocTest.Widget+NestedClass+Double+Triple"> + <TypeSignature Language="C#" Value="public class Widget.NestedClass.Double.Triple" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit Widget/NestedClass/Double/Triple extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 Triple ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 Triple();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass+Double.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass+Double.xml new file mode 100644 index 00000000..113c7779 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass+Double.xml @@ -0,0 +1,32 @@ +<Type Name="Widget+NestedClass+Double" FullName="Mono.DocTest.Widget+NestedClass+Double"> + <TypeSignature Language="C#" Value="public class Widget.NestedClass.Double" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit Widget/NestedClass/Double extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 Double ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 Double();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass.xml new file mode 100644 index 00000000..53370a54 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass.xml @@ -0,0 +1,67 @@ +<Type Name="Widget+NestedClass" FullName="Mono.DocTest.Widget+NestedClass"> + <TypeSignature Language="C#" Value="public class Widget.NestedClass" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit Widget/NestedClass extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 NestedClass ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 NestedClass();" /> + <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="M"> + <MemberSignature Language="C#" Value="public void M (int i);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M(int32 i) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 void M(int i);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="value"> + <MemberSignature Language="C#" Value="public int value;" /> + <MemberSignature Language="ILAsm" Value=".field public int32 value" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass`1.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass`1.xml new file mode 100644 index 00000000..b1f393be --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget+NestedClass`1.xml @@ -0,0 +1,71 @@ +<Type Name="Widget+NestedClass<T>" FullName="Mono.DocTest.Widget+NestedClass<T>"> + <TypeSignature Language="C#" Value="public class Widget.NestedClass<T>" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit Widget/NestedClass`1<T> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="T">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public NestedClass ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 NestedClass();" /> + <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="M"> + <MemberSignature Language="C#" Value="public void M (int i);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M(int32 i) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 void M(int i);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="value"> + <MemberSignature Language="C#" Value="public int value;" /> + <MemberSignature Language="ILAsm" Value=".field public int32 value" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget.xml new file mode 100644 index 00000000..3e773ca9 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget.xml @@ -0,0 +1,873 @@ +<Type Name="Widget" FullName="Mono.DocTest.Widget"> + <TypeSignature Language="C#" Value="public class Widget : Mono.DocTest.IProcess" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Widget extends System.Object implements class Mono.DocTest.IProcess" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces> + <Interface> + <InterfaceName>Mono.DocTest.IProcess</InterfaceName> + </Interface> + </Interfaces> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public Widget ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 Widget();" /> + <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 Widget (Converter<string,string> c);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Converter`2<string, string> c) cil managed" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters> + <Parameter Name="c" Type="System.Converter<System.String,System.String>" /> + </Parameters> + <Docs> + <param name="c">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public Widget (string s);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string s) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 Widget(Platform::String ^ s);" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters> + <Parameter Name="s" Type="System.String" /> + </Parameters> + <Docs> + <param name="s">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="AnEvent"> + <MemberSignature Language="C#" Value="public event Mono.DocTest.Widget.Del AnEvent;" /> + <MemberSignature Language="ILAsm" Value=".event class Mono.DocTest.Widget/Del AnEvent" /> + <MemberSignature Language="C++ CX" Value="public:
 event Mono::DocTest::Widget::Del ^ AnEvent;" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("Del event")</AttributeName> + </Attribute> + <Attribute> + <AttributeName>add: Mono.DocTest.Doc("Del add accessor")</AttributeName> + </Attribute> + <Attribute> + <AttributeName>remove: Mono.DocTest.Doc("Del remove accessor")</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Del</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="AnotherEvent"> + <MemberSignature Language="C#" Value="protected event Mono.DocTest.Widget.Del AnotherEvent;" /> + <MemberSignature Language="ILAsm" Value=".event class Mono.DocTest.Widget/Del AnotherEvent" /> + <MemberSignature Language="C++ CX" Value="protected:
 event Mono::DocTest::Widget::Del ^ AnotherEvent;" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Del</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="array1"> + <MemberSignature Language="C#" Value="public long[] array1;" /> + <MemberSignature Language="ILAsm" Value=".field public int64[] array1" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int64[]</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="array2"> + <MemberSignature Language="C#" Value="public Mono.DocTest.Widget[,] array2;" /> + <MemberSignature Language="ILAsm" Value=".field public class Mono.DocTest.Widget[,] array2" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget[,]</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="classCtorError"> + <MemberSignature Language="C#" Value="public static readonly string[] classCtorError;" /> + <MemberSignature Language="ILAsm" Value=".field public static initonly string[] classCtorError" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String[]</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Default"> + <MemberSignature Language="C#" Value="public void Default (int a = 1, int b = 2);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Default(int32 a, int32 b) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="a" Type="System.Int32" /> + <Parameter Name="b" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="a">To be added.</param> + <param name="b">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Default"> + <MemberSignature Language="C#" Value="public void Default (string a = "a", char b = 'b');" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Default(string a, char b) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="a" Type="System.String" /> + <Parameter Name="b" Type="System.Char" /> + </Parameters> + <Docs> + <param name="a">To be added.</param> + <param name="b">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="defaultColor"> + <MemberSignature Language="C#" Value="protected static Mono.DocTest.Color defaultColor;" /> + <MemberSignature Language="ILAsm" Value=".field family static valuetype Mono.DocTest.Color defaultColor" /> + <MemberSignature Language="C++ CX" Value="protected: static Mono::DocTest::Color defaultColor;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Dynamic0"> + <MemberSignature Language="C#" Value="public dynamic Dynamic0 (dynamic a, dynamic b);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object Dynamic0(object a, object b) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 Platform::Object ^ Dynamic0(Platform::Object ^ a, Platform::Object ^ b);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Object</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="a" Type="System.Object" /> + <Parameter Name="b" Type="System.Object" /> + </Parameters> + <Docs> + <param name="a">To be added.</param> + <param name="b">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Dynamic1"> + <MemberSignature Language="C#" Value="public System.Collections.Generic.Dictionary<dynamic,string> Dynamic1 (System.Collections.Generic.Dictionary<dynamic,string> value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Collections.Generic.Dictionary`2<object, string> Dynamic1(class System.Collections.Generic.Dictionary`2<object, string> value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.Dictionary<System.Object,System.String></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Collections.Generic.Dictionary<System.Object,System.String>" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Dynamic2"> + <MemberSignature Language="C#" Value="public Func<string,dynamic> Dynamic2 (Func<string,dynamic> value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Func`2<string, object> Dynamic2(class System.Func`2<string, object> value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Func<System.String,System.Object></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Func<System.String,System.Object>" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Dynamic3"> + <MemberSignature Language="C#" Value="public Func<Func<string,dynamic>,Func<dynamic,string>> Dynamic3 (Func<Func<string,dynamic>,Func<dynamic,string>> value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Func`2<class System.Func`2<string, object>, class System.Func`2<object, string>> Dynamic3(class System.Func`2<class System.Func`2<string, object>, class System.Func`2<object, string>> value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Func<System.Func<System.String,System.Object>,System.Func<System.Object,System.String>></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Func<System.Func<System.String,System.Object>,System.Func<System.Object,System.String>>" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="DynamicE1"> + <MemberSignature Language="C#" Value="public event Func<dynamic> DynamicE1;" /> + <MemberSignature Language="ILAsm" Value=".event class System.Func`1<object> DynamicE1" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>System.Obsolete("why not")</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Func<System.Object></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="DynamicE2"> + <MemberSignature Language="C#" Value="public event Func<dynamic> DynamicE2;" /> + <MemberSignature Language="ILAsm" Value=".event class System.Func`1<object> DynamicE2" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Func<System.Object></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="DynamicF"> + <MemberSignature Language="C#" Value="public Func<Func<string,dynamic,string>,Func<dynamic,Func<dynamic>,string>> DynamicF;" /> + <MemberSignature Language="ILAsm" Value=".field public class System.Func`2<class System.Func`3<string, object, string>, class System.Func`3<object, class System.Func`1<object>, string>> DynamicF" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Func<System.Func<System.String,System.Object,System.String>,System.Func<System.Object,System.Func<System.Object>,System.String>></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="DynamicP"> + <MemberSignature Language="C#" Value="public Func<Func<string,dynamic,string>,Func<dynamic,Func<dynamic>,string>> DynamicP { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance class System.Func`2<class System.Func`3<string, object, string>, class System.Func`3<object, class System.Func`1<object>, string>> DynamicP" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Func<System.Func<System.String,System.Object,System.String>,System.Func<System.Object,System.Func<System.Object>,System.String>></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Height"> + <MemberSignature Language="C#" Value="protected long Height { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int64 Height" /> + <MemberSignature Language="C++ CX" Value="protected:
 property long long Height { long long get(); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("Height property")</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Int64</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Item"> + <MemberSignature Language="C#" Value="public int this[int i] { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int32 Item(int32)" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("Item property")</AttributeName> + </Attribute> + <Attribute> + <AttributeName>set: Mono.DocTest.Doc("Item property set accessor")</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Item"> + <MemberSignature Language="C#" Value="public int this[string s, int i] { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int32 Item(string, int32)" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="s" Type="System.String" /> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="s">To be added.</param> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M0"> + <MemberSignature Language="C#" Value="public static void M0 ();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void M0() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 static void M0();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M1"> + <MemberSignature Language="C#" Value="public void M1 (char c, out float f, ref Mono.DocTest.DocValueType v);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M1(char c, [out] float32& f, valuetype Mono.DocTest.DocValueType& v) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("normal DocAttribute", Field=true)</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("return:DocAttribute", Property=typeof(Mono.DocTest.Widget))</AttributeName> + </Attribute> + </Attributes> + </ReturnValue> + <Parameters> + <Parameter Name="c" Type="System.Char"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("c", FlagsEnum=System.ConsoleModifiers.Alt | System.ConsoleModifiers.Control)</AttributeName> + </Attribute> + </Attributes> + </Parameter> + <Parameter Name="f" Type="System.Single&" RefType="out"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("f", NonFlagsEnum=Mono.DocTest.Color.Red)</AttributeName> + </Attribute> + </Attributes> + </Parameter> + <Parameter Name="v" Type="Mono.DocTest.DocValueType&" RefType="ref"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("v")</AttributeName> + </Attribute> + </Attributes> + </Parameter> + </Parameters> + <Docs> + <param name="c">To be added.</param> + <param name="f">To be added.</param> + <param name="v">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M2"> + <MemberSignature Language="C#" Value="public void M2 (short[] x1, int[,] x2, long[][] x3);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M2(int16[] x1, int32[,] x2, int64[][] x3) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x1" Type="System.Int16[]" /> + <Parameter Name="x2" Type="System.Int32[,]" /> + <Parameter Name="x3" Type="System.Int64[][]" /> + </Parameters> + <Docs> + <param name="x1">To be added.</param> + <param name="x2">To be added.</param> + <param name="x3">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M3"> + <MemberSignature Language="C#" Value="protected void M3 (long[][] x3, Mono.DocTest.Widget[,,][] x4);" /> + <MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void M3(int64[][] x3, class Mono.DocTest.Widget[,,][] x4) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x3" Type="System.Int64[][]" /> + <Parameter Name="x4" Type="Mono.DocTest.Widget[,,][]" /> + </Parameters> + <Docs> + <param name="x3">To be added.</param> + <param name="x4">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M4"> + <MemberSignature Language="C#" Value="protected void M4 (char* pc, Mono.DocTest.Color** ppf);" /> + <MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void M4(char* pc, valuetype Mono.DocTest.Color** ppf) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="pc" Type="System.Char*" /> + <Parameter Name="ppf" Type="Mono.DocTest.Color**" /> + </Parameters> + <Docs> + <param name="pc">To be added.</param> + <param name="ppf">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M5"> + <MemberSignature Language="C#" Value="protected void M5 (void* pv, double*[,][] pd);" /> + <MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void M5(void* pv, float64*[,][] pd) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="pv" Type="System.Void*" /> + <Parameter Name="pd" Type="System.Double*[,][]" /> + </Parameters> + <Docs> + <param name="pv">To be added.</param> + <param name="pd">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M6"> + <MemberSignature Language="C#" Value="protected void M6 (int i, params object[] args);" /> + <MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void M6(int32 i, object[] args) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + <Parameter Name="args" Type="System.Object[]"> + <Attributes> + <Attribute> + <AttributeName>System.ParamArray</AttributeName> + </Attribute> + </Attributes> + </Parameter> + </Parameters> + <Docs> + <param name="i">To be added.</param> + <param name="args">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M7"> + <MemberSignature Language="C#" Value="public void M7 (Mono.DocTest.Widget.NestedClass.Double.Triple.Quadruple a);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M7(class Mono.DocTest.Widget/NestedClass/Double/Triple/Quadruple a) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="a" Type="Mono.DocTest.Widget+NestedClass+Double+Triple+Quadruple" /> + </Parameters> + <Docs> + <param name="a">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="message"> + <MemberSignature Language="C#" Value="public string message;" /> + <MemberSignature Language="ILAsm" Value=".field public string message" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="monthlyAverage"> + <MemberSignature Language="C#" Value="protected internal readonly double monthlyAverage;" /> + <MemberSignature Language="ILAsm" Value=".field familyorassembly initonly float64 monthlyAverage" /> + <MemberSignature Language="C++ CX" Value="protected public: initonly double monthlyAverage;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_Addition"> + <MemberSignature Language="C#" Value="public static Mono.DocTest.Widget operator + (Mono.DocTest.Widget x1, Mono.DocTest.Widget x2);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname class Mono.DocTest.Widget op_Addition(class Mono.DocTest.Widget x1, class Mono.DocTest.Widget x2) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x1" Type="Mono.DocTest.Widget" /> + <Parameter Name="x2" Type="Mono.DocTest.Widget" /> + </Parameters> + <Docs> + <param name="x1">To be added.</param> + <param name="x2">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_Division"> + <MemberSignature Language="C#" Value="public static Mono.DocTest.Widget op_Division;" /> + <MemberSignature Language="ILAsm" Value=".field public static class Mono.DocTest.Widget op_Division" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_Explicit"> + <MemberSignature Language="C#" Value="public static explicit operator int (Mono.DocTest.Widget x);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname int32 op_Explicit(class Mono.DocTest.Widget x) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x" Type="Mono.DocTest.Widget" /> + </Parameters> + <Docs> + <param name="x">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_Implicit"> + <MemberSignature Language="C#" Value="public static implicit operator long (Mono.DocTest.Widget x);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname int64 op_Implicit(class Mono.DocTest.Widget x) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int64</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x" Type="Mono.DocTest.Widget" /> + </Parameters> + <Docs> + <param name="x">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_UnaryPlus"> + <MemberSignature Language="C#" Value="public static Mono.DocTest.Widget operator + (Mono.DocTest.Widget x);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname class Mono.DocTest.Widget op_UnaryPlus(class Mono.DocTest.Widget x) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x" Type="Mono.DocTest.Widget" /> + </Parameters> + <Docs> + <param name="x">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="pCount"> + <MemberSignature Language="C#" Value="public int* pCount;" /> + <MemberSignature Language="ILAsm" Value=".field public int32* pCount" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32*</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="PI"> + <MemberSignature Language="C#" Value="protected internal const double PI = 3.14159;" /> + <MemberSignature Language="ILAsm" Value=".field familyorassembly static literal float64 PI = (3.14159)" /> + <MemberSignature Language="C++ CX" Value="protected public: double PI = 3.14159;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</ReturnType> + </ReturnValue> + <MemberValue>3.14159</MemberValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ppValues"> + <MemberSignature Language="C#" Value="public float** ppValues;" /> + <MemberSignature Language="ILAsm" Value=".field public float32** ppValues" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single**</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Width"> + <MemberSignature Language="C#" Value="public int Width { get; protected set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int32 Width" /> + <MemberSignature Language="C++ CX" Value="public: property int Width { public:
int get(); protected:
 void set(int value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("Width property")</AttributeName> + </Attribute> + <Attribute> + <AttributeName>get: Mono.DocTest.Doc("Width get accessor")</AttributeName> + </Attribute> + <Attribute> + <AttributeName>set: Mono.DocTest.Doc("Width set accessor")</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="X"> + <MemberSignature Language="C#" Value="protected internal short X { set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int16 X" /> + <MemberSignature Language="C++ CX" Value="protected public:
 property short X { void set(short value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int16</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Y"> + <MemberSignature Language="C#" Value="protected internal double Y { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance float64 Y" /> + <MemberSignature Language="C++ CX" Value="protected public:
 property double Y { double get(); void set(double value); };" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</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-cppcx2/NoNamespace.xml b/mdoc/Test/en.expected-cppcx2/NoNamespace.xml new file mode 100644 index 00000000..3e27ccd0 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/NoNamespace.xml @@ -0,0 +1,32 @@ +<Type Name="NoNamespace" FullName="NoNamespace"> + <TypeSignature Language="C#" Value="public class NoNamespace" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit NoNamespace extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 NoNamespace ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 NoNamespace();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/System/Action`1.xml b/mdoc/Test/en.expected-cppcx2/System/Action`1.xml new file mode 100644 index 00000000..7560590f --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/System/Action`1.xml @@ -0,0 +1,26 @@ +<Type Name="Action<T>" FullName="System.Action<T>"> + <TypeSignature Language="C#" Value="public delegate void Action<T>(T obj);" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Action`1<T> extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Parameters> + <Parameter Name="obj" Type="T" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="obj">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/System/Array.xml b/mdoc/Test/en.expected-cppcx2/System/Array.xml new file mode 100644 index 00000000..84358acc --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/System/Array.xml @@ -0,0 +1,110 @@ +<Type Name="Array" FullName="System.Array"> + <TypeSignature Language="C#" Value="public class Array" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Array extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 Array ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 Array();" /> + <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="AsReadOnly<T>"> + <MemberSignature Language="C#" Value="public static System.Collections.ObjectModel.ReadOnlyCollection<T> AsReadOnly<T> (T[] array);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.ObjectModel.ReadOnlyCollection`1<!!T> AsReadOnly<T>(!!T[] array) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.ObjectModel.ReadOnlyCollection<T></ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="array" Type="T[]" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="array">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ConvertAll<TInput,TOutput>"> + <MemberSignature Language="C#" Value="public static TOutput[] ConvertAll<TInput,TOutput> (TInput[] array, Converter<TInput,TOutput> converter);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TOutput[] ConvertAll<TInput, TOutput>(!!TInput[] array, class System.Converter`2<!!TInput, !!TOutput> converter) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>TOutput[]</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="TInput" /> + <TypeParameter Name="TOutput" /> + </TypeParameters> + <Parameters> + <Parameter Name="array" Type="TInput[]" /> + <Parameter Name="converter" Type="System.Converter<TInput,TOutput>" /> + </Parameters> + <Docs> + <typeparam name="TInput">To be added.</typeparam> + <typeparam name="TOutput">To be added.</typeparam> + <param name="array">To be added.</param> + <param name="converter">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Resize<T>"> + <MemberSignature Language="C#" Value="public static void Resize<T> (ref T[] array, int newSize);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Resize<T>(!!T[]& array, int32 newSize) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename T>
 static void Resize(Platform::Array <T> ^ & array, int newSize);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="array" Type="T[]&" RefType="ref" /> + <Parameter Name="newSize" Type="System.Int32" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="array">To be added.</param> + <param name="newSize">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/System/AsyncCallback.xml b/mdoc/Test/en.expected-cppcx2/System/AsyncCallback.xml new file mode 100644 index 00000000..deb06e91 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/System/AsyncCallback.xml @@ -0,0 +1,22 @@ +<Type Name="AsyncCallback" FullName="System.AsyncCallback"> + <TypeSignature Language="C#" Value="public delegate void AsyncCallback(IAsyncResult ar);" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed AsyncCallback extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Parameters> + <Parameter Name="ar" Type="System.IAsyncResult" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Docs> + <param name="ar">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/System/Environment+SpecialFolder.xml b/mdoc/Test/en.expected-cppcx2/System/Environment+SpecialFolder.xml new file mode 100644 index 00000000..6e6a9408 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/System/Environment+SpecialFolder.xml @@ -0,0 +1,16 @@ +<Type Name="Environment+SpecialFolder" FullName="System.Environment+SpecialFolder"> + <TypeSignature Language="C#" Value="public enum Environment.SpecialFolder" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi sealed Environment/SpecialFolder extends System.Enum" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 /> +</Type> diff --git a/mdoc/Test/en.expected-cppcx2/System/Environment.xml b/mdoc/Test/en.expected-cppcx2/System/Environment.xml new file mode 100644 index 00000000..ba2dfd0f --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/System/Environment.xml @@ -0,0 +1,71 @@ +<Type Name="Environment" FullName="System.Environment"> + <TypeSignature Language="C#" Value="public static class Environment" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit Environment extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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="GetFolderPath"> + <MemberSignature Language="C#" Value="public static string GetFolderPath (Environment.SpecialFolder folder);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig string GetFolderPath(valuetype System.Environment/SpecialFolder folder) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="folder" Type="System.Environment+SpecialFolder" /> + </Parameters> + <Docs> + <param name="folder">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="IsAligned<T>"> + <MemberSignature Language="C#" Value="public static bool IsAligned<T> (this T[] vect, int index) where T : struct;" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool IsAligned<struct .ctor (class System.ValueType) T>(!!T[] vect, int32 index) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename T>
 where T : value class[System::Runtime::CompilerServices::Extension]
 static bool IsAligned(Platform::Array <T> ^ vect, int index);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>NotNullableValueTypeConstraint</ParameterAttribute> + <BaseTypeName>System.ValueType</BaseTypeName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="vect" Type="T[]" RefType="this" /> + <Parameter Name="index" Type="System.Int32" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="vect">To be added.</param> + <param name="index">To be added.</param> + <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-cppcx2/index.xml b/mdoc/Test/en.expected-cppcx2/index.xml new file mode 100644 index 00000000..ccb98255 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/index.xml @@ -0,0 +1,225 @@ +<Overview> + <Assemblies> + <Assembly Name="DocTest" 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=""> + <Type Name="NoNamespace" Kind="Class" /> + </Namespace> + <Namespace Name="Mono.DocTest"> + <Type Name="Color" Kind="Enumeration" /> + <Type Name="D" Kind="Delegate" /> + <Type Name="DocAttribute" Kind="Class" /> + <Type Name="DocValueType" Kind="Structure" /> + <Type Name="IProcess" Kind="Interface" /> + <Type Name="UseLists" Kind="Class" /> + <Type Name="Widget" Kind="Class" /> + <Type Name="Widget+Del" Kind="Delegate" /> + <Type Name="Widget+Direction" Kind="Enumeration" /> + <Type Name="Widget+IMenuItem" Kind="Interface" /> + <Type Name="Widget+NestedClass" Kind="Class" /> + <Type Name="Widget+NestedClass`1" DisplayName="Widget+NestedClass<T>" Kind="Class" /> + <Type Name="Widget+NestedClass+Double" Kind="Class" /> + <Type Name="Widget+NestedClass+Double+Triple" Kind="Class" /> + <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> + </Namespace> + <Namespace Name="Mono.DocTest.Generic"> + <Type Name="Extensions" Kind="Class" /> + <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> + <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> + <Type Name="GenericBase`1+FooEventArgs" DisplayName="GenericBase<U>+FooEventArgs" Kind="Class" /> + <Type Name="GenericBase`1+NestedCollection" DisplayName="GenericBase<U>+NestedCollection" Kind="Class" /> + <Type Name="GenericBase`1+NestedCollection+Enumerator" DisplayName="GenericBase<U>+NestedCollection+Enumerator" Kind="Structure" /> + <Type Name="IFoo`1" DisplayName="IFoo<T>" Kind="Interface" /> + <Type Name="MyList`1" DisplayName="MyList<T>" Kind="Class" /> + <Type Name="MyList`1+Helper`2" DisplayName="MyList<T>+Helper<U,V>" Kind="Class" /> + <Type Name="MyList`2" DisplayName="MyList<A,B>" Kind="Class" /> + </Namespace> + <Namespace Name="System"> + <Type Name="Action`1" DisplayName="Action<T>" Kind="Delegate" /> + <Type Name="Array" Kind="Class" /> + <Type Name="AsyncCallback" Kind="Delegate" /> + <Type Name="Environment" Kind="Class" /> + <Type Name="Environment+SpecialFolder" Kind="Enumeration" /> + </Namespace> + </Types> + <Title>DocTest</Title> + <ExtensionMethods> + <ExtensionMethod> + <Targets> + <Target Type="T:Mono.DocTest.Generic.IFoo`1" /> + </Targets> + <Member MemberName="Bar<T>"> + <MemberSignature Language="C#" Value="public static void Bar<T> (this Mono.DocTest.Generic.IFoo<T> self, string s);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Bar<T>(class Mono.DocTest.Generic.IFoo`1<!!T> self, string s) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename T>
[System::Runtime::CompilerServices::Extension]
 static void Bar(Mono::DocTest::Generic::IFoo<T> ^ self, Platform::String ^ s);" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="Mono.DocTest.Generic.IFoo<T>" RefType="this" /> + <Parameter Name="s" Type="System.String" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <param name="s">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="Mono.DocTest.Generic.Extensions" Member="M:Mono.DocTest.Generic.Extensions.Bar``1(Mono.DocTest.Generic.IFoo{``0},System.String)" /> + </Member> + </ExtensionMethod> + <ExtensionMethod> + <Targets> + <Target Type="T:System.Collections.Generic.IEnumerable`1" /> + </Targets> + <Member MemberName="ForEach<T>"> + <MemberSignature Language="C#" Value="public static void ForEach<T> (this System.Collections.Generic.IEnumerable<T> self, Action<T> a);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void ForEach<T>(class System.Collections.Generic.IEnumerable`1<!!T> self, class System.Action`1<!!T> a) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="System.Collections.Generic.IEnumerable<T>" RefType="this" /> + <Parameter Name="a" Type="System.Action<T>" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <param name="a">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="Mono.DocTest.Generic.Extensions" Member="M:Mono.DocTest.Generic.Extensions.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})" /> + </Member> + </ExtensionMethod> + <ExtensionMethod> + <Targets> + <Target Type="T:System.Collections.Generic.IEnumerable`1" /> + </Targets> + <Member MemberName="ToDouble"> + <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable<double> ToDouble (this System.Collections.Generic.IEnumerable<int> list);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1<float64> ToDouble(class System.Collections.Generic.IEnumerable`1<int32> list) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerable<System.Double></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="System.Collections.Generic.IEnumerable<System.Int32>" RefType="this" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="Mono.DocTest.Generic.Extensions" Member="M:Mono.DocTest.Generic.Extensions.ToDouble(System.Collections.Generic.IEnumerable{System.Int32})" /> + </Member> + </ExtensionMethod> + <ExtensionMethod> + <Targets> + <Target Type="T:Mono.DocTest.Generic.IFoo`1" /> + </Targets> + <Member MemberName="ToDouble<T>"> + <MemberSignature Language="C#" Value="public static double ToDouble<T> (this T val) where T : Mono.DocTest.Generic.IFoo<T>;" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 ToDouble<(class Mono.DocTest.Generic.IFoo`1<!!T>) T>(!!T val) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename T>
 where T : Mono::DocTest::Generic::IFoo<T>[System::Runtime::CompilerServices::Extension]
 static double ToDouble(T val);" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Double</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T"> + <Constraints> + <InterfaceName>Mono.DocTest.Generic.IFoo<T></InterfaceName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="val" Type="T" RefType="this" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="val">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="Mono.DocTest.Generic.Extensions" Member="M:Mono.DocTest.Generic.Extensions.ToDouble``1(``0)" /> + </Member> + </ExtensionMethod> + <ExtensionMethod> + <Targets> + <Target Type="System.Object" /> + </Targets> + <Member MemberName="ToEnumerable<T>"> + <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable<T> ToEnumerable<T> (this T self);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1<!!T> ToEnumerable<T>(!!T self) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerable<T></ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="T" RefType="this" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="Mono.DocTest.Generic.Extensions" Member="M:Mono.DocTest.Generic.Extensions.ToEnumerable``1(``0)" /> + </Member> + </ExtensionMethod> + <ExtensionMethod> + <Targets> + <Target Type="T:System.Array" /> + </Targets> + <Member MemberName="IsAligned<T>"> + <MemberSignature Language="C#" Value="public static bool IsAligned<T> (this T[] vect, int index) where T : struct;" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool IsAligned<struct .ctor (class System.ValueType) T>(!!T[] vect, int32 index) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename T>
 where T : value class[System::Runtime::CompilerServices::Extension]
 static bool IsAligned(Platform::Array <T> ^ vect, int index);" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>NotNullableValueTypeConstraint</ParameterAttribute> + <BaseTypeName>System.ValueType</BaseTypeName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="vect" Type="T[]" RefType="this" /> + <Parameter Name="index" Type="System.Int32" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="vect">To be added.</param> + <param name="index">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="System.Environment" Member="M:System.Environment.IsAligned``1(``0[],System.Int32)" /> + </Member> + </ExtensionMethod> + </ExtensionMethods> +</Overview> diff --git a/mdoc/Test/en.expected-cppcx2/ns-.xml b/mdoc/Test/en.expected-cppcx2/ns-.xml new file mode 100644 index 00000000..36dfeb30 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/ns-.xml @@ -0,0 +1,6 @@ +<Namespace Name=""> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppcx2/ns-Mono.DocTest.Generic.xml b/mdoc/Test/en.expected-cppcx2/ns-Mono.DocTest.Generic.xml new file mode 100644 index 00000000..0d3e7924 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/ns-Mono.DocTest.Generic.xml @@ -0,0 +1,6 @@ +<Namespace Name="Mono.DocTest.Generic"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppcx2/ns-Mono.DocTest.xml b/mdoc/Test/en.expected-cppcx2/ns-Mono.DocTest.xml new file mode 100644 index 00000000..96ab3e78 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/ns-Mono.DocTest.xml @@ -0,0 +1,6 @@ +<Namespace Name="Mono.DocTest"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppcx2/ns-System.xml b/mdoc/Test/en.expected-cppcx2/ns-System.xml new file mode 100644 index 00000000..c9692742 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/ns-System.xml @@ -0,0 +1,6 @@ +<Namespace Name="System"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppwinrt/FrameworksIndex/One.xml b/mdoc/Test/en.expected-cppwinrt/FrameworksIndex/One.xml new file mode 100644 index 00000000..a60754a0 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt/FrameworksIndex/One.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<Framework Name="One"> + <Namespace Name="MyFramework.MyNamespace"> + <Type Name="MyFramework.MyNamespace.MyClass" Id="T:MyFramework.MyNamespace.MyClass"> + <Member Id="M:MyFramework.MyNamespace.MyClass.#ctor" /> + <Member Id="M:MyFramework.MyNamespace.MyClass.Hello(System.Int32)" /> + <Member Id="P:MyFramework.MyNamespace.MyClass.MyProperty" /> + <Member Id="P:MyFramework.MyNamespace.MyClass.OnlyInClassic" /> + </Type> + <Type Name="MyFramework.MyNamespace.MyClassExtensions" Id="T:MyFramework.MyNamespace.MyClassExtensions"> + <Member Id="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" /> + </Type> + </Namespace> + <Namespace Name="MyNamespace"> + <Type Name="MyNamespace.MyClass" Id="T:MyNamespace.MyClass"> + <Member Id="M:MyNamespace.MyClass.#ctor" /> + <Member Id="M:MyNamespace.MyClass.SomeMethod``1" /> + </Type> + </Namespace> +</Framework>
\ No newline at end of file diff --git a/mdoc/Test/en.expected-cppwinrt/FrameworksIndex/Two.xml b/mdoc/Test/en.expected-cppwinrt/FrameworksIndex/Two.xml new file mode 100644 index 00000000..b697626e --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt/FrameworksIndex/Two.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<Framework Name="Two"> + <Namespace Name="MyFramework.MyOtherNamespace"> + <Type Name="MyFramework.MyOtherNamespace.MyOtherClass" Id="T:MyFramework.MyOtherNamespace.MyOtherClass"> + <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.#ctor" /> + <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.Hello(System.Double)" /> + <Member Id="M:MyFramework.MyOtherNamespace.MyOtherClass.Hello(System.Int32)" /> + <Member Id="P:MyFramework.MyOtherNamespace.MyOtherClass.MyProperty" /> + </Type> + </Namespace> + <Namespace Name="MyNamespace"> + <Type Name="MyNamespace.MyClass" Id="T:MyNamespace.MyClass"> + <Member Id="M:MyNamespace.MyClass.#ctor" /> + <Member Id="M:MyNamespace.MyClass.SomeMethod``1" /> + </Type> + </Namespace> +</Framework>
\ No newline at end of file diff --git a/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClass.xml b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClass.xml new file mode 100644 index 00000000..54558ac8 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClass.xml @@ -0,0 +1,90 @@ +<Type Name="MyClass" FullName="MyFramework.MyNamespace.MyClass"> + <TypeSignature Language="C#" Value="public class MyClass" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyClass extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class MyClass" /> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</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" /> + <MemberSignature Language="C++ WINRT" Value=" MyClass();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Hello"> + <MemberSignature Language="C#" Value="public float Hello (int value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="float Hello(int value);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="MyProperty"> + <MemberSignature Language="C#" Value="public string MyProperty { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="OnlyInClassic"> + <MemberSignature Language="C#" Value="public double OnlyInClassic { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</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-cppwinrt/MyFramework.MyNamespace/MyClassExtensions.xml b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClassExtensions.xml new file mode 100644 index 00000000..afdd810f --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClassExtensions.xml @@ -0,0 +1,40 @@ +<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions"> + <TypeSignature Language="C#" Value="public static class MyClassExtensions" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="class MyClassExtensions abstract sealed" /> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</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="AnExtension"> + <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <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-cppwinrt/MyFramework.MyOtherNamespace/MyOtherClass.xml b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyOtherNamespace/MyOtherClass.xml new file mode 100644 index 00000000..ff58941a --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyOtherNamespace/MyOtherClass.xml @@ -0,0 +1,95 @@ +<Type Name="MyOtherClass" FullName="MyFramework.MyOtherNamespace.MyOtherClass"> + <TypeSignature Language="C#" Value="public class MyOtherClass" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyOtherClass extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class MyOtherClass" /> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</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 MyOtherClass ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" MyOtherClass();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Hello"> + <MemberSignature Language="C#" Value="public float Hello (double value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(float64 value) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="float Hello(double value);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Double" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Hello"> + <MemberSignature Language="C#" Value="public float Hello (int value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="float Hello(int value);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="MyProperty"> + <MemberSignature Language="C#" Value="public string MyProperty { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance string MyProperty" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</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-cppwinrt/MyNamespace/MyClass.xml b/mdoc/Test/en.expected-cppwinrt/MyNamespace/MyClass.xml new file mode 100644 index 00000000..8375e9d2 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt/MyNamespace/MyClass.xml @@ -0,0 +1,57 @@ +<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" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class MyClass" /> + <AssemblyInfo> + <AssemblyName>DocTest-addNonGeneric</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" /> + <MemberSignature Language="C++ WINRT" Value=" MyClass();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-addNonGeneric</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="SomeMethod<T>"> + <MemberSignature Language="C#" Value="public string SomeMethod<T> ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance string SomeMethod<T>() cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename T>
 std::wstring SomeMethod();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-addNonGeneric</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="T">To be added.</typeparam> + <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-cppwinrt/index.xml b/mdoc/Test/en.expected-cppwinrt/index.xml new file mode 100644 index 00000000..6abf1402 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt/index.xml @@ -0,0 +1,72 @@ +<Overview> + <Assemblies> + <Assembly Name="DocTest-DropNS-classic" 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> + <Assembly Name="DocTest-DropNS-classic-secondary" 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> + <Assembly Name="DocTest-addNonGeneric" 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="MyFramework.MyNamespace"> + <Type Name="MyClass" Kind="Class" /> + <Type Name="MyClassExtensions" Kind="Class" /> + </Namespace> + <Namespace Name="MyFramework.MyOtherNamespace"> + <Type Name="MyOtherClass" Kind="Class" /> + </Namespace> + <Namespace Name="MyNamespace"> + <Type Name="MyClass" Kind="Class" /> + </Namespace> + </Types> + <Title>Untitled</Title> + <ExtensionMethods> + <ExtensionMethod> + <Targets> + <Target Type="T:MyFramework.MyNamespace.MyClass" /> + </Targets> + <Member MemberName="AnExtension"> + <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" /> + </Member> + </ExtensionMethod> + </ExtensionMethods> +</Overview> diff --git a/mdoc/Test/en.expected-cppwinrt/ns-MyFramework.MyNamespace.xml b/mdoc/Test/en.expected-cppwinrt/ns-MyFramework.MyNamespace.xml new file mode 100644 index 00000000..74df75af --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt/ns-MyFramework.MyNamespace.xml @@ -0,0 +1,6 @@ +<Namespace Name="MyFramework.MyNamespace"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppwinrt/ns-MyFramework.MyOtherNamespace.xml b/mdoc/Test/en.expected-cppwinrt/ns-MyFramework.MyOtherNamespace.xml new file mode 100644 index 00000000..8bdef1c7 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt/ns-MyFramework.MyOtherNamespace.xml @@ -0,0 +1,6 @@ +<Namespace Name="MyFramework.MyOtherNamespace"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppwinrt/ns-MyNamespace.xml b/mdoc/Test/en.expected-cppwinrt/ns-MyNamespace.xml new file mode 100644 index 00000000..bd8d4316 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt/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-cppwinrt2/Mono.DocTest.Generic/Extensions.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/Extensions.xml new file mode 100644 index 00000000..1bf2ead6 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/Extensions.xml @@ -0,0 +1,141 @@ +<Type Name="Extensions" FullName="Mono.DocTest.Generic.Extensions"> + <TypeSignature Language="C#" Value="public static class Extensions" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit Extensions extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="class Extensions abstract sealed" /> + <AssemblyInfo> + <AssemblyName>DocTest</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="Bar<T>"> + <MemberSignature Language="C#" Value="public static void Bar<T> (this Mono.DocTest.Generic.IFoo<T> self, string s);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Bar<T>(class Mono.DocTest.Generic.IFoo`1<!!T> self, string s) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="Mono.DocTest.Generic.IFoo<T>" RefType="this" /> + <Parameter Name="s" Type="System.String" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <param name="s">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ForEach<T>"> + <MemberSignature Language="C#" Value="public static void ForEach<T> (this System.Collections.Generic.IEnumerable<T> self, Action<T> a);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void ForEach<T>(class System.Collections.Generic.IEnumerable`1<!!T> self, class System.Action`1<!!T> a) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="System.Collections.Generic.IEnumerable<T>" RefType="this" /> + <Parameter Name="a" Type="System.Action<T>" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <param name="a">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ToDouble"> + <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable<double> ToDouble (this System.Collections.Generic.IEnumerable<int> list);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1<float64> ToDouble(class System.Collections.Generic.IEnumerable`1<int32> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerable<System.Double></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="System.Collections.Generic.IEnumerable<System.Int32>" RefType="this" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ToDouble<T>"> + <MemberSignature Language="C#" Value="public static double ToDouble<T> (this T val) where T : Mono.DocTest.Generic.IFoo<T>;" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 ToDouble<(class Mono.DocTest.Generic.IFoo`1<!!T>) T>(!!T val) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T"> + <Constraints> + <InterfaceName>Mono.DocTest.Generic.IFoo<T></InterfaceName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="val" Type="T" RefType="this" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="val">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ToEnumerable<T>"> + <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable<T> ToEnumerable<T> (this T self);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1<!!T> ToEnumerable<T>(!!T self) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerable<T></ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="T" RefType="this" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <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-cppwinrt2/Mono.DocTest.Generic/Func`2.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/Func`2.xml new file mode 100644 index 00000000..2d8dcf09 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/Func`2.xml @@ -0,0 +1,64 @@ +<Type Name="Func<TArg,TRet>" FullName="Mono.DocTest.Generic.Func<TArg,TRet>"> + <TypeSignature Language="C#" Value="public delegate TRet Func<in TArg,out TRet>(TArg a) where TArg : Exception;" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Func`2<(class System.Exception) - TArg, + TRet> extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="TArg"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("arg!")</AttributeName> + </Attribute> + </Attributes> + <Constraints> + <ParameterAttribute>Contravariant</ParameterAttribute> + <BaseTypeName>System.Exception</BaseTypeName> + </Constraints> + </TypeParameter> + <TypeParameter Name="TRet"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("ret!")</AttributeName> + </Attribute> + </Attributes> + <Constraints> + <ParameterAttribute>Covariant</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("method")</AttributeName> + </Attribute> + </Attributes> + <Parameters> + <Parameter Name="a" Type="TArg"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("arg-actual")</AttributeName> + </Attribute> + </Attributes> + </Parameter> + </Parameters> + <ReturnValue> + <ReturnType>TRet</ReturnType> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("return", Field=false)</AttributeName> + </Attribute> + </Attributes> + </ReturnValue> + <Docs> + <typeparam name="TArg">To be added.</typeparam> + <typeparam name="TRet">To be added.</typeparam> + <param name="a">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml new file mode 100644 index 00000000..ca321ae4 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1+FooEventArgs.xml @@ -0,0 +1,35 @@ +<Type Name="GenericBase<U>+FooEventArgs" FullName="Mono.DocTest.Generic.GenericBase<U>+FooEventArgs"> + <TypeSignature Language="C#" Value="public class GenericBase<U>.FooEventArgs : EventArgs" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit GenericBase`1/FooEventArgs<U> extends System.EventArgs" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Base> + <BaseTypeName>System.EventArgs</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public FooEventArgs ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" FooEventArgs();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml new file mode 100644 index 00000000..5f23c02a --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1+NestedCollection+Enumerator.xml @@ -0,0 +1,21 @@ +<Type Name="GenericBase<U>+NestedCollection+Enumerator" FullName="Mono.DocTest.Generic.GenericBase<U>+NestedCollection+Enumerator"> + <TypeSignature Language="C#" Value="protected internal struct GenericBase<U>.NestedCollection.Enumerator" /> + <TypeSignature Language="ILAsm" Value=".class nested protected sequential ansi sealed beforefieldinit GenericBase`1/NestedCollection/Enumerator<U> extends System.ValueType" /> + <TypeSignature Language="C++ WINRT" Value="struct GenericBase<U>::NestedCollection::Enumerator" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Base> + <BaseTypeName>System.ValueType</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members /> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml new file mode 100644 index 00000000..94b96ef0 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1+NestedCollection.xml @@ -0,0 +1,36 @@ +<Type Name="GenericBase<U>+NestedCollection" FullName="Mono.DocTest.Generic.GenericBase<U>+NestedCollection"> + <TypeSignature Language="C#" Value="public class GenericBase<U>.NestedCollection" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit GenericBase`1/NestedCollection<U> extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class GenericBase<U>::NestedCollection" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <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 NestedCollection ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" NestedCollection();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1.xml new file mode 100644 index 00000000..0ba0b7aa --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1.xml @@ -0,0 +1,151 @@ +<Type Name="GenericBase<U>" FullName="Mono.DocTest.Generic.GenericBase<U>"> + <TypeSignature Language="C#" Value="public class GenericBase<U>" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit GenericBase`1<U> extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="template <typename U>
[Windows::Foundation::Metadata::WebHostHidden]
class GenericBase" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="U">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public GenericBase ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" GenericBase();" /> + <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="BaseMethod<S>"> + <MemberSignature Language="C#" Value="public U BaseMethod<S> (S genericParameter);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance !U BaseMethod<S>(!!S genericParameter) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename S>
 U BaseMethod(S genericParameter);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>U</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="S"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("S")</AttributeName> + </Attribute> + </Attributes> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="genericParameter" Type="S" /> + </Parameters> + <Docs> + <typeparam name="S">To be added.</typeparam> + <param name="genericParameter">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ConstField1"> + <MemberSignature Language="C#" Value="public const int ConstField1;" /> + <MemberSignature Language="ILAsm" Value=".field public static literal int32 ConstField1" /> + <MemberSignature Language="C++ WINRT" Value="int ConstField1;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ItemChanged"> + <MemberSignature Language="C#" Value="public event Action<Mono.DocTest.Generic.MyList<U>,Mono.DocTest.Generic.MyList<U>.Helper<U,U>> ItemChanged;" /> + <MemberSignature Language="ILAsm" Value=".event class System.Action`2<class Mono.DocTest.Generic.MyList`1<!U>, class Mono.DocTest.Generic.MyList`1/Helper`2<!U, !U, !U>> ItemChanged" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Action<Mono.DocTest.Generic.MyList<U>,Mono.DocTest.Generic.MyList<U>+Helper<U,U>></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="MyEvent"> + <MemberSignature Language="C#" Value="public event EventHandler<Mono.DocTest.Generic.GenericBase<U>.FooEventArgs> MyEvent;" /> + <MemberSignature Language="ILAsm" Value=".event class System.EventHandler`1<class Mono.DocTest.Generic.GenericBase`1/FooEventArgs<!U>> MyEvent" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.EventHandler<Mono.DocTest.Generic.GenericBase<U>+FooEventArgs></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_Explicit"> + <MemberSignature Language="C#" Value="public static explicit operator U (Mono.DocTest.Generic.GenericBase<U> list);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname !U op_Explicit(class Mono.DocTest.Generic.GenericBase`1<!U> list) cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" static explicit operator U(Mono::DocTest::Generic::GenericBase<U> const & list);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>U</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="Mono.DocTest.Generic.GenericBase<U>" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="StaticField1"> + <MemberSignature Language="C#" Value="public static readonly Mono.DocTest.Generic.GenericBase<U> StaticField1;" /> + <MemberSignature Language="ILAsm" Value=".field public static initonly class Mono.DocTest.Generic.GenericBase`1<!U> StaticField1" /> + <MemberSignature Language="C++ WINRT" Value="static initonly Mono::DocTest::Generic::GenericBase<U> StaticField1;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Generic.GenericBase<U></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/IFoo`1.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/IFoo`1.xml new file mode 100644 index 00000000..c3ed871d --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/IFoo`1.xml @@ -0,0 +1,47 @@ +<Type Name="IFoo<T>" FullName="Mono.DocTest.Generic.IFoo<T>"> + <TypeSignature Language="C#" Value="public interface IFoo<T>" /> + <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IFoo`1<T>" /> + <TypeSignature Language="C++ WINRT" Value="template <typename T>
__interface IFoo" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Interfaces /> + <Docs> + <typeparam name="T">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="Method<U>"> + <MemberSignature Language="C#" Value="public T Method<U> (T t, U u);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance !T Method<U>(!T t, !!U u) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U>
 T Method(T t, U u);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>T</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Parameters> + <Parameter Name="t" Type="T" /> + <Parameter Name="u" Type="U" /> + </Parameters> + <Docs> + <typeparam name="U">To be added.</typeparam> + <param name="t">To be added.</param> + <param name="u">To be added.</param> + <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-cppwinrt2/Mono.DocTest.Generic/MyList`1+Helper`2.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`1+Helper`2.xml new file mode 100644 index 00000000..bc6635e3 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`1+Helper`2.xml @@ -0,0 +1,64 @@ +<Type Name="MyList<T>+Helper<U,V>" FullName="Mono.DocTest.Generic.MyList<T>+Helper<U,V>"> + <TypeSignature Language="C#" Value="public class MyList<T>.Helper<U,V>" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit MyList`1/Helper`2<T, U, V> extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="template <typename U, typename V>
[Windows::Foundation::Metadata::WebHostHidden]
class MyList<T>::Helper" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="T" /> + <TypeParameter Name="U" /> + <TypeParameter Name="V" /> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="U">To be added.</typeparam> + <typeparam name="V">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public Helper ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" Helper();" /> + <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="UseT"> + <MemberSignature Language="C#" Value="public void UseT (T a, U b, V c);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void UseT(!T a, !U b, !V c) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void UseT(T a, U b, V c);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="a" Type="T" /> + <Parameter Name="b" Type="U" /> + <Parameter Name="c" Type="V" /> + </Parameters> + <Docs> + <param name="a">To be added.</param> + <param name="b">To be added.</param> + <param name="c">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`1.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`1.xml new file mode 100644 index 00000000..5497edfc --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`1.xml @@ -0,0 +1,211 @@ +<Type Name="MyList<T>" FullName="Mono.DocTest.Generic.MyList<T>"> + <TypeSignature Language="C#" Value="public class MyList<T> : Mono.DocTest.Generic.GenericBase<T>, System.Collections.Generic.IEnumerable<int[]>" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyList`1<T> extends Mono.DocTest.Generic.GenericBase`1<!T> implements class System.Collections.Generic.IEnumerable`1<int32[]>, class System.Collections.IEnumerable" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="T"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("Type Parameter!")</AttributeName> + </Attribute> + </Attributes> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>Mono.DocTest.Generic.GenericBase<T></BaseTypeName> + <BaseTypeArguments> + <BaseTypeArgument TypeParamName="U">T</BaseTypeArgument> + </BaseTypeArguments> + </Base> + <Interfaces> + <Interface> + <InterfaceName>System.Collections.Generic.IEnumerable<System.Int32[]></InterfaceName> + </Interface> + </Interfaces> + <Docs> + <typeparam name="T">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public MyList ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" MyList();" /> + <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="GetEnumerator"> + <MemberSignature Language="C#" Value="public System.Collections.Generic.IEnumerator<int[]> GetEnumerator ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Collections.Generic.IEnumerator`1<int32[]> GetEnumerator() cil managed" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.IEnumerable`1.GetEnumerator</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerator<System.Int32[]></ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="GetHelper<U,V>"> + <MemberSignature Language="C#" Value="public Mono.DocTest.Generic.MyList<T>.Helper<U,V> GetHelper<U,V> ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class Mono.DocTest.Generic.MyList`1/Helper`2<!T, !!U, !!V> GetHelper<U, V>() cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U, typename V>
 Mono::DocTest::Generic::MyList<T>::Helper<U, V> GetHelper();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Generic.MyList<T>+Helper<U,V></ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + <TypeParameter Name="V" /> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="U">To be added.</typeparam> + <typeparam name="V">To be added.</typeparam> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Method<U>"> + <MemberSignature Language="C#" Value="public void Method<U> (T t, U u);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Method<U>(!T t, !!U u) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U>
 void Method(T t, U u);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Parameters> + <Parameter Name="t" Type="T" /> + <Parameter Name="u" Type="U" /> + </Parameters> + <Docs> + <typeparam name="U">To be added.</typeparam> + <param name="t">To be added.</param> + <param name="u">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="RefMethod<U>"> + <MemberSignature Language="C#" Value="public void RefMethod<U> (ref T t, ref U u);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void RefMethod<U>(!T& t, !!U& u) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U>
 void RefMethod(T & t, U & u);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Parameters> + <Parameter Name="t" Type="T&" RefType="ref" /> + <Parameter Name="u" Type="U&" RefType="ref" /> + </Parameters> + <Docs> + <typeparam name="U">To be added.</typeparam> + <param name="t">To be added.</param> + <param name="u">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.IEnumerable.GetEnumerator"> + <MemberSignature Language="C#" Value="System.Collections.IEnumerator IEnumerable.GetEnumerator ();" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() cil managed" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.IEnumerable.GetEnumerator</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.IEnumerator</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Test"> + <MemberSignature Language="C#" Value="public void Test (T t);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Test(!T t) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void Test(T t);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="t" Type="T" /> + </Parameters> + <Docs> + <param name="t">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="UseHelper<U,V>"> + <MemberSignature Language="C#" Value="public void UseHelper<U,V> (Mono.DocTest.Generic.MyList<T>.Helper<U,V> helper);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void UseHelper<U, V>(class Mono.DocTest.Generic.MyList`1/Helper`2<!T, !!U, !!V> helper) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U, typename V>
 void UseHelper(Mono::DocTest::Generic::MyList<T>::Helper<U, V> const & helper);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + <TypeParameter Name="V" /> + </TypeParameters> + <Parameters> + <Parameter Name="helper" Type="Mono.DocTest.Generic.MyList<T>+Helper<U,V>" /> + </Parameters> + <Docs> + <typeparam name="U">To be added.</typeparam> + <typeparam name="V">To be added.</typeparam> + <param name="helper">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`2.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`2.xml new file mode 100644 index 00000000..0b76c4a6 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`2.xml @@ -0,0 +1,438 @@ +<Type Name="MyList<A,B>" FullName="Mono.DocTest.Generic.MyList<A,B>"> + <TypeSignature Language="C#" Value="public class MyList<A,B> : Mono.DocTest.Generic.GenericBase<System.Collections.Generic.Dictionary<A,B>>, Mono.DocTest.Generic.IFoo<A>, System.Collections.Generic.ICollection<A>, System.Collections.Generic.IEnumerable<A>, System.Collections.Generic.IEnumerator<A> where A : class, IList<B>, new() where B : class, A" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit MyList`2<class .ctor (class System.Collections.Generic.IList`1<!B>) A, class (!A) B> extends Mono.DocTest.Generic.GenericBase`1<class System.Collections.Generic.Dictionary`2<!A, !B>> implements class Mono.DocTest.Generic.IFoo`1<!A>, class System.Collections.Generic.ICollection`1<!A>, class System.Collections.Generic.IEnumerable`1<!A>, class System.Collections.Generic.IEnumerator`1<!A>, class System.Collections.IEnumerable, class System.Collections.IEnumerator, class System.IDisposable" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="A"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + <InterfaceName>System.Collections.Generic.IList<B></InterfaceName> + </Constraints> + </TypeParameter> + <TypeParameter Name="B"> + <Constraints> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + <BaseTypeName>A</BaseTypeName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>Mono.DocTest.Generic.GenericBase<System.Collections.Generic.Dictionary<A,B>></BaseTypeName> + <BaseTypeArguments> + <BaseTypeArgument TypeParamName="U">System.Collections.Generic.Dictionary<A,B></BaseTypeArgument> + </BaseTypeArguments> + </Base> + <Interfaces> + <Interface> + <InterfaceName>Mono.DocTest.Generic.IFoo<A></InterfaceName> + </Interface> + <Interface> + <InterfaceName>System.Collections.Generic.ICollection<A></InterfaceName> + </Interface> + <Interface> + <InterfaceName>System.Collections.Generic.IEnumerable<A></InterfaceName> + </Interface> + <Interface> + <InterfaceName>System.Collections.Generic.IEnumerator<A></InterfaceName> + </Interface> + </Interfaces> + <Docs> + <typeparam name="A">To be added.</typeparam> + <typeparam name="B">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public MyList ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" MyList();" /> + <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="CopyTo"> + <MemberSignature Language="C#" Value="public void CopyTo (A[] array, int arrayIndex);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void CopyTo(!A[] array, int32 arrayIndex) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void CopyTo(std::Array <A> const & array, int arrayIndex);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="array" Type="A[]" /> + <Parameter Name="arrayIndex" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="array">To be added.</param> + <param name="arrayIndex">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Count"> + <MemberSignature Language="C#" Value="public int Count { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int32 Count" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:System.Collections.Generic.ICollection`1.Count</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Current"> + <MemberSignature Language="C#" Value="public A Current { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance !A Current" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:System.Collections.Generic.IEnumerator`1.Current</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>A</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Dispose"> + <MemberSignature Language="C#" Value="public void Dispose ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Dispose() cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void Dispose();" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.IDisposable.Dispose</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Foo"> + <MemberSignature Language="C#" Value="public System.Collections.Generic.KeyValuePair<System.Collections.Generic.IEnumerable<A>,System.Collections.Generic.IEnumerable<B>> Foo ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance valuetype System.Collections.Generic.KeyValuePair`2<class System.Collections.Generic.IEnumerable`1<!A>, class System.Collections.Generic.IEnumerable`1<!B>> Foo() cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.KeyValuePair<System.Collections.Generic.IEnumerable<A>,System.Collections.Generic.IEnumerable<B>></ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="GetEnumerator"> + <MemberSignature Language="C#" Value="public System.Collections.Generic.List<A>.Enumerator GetEnumerator ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance valuetype System.Collections.Generic.List`1/Enumerator<!A> GetEnumerator() cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.List<A>+Enumerator</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Mono.DocTest.Generic.IFoo<A>.Method<U>"> + <MemberSignature Language="C#" Value="A IFoo<A>.Method<U> (A a, U u);" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance !A Mono.DocTest.Generic.IFoo<A>.Method<U>(!A a, !!U u) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U>
 A Mono.DocTest.Generic.IFoo<A>.Method(A a, U u);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:Mono.DocTest.Generic.IFoo`1.Method``1(`0,``0)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>A</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="U" /> + </TypeParameters> + <Parameters> + <Parameter Name="a" Type="A" /> + <Parameter Name="u" Type="U" /> + </Parameters> + <Docs> + <typeparam name="U">To be added.</typeparam> + <param name="a">To be added.</param> + <param name="u">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="MoveNext"> + <MemberSignature Language="C#" Value="public bool MoveNext ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool MoveNext() cil managed" /> + <MemberSignature Language="C++ WINRT" Value="bool MoveNext();" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.IEnumerator.MoveNext</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Reset"> + <MemberSignature Language="C#" Value="public void Reset ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Reset() cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void Reset();" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.IEnumerator.Reset</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.ICollection<A>.Add"> + <MemberSignature Language="C#" Value="void ICollection<A>.Add (A item);" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Collections.Generic.ICollection<A>.Add(!A item) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void System.Collections.Generic.ICollection<A>.Add(A item);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.ICollection`1.Add(`0)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="item" Type="A" /> + </Parameters> + <Docs> + <param name="item">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.ICollection<A>.Clear"> + <MemberSignature Language="C#" Value="void ICollection<A>.Clear ();" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Collections.Generic.ICollection<A>.Clear() cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void System.Collections.Generic.ICollection<A>.Clear();" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.ICollection`1.Clear</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.ICollection<A>.Contains"> + <MemberSignature Language="C#" Value="bool ICollection<A>.Contains (A item);" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance bool System.Collections.Generic.ICollection<A>.Contains(!A item) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="bool System.Collections.Generic.ICollection<A>.Contains(A item);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.ICollection`1.Contains(`0)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="item" Type="A" /> + </Parameters> + <Docs> + <param name="item">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.ICollection<A>.IsReadOnly"> + <MemberSignature Language="C#" Value="bool System.Collections.Generic.ICollection<A>.IsReadOnly { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance bool System.Collections.Generic.ICollection<A>.IsReadOnly" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:System.Collections.Generic.ICollection`1.IsReadOnly</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.ICollection<A>.Remove"> + <MemberSignature Language="C#" Value="bool ICollection<A>.Remove (A item);" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance bool System.Collections.Generic.ICollection<A>.Remove(!A item) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="bool System.Collections.Generic.ICollection<A>.Remove(A item);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.ICollection`1.Remove(`0)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="item" Type="A" /> + </Parameters> + <Docs> + <param name="item">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.IEnumerable<A>.GetEnumerator"> + <MemberSignature Language="C#" Value="System.Collections.Generic.IEnumerator<A> IEnumerable<A>.GetEnumerator ();" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.Generic.IEnumerator`1<!A> System.Collections.Generic.IEnumerable<A>.GetEnumerator() cil managed" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.Generic.IEnumerable`1.GetEnumerator</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerator<A></ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.Generic.IEnumerator<A>.Current"> + <MemberSignature Language="C#" Value="A System.Collections.Generic.IEnumerator<A>.Current { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance !A System.Collections.Generic.IEnumerator<A>.Current" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:System.Collections.Generic.IEnumerator`1.Current</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>A</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.IEnumerable.GetEnumerator"> + <MemberSignature Language="C#" Value="System.Collections.IEnumerator IEnumerable.GetEnumerator ();" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() cil managed" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:System.Collections.IEnumerable.GetEnumerator</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.IEnumerator</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="System.Collections.IEnumerator.Current"> + <MemberSignature Language="C#" Value="object System.Collections.IEnumerator.Current { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance object System.Collections.IEnumerator.Current" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:System.Collections.IEnumerator.Current</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Object</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-cppwinrt2/Mono.DocTest/Color.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Color.xml new file mode 100644 index 00000000..75a454f5 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Color.xml @@ -0,0 +1,82 @@ +<Type Name="Color" FullName="Mono.DocTest.Color"> + <TypeSignature Language="C#" Value="public enum Color" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Color extends System.Enum" /> + <TypeSignature Language="C++ WINRT" Value="enum Color" /> + <AssemblyInfo> + <AssemblyName>DocTest</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="AnotherGreen"> + <MemberSignature Language="C#" Value="AnotherGreen" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Color AnotherGreen = int32(2)" /> + <MemberSignature Language="C++ WINRT" Value="AnotherGreen" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <MemberValue>2</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="Blue"> + <MemberSignature Language="C#" Value="Blue" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Color Blue = int32(1)" /> + <MemberSignature Language="C++ WINRT" Value="Blue" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <MemberValue>1</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="Green"> + <MemberSignature Language="C#" Value="Green" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Color Green = int32(2)" /> + <MemberSignature Language="C++ WINRT" Value="Green" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <MemberValue>2</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="Red"> + <MemberSignature Language="C#" Value="Red" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Color Red = int32(0)" /> + <MemberSignature Language="C++ WINRT" Value="Red" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <MemberValue>0</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/D.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/D.xml new file mode 100644 index 00000000..fffe57fa --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/D.xml @@ -0,0 +1,23 @@ +<Type Name="D" FullName="Mono.DocTest.D"> + <TypeSignature Language="C#" Value="public delegate dynamic D(Func<string,dynamic,object> value);" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed D extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Parameters> + <Parameter Name="value" Type="System.Func<System.String,System.Object,System.Object>" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Object</ReturnType> + </ReturnValue> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocAttribute.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocAttribute.xml new file mode 100644 index 00000000..279e67b0 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocAttribute.xml @@ -0,0 +1,103 @@ +<Type Name="DocAttribute" FullName="Mono.DocTest.DocAttribute"> + <TypeSignature Language="C#" Value="public class DocAttribute : Attribute" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit DocAttribute extends System.Attribute" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Attribute</BaseTypeName> + </Base> + <Interfaces /> + <Attributes> + <Attribute> + <AttributeName>System.AttributeUsage(System.AttributeTargets.All)</AttributeName> + </Attribute> + </Attributes> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public DocAttribute (string docs);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string docs) cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" DocAttribute(std::wstring const & docs);" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters> + <Parameter Name="docs" Type="System.String" /> + </Parameters> + <Docs> + <param name="docs">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Field"> + <MemberSignature Language="C#" Value="public bool Field;" /> + <MemberSignature Language="ILAsm" Value=".field public bool Field" /> + <MemberSignature Language="C++ WINRT" Value="bool Field;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="FlagsEnum"> + <MemberSignature Language="C#" Value="public ConsoleModifiers FlagsEnum;" /> + <MemberSignature Language="ILAsm" Value=".field public valuetype System.ConsoleModifiers FlagsEnum" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.ConsoleModifiers</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="NonFlagsEnum"> + <MemberSignature Language="C#" Value="public Mono.DocTest.Color NonFlagsEnum;" /> + <MemberSignature Language="ILAsm" Value=".field public valuetype Mono.DocTest.Color NonFlagsEnum" /> + <MemberSignature Language="C++ WINRT" Value="Mono::DocTest::Color NonFlagsEnum;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Property"> + <MemberSignature Language="C#" Value="public Type Property { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance class System.Type Property" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Type</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-cppwinrt2/Mono.DocTest/DocValueType.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocValueType.xml new file mode 100644 index 00000000..61df663c --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocValueType.xml @@ -0,0 +1,59 @@ +<Type Name="DocValueType" FullName="Mono.DocTest.DocValueType"> + <TypeSignature Language="C#" Value="public struct DocValueType : Mono.DocTest.IProcess" /> + <TypeSignature Language="ILAsm" Value=".class public sequential ansi sealed beforefieldinit DocValueType extends System.ValueType implements class Mono.DocTest.IProcess" /> + <TypeSignature Language="C++ WINRT" Value="struct DocValueType : Mono::DocTest::IProcess" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.ValueType</BaseTypeName> + </Base> + <Interfaces> + <Interface> + <InterfaceName>Mono.DocTest.IProcess</InterfaceName> + </Interface> + </Interfaces> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="M"> + <MemberSignature Language="C#" Value="public void M (int i);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M(int32 i) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void M(int i);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="total"> + <MemberSignature Language="C#" Value="public int total;" /> + <MemberSignature Language="ILAsm" Value=".field public int32 total" /> + <MemberSignature Language="C++ WINRT" Value="int total;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/IProcess.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/IProcess.xml new file mode 100644 index 00000000..7a013c31 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/IProcess.xml @@ -0,0 +1,15 @@ +<Type Name="IProcess" FullName="Mono.DocTest.IProcess"> + <TypeSignature Language="C#" Value="public interface IProcess" /> + <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IProcess" /> + <TypeSignature Language="C++ WINRT" Value="__interface IProcess" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Interfaces /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members /> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/UseLists.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/UseLists.xml new file mode 100644 index 00000000..b19b1ea8 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/UseLists.xml @@ -0,0 +1,171 @@ +<Type Name="UseLists" FullName="Mono.DocTest.UseLists"> + <TypeSignature Language="C#" Value="public class UseLists" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit UseLists extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class UseLists" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 UseLists ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" UseLists();" /> + <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="GetValues<T>"> + <MemberSignature Language="C#" Value="public Mono.DocTest.Generic.MyList<T> GetValues<T> (T value) where T : struct;" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class Mono.DocTest.Generic.MyList`1<!!T> GetValues<struct .ctor (class System.ValueType) T>(!!T value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Generic.MyList<T></ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>NotNullableValueTypeConstraint</ParameterAttribute> + <BaseTypeName>System.ValueType</BaseTypeName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="value" Type="T" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Process"> + <MemberSignature Language="C#" Value="public void Process (Mono.DocTest.Generic.MyList<int> list);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Process(class Mono.DocTest.Generic.MyList`1<int32> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="Mono.DocTest.Generic.MyList<System.Int32>" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Process"> + <MemberSignature Language="C#" Value="public void Process (System.Collections.Generic.List<int> list);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Process(class System.Collections.Generic.List`1<int32> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="System.Collections.Generic.List<System.Int32>" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Process"> + <MemberSignature Language="C#" Value="public void Process (System.Collections.Generic.List<Predicate<int>> list);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Process(class System.Collections.Generic.List`1<class System.Predicate`1<int32>> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="System.Collections.Generic.List<System.Predicate<System.Int32>>" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Process<T>"> + <MemberSignature Language="C#" Value="public void Process<T> (System.Collections.Generic.List<Predicate<T>> list);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Process<T>(class System.Collections.Generic.List`1<class System.Predicate`1<!!T>> list) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="list" Type="System.Collections.Generic.List<System.Predicate<T>>" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="list">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="UseHelper<T,U,V>"> + <MemberSignature Language="C#" Value="public void UseHelper<T,U,V> (Mono.DocTest.Generic.MyList<T>.Helper<U,V> helper);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void UseHelper<T, U, V>(class Mono.DocTest.Generic.MyList`1/Helper`2<!!T, !!U, !!V> helper) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename T, typename U, typename V>
 void UseHelper(Mono::DocTest::Generic::MyList<T>::Helper<U, V> const & helper);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + <TypeParameter Name="U" /> + <TypeParameter Name="V" /> + </TypeParameters> + <Parameters> + <Parameter Name="helper" Type="Mono.DocTest.Generic.MyList<T>+Helper<U,V>" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <typeparam name="U">To be added.</typeparam> + <typeparam name="V">To be added.</typeparam> + <param name="helper">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+Del.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+Del.xml new file mode 100644 index 00000000..e3ad767a --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+Del.xml @@ -0,0 +1,22 @@ +<Type Name="Widget+Del" FullName="Mono.DocTest.Widget+Del"> + <TypeSignature Language="C#" Value="public delegate void Widget.Del(int i);" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi sealed Widget/Del extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Docs> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+Direction.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+Direction.xml new file mode 100644 index 00000000..f3339666 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+Direction.xml @@ -0,0 +1,87 @@ +<Type Name="Widget+Direction" FullName="Mono.DocTest.Widget+Direction"> + <TypeSignature Language="C#" Value="protected internal enum Widget.Direction" /> + <TypeSignature Language="ILAsm" Value=".class nested protected auto ansi sealed Widget/Direction extends System.Enum" /> + <TypeSignature Language="C++ WINRT" Value="enum Widget::Direction" /> + <AssemblyInfo> + <AssemblyName>DocTest</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="East"> + <MemberSignature Language="C#" Value="East" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Widget/Direction East = int32(2)" /> + <MemberSignature Language="C++ WINRT" Value="East" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Direction</ReturnType> + </ReturnValue> + <MemberValue>2</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="North"> + <MemberSignature Language="C#" Value="North" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Widget/Direction North = int32(0)" /> + <MemberSignature Language="C++ WINRT" Value="North" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Direction</ReturnType> + </ReturnValue> + <MemberValue>0</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="South"> + <MemberSignature Language="C#" Value="South" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Widget/Direction South = int32(1)" /> + <MemberSignature Language="C++ WINRT" Value="South" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Direction</ReturnType> + </ReturnValue> + <MemberValue>1</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="West"> + <MemberSignature Language="C#" Value="West" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.DocTest.Widget/Direction West = int32(3)" /> + <MemberSignature Language="C++ WINRT" Value="West" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Direction</ReturnType> + </ReturnValue> + <MemberValue>3</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+IMenuItem.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+IMenuItem.xml new file mode 100644 index 00000000..80f81a36 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+IMenuItem.xml @@ -0,0 +1,49 @@ +<Type Name="Widget+IMenuItem" FullName="Mono.DocTest.Widget+IMenuItem"> + <TypeSignature Language="C#" Value="public interface Widget.IMenuItem" /> + <TypeSignature Language="ILAsm" Value=".class nested public interface auto ansi abstract Widget/IMenuItem" /> + <TypeSignature Language="C++ WINRT" Value="__interface Widget::IMenuItem" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Interfaces /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="A"> + <MemberSignature Language="C#" Value="public void A ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void A() cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void A();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="B"> + <MemberSignature Language="C#" Value="public int B { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int32 B" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</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-cppwinrt2/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml new file mode 100644 index 00000000..d28fdc25 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass+Double+Triple+Quadruple.xml @@ -0,0 +1,33 @@ +<Type Name="Widget+NestedClass+Double+Triple+Quadruple" FullName="Mono.DocTest.Widget+NestedClass+Double+Triple+Quadruple"> + <TypeSignature Language="C#" Value="public class Widget.NestedClass.Double.Triple.Quadruple" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit Widget/NestedClass/Double/Triple/Quadruple extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class Widget::NestedClass::Double::Triple::Quadruple" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 Quadruple ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" Quadruple();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass+Double+Triple.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass+Double+Triple.xml new file mode 100644 index 00000000..ff81a398 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass+Double+Triple.xml @@ -0,0 +1,33 @@ +<Type Name="Widget+NestedClass+Double+Triple" FullName="Mono.DocTest.Widget+NestedClass+Double+Triple"> + <TypeSignature Language="C#" Value="public class Widget.NestedClass.Double.Triple" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit Widget/NestedClass/Double/Triple extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class Widget::NestedClass::Double::Triple" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 Triple ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" Triple();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass+Double.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass+Double.xml new file mode 100644 index 00000000..4e1bae80 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass+Double.xml @@ -0,0 +1,33 @@ +<Type Name="Widget+NestedClass+Double" FullName="Mono.DocTest.Widget+NestedClass+Double"> + <TypeSignature Language="C#" Value="public class Widget.NestedClass.Double" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit Widget/NestedClass/Double extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class Widget::NestedClass::Double" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 Double ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" Double();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass.xml new file mode 100644 index 00000000..80136bf9 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass.xml @@ -0,0 +1,68 @@ +<Type Name="Widget+NestedClass" FullName="Mono.DocTest.Widget+NestedClass"> + <TypeSignature Language="C#" Value="public class Widget.NestedClass" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit Widget/NestedClass extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 NestedClass ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" NestedClass();" /> + <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="M"> + <MemberSignature Language="C#" Value="public void M (int i);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M(int32 i) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void M(int i);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="value"> + <MemberSignature Language="C#" Value="public int value;" /> + <MemberSignature Language="ILAsm" Value=".field public int32 value" /> + <MemberSignature Language="C++ WINRT" Value="int value;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass`1.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass`1.xml new file mode 100644 index 00000000..51c7907a --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass`1.xml @@ -0,0 +1,72 @@ +<Type Name="Widget+NestedClass<T>" FullName="Mono.DocTest.Widget+NestedClass<T>"> + <TypeSignature Language="C#" Value="public class Widget.NestedClass<T>" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi beforefieldinit Widget/NestedClass`1<T> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="T">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public NestedClass ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" NestedClass();" /> + <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="M"> + <MemberSignature Language="C#" Value="public void M (int i);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M(int32 i) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void M(int i);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="value"> + <MemberSignature Language="C#" Value="public int value;" /> + <MemberSignature Language="ILAsm" Value=".field public int32 value" /> + <MemberSignature Language="C++ WINRT" Value="int value;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget.xml new file mode 100644 index 00000000..70ce513c --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget.xml @@ -0,0 +1,887 @@ +<Type Name="Widget" FullName="Mono.DocTest.Widget"> + <TypeSignature Language="C#" Value="public class Widget : Mono.DocTest.IProcess" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Widget extends System.Object implements class Mono.DocTest.IProcess" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class Widget : Mono::DocTest::IProcess" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces> + <Interface> + <InterfaceName>Mono.DocTest.IProcess</InterfaceName> + </Interface> + </Interfaces> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public Widget ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" Widget();" /> + <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 Widget (Converter<string,string> c);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Converter`2<string, string> c) cil managed" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters> + <Parameter Name="c" Type="System.Converter<System.String,System.String>" /> + </Parameters> + <Docs> + <param name="c">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public Widget (string s);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string s) cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" Widget(std::wstring const & s);" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters> + <Parameter Name="s" Type="System.String" /> + </Parameters> + <Docs> + <param name="s">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="AnEvent"> + <MemberSignature Language="C#" Value="public event Mono.DocTest.Widget.Del AnEvent;" /> + <MemberSignature Language="ILAsm" Value=".event class Mono.DocTest.Widget/Del AnEvent" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("Del event")</AttributeName> + </Attribute> + <Attribute> + <AttributeName>add: Mono.DocTest.Doc("Del add accessor")</AttributeName> + </Attribute> + <Attribute> + <AttributeName>remove: Mono.DocTest.Doc("Del remove accessor")</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Del</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="AnotherEvent"> + <MemberSignature Language="C#" Value="protected event Mono.DocTest.Widget.Del AnotherEvent;" /> + <MemberSignature Language="ILAsm" Value=".event class Mono.DocTest.Widget/Del AnotherEvent" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget+Del</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="array1"> + <MemberSignature Language="C#" Value="public long[] array1;" /> + <MemberSignature Language="ILAsm" Value=".field public int64[] array1" /> + <MemberSignature Language="C++ WINRT" Value="std::Array <long> array1;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int64[]</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="array2"> + <MemberSignature Language="C#" Value="public Mono.DocTest.Widget[,] array2;" /> + <MemberSignature Language="ILAsm" Value=".field public class Mono.DocTest.Widget[,] array2" /> + <MemberSignature Language="C++ WINRT" Value="std::Array <Mono::DocTest::Widget const &, 2> array2;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget[,]</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="classCtorError"> + <MemberSignature Language="C#" Value="public static readonly string[] classCtorError;" /> + <MemberSignature Language="ILAsm" Value=".field public static initonly string[] classCtorError" /> + <MemberSignature Language="C++ WINRT" Value="static initonly std::Array <std::wstring const &> classCtorError;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String[]</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Default"> + <MemberSignature Language="C#" Value="public void Default (int a = 1, int b = 2);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Default(int32 a, int32 b) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void Default(int a = 1, int b = 2);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="a" Type="System.Int32" /> + <Parameter Name="b" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="a">To be added.</param> + <param name="b">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Default"> + <MemberSignature Language="C#" Value="public void Default (string a = "a", char b = 'b');" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Default(string a, char b) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void Default(std::wstring const & a = "a", char b = 'b');" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="a" Type="System.String" /> + <Parameter Name="b" Type="System.Char" /> + </Parameters> + <Docs> + <param name="a">To be added.</param> + <param name="b">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="defaultColor"> + <MemberSignature Language="C#" Value="protected static Mono.DocTest.Color defaultColor;" /> + <MemberSignature Language="ILAsm" Value=".field family static valuetype Mono.DocTest.Color defaultColor" /> + <MemberSignature Language="C++ WINRT" Value="static Mono::DocTest::Color defaultColor;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Color</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Dynamic0"> + <MemberSignature Language="C#" Value="public dynamic Dynamic0 (dynamic a, dynamic b);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object Dynamic0(object a, object b) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="winrt::Windows::Foundation::IInspectable Dynamic0(winrt::Windows::Foundation::IInspectable const & a, winrt::Windows::Foundation::IInspectable const & b);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Object</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="a" Type="System.Object" /> + <Parameter Name="b" Type="System.Object" /> + </Parameters> + <Docs> + <param name="a">To be added.</param> + <param name="b">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Dynamic1"> + <MemberSignature Language="C#" Value="public System.Collections.Generic.Dictionary<dynamic,string> Dynamic1 (System.Collections.Generic.Dictionary<dynamic,string> value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Collections.Generic.Dictionary`2<object, string> Dynamic1(class System.Collections.Generic.Dictionary`2<object, string> value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.Generic.Dictionary<System.Object,System.String></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Collections.Generic.Dictionary<System.Object,System.String>" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Dynamic2"> + <MemberSignature Language="C#" Value="public Func<string,dynamic> Dynamic2 (Func<string,dynamic> value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Func`2<string, object> Dynamic2(class System.Func`2<string, object> value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Func<System.String,System.Object></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Func<System.String,System.Object>" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Dynamic3"> + <MemberSignature Language="C#" Value="public Func<Func<string,dynamic>,Func<dynamic,string>> Dynamic3 (Func<Func<string,dynamic>,Func<dynamic,string>> value);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Func`2<class System.Func`2<string, object>, class System.Func`2<object, string>> Dynamic3(class System.Func`2<class System.Func`2<string, object>, class System.Func`2<object, string>> value) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Func<System.Func<System.String,System.Object>,System.Func<System.Object,System.String>></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="value" Type="System.Func<System.Func<System.String,System.Object>,System.Func<System.Object,System.String>>" /> + </Parameters> + <Docs> + <param name="value">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="DynamicE1"> + <MemberSignature Language="C#" Value="public event Func<dynamic> DynamicE1;" /> + <MemberSignature Language="ILAsm" Value=".event class System.Func`1<object> DynamicE1" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>System.Obsolete("why not")</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Func<System.Object></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="DynamicE2"> + <MemberSignature Language="C#" Value="public event Func<dynamic> DynamicE2;" /> + <MemberSignature Language="ILAsm" Value=".event class System.Func`1<object> DynamicE2" /> + <MemberType>Event</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Func<System.Object></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="DynamicF"> + <MemberSignature Language="C#" Value="public Func<Func<string,dynamic,string>,Func<dynamic,Func<dynamic>,string>> DynamicF;" /> + <MemberSignature Language="ILAsm" Value=".field public class System.Func`2<class System.Func`3<string, object, string>, class System.Func`3<object, class System.Func`1<object>, string>> DynamicF" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Func<System.Func<System.String,System.Object,System.String>,System.Func<System.Object,System.Func<System.Object>,System.String>></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="DynamicP"> + <MemberSignature Language="C#" Value="public Func<Func<string,dynamic,string>,Func<dynamic,Func<dynamic>,string>> DynamicP { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance class System.Func`2<class System.Func`3<string, object, string>, class System.Func`3<object, class System.Func`1<object>, string>> DynamicP" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Func<System.Func<System.String,System.Object,System.String>,System.Func<System.Object,System.Func<System.Object>,System.String>></ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Height"> + <MemberSignature Language="C#" Value="protected long Height { get; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int64 Height" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("Height property")</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Int64</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Item"> + <MemberSignature Language="C#" Value="public int this[int i] { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int32 Item(int32)" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("Item property")</AttributeName> + </Attribute> + <Attribute> + <AttributeName>set: Mono.DocTest.Doc("Item property set accessor")</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Item"> + <MemberSignature Language="C#" Value="public int this[string s, int i] { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int32 Item(string, int32)" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="s" Type="System.String" /> + <Parameter Name="i" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="s">To be added.</param> + <param name="i">To be added.</param> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M0"> + <MemberSignature Language="C#" Value="public static void M0 ();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void M0() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" static void M0();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M1"> + <MemberSignature Language="C#" Value="public void M1 (char c, out float f, ref Mono.DocTest.DocValueType v);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M1(char c, [out] float32& f, valuetype Mono.DocTest.DocValueType& v) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void M1(char c, [Runtime::InteropServices::Out] float & f, Mono::DocTest::DocValueType & v);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("normal DocAttribute", Field=true)</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("return:DocAttribute", Property=typeof(Mono.DocTest.Widget))</AttributeName> + </Attribute> + </Attributes> + </ReturnValue> + <Parameters> + <Parameter Name="c" Type="System.Char"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("c", FlagsEnum=System.ConsoleModifiers.Alt | System.ConsoleModifiers.Control)</AttributeName> + </Attribute> + </Attributes> + </Parameter> + <Parameter Name="f" Type="System.Single&" RefType="out"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("f", NonFlagsEnum=Mono.DocTest.Color.Red)</AttributeName> + </Attribute> + </Attributes> + </Parameter> + <Parameter Name="v" Type="Mono.DocTest.DocValueType&" RefType="ref"> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("v")</AttributeName> + </Attribute> + </Attributes> + </Parameter> + </Parameters> + <Docs> + <param name="c">To be added.</param> + <param name="f">To be added.</param> + <param name="v">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M2"> + <MemberSignature Language="C#" Value="public void M2 (short[] x1, int[,] x2, long[][] x3);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M2(int16[] x1, int32[,] x2, int64[][] x3) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void M2(std::Array <short> const & x1, std::Array <int, 2> const & x2, std::Array <std::Array <long> const &> const & x3);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x1" Type="System.Int16[]" /> + <Parameter Name="x2" Type="System.Int32[,]" /> + <Parameter Name="x3" Type="System.Int64[][]" /> + </Parameters> + <Docs> + <param name="x1">To be added.</param> + <param name="x2">To be added.</param> + <param name="x3">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M3"> + <MemberSignature Language="C#" Value="protected void M3 (long[][] x3, Mono.DocTest.Widget[,,][] x4);" /> + <MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void M3(int64[][] x3, class Mono.DocTest.Widget[,,][] x4) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void M3(std::Array <std::Array <long> const &> const & x3, std::Array <std::Array <Mono::DocTest::Widget const &, 3> const &> const & x4);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x3" Type="System.Int64[][]" /> + <Parameter Name="x4" Type="Mono.DocTest.Widget[,,][]" /> + </Parameters> + <Docs> + <param name="x3">To be added.</param> + <param name="x4">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M4"> + <MemberSignature Language="C#" Value="protected void M4 (char* pc, Mono.DocTest.Color** ppf);" /> + <MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void M4(char* pc, valuetype Mono.DocTest.Color** ppf) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void M4(char* pc, Mono::DocTest::Color** ppf);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="pc" Type="System.Char*" /> + <Parameter Name="ppf" Type="Mono.DocTest.Color**" /> + </Parameters> + <Docs> + <param name="pc">To be added.</param> + <param name="ppf">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M5"> + <MemberSignature Language="C#" Value="protected void M5 (void* pv, double*[,][] pd);" /> + <MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void M5(void* pv, float64*[,][] pd) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void M5(void* pv, std::Array <std::Array <double*, 2> const &> const & pd);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="pv" Type="System.Void*" /> + <Parameter Name="pd" Type="System.Double*[,][]" /> + </Parameters> + <Docs> + <param name="pv">To be added.</param> + <param name="pd">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M6"> + <MemberSignature Language="C#" Value="protected void M6 (int i, params object[] args);" /> + <MemberSignature Language="ILAsm" Value=".method familyhidebysig instance void M6(int32 i, object[] args) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="i" Type="System.Int32" /> + <Parameter Name="args" Type="System.Object[]"> + <Attributes> + <Attribute> + <AttributeName>System.ParamArray</AttributeName> + </Attribute> + </Attributes> + </Parameter> + </Parameters> + <Docs> + <param name="i">To be added.</param> + <param name="args">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="M7"> + <MemberSignature Language="C#" Value="public void M7 (Mono.DocTest.Widget.NestedClass.Double.Triple.Quadruple a);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void M7(class Mono.DocTest.Widget/NestedClass/Double/Triple/Quadruple a) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="void M7(Mono::DocTest::Widget::NestedClass::Double::Triple::Quadruple const & a);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="a" Type="Mono.DocTest.Widget+NestedClass+Double+Triple+Quadruple" /> + </Parameters> + <Docs> + <param name="a">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="message"> + <MemberSignature Language="C#" Value="public string message;" /> + <MemberSignature Language="ILAsm" Value=".field public string message" /> + <MemberSignature Language="C++ WINRT" Value="std::wstring message;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="monthlyAverage"> + <MemberSignature Language="C#" Value="protected internal readonly double monthlyAverage;" /> + <MemberSignature Language="ILAsm" Value=".field familyorassembly initonly float64 monthlyAverage" /> + <MemberSignature Language="C++ WINRT" Value="initonly double monthlyAverage;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_Addition"> + <MemberSignature Language="C#" Value="public static Mono.DocTest.Widget operator + (Mono.DocTest.Widget x1, Mono.DocTest.Widget x2);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname class Mono.DocTest.Widget op_Addition(class Mono.DocTest.Widget x1, class Mono.DocTest.Widget x2) cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" static Mono::DocTest::Widget operator +(Mono::DocTest::Widget const & x1, Mono::DocTest::Widget const & x2);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x1" Type="Mono.DocTest.Widget" /> + <Parameter Name="x2" Type="Mono.DocTest.Widget" /> + </Parameters> + <Docs> + <param name="x1">To be added.</param> + <param name="x2">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_Division"> + <MemberSignature Language="C#" Value="public static Mono.DocTest.Widget op_Division;" /> + <MemberSignature Language="ILAsm" Value=".field public static class Mono.DocTest.Widget op_Division" /> + <MemberSignature Language="C++ WINRT" Value="static Mono::DocTest::Widget op_Division;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_Explicit"> + <MemberSignature Language="C#" Value="public static explicit operator int (Mono.DocTest.Widget x);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname int32 op_Explicit(class Mono.DocTest.Widget x) cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" static explicit operator int(Mono::DocTest::Widget const & x);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x" Type="Mono.DocTest.Widget" /> + </Parameters> + <Docs> + <param name="x">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_Implicit"> + <MemberSignature Language="C#" Value="public static implicit operator long (Mono.DocTest.Widget x);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname int64 op_Implicit(class Mono.DocTest.Widget x) cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" static operator long(Mono::DocTest::Widget const & x);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int64</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x" Type="Mono.DocTest.Widget" /> + </Parameters> + <Docs> + <param name="x">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="op_UnaryPlus"> + <MemberSignature Language="C#" Value="public static Mono.DocTest.Widget operator + (Mono.DocTest.Widget x);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig specialname class Mono.DocTest.Widget op_UnaryPlus(class Mono.DocTest.Widget x) cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" static Mono::DocTest::Widget operator +(Mono::DocTest::Widget const & x);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Mono.DocTest.Widget</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="x" Type="Mono.DocTest.Widget" /> + </Parameters> + <Docs> + <param name="x">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="pCount"> + <MemberSignature Language="C#" Value="public int* pCount;" /> + <MemberSignature Language="ILAsm" Value=".field public int32* pCount" /> + <MemberSignature Language="C++ WINRT" Value="int* pCount;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int32*</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="PI"> + <MemberSignature Language="C#" Value="protected internal const double PI = 3.14159;" /> + <MemberSignature Language="ILAsm" Value=".field familyorassembly static literal float64 PI = (3.14159)" /> + <MemberSignature Language="C++ WINRT" Value="double PI = 3.14159;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</ReturnType> + </ReturnValue> + <MemberValue>3.14159</MemberValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ppValues"> + <MemberSignature Language="C#" Value="public float** ppValues;" /> + <MemberSignature Language="ILAsm" Value=".field public float32** ppValues" /> + <MemberSignature Language="C++ WINRT" Value="float** ppValues;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Single**</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Width"> + <MemberSignature Language="C#" Value="public int Width { get; protected set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int32 Width" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Mono.DocTest.Doc("Width property")</AttributeName> + </Attribute> + <Attribute> + <AttributeName>get: Mono.DocTest.Doc("Width get accessor")</AttributeName> + </Attribute> + <Attribute> + <AttributeName>set: Mono.DocTest.Doc("Width set accessor")</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Int32</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="X"> + <MemberSignature Language="C#" Value="protected internal short X { set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int16 X" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int16</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Y"> + <MemberSignature Language="C#" Value="protected internal double Y { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance float64 Y" /> + <MemberType>Property</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Double</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-cppwinrt2/NoNamespace.xml b/mdoc/Test/en.expected-cppwinrt2/NoNamespace.xml new file mode 100644 index 00000000..0fb65919 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/NoNamespace.xml @@ -0,0 +1,33 @@ +<Type Name="NoNamespace" FullName="NoNamespace"> + <TypeSignature Language="C#" Value="public class NoNamespace" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit NoNamespace extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class NoNamespace" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 NoNamespace ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" NoNamespace();" /> + <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> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/System/Action`1.xml b/mdoc/Test/en.expected-cppwinrt2/System/Action`1.xml new file mode 100644 index 00000000..7560590f --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/System/Action`1.xml @@ -0,0 +1,26 @@ +<Type Name="Action<T>" FullName="System.Action<T>"> + <TypeSignature Language="C#" Value="public delegate void Action<T>(T obj);" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Action`1<T> extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Parameters> + <Parameter Name="obj" Type="T" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="obj">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/System/Array.xml b/mdoc/Test/en.expected-cppwinrt2/System/Array.xml new file mode 100644 index 00000000..587c67c9 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/System/Array.xml @@ -0,0 +1,110 @@ +<Type Name="Array" FullName="System.Array"> + <TypeSignature Language="C#" Value="public class Array" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Array extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 Array ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" Array();" /> + <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="AsReadOnly<T>"> + <MemberSignature Language="C#" Value="public static System.Collections.ObjectModel.ReadOnlyCollection<T> AsReadOnly<T> (T[] array);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.ObjectModel.ReadOnlyCollection`1<!!T> AsReadOnly<T>(!!T[] array) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Collections.ObjectModel.ReadOnlyCollection<T></ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="array" Type="T[]" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="array">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ConvertAll<TInput,TOutput>"> + <MemberSignature Language="C#" Value="public static TOutput[] ConvertAll<TInput,TOutput> (TInput[] array, Converter<TInput,TOutput> converter);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig !!TOutput[] ConvertAll<TInput, TOutput>(!!TInput[] array, class System.Converter`2<!!TInput, !!TOutput> converter) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>TOutput[]</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="TInput" /> + <TypeParameter Name="TOutput" /> + </TypeParameters> + <Parameters> + <Parameter Name="array" Type="TInput[]" /> + <Parameter Name="converter" Type="System.Converter<TInput,TOutput>" /> + </Parameters> + <Docs> + <typeparam name="TInput">To be added.</typeparam> + <typeparam name="TOutput">To be added.</typeparam> + <param name="array">To be added.</param> + <param name="converter">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Resize<T>"> + <MemberSignature Language="C#" Value="public static void Resize<T> (ref T[] array, int newSize);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Resize<T>(!!T[]& array, int32 newSize) cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename T>
 static void Resize(std::Array <T> const & & array, int newSize);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="array" Type="T[]&" RefType="ref" /> + <Parameter Name="newSize" Type="System.Int32" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="array">To be added.</param> + <param name="newSize">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/System/AsyncCallback.xml b/mdoc/Test/en.expected-cppwinrt2/System/AsyncCallback.xml new file mode 100644 index 00000000..deb06e91 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/System/AsyncCallback.xml @@ -0,0 +1,22 @@ +<Type Name="AsyncCallback" FullName="System.AsyncCallback"> + <TypeSignature Language="C#" Value="public delegate void AsyncCallback(IAsyncResult ar);" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed AsyncCallback extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Parameters> + <Parameter Name="ar" Type="System.IAsyncResult" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Docs> + <param name="ar">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/System/Environment+SpecialFolder.xml b/mdoc/Test/en.expected-cppwinrt2/System/Environment+SpecialFolder.xml new file mode 100644 index 00000000..6e6a9408 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/System/Environment+SpecialFolder.xml @@ -0,0 +1,16 @@ +<Type Name="Environment+SpecialFolder" FullName="System.Environment+SpecialFolder"> + <TypeSignature Language="C#" Value="public enum Environment.SpecialFolder" /> + <TypeSignature Language="ILAsm" Value=".class nested public auto ansi sealed Environment/SpecialFolder extends System.Enum" /> + <AssemblyInfo> + <AssemblyName>DocTest</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 /> +</Type> diff --git a/mdoc/Test/en.expected-cppwinrt2/System/Environment.xml b/mdoc/Test/en.expected-cppwinrt2/System/Environment.xml new file mode 100644 index 00000000..a3508bbf --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/System/Environment.xml @@ -0,0 +1,70 @@ +<Type Name="Environment" FullName="System.Environment"> + <TypeSignature Language="C#" Value="public static class Environment" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit Environment extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</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="GetFolderPath"> + <MemberSignature Language="C#" Value="public static string GetFolderPath (Environment.SpecialFolder folder);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig string GetFolderPath(valuetype System.Environment/SpecialFolder folder) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="folder" Type="System.Environment+SpecialFolder" /> + </Parameters> + <Docs> + <param name="folder">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="IsAligned<T>"> + <MemberSignature Language="C#" Value="public static bool IsAligned<T> (this T[] vect, int index) where T : struct;" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool IsAligned<struct .ctor (class System.ValueType) T>(!!T[] vect, int32 index) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>NotNullableValueTypeConstraint</ParameterAttribute> + <BaseTypeName>System.ValueType</BaseTypeName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="vect" Type="T[]" RefType="this" /> + <Parameter Name="index" Type="System.Int32" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="vect">To be added.</param> + <param name="index">To be added.</param> + <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-cppwinrt2/index.xml b/mdoc/Test/en.expected-cppwinrt2/index.xml new file mode 100644 index 00000000..8deff9a6 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/index.xml @@ -0,0 +1,222 @@ +<Overview> + <Assemblies> + <Assembly Name="DocTest" 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=""> + <Type Name="NoNamespace" Kind="Class" /> + </Namespace> + <Namespace Name="Mono.DocTest"> + <Type Name="Color" Kind="Enumeration" /> + <Type Name="D" Kind="Delegate" /> + <Type Name="DocAttribute" Kind="Class" /> + <Type Name="DocValueType" Kind="Structure" /> + <Type Name="IProcess" Kind="Interface" /> + <Type Name="UseLists" Kind="Class" /> + <Type Name="Widget" Kind="Class" /> + <Type Name="Widget+Del" Kind="Delegate" /> + <Type Name="Widget+Direction" Kind="Enumeration" /> + <Type Name="Widget+IMenuItem" Kind="Interface" /> + <Type Name="Widget+NestedClass" Kind="Class" /> + <Type Name="Widget+NestedClass`1" DisplayName="Widget+NestedClass<T>" Kind="Class" /> + <Type Name="Widget+NestedClass+Double" Kind="Class" /> + <Type Name="Widget+NestedClass+Double+Triple" Kind="Class" /> + <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> + </Namespace> + <Namespace Name="Mono.DocTest.Generic"> + <Type Name="Extensions" Kind="Class" /> + <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> + <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> + <Type Name="GenericBase`1+FooEventArgs" DisplayName="GenericBase<U>+FooEventArgs" Kind="Class" /> + <Type Name="GenericBase`1+NestedCollection" DisplayName="GenericBase<U>+NestedCollection" Kind="Class" /> + <Type Name="GenericBase`1+NestedCollection+Enumerator" DisplayName="GenericBase<U>+NestedCollection+Enumerator" Kind="Structure" /> + <Type Name="IFoo`1" DisplayName="IFoo<T>" Kind="Interface" /> + <Type Name="MyList`1" DisplayName="MyList<T>" Kind="Class" /> + <Type Name="MyList`1+Helper`2" DisplayName="MyList<T>+Helper<U,V>" Kind="Class" /> + <Type Name="MyList`2" DisplayName="MyList<A,B>" Kind="Class" /> + </Namespace> + <Namespace Name="System"> + <Type Name="Action`1" DisplayName="Action<T>" Kind="Delegate" /> + <Type Name="Array" Kind="Class" /> + <Type Name="AsyncCallback" Kind="Delegate" /> + <Type Name="Environment" Kind="Class" /> + <Type Name="Environment+SpecialFolder" Kind="Enumeration" /> + </Namespace> + </Types> + <Title>DocTest</Title> + <ExtensionMethods> + <ExtensionMethod> + <Targets> + <Target Type="T:Mono.DocTest.Generic.IFoo`1" /> + </Targets> + <Member MemberName="Bar<T>"> + <MemberSignature Language="C#" Value="public static void Bar<T> (this Mono.DocTest.Generic.IFoo<T> self, string s);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Bar<T>(class Mono.DocTest.Generic.IFoo`1<!!T> self, string s) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="Mono.DocTest.Generic.IFoo<T>" RefType="this" /> + <Parameter Name="s" Type="System.String" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <param name="s">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="Mono.DocTest.Generic.Extensions" Member="M:Mono.DocTest.Generic.Extensions.Bar``1(Mono.DocTest.Generic.IFoo{``0},System.String)" /> + </Member> + </ExtensionMethod> + <ExtensionMethod> + <Targets> + <Target Type="T:System.Collections.Generic.IEnumerable`1" /> + </Targets> + <Member MemberName="ForEach<T>"> + <MemberSignature Language="C#" Value="public static void ForEach<T> (this System.Collections.Generic.IEnumerable<T> self, Action<T> a);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void ForEach<T>(class System.Collections.Generic.IEnumerable`1<!!T> self, class System.Action`1<!!T> a) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="System.Collections.Generic.IEnumerable<T>" RefType="this" /> + <Parameter Name="a" Type="System.Action<T>" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <param name="a">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="Mono.DocTest.Generic.Extensions" Member="M:Mono.DocTest.Generic.Extensions.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})" /> + </Member> + </ExtensionMethod> + <ExtensionMethod> + <Targets> + <Target Type="T:System.Collections.Generic.IEnumerable`1" /> + </Targets> + <Member MemberName="ToDouble"> + <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable<double> ToDouble (this System.Collections.Generic.IEnumerable<int> list);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1<float64> ToDouble(class System.Collections.Generic.IEnumerable`1<int32> list) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerable<System.Double></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="list" Type="System.Collections.Generic.IEnumerable<System.Int32>" RefType="this" /> + </Parameters> + <Docs> + <param name="list">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="Mono.DocTest.Generic.Extensions" Member="M:Mono.DocTest.Generic.Extensions.ToDouble(System.Collections.Generic.IEnumerable{System.Int32})" /> + </Member> + </ExtensionMethod> + <ExtensionMethod> + <Targets> + <Target Type="T:Mono.DocTest.Generic.IFoo`1" /> + </Targets> + <Member MemberName="ToDouble<T>"> + <MemberSignature Language="C#" Value="public static double ToDouble<T> (this T val) where T : Mono.DocTest.Generic.IFoo<T>;" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig float64 ToDouble<(class Mono.DocTest.Generic.IFoo`1<!!T>) T>(!!T val) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Double</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T"> + <Constraints> + <InterfaceName>Mono.DocTest.Generic.IFoo<T></InterfaceName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="val" Type="T" RefType="this" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="val">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="Mono.DocTest.Generic.Extensions" Member="M:Mono.DocTest.Generic.Extensions.ToDouble``1(``0)" /> + </Member> + </ExtensionMethod> + <ExtensionMethod> + <Targets> + <Target Type="System.Object" /> + </Targets> + <Member MemberName="ToEnumerable<T>"> + <MemberSignature Language="C#" Value="public static System.Collections.Generic.IEnumerable<T> ToEnumerable<T> (this T self);" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.Generic.IEnumerable`1<!!T> ToEnumerable<T>(!!T self) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Collections.Generic.IEnumerable<T></ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T" /> + </TypeParameters> + <Parameters> + <Parameter Name="self" Type="T" RefType="this" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="self">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="Mono.DocTest.Generic.Extensions" Member="M:Mono.DocTest.Generic.Extensions.ToEnumerable``1(``0)" /> + </Member> + </ExtensionMethod> + <ExtensionMethod> + <Targets> + <Target Type="T:System.Array" /> + </Targets> + <Member MemberName="IsAligned<T>"> + <MemberSignature Language="C#" Value="public static bool IsAligned<T> (this T[] vect, int index) where T : struct;" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool IsAligned<struct .ctor (class System.ValueType) T>(!!T[] vect, int32 index) cil managed" /> + <MemberType>ExtensionMethod</MemberType> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="T"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>NotNullableValueTypeConstraint</ParameterAttribute> + <BaseTypeName>System.ValueType</BaseTypeName> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters> + <Parameter Name="vect" Type="T[]" RefType="this" /> + <Parameter Name="index" Type="System.Int32" /> + </Parameters> + <Docs> + <typeparam name="T">To be added.</typeparam> + <param name="vect">To be added.</param> + <param name="index">To be added.</param> + <summary>To be added.</summary> + </Docs> + <Link Type="System.Environment" Member="M:System.Environment.IsAligned``1(``0[],System.Int32)" /> + </Member> + </ExtensionMethod> + </ExtensionMethods> +</Overview> diff --git a/mdoc/Test/en.expected-cppwinrt2/ns-.xml b/mdoc/Test/en.expected-cppwinrt2/ns-.xml new file mode 100644 index 00000000..36dfeb30 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/ns-.xml @@ -0,0 +1,6 @@ +<Namespace Name=""> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppwinrt2/ns-Mono.DocTest.Generic.xml b/mdoc/Test/en.expected-cppwinrt2/ns-Mono.DocTest.Generic.xml new file mode 100644 index 00000000..0d3e7924 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/ns-Mono.DocTest.Generic.xml @@ -0,0 +1,6 @@ +<Namespace Name="Mono.DocTest.Generic"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppwinrt2/ns-Mono.DocTest.xml b/mdoc/Test/en.expected-cppwinrt2/ns-Mono.DocTest.xml new file mode 100644 index 00000000..96ab3e78 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/ns-Mono.DocTest.xml @@ -0,0 +1,6 @@ +<Namespace Name="Mono.DocTest"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-cppwinrt2/ns-System.xml b/mdoc/Test/en.expected-cppwinrt2/ns-System.xml new file mode 100644 index 00000000..c9692742 --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/ns-System.xml @@ -0,0 +1,6 @@ +<Namespace Name="System"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class2.xml b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class2.xml new file mode 100644 index 00000000..8980b6b6 --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class2.xml @@ -0,0 +1,35 @@ +<Type Name="Class2" FullName="Namespace2.Class2"> + <TypeSignature Language="C#" Value="public class Class2 : Windows.UI.Xaml.Application" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi Class2 extends Windows.UI.Xaml.Application" /> + <TypeSignature Language="C++ WINRT" Value="class Class2 : winrt::Windows::UI::Xaml::Application" /> + <AssemblyInfo> + <AssemblyName>UwpTestWinRtComponentCpp</AssemblyName> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>Windows.UI.Xaml.Application</BaseTypeName> + </Base> + <Interfaces /> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Composable(typeof(Namespace2.__IClass2ProtectedFactory), Windows.Foundation.Metadata.CompositionType.Protected, 1)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Version(1)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.WebHostHidden</AttributeName> + </Attribute> + </Attributes> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members /> +</Type> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class3.xml b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class3.xml new file mode 100644 index 00000000..b8d1519f --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class3.xml @@ -0,0 +1,71 @@ +<Type Name="Class3" FullName="Namespace2.Class3"> + <TypeSignature Language="C#" Value="public sealed class Class3 : Windows.UI.Xaml.Application" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Class3 extends Windows.UI.Xaml.Application" /> + <TypeSignature Language="C++ WINRT" Value="class Class3 sealed : winrt::Windows::UI::Xaml::Application" /> + <AssemblyInfo> + <AssemblyName>UwpTestWinRtComponentCpp</AssemblyName> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>Windows.UI.Xaml.Application</BaseTypeName> + </Base> + <Interfaces /> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Version(1)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.WebHostHidden</AttributeName> + </Attribute> + </Attributes> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="ArrayOfTypeProperty"> + <MemberSignature Language="C#" Value="public Type[] ArrayOfTypeProperty { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance class System.Type[] ArrayOfTypeProperty" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:Namespace2.__IClass3PublicNonVirtuals.ArrayOfTypeProperty</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Type[]</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="LongProperty"> + <MemberSignature Language="C#" Value="public long LongProperty { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance int64 LongProperty" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:Namespace2.__IClass3PublicNonVirtuals.LongProperty</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Int64</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/ex.expected-cppwinrtuwp/Namespace2/Class4.xml b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class4.xml new file mode 100644 index 00000000..9a0ddfe2 --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class4.xml @@ -0,0 +1,40 @@ +<Type Name="Class4" FullName="Namespace2.Class4"> + <TypeSignature Language="C#" Value="public struct Class4" /> + <TypeSignature Language="ILAsm" Value=".class public sequential ansi sealed Class4 extends System.ValueType" /> + <TypeSignature Language="C++ WINRT" Value="struct Class4" /> + <AssemblyInfo> + <AssemblyName>UwpTestWinRtComponentCpp</AssemblyName> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.ValueType</BaseTypeName> + </Base> + <Interfaces /> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Version(1)</AttributeName> + </Attribute> + </Attributes> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="StringField"> + <MemberSignature Language="C#" Value="public string StringField;" /> + <MemberSignature Language="ILAsm" Value=".field public string StringField" /> + <MemberSignature Language="C++ WINRT" Value="std::wstring StringField;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.String</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/Namespace222/App.xml b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace222/App.xml new file mode 100644 index 00000000..10c2206e --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace222/App.xml @@ -0,0 +1,226 @@ +<Type Name="App" FullName="Namespace222.App"> + <TypeSignature Language="C#" Value="public sealed class App : Windows.ApplicationModel.Core.IFrameworkView" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed App extends System.Object implements class Windows.ApplicationModel.Core.IFrameworkView" /> + <TypeSignature Language="C++ WINRT" Value="class App sealed : winrt::Windows::ApplicationModel::Core::IFrameworkView" /> + <AssemblyInfo> + <AssemblyName>UwpTestWinRtComponentCpp</AssemblyName> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces> + <Interface> + <InterfaceName>Windows.ApplicationModel.Core.IFrameworkView</InterfaceName> + </Interface> + </Interfaces> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Activatable(1)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Version(1)</AttributeName> + </Attribute> + </Attributes> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public App ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() runtime managed" /> + <MemberSignature Language="C++ WINRT" Value=" App();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Overload("CreateInstance1")</AttributeName> + </Attribute> + </Attributes> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Initialize"> + <MemberSignature Language="C#" Value="public void Initialize (Windows.ApplicationModel.Core.CoreApplicationView applicationView);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Initialize([in]class Windows.ApplicationModel.Core.CoreApplicationView applicationView) runtime managed" /> + <MemberSignature Language="C++ WINRT" Value="void Initialize(winrt::Windows::ApplicationModel::Core::CoreApplicationView const & applicationView);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:Windows.ApplicationModel.Core.IFrameworkView.Initialize(Windows.ApplicationModel.Core.CoreApplicationView)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="applicationView" Type="Windows.ApplicationModel.Core.CoreApplicationView" /> + </Parameters> + <Docs> + <param name="applicationView">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Load"> + <MemberSignature Language="C#" Value="public void Load (string entryPoint);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Load([in]string entryPoint) runtime managed" /> + <MemberSignature Language="C++ WINRT" Value="void Load(std::wstring const & entryPoint);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:Windows.ApplicationModel.Core.IFrameworkView.Load(System.String)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="entryPoint" Type="System.String" /> + </Parameters> + <Docs> + <param name="entryPoint">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="m_activated"> + <MemberSignature Language="C#" Value="public Windows.UI.Core.CoreWindow m_activated { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance class Windows.UI.Core.CoreWindow m_activated" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:Namespace222.__IAppPublicNonVirtuals.m_activated</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Windows.UI.Core.CoreWindow</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="m_target"> + <MemberSignature Language="C#" Value="public Windows.UI.Composition.CompositionTarget m_target { get; set; }" /> + <MemberSignature Language="ILAsm" Value=".property instance class Windows.UI.Composition.CompositionTarget m_target" /> + <MemberType>Property</MemberType> + <Implements> + <InterfaceMember>P:Namespace222.__IAppPublicNonVirtuals.m_target</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Windows.UI.Composition.CompositionTarget</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <value>To be added.</value> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Run"> + <MemberSignature Language="C#" Value="public void Run ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Run() runtime managed" /> + <MemberSignature Language="C++ WINRT" Value="void Run();" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:Windows.ApplicationModel.Core.IFrameworkView.Run</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="SetWindow"> + <MemberSignature Language="C#" Value="public void SetWindow (Windows.UI.Core.CoreWindow window);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void SetWindow([in]class Windows.UI.Core.CoreWindow window) runtime managed" /> + <MemberSignature Language="C++ WINRT" Value="void SetWindow(winrt::Windows::UI::Core::CoreWindow const & window);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:Windows.ApplicationModel.Core.IFrameworkView.SetWindow(Windows.UI.Core.CoreWindow)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="window" Type="Windows.UI.Core.CoreWindow" /> + </Parameters> + <Docs> + <param name="window">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="SetWindow1"> + <MemberSignature Language="C#" Value="public void SetWindow1 (Windows.UI.Core.CoreWindow window);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void SetWindow1([in]class Windows.UI.Core.CoreWindow window) runtime managed" /> + <MemberSignature Language="C++ WINRT" Value="void SetWindow1(winrt::Windows::UI::Core::CoreWindow const & window);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:Namespace222.__IAppPublicNonVirtuals.SetWindow1(Windows.UI.Core.CoreWindow)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="window" Type="Windows.UI.Core.CoreWindow" /> + </Parameters> + <Docs> + <param name="window">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Uninitialize"> + <MemberSignature Language="C#" Value="public void Uninitialize ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Uninitialize() runtime managed" /> + <MemberSignature Language="C++ WINRT" Value="void Uninitialize();" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:Windows.ApplicationModel.Core.IFrameworkView.Uninitialize</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/Class1.xml b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/Class1.xml new file mode 100644 index 00000000..d6bd50be --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/Class1.xml @@ -0,0 +1,146 @@ +<Type Name="Class1" FullName="UwpTestWinRtComponentCpp.Class1"> + <TypeSignature Language="C#" Value="public sealed class Class1" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Class1 extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="class Class1 sealed" /> + <AssemblyInfo> + <AssemblyName>UwpTestWinRtComponentCpp</AssemblyName> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Activatable(1)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Version(1)</AttributeName> + </Attribute> + </Attributes> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public Class1 ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() runtime managed" /> + <MemberSignature Language="C++ WINRT" Value=" Class1();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Overload("CreateInstance1")</AttributeName> + </Attribute> + </Attributes> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ComputeResult"> + <MemberSignature Language="C#" Value="public Windows.Foundation.Collections.IVector<double> ComputeResult (double input);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class Windows.Foundation.Collections.IVector`1<float64> ComputeResult([in]float64 input) runtime managed" /> + <MemberSignature Language="C++ WINRT" Value="winrt::Windows::Foundation::Collections::IVector<double> ComputeResult(double input);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:UwpTestWinRtComponentCpp.__IClass1PublicNonVirtuals.ComputeResult(System.Double)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Windows.Foundation.Collections.IVector<System.Double></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="input" Type="System.Double" /> + </Parameters> + <Docs> + <param name="input">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="GetPrimesOrdered"> + <MemberSignature Language="C#" Value="public Windows.Foundation.IAsyncOperationWithProgress<Windows.Foundation.Collections.IVector<int>,double> GetPrimesOrdered (int first, int last);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class Windows.Foundation.IAsyncOperationWithProgress`2<class Windows.Foundation.Collections.IVector`1<int32>, float64> GetPrimesOrdered([in]int32 first, [in]int32 last) runtime managed" /> + <MemberSignature Language="C++ WINRT" Value="winrt::Windows::Foundation::IAsyncOperationWithProgress<Windows::Foundation::Collections::IVector<int>, double> GetPrimesOrdered(int first, int last);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:UwpTestWinRtComponentCpp.__IClass1PublicNonVirtuals.GetPrimesOrdered(System.Int32,System.Int32)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Windows.Foundation.IAsyncOperationWithProgress<Windows.Foundation.Collections.IVector<System.Int32>,System.Double></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="first" Type="System.Int32" /> + <Parameter Name="last" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="first">To be added.</param> + <param name="last">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="GetPrimesUnordered"> + <MemberSignature Language="C#" Value="public Windows.Foundation.IAsyncActionWithProgress<double> GetPrimesUnordered (int first, int last);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class Windows.Foundation.IAsyncActionWithProgress`1<float64> GetPrimesUnordered([in]int32 first, [in]int32 last) runtime managed" /> + <MemberSignature Language="C++ WINRT" Value="winrt::Windows::Foundation::IAsyncActionWithProgress<double> GetPrimesUnordered(int first, int last);" /> + <MemberType>Method</MemberType> + <Implements> + <InterfaceMember>M:UwpTestWinRtComponentCpp.__IClass1PublicNonVirtuals.GetPrimesUnordered(System.Int32,System.Int32)</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Windows.Foundation.IAsyncActionWithProgress<System.Double></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="first" Type="System.Int32" /> + <Parameter Name="last" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="first">To be added.</param> + <param name="last">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="primeFoundEvent"> + <MemberSignature Language="C#" Value="public event UwpTestWinRtComponentCpp.PrimeFoundHandler primeFoundEvent;" /> + <MemberSignature Language="ILAsm" Value=".event class UwpTestWinRtComponentCpp.PrimeFoundHandler primeFoundEvent" /> + <MemberType>Event</MemberType> + <Implements> + <InterfaceMember>E:UwpTestWinRtComponentCpp.__IClass1PublicNonVirtuals.primeFoundEvent</InterfaceMember> + </Implements> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>UwpTestWinRtComponentCpp.PrimeFoundHandler</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/Color1.xml b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/Color1.xml new file mode 100644 index 00000000..bf46d806 --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/Color1.xml @@ -0,0 +1,55 @@ +<Type Name="Color1" FullName="UwpTestWinRtComponentCpp.Color1"> + <TypeSignature Language="C#" Value="public enum Color1" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed Color1 extends System.Enum" /> + <TypeSignature Language="C++ WINRT" Value="enum Color1" /> + <AssemblyInfo> + <AssemblyName>UwpTestWinRtComponentCpp</AssemblyName> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Enum</BaseTypeName> + </Base> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Version(1)</AttributeName> + </Attribute> + </Attributes> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="Blue"> + <MemberSignature Language="C#" Value="Blue" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype UwpTestWinRtComponentCpp.Color1 Blue = int32(1)" /> + <MemberSignature Language="C++ WINRT" Value="Blue" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>UwpTestWinRtComponentCpp.Color1</ReturnType> + </ReturnValue> + <MemberValue>1</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + <Member MemberName="Red"> + <MemberSignature Language="C#" Value="Red" /> + <MemberSignature Language="ILAsm" Value=".field public static literal valuetype UwpTestWinRtComponentCpp.Color1 Red = int32(0)" /> + <MemberSignature Language="C++ WINRT" Value="Red" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>UwpTestWinRtComponentCpp.Color1</ReturnType> + </ReturnValue> + <MemberValue>0</MemberValue> + <Docs> + <summary>To be added.</summary> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/CustomAttribute1.xml b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/CustomAttribute1.xml new file mode 100644 index 00000000..3d5326a3 --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/CustomAttribute1.xml @@ -0,0 +1,74 @@ +<Type Name="CustomAttribute1" FullName="UwpTestWinRtComponentCpp.CustomAttribute1"> + <TypeSignature Language="C#" Value="public sealed class CustomAttribute1 : Attribute" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed CustomAttribute1 extends System.Attribute" /> + <AssemblyInfo> + <AssemblyName>UwpTestWinRtComponentCpp</AssemblyName> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Attribute</BaseTypeName> + </Base> + <Interfaces /> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Version(1)</AttributeName> + </Attribute> + </Attributes> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CustomAttribute1 ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() runtime managed" /> + <MemberSignature Language="C++ WINRT" Value=" CustomAttribute1();" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Overload("CreateInstance1")</AttributeName> + </Attribute> + </Attributes> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Field1"> + <MemberSignature Language="C#" Value="public bool Field1;" /> + <MemberSignature Language="ILAsm" Value=".field public bool Field1" /> + <MemberSignature Language="C++ WINRT" Value="bool Field1;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="Field2"> + <MemberSignature Language="C#" Value="public Windows.Foundation.HResult Field2;" /> + <MemberSignature Language="ILAsm" Value=".field public valuetype Windows.Foundation.HResult Field2" /> + <MemberSignature Language="C++ WINRT" Value="winrt::Windows::Foundation::HResult Field2;" /> + <MemberType>Field</MemberType> + <AssemblyInfo> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>Windows.Foundation.HResult</ReturnType> + </ReturnValue> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/PrimeFoundHandler.xml b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/PrimeFoundHandler.xml new file mode 100644 index 00000000..2e4c00ac --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/PrimeFoundHandler.xml @@ -0,0 +1,30 @@ +<Type Name="PrimeFoundHandler" FullName="UwpTestWinRtComponentCpp.PrimeFoundHandler"> + <TypeSignature Language="C#" Value="public delegate void PrimeFoundHandler(int result);" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed PrimeFoundHandler extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>UwpTestWinRtComponentCpp</AssemblyName> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Guid(1538629431, 28309, 13279, 150, 105, 205, 62, 250, 110, 149, 1)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Version(1)</AttributeName> + </Attribute> + </Attributes> + <Parameters> + <Parameter Name="result" Type="System.Int32" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Docs> + <param name="result">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/PrimeFoundHandlerWithSpecificType.xml b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/PrimeFoundHandlerWithSpecificType.xml new file mode 100644 index 00000000..310f46d1 --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/PrimeFoundHandlerWithSpecificType.xml @@ -0,0 +1,30 @@ +<Type Name="PrimeFoundHandlerWithSpecificType" FullName="UwpTestWinRtComponentCpp.PrimeFoundHandlerWithSpecificType"> + <TypeSignature Language="C#" Value="public delegate void PrimeFoundHandlerWithSpecificType(IMap<double,float> result);" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed PrimeFoundHandlerWithSpecificType extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>UwpTestWinRtComponentCpp</AssemblyName> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Guid(603281085, 10445, 12788, 160, 94, 209, 35, 22, 179, 109, 110)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Version(1)</AttributeName> + </Attribute> + </Attributes> + <Parameters> + <Parameter Name="result" Type="Windows.Foundation.Collections.IMap<System.Double,System.Single>" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Docs> + <param name="result">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/SomethingHappenedEventHandler.xml b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/SomethingHappenedEventHandler.xml new file mode 100644 index 00000000..3f01111a --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/SomethingHappenedEventHandler.xml @@ -0,0 +1,32 @@ +<Type Name="SomethingHappenedEventHandler" FullName="UwpTestWinRtComponentCpp.SomethingHappenedEventHandler"> + <TypeSignature Language="C#" Value="public delegate void SomethingHappenedEventHandler(Class1 sender, string s);" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed SomethingHappenedEventHandler extends System.MulticastDelegate" /> + <AssemblyInfo> + <AssemblyName>UwpTestWinRtComponentCpp</AssemblyName> + <AssemblyVersion>255.255.255.255</AssemblyVersion> + </AssemblyInfo> + <Base> + <BaseTypeName>System.Delegate</BaseTypeName> + </Base> + <Attributes> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Guid(2298425249, 32140, 14992, 141, 140, 226, 207, 230, 43, 42, 170)</AttributeName> + </Attribute> + <Attribute> + <AttributeName>Windows.Foundation.Metadata.Version(1)</AttributeName> + </Attribute> + </Attributes> + <Parameters> + <Parameter Name="sender" Type="UwpTestWinRtComponentCpp.Class1" /> + <Parameter Name="s" Type="System.String" /> + </Parameters> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <Docs> + <param name="sender">To be added.</param> + <param name="s">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Type> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/index.xml b/mdoc/Test/ex.expected-cppwinrtuwp/index.xml new file mode 100644 index 00000000..e170436e --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/index.xml @@ -0,0 +1,26 @@ +<Overview> + <Assemblies> + <Assembly Name="UwpTestWinRtComponentCpp" Version="255.255.255.255" /> + </Assemblies> + <Remarks>To be added.</Remarks> + <Copyright>To be added.</Copyright> + <Types> + <Namespace Name="Namespace2"> + <Type Name="Class2" Kind="Class" /> + <Type Name="Class3" Kind="Class" /> + <Type Name="Class4" Kind="Structure" /> + </Namespace> + <Namespace Name="Namespace222"> + <Type Name="App" Kind="Class" /> + </Namespace> + <Namespace Name="UwpTestWinRtComponentCpp"> + <Type Name="Class1" Kind="Class" /> + <Type Name="Color1" Kind="Enumeration" /> + <Type Name="CustomAttribute1" Kind="Class" /> + <Type Name="PrimeFoundHandler" Kind="Delegate" /> + <Type Name="PrimeFoundHandlerWithSpecificType" Kind="Delegate" /> + <Type Name="SomethingHappenedEventHandler" Kind="Delegate" /> + </Namespace> + </Types> + <Title>UwpTestWinRtComponentCpp</Title> +</Overview> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/ns-Namespace2.xml b/mdoc/Test/ex.expected-cppwinrtuwp/ns-Namespace2.xml new file mode 100644 index 00000000..9078f3ef --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/ns-Namespace2.xml @@ -0,0 +1,6 @@ +<Namespace Name="Namespace2"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/ns-Namespace222.xml b/mdoc/Test/ex.expected-cppwinrtuwp/ns-Namespace222.xml new file mode 100644 index 00000000..f80f6d94 --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/ns-Namespace222.xml @@ -0,0 +1,6 @@ +<Namespace Name="Namespace222"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/ns-UwpTestWinRtComponentCpp.xml b/mdoc/Test/ex.expected-cppwinrtuwp/ns-UwpTestWinRtComponentCpp.xml new file mode 100644 index 00000000..ee65eaef --- /dev/null +++ b/mdoc/Test/ex.expected-cppwinrtuwp/ns-UwpTestWinRtComponentCpp.xml @@ -0,0 +1,6 @@ +<Namespace Name="UwpTestWinRtComponentCpp"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/mdoc.Test/BasicFormatterTests.cs b/mdoc/mdoc.Test/BasicFormatterTests.cs index 3cb521e6..d6a2b442 100644 --- a/mdoc/mdoc.Test/BasicFormatterTests.cs +++ b/mdoc/mdoc.Test/BasicFormatterTests.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Mono.Cecil; using Mono.Documentation.Updater; @@ -8,6 +9,9 @@ namespace mdoc.Test { public abstract class BasicFormatterTests<T> where T : MemberFormatter { + protected Dictionary<string, ModuleDefinition> moduleCash = new Dictionary<string, ModuleDefinition>(); + protected Dictionary<string, TypeDefinition> typesCash = new Dictionary<string, TypeDefinition>(); + protected abstract T formatter { get; } protected MethodDefinition GetMethod(Type type, Func<MethodDefinition, bool> query) @@ -18,7 +22,7 @@ namespace mdoc.Test protected MethodDefinition GetMethod(TypeDefinition testclass, Func<MethodDefinition, bool> query) { var methods = testclass.Methods; - var member = methods.FirstOrDefault(query).Resolve(); + var member = methods.FirstOrDefault(query)?.Resolve(); if (member == null) throw new Exception("Did not find the member in the test class"); return member; @@ -27,7 +31,7 @@ namespace mdoc.Test protected MethodDefinition GetProperty(TypeDefinition testclass, Func<MethodDefinition, bool> query) { var methods = testclass.Methods; - var member = methods.FirstOrDefault(query).Resolve(); + var member = methods.FirstOrDefault(query)?.Resolve(); if (member == null) throw new Exception("Did not find the member in the test class"); return member; @@ -35,7 +39,17 @@ namespace mdoc.Test protected TypeDefinition GetType(string filepath, string classname) { - var module = ModuleDefinition.ReadModule(filepath); + if (typesCash.ContainsKey(classname)) + return typesCash[classname]; + + + if (!moduleCash.ContainsKey(filepath)) + { + var readModule = ModuleDefinition.ReadModule(filepath); + moduleCash.Add(filepath, readModule); + } + + var module = moduleCash[filepath]; var types = module.GetTypes(); var testclass = types .SingleOrDefault(t => t.FullName == classname); @@ -43,7 +57,10 @@ namespace mdoc.Test { throw new Exception($"Test was unable to find type {classname}"); } - return testclass.Resolve(); + + var typeDef = testclass.Resolve(); + typesCash.Add(classname, typeDef); + return typeDef; } protected virtual TypeDefinition GetType(Type type) @@ -54,7 +71,7 @@ namespace mdoc.Test protected MemberReference GetProperty(TypeDefinition type, string memberName) { - var property = type.Properties.SingleOrDefault(i => i.Name == memberName); + var property = type.Properties.FirstOrDefault(i => i.Name == memberName); if (property == null) throw new Exception($"Can't find property {memberName}"); return property; @@ -83,6 +100,14 @@ namespace mdoc.Test Assert.AreEqual(expected, signature); } + protected void TestTypeSignature(string libPath, string fullTypeName, string expected) + { + expected = FormatEndings(expected); + var type = GetType(libPath, fullTypeName); + var signature = formatter.GetDeclaration(type); + Assert.AreEqual(expected, signature); + } + private string GetTypeSignature(Type type) { var tref = GetType(type); @@ -96,6 +121,14 @@ namespace mdoc.Test Assert.AreEqual(FormatEndings(expected), signature); } + protected void TestMethodSignature(string libPath, string fullTypeName, string memberName, string expected) + { + var type = GetType(libPath, fullTypeName); + var method = GetMethod(type, i => i.Name == memberName); + var signature = formatter.GetDeclaration(method); + Assert.AreEqual(FormatEndings(expected), signature); + } + private string GetMethodSignature(Type type, string memberName) { var tref = GetType(type); @@ -116,6 +149,14 @@ namespace mdoc.Test return formatter.GetDeclaration(GetProperty(tref, memberName)); } + protected void TestPropertySignature(string libPath, string fullTypeName, string memberName, string expected) + { + var type = GetType(libPath, fullTypeName); + var property = GetProperty(type, memberName); + var signature = formatter.GetDeclaration(property); + Assert.AreEqual(FormatEndings(expected), signature); + } + protected void TestEventSignature(Type type, string expected, string memberName) { var signature = GetEventSignature(type, memberName); @@ -128,6 +169,14 @@ namespace mdoc.Test return formatter.GetDeclaration(GetEvent(tref, memberName)); } + protected void TestEventSignature(string libPath, string fullTypeName, string memberName, string expected) + { + var type = GetType(libPath, fullTypeName); + var @event = GetEvent(type, memberName); + var signature = formatter.GetDeclaration(@event); + Assert.AreEqual(FormatEndings(expected), signature); + } + protected void TestFieldSignature(Type type, string expected, string memberName) { var usage = GetFieldUsage(type, memberName); @@ -142,9 +191,18 @@ namespace mdoc.Test return signature; } + protected void TestFieldSignature(string libPath, string fullTypeName, string memberName, string expected) + { + var type = GetType(libPath, fullTypeName); + var field = GetField(type, memberName); + var signature = formatter.GetDeclaration(field); + Assert.AreEqual(FormatEndings(expected), signature); + } + protected static string FormatEndings(string s) { return s?.Replace("\r\n", MemberFormatter.GetLineEnding()); } } -}
\ No newline at end of file + +} diff --git a/mdoc/mdoc.Test/CppCxFormatterMembersTests.cs b/mdoc/mdoc.Test/CppCxFormatterMembersTests.cs new file mode 100644 index 00000000..8b1e73e1 --- /dev/null +++ b/mdoc/mdoc.Test/CppCxFormatterMembersTests.cs @@ -0,0 +1,143 @@ +using Mono.Documentation.Updater.Formatters.CppFormatters; +using Mono_DocTest; +using NUnit.Framework; +using Cpp = Mono_DocTest_Generic; + +namespace mdoc.Test +{ + [TestFixture] + [Category("CppCx")] + public class CppCxFormatterMembersTests : BasicFormatterTests<CppCxFullMemberFormatter> + { + protected override CppCxFullMemberFormatter formatter { get; } = new CppCxFullMemberFormatter(); + + private const string CppCxTestLibName = "../../../../external/Test/UwpTestWinRtComponentCpp.winmd"; + private const string CSharpTestLib = "../../../../external/Test/CSharpExample.dll"; + + [Test] + [Category("Method")] + public void Method_ComputeResult() + { + TestMethodSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "ComputeResult", + @"public: + Windows::Foundation::Collections::IVector<double> ^ ComputeResult(double input);"); + } + + [Test] + [Category("Method")] + public void Method_GetPrimesOrdered() + { + TestMethodSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "GetPrimesOrdered", + @"public: + Windows::Foundation::IAsyncOperationWithProgress<Windows::Foundation::Collections::IVector<int> ^, double> ^ GetPrimesOrdered(int first, int last);"); + + } + + [Test] + [Category("Method")] + public void Method_GetPrimesUnordered() + { + TestMethodSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "GetPrimesUnordered", + @"public: + Windows::Foundation::IAsyncActionWithProgress<double> ^ GetPrimesUnordered(int first, int last);"); + } + + [Test] + [Category("Method")] + public void Method_WinRtTypeInterfaceImplementation() + { + TestMethodSignature(CppCxTestLibName, "Namespace222.App", "SetWindow", + @"public: + virtual void SetWindow(Windows::UI::Core::CoreWindow ^ window) = Windows::ApplicationModel::Core::IFrameworkView::SetWindow;"); + } + + [Test] + [Category("Field")] + public void Field_CustomAttributeFundamentalType() + { + TestFieldSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.CustomAttribute1", "Field1", "public: bool Field1;"); + } + + + [Test] + [Category("Field")] + public void Field_CustomAttributуSpecificType() + { + TestFieldSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.CustomAttribute1", "Field2", "public: Windows::Foundation::HResult Field2;"); + } + + [Test] + [Category("Field")] + public void Field_EnumField() + { + TestFieldSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Color1", "Red", "Red"); + } + + [Test] + [Category("Field")] + public void Field_ValueType_String() + { + TestFieldSignature(CppCxTestLibName, "Namespace2.Class4", "StringField", "public: Platform::String ^ StringField;"); + } + + [Test] + [Category("Event")] + public void Event_Class1_primeFoundEvent() + { + TestEventSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "primeFoundEvent", @"public: + event UwpTestWinRtComponentCpp::PrimeFoundHandler ^ primeFoundEvent;"); + } + + [Test] + [Category("Properties")] + public void Property_FundamentalType() + { + TestPropertySignature(CppCxTestLibName, "Namespace2.Class3", "LongProperty", @"public: + property long long LongProperty { long long get(); void set(long long value); };"); + } + + [Test] + [Category("Properties")] + public void Property_ArrayOfTypeProperty() + { + TestPropertySignature(CppCxTestLibName, "Namespace2.Class3", "ArrayOfTypeProperty", @"public: + property Platform::Array <Platform::Type ^> ^ ArrayOfTypeProperty { Platform::Array <Platform::Type ^> ^ get(); void set(Platform::Array <Platform::Type ^> ^ value); };"); + } + + [Test] + [Category("Properties")] + public void Property_ArrayOfTypePropertyProtected() + { + TestPropertySignature(CppCxTestLibName, "Namespace2.Class3", "ArrayOfTypePropertyProtected", @"protected: + property Platform::Array <Platform::Type ^> ^ ArrayOfTypePropertyProtected { Platform::Array <Platform::Type ^> ^ get(); void set(Platform::Array <Platform::Type ^> ^ value); };"); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_ParamsKeyword_M6() + { + TestMethodSignature(typeof(Widget), null, "M6"); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_DefaultParameters() + { + TestMethodSignature(CSharpTestLib, "Mono.DocTest.Widget", "Default", null); + } + + [TestFixtureTearDown] + public void TearDown() + { + moduleCash.Clear(); + } + [Test] + [Category("NoSupport")] + public void NoSupport_Exception_NestedClassWithSameName() + { + TestTypeSignature(CSharpTestLib, "Mono.DocTest.Widget/NestedClass", null); + } + } + +} + diff --git a/mdoc/mdoc.Test/CppCxFormatterTypesTests.cs b/mdoc/mdoc.Test/CppCxFormatterTypesTests.cs new file mode 100644 index 00000000..be2bd186 --- /dev/null +++ b/mdoc/mdoc.Test/CppCxFormatterTypesTests.cs @@ -0,0 +1,197 @@ +using System; +using Mono.Cecil; +using Mono.Documentation.Updater.Formatters.CppFormatters; +using Mono_DocTest; +using Mono_DocTest_Generic; +using NUnit.Framework; + +namespace mdoc.Test +{ + [TestFixture] + [Category("CppCx")] + public class CppCxFormatterTypesTests : BasicFormatterTests<CppCxMemberFormatter> + { + protected override CppCxMemberFormatter formatter => new CppCxMemberFormatter(); + + private string _cppCxTestLibName = "../../../../external/Test/UwpTestWinRtComponentCpp.winmd"; + + protected override TypeDefinition GetType(Type type) + { + var moduleName = type.Module.FullyQualifiedName; + + var tref = GetType(moduleName, type.FullName?.Replace("+", "/")); + return tref; + } + + [Test] + [Category("Type")] + public void TypeSignature_CustomAttribute() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.CustomAttribute1", + "public ref class CustomAttribute1 sealed : Platform::Metadata::Attribute"); + } + + [Test] + [Category("Type")] + public void TypeSignature_Class1() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", + "public ref class Class1 sealed"); + } + + [Test] + [Category("Type")] + public void TypeSignature_delegate() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.PrimeFoundHandler", + "public delegate void PrimeFoundHandler(int result);"); + } + + [Test] + [Category("Type")] + public void TypeSignature_delegateWithSpecificType() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.PrimeFoundHandlerWithSpecificType", + "public delegate void PrimeFoundHandlerWithSpecificType(IMap<double, float> ^ result);"); + } + + [Test] + [Category("Type")] + public void TypeSignature_delegateWithCustomType() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.SomethingHappenedEventHandler", + "public delegate void SomethingHappenedEventHandler(Class1 ^ sender, Platform::String ^ s);"); + } + + [Test] + [Category("Type")] + public void TypeSignature_enum() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.Color1", "public enum class Color1"); + } + + [Test] + [Category("Type")] + public void TypeSignature_publicUnsealedClass() + { + TestTypeSignature(_cppCxTestLibName, "Namespace2.Class2", @"public ref class Class2 : Windows::UI::Xaml::Application"); + + } + + [Test] + [Category("Type")] + public void TypeSignature_ValueClass() + { + TestTypeSignature(_cppCxTestLibName, "Namespace2.Class4", "public value class Class4"); + } + + #region NoSupport + + [Test] + [Category("NoSupport")] + public void NoSupport_GenericDelegate() + { + TestTypeSignature(typeof(Action22<>), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_DelegateWithSystemType() + { + TestTypeSignature(typeof(DelegateWithNetSystemType), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_NoNamespace() + { + TestTypeSignature(typeof(NoNamespace), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_StandardType() + { + TestMethodSignature(typeof(UseLists), null, nameof(UseLists.Process)); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_PublicNestedType() + { + TestTypeSignature(typeof(Widget.NestedClass), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_PublicNestedEnum() + { + TestTypeSignature(typeof(Widget.NestedEnum), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_JaggedArrays() + { + TestMethodSignature(typeof(Widget), null, "M2"); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_PublicConstructorUnsealedClass() + { + TestTypeSignature(typeof(DocAttribute), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_PublicRefClassWithGeneric() + { + TestTypeSignature(typeof(GenericBase<>), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_GenericInterfaceWithConstraints() + { + TestTypeSignature(typeof(IFooNew<>), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_ValueTypeWithNotAllowedType() + { + TestTypeSignature(typeof(ValueClassSpecificField), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_PublicIndexedProperty() + { + TestPropertySignature(typeof(Widget), null, "indexedProperty"); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_CustomException() + { + TestTypeSignature(typeof(CustomException), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_Exception_ArgumentNullExceptionField() + { + TestFieldSignature(typeof(CustomException), null, "ArgumentNullExceptionField"); + } + + #endregion + + [TestFixtureTearDown] + public void TearDown() + { + moduleCash.Clear(); + } + } +} + diff --git a/mdoc/mdoc.Test/CppFormatterTests.cs b/mdoc/mdoc.Test/CppFormatterTests.cs new file mode 100644 index 00000000..bc87eabd --- /dev/null +++ b/mdoc/mdoc.Test/CppFormatterTests.cs @@ -0,0 +1,194 @@ +using System; +using Mono.Cecil; +using NUnit.Framework; +using Mono.Documentation.Updater.Formatters.CppFormatters; +using Mono_DocTest_Generic; +using Mono_DocTest; + +namespace mdoc.Test +{ + public class CppFormatterTests : BasicFormatterTests<CppMemberFormatter> + { + #region Types + private static readonly CppMemberFormatter cppMemberFormatter = new CppMemberFormatter(); + protected override CppMemberFormatter formatter => cppMemberFormatter; + + [Test] + [Category("Types")] + public void TypeSignature_Extensions() => + TestTypeSignature(typeof(Extensions), @"public ref class Extensions abstract sealed"); + + [Test] + [Category("Types")] + public void TypeSignature_GenericBase() => + TestTypeSignature(typeof(GenericBase<>), @"generic <typename U> +public ref class GenericBase"); + + [Test] + [Category("Types")] + public void TypeSignature_MyList() => + TestTypeSignature(typeof(MyList<>), @"generic <typename T> +public ref class MyList : Mono_DocTest_Generic::GenericBase<T>, System::Collections::Generic::IEnumerable<cli::array <int> ^>"); + + [Test] + [Category("Types")] + public void TypeSignature_IFoo() => + TestTypeSignature(typeof(IFoo<>), @"generic <typename T> +public interface class IFoo"); + + [Test] + [Category("Types")] + public void TypeSignature_MyList1() => + TestTypeSignature(typeof(MyList1<,>), @"generic <typename A, typename B> +public ref class MyList1 : Mono_DocTest_Generic::GenericBase<System::Collections::Generic::Dictionary<A, B> ^>, Mono_DocTest_Generic::IFoo<A>, System::Collections::Generic::ICollection<A>, System::Collections::Generic::IEnumerable<A>, System::Collections::Generic::IEnumerator<A>"); + + [Test] + [Category("Types")] + public void TypeSignature_Color() => + TestTypeSignature(typeof(Color), @"public enum class Color"); + + [Test] + [Category("Types")] + public void TypeSignature_Nonamespace() => + TestTypeSignature(typeof(NoNamespace), @"public ref class NoNamespace"); + + [Test] + [Category("Types")] + public void TypeSignature_DocAttribute() => + TestTypeSignature(typeof(DocAttribute), @"public ref class DocAttribute : Attribute"); + [Test] + [Category("Types")] + public void TypeSignature_Environment1() => + TestTypeSignature(typeof(Environment1), @"public ref class Environment1 abstract sealed"); + + [Test] + [Category("Types")] + public void TypeSignature_IProcess() => + TestTypeSignature(typeof(IProcess), @"public interface class IProcess"); + + [Test] + [Category("Types")] + public void TypeSignature_DocValueType() => + TestTypeSignature(typeof(DocValueType), @"public value class DocValueType : Mono_DocTest::IProcess"); + + [Test] + [Category("Types")] + public void TypeSignature_D() => + TestTypeSignature(typeof(D), @"public delegate System::Object ^ D(Func<System::String ^, System::Object ^, System::Object ^> ^ value);"); + + + [Test] + [Category("Fields")] + public void FieldSignature_NonFlagEnum() => + TestFieldSignature(typeof(DocAttribute), + "public: Color NonFlagsEnum;", + nameof(DocAttribute.NonFlagsEnum)); + + [Test] + [Category("Types")] + public void TypeSignature_Widget() => + TestTypeSignature(typeof(Widget), @"public ref class Widget : Mono_DocTest::IProcess"); + + [Test] + [Category("Types")] + public void TypeSignature_FooEventArgs() => + TestTypeSignature(typeof(GenericBase<>.FooEventArgs), @"public: ref class GenericBase<U>::FooEventArgs : EventArgs"); + + [Test] + [Category("Fields")] + public void FieldSignature_StaticField1() => + TestFieldSignature(typeof(GenericBase<>), + "public: static initonly GenericBase<U> ^ StaticField1;", + nameof(GenericBase<int>.StaticField1)); + + [Test] + [Category("Fields")] + public void FieldSignature_NonFlagsEnum() => + TestFieldSignature(typeof(DocAttribute), + "public: Color NonFlagsEnum;", + nameof(DocAttribute.NonFlagsEnum)); + + [Test] + [Category("Fields")] + public void FieldSignature_Pointers_ppValues() => + TestFieldSignature(typeof(Widget), + "public: float** ppValues;", + nameof(Widget.ppValues)); + + [Test] + [Category("Fields")] + public void FieldSignature_Pointers_pCount() => + TestFieldSignature(typeof(Widget), + "public: int* pCount;", + nameof(Widget.pCount)); + + [Test] + [Category("Fields")] + public void FieldSignature_value() => + TestFieldSignature(typeof(Widget.NestedClass), + "public: int value;", + nameof(Widget.NestedClass.value)); + + [Test] + [Category("Fields")] + public void FieldSignature_protectedPublic_monthlyAverage() + { + TestFieldSignature(typeof(Widget), @"protected public: initonly double monthlyAverage;", "monthlyAverage"); + } + + [Test] + [Category("Properties")] + public void PropertySignature_IndexedPropertyNamed() + { + TestPropertySignature(typeof(Widget), @"public: + property long indexedProperty[long] { long get(long index); void set(long index, long value); };", + "indexedProperty"); + } + + [Test] + [Category("Properties")] + public void PropertySignature_IndexedPropertyDefault() + { + TestPropertySignature(typeof(Widget), @"public: + property int default[System::String ^, int] { int get(System::String ^ s, int i); void set(System::String ^ s, int i, int value); };", + "Item"); + } + + + [Test] + [Category("Properties")] + public void PropertySignature_Current3() => + TestPropertySignature(typeof(MyList1<,>), @"public: + virtual property System::Object ^ Current3 { System::Object ^ get(); };", + nameof(MyList1<int,int>.Current3)); + + [Test] + [Category("Properties")] + public void PropertySignature_B() => + TestPropertySignature(typeof(Widget.IMenuItem), @"public: + property int B { int get(); void set(int value); };", + nameof(Widget.IMenuItem.B)); + [Test] + [Category("Properties")] + public void PropertySignature_Count() => + TestPropertySignature(typeof(MyList1<,>), @"public: + virtual property int Count { int get(); };", + nameof(MyList1<int, int>.Count)); + + [Test] + [Category("Types")] + public void TypeSignature_AsyncCallback() => + TestTypeSignature(typeof(AsyncCallback), @"public delegate void AsyncCallback(IAsyncResult ^ ar);"); + + #endregion + + protected override TypeDefinition GetType(Type type) + { + var moduleName = type.Module.FullyQualifiedName; + + var tref = GetType(moduleName, type.FullName.Replace("+", "/")); + return tref; + } + + } +} diff --git a/mdoc/mdoc.Test/CppFullFormatterTests.cs b/mdoc/mdoc.Test/CppFullFormatterTests.cs new file mode 100644 index 00000000..9cd417d8 --- /dev/null +++ b/mdoc/mdoc.Test/CppFullFormatterTests.cs @@ -0,0 +1,308 @@ +using System; +using Mono.Cecil; +using NUnit.Framework; +using Mono.Documentation.Updater.Formatters.CppFormatters; +using Mono_DocTest_Generic; +using Cpp=Mono_DocTest_Generic; +using Mono_DocTest; + +namespace mdoc.Test +{ + public class CppFullFormatterTests: BasicFormatterTests<CppFullMemberFormatter> + { + private static readonly CppFullMemberFormatter cppFullMemberFormatter = new CppFullMemberFormatter(); + protected override CppFullMemberFormatter formatter => cppFullMemberFormatter; + private const string CSharpTestLib = "../../../../external/Test/CSharpExample.dll"; + [Test] + [Category("Methods")] + public void MethodSignature_Bar() => + TestMethodSignature(typeof(Cpp.Extensions), @"public: +generic <typename T> +[System::Runtime::CompilerServices::Extension] + static void Bar(IFoo<T> ^ self, System::String ^ s);", + nameof(Cpp.Extensions.Bar)); + + [Test] + [Category("Methods")] + public void MethodSignature_ForEach() => + TestMethodSignature(typeof(Cpp.Extensions), @"public: +generic <typename T> +[System::Runtime::CompilerServices::Extension] + static void ForEach(System::Collections::Generic::IEnumerable<T> ^ self, Action<T> ^ a);", + nameof(Cpp.Extensions.ForEach)); + + [Test] + [Category("Methods")] + public void MethodSignature_ToEnumerable() => + TestMethodSignature(typeof(Cpp.Extensions), @"public: +generic <typename T> +[System::Runtime::CompilerServices::Extension] + static System::Collections::Generic::IEnumerable<T> ^ ToEnumerable(T self);", + nameof(Cpp.Extensions.ToEnumerable)); + + [Test] + [Category("Methods")] + public void MethodSignature_ToDouble() => + TestMethodSignature(typeof(Cpp.Extensions), @"public: +generic <typename T> + where T : IFoo<T>[System::Runtime::CompilerServices::Extension] + static double ToDouble(T val);", + nameof(Cpp.Extensions.ToDouble)); + + [Test] + [Category("Methods")] + public void MethodSignature_BaseMethod() => + TestMethodSignature(typeof(GenericBase<>), @"public: +generic <typename S> + U BaseMethod(S genericParameter);", + nameof(GenericBase<int>.BaseMethod)); + + [Test] + [Category("Methods")] + public void MethodSignature_Method() => + TestMethodSignature(typeof(IFoo<>), @"public: +generic <typename U> + T Method(T t, U u);", + nameof(IFoo<int>.Method)); + + [Test] + [Category("Fields")] + public void FieldSignature_ConstInt() => + TestFieldSignature(typeof(GenericBase<>), + "public: const int ConstInt;", + nameof(GenericBase<int>.ConstInt)); + + [Test] + [Category("Fields")] + public void FieldSignature_ConstLong() => + TestFieldSignature(typeof(GenericBase<>), + "public: const long ConstLong;", + nameof(GenericBase<int>.ConstLong)); + + [Test] + [Category("Fields")] + public void FieldSignature_ConstDecimal() => + TestFieldSignature(typeof(GenericBase<>), + "public: const System::Decimal ConstDecimal;", + nameof(GenericBase<int>.ConstDecimal)); + + [Test] + [Category("Fields")] + public void FieldSignature_ConstShort() => + TestFieldSignature(typeof(GenericBase<>), + "public: const short ConstShort;", + nameof(GenericBase<int>.ConstShort)); + [Test] + [Category("Fields")] + public void FieldSignature_ConstUint16() => + TestFieldSignature(typeof(GenericBase<>), + "public: const System::UInt16 ConstUint16;", + nameof(GenericBase<int>.ConstUint16)); + [Test] + [Category("Fields")] + public void FieldSignature_ConstUint32() => + TestFieldSignature(typeof(GenericBase<>), + "public: const System::UInt32 ConstUint32;", + nameof(GenericBase<int>.ConstUint32)); + [Test] + [Category("Fields")] + public void FieldSignature_ConstUint64() => + TestFieldSignature(typeof(GenericBase<>), + "public: const System::UInt64 ConstUint64;", + nameof(GenericBase<int>.ConstUint64)); + [Test] + [Category("Fields")] + public void FieldSignature_ConstFloat() => + TestFieldSignature(typeof(GenericBase<>), + "public: const float ConstFloat;", + nameof(GenericBase<int>.ConstFloat)); + [Test] + [Category("Fields")] + public void FieldSignature_ConstBool() => + TestFieldSignature(typeof(GenericBase<>), + "public: const bool ConstBool;", + nameof(GenericBase<int>.ConstBool)); + + [Test] + [Category("Fields")] + public void FieldSignature_ConstChar() => + TestFieldSignature(typeof(GenericBase<>), + "public: const char ConstChar;", + nameof(GenericBase<int>.ConstChar)); + + [Test] + [Category("Fields")] + public void FieldSignature_ConstObject() => + TestFieldSignature(typeof(GenericBase<>), + "public: const System::Object ^ ConstObject;", + nameof(GenericBase<int>.ConstObject)); + + + [Test] + [Category("Fields")] + public void FieldSignature_ConstString() => + TestFieldSignature(typeof(GenericBase<>), + "public: const System::String ^ ConstString;", + nameof(GenericBase<int>.ConstString)); + + [Test] + [Category("Methods")] + public void MethodSignature_AsReadOnly() => + TestMethodSignature(typeof(Array1), @"public: +generic <typename T> + static System::Collections::ObjectModel::ReadOnlyCollection<T> ^ AsReadOnly(cli::array <T> ^ array);", + nameof(Array1.AsReadOnly)); + + [Test] + [Category("Methods")] + public void MethodSignature_UseT() => + TestMethodSignature(typeof(MyList<>.Helper<,>), @"public: + void UseT(T a, U b, V c);", + nameof(MyList<int>.Helper<int,int>.UseT)); + + [Test] + [Category("Methods")] + public void MethodSignature_s() => + TestMethodSignature(typeof(Widget), @"public: + Func<System::String ^, System::Object ^> ^ Dynamic2(Func<System::String ^, System::Object ^> ^ value);", + nameof(Widget.Dynamic2)); + + [Test] + [Category("Methods")] + public void MethodSignature_M2() => + TestMethodSignature(typeof(Widget), @"public: + void M2(cli::array <short> ^ x1, cli::array <int, 2> ^ x2, cli::array <cli::array <long> ^> ^ x3);", + nameof(Widget.M2)); + + [Test] + [Category("Methods")] + public void MethodSignature_PointersOnHat_JaggedArray_M5() => + TestMethodSignature(typeof(Widget), @"protected: + void M5(void* pv, cli::array <cli::array <double, 2> ^> ^* pd);", + "M5"); + + [Test] + [Category("Methods")] + public void MethodSignature_PointersOnHat_ReferenceType_M55() => + TestMethodSignature(typeof(Widget), @"protected: + void M55(void* pv, System::String ^* pd);", + "M55"); + + [Test] + [Category("Methods")] + public void MethodSignature_GenericRefParams_RefMethod() => + TestMethodSignature(typeof(MyList<>), @"public: +generic <typename U> + void RefMethod(T % t, U % u);", + nameof(MyList<int>.RefMethod)); + + [Test] + [Category("Methods")] + public void MethodSignature_RefParams_M1() => + TestMethodSignature(typeof(Widget), @"public: + void M1(long c, [Runtime::InteropServices::Out] float % f, Mono_DocTest::DocValueType % v);", + nameof(Widget.M1)); + + [Test] + [Category("Methods")] + public void MethodSignature_RefParamsWithHat_RefMethod() => + TestMethodSignature(typeof(Array1), @"public: +generic <typename T> + static void Resize(cli::array <T> ^ % array, int newSize);", + nameof(Array1.Resize)); + + [Test] + [Category("Methods")] + public void MethodSignature_Reset() => + TestMethodSignature(typeof(MyList1<,>), @"public: + virtual void Reset();", + nameof(MyList1<int,int>.Reset)); + + [Test] + [Category("Methods")] + public void MethodSignature_GetEnumerator1() => + TestMethodSignature(typeof(MyList<>), @"public: + virtual System::Collections::IEnumerator ^ GetEnumerator1() = System::Collections::IEnumerable::GetEnumerator;", + nameof(MyList<int>.GetEnumerator1)); + + [Test] + [Category("Methods")] + public void MethodSignature_GetEnumeratorIEnumerable() => + TestMethodSignature(typeof(MyList1<,>), @"public: + virtual System::Collections::IEnumerator ^ GetEnumerator1() = System::Collections::IEnumerable::GetEnumerator;", + nameof(MyList1<int,int>.GetEnumerator1)); + + [Test] + [Category("Methods")] + public void MethodSignature_GetEnumeratorGenericIEnumerable() + { + TestMethodSignature( + typeof(MyList1<,>), @"public: + virtual System::Collections::Generic::IEnumerator<A> ^ GetEnumerator() = System::Collections::Generic::IEnumerable<A>::GetEnumerator;", + nameof(MyList1<int, int>.GetEnumerator)); + + } + + [Test] + [Category("Methods")] + public void MethodSignature_opAddition() => + TestMethodSignature(typeof(Widget), @"public: + static Mono_DocTest::Widget ^ operator +(Mono_DocTest::Widget ^ x1, Mono_DocTest::Widget ^ x2);", + "op_Addition"); + + + [Test] + [Category("Methods")] + [Category("NoSupport")] + public void MethodSignature_NoSupport_DefaultValue() => + TestMethodSignature(CSharpTestLib, "Mono.DocTest.Widget", "Default", + null); + + [Test] + [Category("NoSupport")] + public void NoSupport_Exception_NestedClassWithSameName() + { + TestTypeSignature(CSharpTestLib, "Mono.DocTest.Widget/NestedClass", null); + } + + [Test] + [Category("Methods")] + public void MethodSignature_opExplicit() => + TestMethodSignature(typeof(Widget), @"public: + static explicit operator int(Mono_DocTest::Widget ^ x);", + "op_Explicit"); + + [Test] + [Category("Methods")] + public void MethodSignature_opImplicit() => + TestMethodSignature(typeof(Widget), @"public: + static operator long(Mono_DocTest::Widget ^ x);", + "op_Implicit"); + + [Test] + [Category("Methods")] + public void MethodSignature_constructor() + { + TestMethodSignature(typeof(Widget), @"public: + Widget(Converter<System::String ^, System::String ^> ^ c);", + ".ctor"); + } + + [Test] + [Category("Methods")] + public void MethodSignature_ParamsKeyword_M6() + { + TestMethodSignature(typeof(Widget), @"protected: + void M6(int i, ... cli::array <System::Object ^> ^ args);", + "M6"); + } + + protected override TypeDefinition GetType(Type type) + { + var moduleName = type.Module.FullyQualifiedName; + + var tref = GetType(moduleName, type.FullName.Replace("+", "/")); + return tref; + } + } +} diff --git a/mdoc/mdoc.Test/CppWinRtFormatterTests.cs b/mdoc/mdoc.Test/CppWinRtFormatterTests.cs new file mode 100644 index 00000000..0a2b361d --- /dev/null +++ b/mdoc/mdoc.Test/CppWinRtFormatterTests.cs @@ -0,0 +1,146 @@ +using System; +using Mono.Cecil; +using Mono.Documentation.Updater.CppFormatters; +using Mono.Documentation.Updater.Formatters.CppFormatters; +using Mono_DocTest; +using Mono_DocTest_Generic; +using NUnit.Framework; + +namespace mdoc.Test +{ + [TestFixture] + public class CppWinRtFormatterTests : BasicFormatterTests<CppWinRtMemberFormatter> + { + private static readonly CppWinRtMemberFormatter CppWinRtMemberFormatter = new CppWinRtMemberFormatter(); + protected override CppWinRtMemberFormatter formatter => CppWinRtMemberFormatter; + + private string _cppCxTestLibName = "../../../../external/Test/UwpTestWinRtComponentCpp.winmd"; + private const string CSharpTestLib = "../../../../external/Test/CSharpExample.dll"; + + protected override TypeDefinition GetType(Type type) + { + var moduleName = type.Module.FullyQualifiedName; + + var tref = GetType(moduleName, type.FullName?.Replace("+", "/")); + return tref; + } + + [Test] + [Category("Type")] + public void TypeSignature_enum() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.Color1", "enum Color1"); + } + + [Test] + [Category("Type")] + public void TypeSignature_publicSealedClass_Class1() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", + "class Class1 sealed"); + } + + [Test] + [Category("Type")] + public void TypeSignature_publicUnsealedClass_Class2() + { + TestTypeSignature(_cppCxTestLibName, "Namespace2.Class2", @"class Class2 : winrt::Windows::UI::Xaml::Application"); + } + + [Test] + [Category("Type")] + public void TypeSignature_Struct_Class4() + { + TestTypeSignature(_cppCxTestLibName, "Namespace2.Class4", "struct Class4"); + } + + [Test] + [Category("Type")] + public void TypeSignature_GenericInterface() + { + TestTypeSignature(typeof(IFoo<>), @"template <typename T> +__interface IFoo"); + } + + [Test] + [Category("Type")] + public void TypeSignature_GenericClass() + { + TestTypeSignature(typeof(MyList<>.Helper<,>), @"template <typename U, typename V> +[Windows::Foundation::Metadata::WebHostHidden] +class MyList<T>::Helper"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NestedClass() + { + TestTypeSignature(typeof(Widget.NestedClass.Double), @"[Windows::Foundation::Metadata::WebHostHidden] +class Widget::NestedClass::Double"); + } + + [Test] + [Category("Type")] + public void TypeSignature_WebHostHiddenAttribute() + { + TestTypeSignature(typeof(Widget), @"[Windows::Foundation::Metadata::WebHostHidden] +class Widget : Mono_DocTest::IProcess"); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_Delegate() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.PrimeFoundHandlerWithSpecificType", null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_DelegateWithCustomType() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.SomethingHappenedEventHandler", + null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_CustomAttribute() + { + TestTypeSignature(_cppCxTestLibName, "UwpTestWinRtComponentCpp.CustomAttribute1", null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_CustomException() + { + TestTypeSignature(typeof(CustomException), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_Exception_ArgumentNullExceptionField() + { + TestFieldSignature(typeof(CustomException), null, "ArgumentNullExceptionField"); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_Exception_InterfaceWithGenericConstraints() + { + TestTypeSignature(typeof(IFooNew<>), null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_Exception_ClassWithGenericConstraints() + { + TestTypeSignature(typeof(GenericConstraintClass<>), null); + } + [Test] + [Category("NoSupport")] + public void NoSupport_Exception_NestedClassWithSameName() + { + TestTypeSignature(CSharpTestLib, "Mono.DocTest.Widget/NestedClass", null); + } + } +} diff --git a/mdoc/mdoc.Test/CppWinRtMembersTests.cs b/mdoc/mdoc.Test/CppWinRtMembersTests.cs new file mode 100644 index 00000000..c5acfd26 --- /dev/null +++ b/mdoc/mdoc.Test/CppWinRtMembersTests.cs @@ -0,0 +1,134 @@ +using Mono.Documentation.Updater.CppFormatters; +using Mono_DocTest; +using NUnit.Framework; +using Cpp = Mono_DocTest_Generic; + +namespace mdoc.Test +{ + [TestFixture] + public class CppWinRtMembersTests: BasicFormatterTests<CppWinRtFullMemberFormatter> + { + private static readonly CppWinRtFullMemberFormatter CppWinRtFullMemberFormatter = new CppWinRtFullMemberFormatter(); + protected override CppWinRtFullMemberFormatter formatter => CppWinRtFullMemberFormatter; + + private string CppCxTestLibName = "../../../../external/Test/UwpTestWinRtComponentCpp.winmd"; + private const string CSharpTestLib = "../../../../external/Test/CSharpExample.dll"; + + [Test] + [Category("Method")] + public void Method_ComputeResult() + { + TestMethodSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "ComputeResult", + @"winrt::Windows::Foundation::Collections::IVector<double> ComputeResult(double input);"); + } + + [Test] + [Category("Method")] + public void Method_GetPrimesOrdered() + { + TestMethodSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "GetPrimesOrdered", + @"winrt::Windows::Foundation::IAsyncOperationWithProgress<Windows::Foundation::Collections::IVector<int>, double> GetPrimesOrdered(int first, int last);"); + + } + + [Test] + [Category("Method")] + public void Method_GetPrimesUnordered() + { + TestMethodSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "GetPrimesUnordered", + @"winrt::Windows::Foundation::IAsyncActionWithProgress<double> GetPrimesUnordered(int first, int last);"); + } + + [Test] + [Category("Method")] + public void Method_DefaultParameters() + { + TestMethodSignature(CSharpTestLib, "Mono.DocTest.Widget", "Default", + @"void Default(int a = 1, int b = 2);"); + } + + [Test] + [Category("Method")] + public void Method_RefType() + { + TestMethodSignature(CppCxTestLibName, "Namespace222.App", "SetWindow1", + @"void SetWindow1(winrt::Windows::UI::Core::CoreWindow const & window);"); + } + + [Test] + [Category("Method")] + public void Method_WinRtTypeInterfaceImplementation() + { + TestMethodSignature(CppCxTestLibName, "Namespace222.App", "SetWindow", + @"void SetWindow(winrt::Windows::UI::Core::CoreWindow const & window);"); + } + + [Test] + [Category("Fields")] + public void FieldSignature_ConstLong() => + TestFieldSignature(typeof(Cpp.GenericBase<>), + "const long ConstLong;", + nameof(Cpp.GenericBase<int>.ConstLong)); + + [Test] + [Category("Fields")] + public void FieldSignature_ConstChar() => + TestFieldSignature(typeof(Cpp.GenericBase<>), + "const char ConstChar;", + nameof(Cpp.GenericBase<int>.ConstChar)); + + + + #region NoSupport + [Test] + [Category("NoSupport")] + public void NoSupport_Property() + { + TestPropertySignature(CppCxTestLibName, "Namespace2.Class3", "LongProperty", null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_Event() + { + TestEventSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "primeFoundEvent", null); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_ExtensionMethod() + { + TestMethodSignature(typeof(Cpp.Extensions), null, nameof(Cpp.Extensions.Bar)); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_SystemTypes() + { + TestMethodSignature(typeof(Cpp.Extensions), null, nameof(Cpp.Extensions.Bar)); + } + + + [Test] + [Category("NoSupport")] + public void MethodSignature_ParamsKeyword_M6() + { + TestMethodSignature(typeof(Widget), null, "M6"); + } + + [Test] + [Category("NoSupport")] + public void NoSupport_StandardType() + { + TestMethodSignature(typeof(UseLists), null, nameof(UseLists.Process)); + } + + [Test] + [Category("Fields")] + public void NoSupport_Decimal() => + TestFieldSignature(typeof(Cpp.GenericBase<>), + null, + nameof(Cpp.GenericBase<int>.ConstDecimal)); +#endregion + } +} diff --git a/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class1.cpp b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class1.cpp new file mode 100644 index 00000000..44d5f4cf --- /dev/null +++ b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class1.cpp @@ -0,0 +1,166 @@ +#include "pch.h" +#include "Class1.h" + +#include <ppltasks.h> +#include <concurrent_vector.h> + +using namespace concurrency; +using namespace Platform::Collections; +using namespace Windows::Foundation::Collections; +using namespace Windows::Foundation; +using namespace Windows::UI::Core; + +using namespace UwpTestWinRtComponentCpp; +using namespace Platform; + +Class1::Class1() +{ + +} + +//Public API +IVector<double>^ Class1::ComputeResult(double input) +{ + // Implement your function in ISO C++ or + // call into your C++ lib or DLL here. This example uses AMP. + float numbers[] = { 1.0, 10.0, 60.0, 100.0, 600.0, 10000.0 }; + array_view<float, 1> logs(6, numbers); + + // See http://msdn.microsoft.com/en-us/library/hh305254.aspx + parallel_for_each( + logs.extent, + [=](index<1> idx) restrict(amp) + { + logs[idx] = concurrency::fast_math::log10(logs[idx]); + } + ); + + // Return a Windows Runtime-compatible type across the ABI + auto res = ref new Vector<double>(); + int len = safe_cast<int>(logs.extent.size()); + for (int i = 0; i < len; i++) + { + res->Append(logs[i]); + } + + // res is implicitly cast to IVector<double> + return res; +} + +// Determines whether the input value is prime. +bool Class1::is_prime(int n) +{ + if (n < 2) + return false; + for (int i = 2; i < n; ++i) + { + if ((n % i) == 0) + return false; + } + return true; +} + +// This method computes all primes, orders them, then returns the ordered results. +IAsyncOperationWithProgress<IVector<int>^, double>^ Class1::GetPrimesOrdered(int first, int last) +{ + return create_async([this, first, last] + (progress_reporter<double> reporter) -> IVector<int>^ { + // Ensure that the input values are in range. + if (first < 0 || last < 0) { + throw ref new InvalidArgumentException(); + } + // Perform the computation in parallel. + concurrent_vector<int> primes; + long operation = 0; + long range = last - first + 1; + double lastPercent = 0.0; + + parallel_for(first, last + 1, [this, &primes, &operation, + range, &lastPercent, reporter](int n) { + + // Increment and store the number of times the parallel + // loop has been called on all threads combined. There + // is a performance cost to maintaining a count, and + // passing the delegate back to the UI thread, but it's + // necessary if we want to display a determinate progress + // bar that goes from 0 to 100%. We can avoid the cost by + // setting the ProgressBar IsDeterminate property to false + // or by using a ProgressRing. + if (InterlockedIncrement(&operation) % 100 == 0) + { + reporter.report(100.0 * operation / range); + } + + // If the value is prime, add it to the local vector. + if (is_prime(n)) { + primes.push_back(n); + } + }); + + // Sort the results. + std::sort(begin(primes), end(primes), std::less<int>()); + reporter.report(100.0); + + // Copy the results to a Vector object, which is + // implicitly converted to the IVector return type. IVector + // makes collections of data available to other + // Windows Runtime components. + return ref new Vector<int>(primes.begin(), primes.end()); + }); +} + +// This method returns no value. Instead, it fires an event each time a +// prime is found, and passes the prime through the event. +// It also passes progress info. +IAsyncActionWithProgress<double>^ Class1::GetPrimesUnordered(int first, int last) +{ + + auto window = Windows::UI::Core::CoreWindow::GetForCurrentThread(); + m_dispatcher = window->Dispatcher; + + + return create_async([this, first, last](progress_reporter<double> reporter) { + + // Ensure that the input values are in range. + if (first < 0 || last < 0) { + throw ref new InvalidArgumentException(); + } + + // In this particular example, we don't actually use this to store + // results since we pass results one at a time directly back to + // UI as they are found. However, we have to provide this variable + // as a parameter to parallel_for. + concurrent_vector<int> primes; + long operation = 0; + long range = last - first + 1; + double lastPercent = 0.0; + + // Perform the computation in parallel. + parallel_for(first, last + 1, + [this, &primes, &operation, range, &lastPercent, reporter](int n) + { + // Store the number of times the parallel loop has been called + // on all threads combined. See comment in previous method. + if (InterlockedIncrement(&operation) % 100 == 0) + { + reporter.report(100.0 * operation / range); + } + + // If the value is prime, pass it immediately to the UI thread. + if (is_prime(n)) + { + // Since this code is probably running on a worker + // thread, and we are passing the data back to the + // UI thread, we have to use a CoreDispatcher object. + m_dispatcher->RunAsync(CoreDispatcherPriority::Normal, + ref new DispatchedHandler([this, n, operation, range]() + { + this->primeFoundEvent(n); + + }, Platform::CallbackContext::Any)); + + } + }); + reporter.report(100.0); + }); +} diff --git a/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class1.h b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class1.h new file mode 100644 index 00000000..e01197c7 --- /dev/null +++ b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class1.h @@ -0,0 +1,93 @@ +#pragma once +#include <collection.h> +#include <ppl.h> +#include <amp.h> +#include <amp_math.h> +using namespace Windows::Foundation::Collections; + +namespace UwpTestWinRtComponentCpp +{ + //short, long + public delegate void PrimeFoundHandler(int result); + public delegate void PrimeFoundHandlerWithSpecificType(/*Windows::Foundation::Collections::*/IMap<double, float> ^ result); + + public ref class Class1 sealed + { + public: + Class1(); + public: + // Synchronous method. + Windows::Foundation::Collections::IVector<double> ^ ComputeResult(double input); + + // Asynchronous methods + Windows::Foundation::IAsyncOperationWithProgress<Windows::Foundation::Collections::IVector<int>^, double>^ + GetPrimesOrdered(int first, int last); + Windows::Foundation::IAsyncActionWithProgress<double>^ GetPrimesUnordered(int first, int last); + + // Event whose type is a delegate "class" + event PrimeFoundHandler^ primeFoundEvent; + + private: + bool is_prime(int n); + Windows::UI::Core::CoreDispatcher ^ m_dispatcher; + }; + + public delegate void SomethingHappenedEventHandler(Class1 ^ sender, Platform::String ^ s); + + public ref class CustomAttribute1 sealed : Platform::Metadata::Attribute { + public: bool Field1; + public: Windows::Foundation::HResult Field2; + //public: Platform::CallbackContext Field3 = CallbackContext.Any; + + private: delegate void SomethingHappenedEventHandler(); + }; + + public enum class Color1 { + Red, Blue + }; +} + +namespace Namespace222 { + + + using namespace std::chrono; + + using namespace Windows::ApplicationModel::Core; + using namespace Windows::Foundation; + using namespace Windows::UI::Core; + using namespace Windows::UI::Composition; + using namespace Windows::Media::Core; + using namespace Windows::Media::Playback; + using namespace Windows::System; + using namespace Windows::Storage; + using namespace Windows::Storage::Pickers; + + + public ref class App sealed: IFrameworkView + { + ref class NestedClass1 {}; + + public: virtual void Initialize(CoreApplicationView ^ applicationView) + { + }; + + void virtual Load(Platform::String ^ entryPoint) + { + }; + + void virtual Uninitialize() + { + }; + + void virtual Run() + { + + }; + + void virtual SetWindow(CoreWindow ^ window) {}; + void SetWindow1(CoreWindow ^ window) {}; + + public: property CoreWindow ^ m_activated; + public: property CompositionTarget ^ m_target; + }; +}
\ No newline at end of file diff --git a/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class2.cpp b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class2.cpp new file mode 100644 index 00000000..e676f59b --- /dev/null +++ b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class2.cpp @@ -0,0 +1,7 @@ +#include "pch.h" +#include "Class2.h" + + +Namespace2::Class2::Class2() +{ +} diff --git a/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class2.h b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class2.h new file mode 100644 index 00000000..2544e408 --- /dev/null +++ b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class2.h @@ -0,0 +1,44 @@ +#pragma once +#include<Class1.h> + +namespace Namespace2 { + public ref class Class2 : public Windows::UI::Xaml::Application + { + private: + Class2(); + + private: ref class Class2Nested {}; + }; + + public ref class Class3 sealed : public Windows::UI::Xaml::Application + { + private: + Class3(); + + // public: double DoubleField; + + public: property long long LongProperty; + public: property Platform::Array<Platform::Type ^ > ^ ArrayOfTypeProperty; + + protected: property Platform::Array<Platform::Type ^ > ^ ArrayOfTypePropertyProtected; + + //for public wnRT type -> * + // public: unsigned long long MethodWithReferenceParameter(Class2 ^ * refParam); + //only for private + private: unsigned long long MethodWithReferenceParameter(double & refParam); + }; + + public value class Class4 { + //at least 1 public field + public: Platform::String ^ StringField; + + //не может нон паблик дата мемберс + //private: property Platform::String ^ StringField2; + }; + + generic<typename T> + private interface class IFooNew { + + }; +} + diff --git a/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/UwpTestWinRtComponentCpp.vcxproj b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/UwpTestWinRtComponentCpp.vcxproj new file mode 100644 index 00000000..cf1008fc --- /dev/null +++ b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/UwpTestWinRtComponentCpp.vcxproj @@ -0,0 +1,234 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|ARM"> + <Configuration>Debug</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM"> + <Configuration>Release</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{b40e3216-ad33-4cde-b645-bb1c68457153}</ProjectGuid> + <Keyword>WindowsRuntimeComponent</Keyword> + <RootNamespace>UwpTestWinRtComponentCpp</RootNamespace> + <DefaultLanguage>en-US</DefaultLanguage> + <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion> + <AppContainerApplication>true</AppContainerApplication> + <ApplicationType>Windows Store</ApplicationType> + <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion> + <WindowsTargetPlatformMinVersion>10.0.10586.0</WindowsTargetPlatformMinVersion> + <ApplicationTypeRevision>10.0</ApplicationTypeRevision> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v141</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v141</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v141</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v141</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <GenerateManifest>false</GenerateManifest> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <GenerateManifest>false</GenerateManifest> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> + <GenerateManifest>false</GenerateManifest> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> + <GenerateManifest>false</GenerateManifest> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <GenerateManifest>false</GenerateManifest> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <GenerateManifest>false</GenerateManifest> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <PreprocessorDefinitions>_WINRT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile> + <AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories> + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> + <DisableSpecificWarnings>28204</DisableSpecificWarnings> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> + </Link> + <PostBuildEvent> + <Command>xcopy "$(SolutionDir)\$(Configuration)\$(ProjectName)\$(ProjectName).winmd" "$(SolutionDir)mdoc\mdoc.Test\bin\$(Configuration)\" /F /R /Y /I</Command> + </PostBuildEvent> + <PostBuildEvent> + <Message>Copy .winmd to another folder for unit test purposes</Message> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <PreprocessorDefinitions>_WINRT_DLL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile> + <AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories> + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> + <DisableSpecificWarnings>28204</DisableSpecificWarnings> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <PreprocessorDefinitions>_WINRT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile> + <AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories> + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> + <DisableSpecificWarnings>28204</DisableSpecificWarnings> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <PreprocessorDefinitions>_WINRT_DLL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile> + <AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories> + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> + <DisableSpecificWarnings>28204</DisableSpecificWarnings> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <PreprocessorDefinitions>_WINRT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile> + <AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories> + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> + <DisableSpecificWarnings>28204</DisableSpecificWarnings> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <PreprocessorDefinitions>_WINRT_DLL;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile> + <AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories> + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> + <DisableSpecificWarnings>28204</DisableSpecificWarnings> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="Class2.h" /> + <ClInclude Include="pch.h" /> + <ClInclude Include="Class1.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="Class2.cpp" /> + <ClCompile Include="pch.cpp"> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> + </ClCompile> + <ClCompile Include="Class1.cpp" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/UwpTestWinRtComponentCpp.vcxproj.filters b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/UwpTestWinRtComponentCpp.vcxproj.filters new file mode 100644 index 00000000..4fbd5983 --- /dev/null +++ b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/UwpTestWinRtComponentCpp.vcxproj.filters @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Resources"> + <UniqueIdentifier>13ce12d4-0e01-41af-a0e4-3e189db451ae</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="pch.cpp" /> + <ClCompile Include="Class1.cpp" /> + <ClCompile Include="Class2.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="pch.h" /> + <ClInclude Include="Class1.h" /> + <ClInclude Include="Class2.h" /> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/pch.cpp b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/pch.cpp new file mode 100644 index 00000000..bcb5590b --- /dev/null +++ b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/pch.cpp @@ -0,0 +1 @@ +#include "pch.h" diff --git a/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/pch.h b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/pch.h new file mode 100644 index 00000000..10fe677c --- /dev/null +++ b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/pch.h @@ -0,0 +1,4 @@ +#pragma once + +#include <collection.h> +#include <ppltasks.h> diff --git a/mdoc/mdoc.Test/mdoc.Test.csproj b/mdoc/mdoc.Test/mdoc.Test.csproj index 4feee40c..4792d11b 100644 --- a/mdoc/mdoc.Test/mdoc.Test.csproj +++ b/mdoc/mdoc.Test/mdoc.Test.csproj @@ -24,8 +24,15 @@ <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
+ <PropertyGroup>
+ <RunPostBuildEvent>Always</RunPostBuildEvent>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="FSharp.Core, Version=4.4.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
+ <Reference Include="mdoc.Test.Cplusplus, Version=1.0.6544.28971, Culture=neutral, processorArchitecture=AMD64">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\external\Test\mdoc.Test.Cplusplus.dll</HintPath>
+ </Reference>
<Reference Include="System" />
<Reference Include="nunit.framework">
<HintPath>..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
@@ -42,10 +49,25 @@ <Reference Include="Mono.Cecil.Rocks, Version=0.10.0.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e, processorArchitecture=MSIL">
<HintPath>..\..\packages\Mono.Cecil.0.10.0-beta5\lib\net40\Mono.Cecil.Rocks.dll</HintPath>
</Reference>
+ <Reference Include="Windows">
+ <HintPath>..\..\external\Windows\Windows.WinMD</HintPath>
+ </Reference>
+ <Reference Include="Windows.Foundation.FoundationContract">
+ <HintPath>..\..\external\Windows\Windows.Foundation.FoundationContract.winmd</HintPath>
+ </Reference>
+ <Reference Include="Windows.Foundation.UniversalApiContract">
+ <HintPath>..\..\external\Windows\Windows.Foundation.UniversalApiContract.winmd</HintPath>
+ </Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="BasicFormatterTests.cs" />
+ <Compile Include="CppWinRtMembersTests.cs" />
+ <Compile Include="CppWinRtFormatterTests.cs" />
<Compile Include="FSharp\BasicFSharpFormatterTests.cs" />
+ <Compile Include="CppCxFormatterMembersTests.cs" />
+ <Compile Include="CppFormatterTests.cs" />
+ <Compile Include="CppCxFormatterTypesTests.cs" />
+ <Compile Include="CppFullFormatterTests.cs" />
<Compile Include="FormatterTests.cs" />
<Compile Include="FSharp\FSharpFormatterTests.cs" />
<Compile Include="FSharp\FSharpUsageFormatterTests.cs" />
@@ -86,6 +108,7 @@ </ProjectReference>
</ItemGroup>
<ItemGroup />
+ <ItemGroup />
<ItemGroup>
<Content Include="cppcli\Debug\cppcli.dll">
<Link>SampleClasses\cppcli.dll</Link>
diff --git a/mdoc/mdoc.csproj b/mdoc/mdoc.csproj index 71b58d53..81e9c353 100644 --- a/mdoc/mdoc.csproj +++ b/mdoc/mdoc.csproj @@ -52,6 +52,7 @@ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<Compile Include="Mono.Documentation\Updater\Formatters\ApplePlatformEnumFormatter.cs" />
+ <Compile Include="Mono.Documentation\Updater\Formatters\CppFormatters\CppWinRtMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\FSharpFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\JsFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\JsMemberFormatter.cs" />
@@ -59,6 +60,11 @@ <Compile Include="Mono.Documentation\Updater\Formatters\FSharpFullMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\FSharpMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\FSharpUsageFormatter.cs" />
+ <Compile Include="Mono.Documentation\Updater\Formatters\CppFormatters\CppWinRtFullMemberFormatter.cs" />
+ <Compile Include="Mono.Documentation\Updater\Formatters\CppFormatters\CppCxFullMemberFormatter.cs" />
+ <Compile Include="Mono.Documentation\Updater\Formatters\CppFormatters\CppFullMemberFormatter.cs" />
+ <Compile Include="Mono.Documentation\Updater\Formatters\CppFormatters\CppCxMemberFormatter.cs" />
+ <Compile Include="Mono.Documentation\Updater\Formatters\CSharpMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\StandardFlagsEnumFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\DefaultAttributeValueFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\AttributeValueFormatter.cs" />
@@ -69,7 +75,7 @@ <Compile Include="Mono.Documentation\Updater\Formatters\SlashDocMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\DocTypeMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\DocTypeFullMemberFormatter.cs" />
- <Compile Include="Mono.Documentation\Updater\Formatters\CSharpMemberFormatter.cs" />
+ <Compile Include="Mono.Documentation\Updater\Formatters\CppFormatters\CppMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\CSharpFullMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\CSharpNativeTypeMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\ILNativeTypeMemberFormatter.cs" />
|