diff options
author | anmeng10101 <33647870+anmeng10101@users.noreply.github.com> | 2021-05-18 17:14:03 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-18 17:14:03 +0300 |
commit | eb934bc2a06a5cb62c42ac99a1f1013c665bcaad (patch) | |
tree | 044df660c91a5b648cf621d0bbacb88cf1436d3f | |
parent | 24ba59fcca3d1acacdb0f71acbdf401d5ce3fb96 (diff) | |
parent | d9e2cd450a322fe0eaff003e43ec0042b6a7a81b (diff) |
Merge pull request #559 from mono/developmdoc-5.8.4-test
🚢 5.8.3
129 files changed, 3475 insertions, 459 deletions
diff --git a/external/Windows/Windows.Foundation.FoundationContract.winmd b/external/Windows/Windows.Foundation.FoundationContract.winmd Binary files differindex b3b4615b..97dc47ce 100644 --- a/external/Windows/Windows.Foundation.FoundationContract.winmd +++ b/external/Windows/Windows.Foundation.FoundationContract.winmd diff --git a/external/Windows/Windows.Foundation.UniversalApiContract.winmd b/external/Windows/Windows.Foundation.UniversalApiContract.winmd Binary files differindex ab5d413e..32a8f4b6 100644 --- a/external/Windows/Windows.Foundation.UniversalApiContract.winmd +++ b/external/Windows/Windows.Foundation.UniversalApiContract.winmd diff --git a/mdoc/Consts.cs b/mdoc/Consts.cs index a77b295e..2453363d 100644 --- a/mdoc/Consts.cs +++ b/mdoc/Consts.cs @@ -3,7 +3,7 @@ namespace Mono.Documentation { public static class Consts { - public static string MonoVersion = "5.8.2"; + public static string MonoVersion = "5.8.3"; public const string DocId = "DocId"; public const string CppCli = "C++ CLI"; public const string CppCx = "C++ CX"; diff --git a/mdoc/Makefile b/mdoc/Makefile index 4393b0d7..3966cb34 100644 --- a/mdoc/Makefile +++ b/mdoc/Makefile @@ -139,6 +139,14 @@ Test/DocTest-enumerations.dll: Test/DocTest-embedded-type.dll: $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -debug -optimize -target:library -out:$@ Test/DocTest-embedded-type.cs +Test/DocTest-differentTypeDefinitions-First.dll: + rm -f $@ + $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -debug -optimize -target:library -out:$@ Test/DocTest-differentTypeDefinitions.cs /define:FIRST + +Test/DocTest-differentTypeDefinitions-Second.dll: + rm -f $@ + $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -debug -optimize -target:library -out:$@ Test/DocTest-differentTypeDefinitions.cs /define:SECOND + Test/DocTest-typeForwards-First.dll: rm -f $@ $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -debug -optimize -target:library -out:$@ Test/DocTest-typeForwards.cs /define:FIRST @@ -199,6 +207,20 @@ Test/FrameworkTestData-fx-inheritance: Test/DocTest-framework-inheritance-one.dl cp Test/DocTest-framework-inheritance-three.dll Test/FrameworkTestData-fx-inheritance/Three/ $(MONO) $(PROGRAM) fx-bootstrap Test/FrameworkTestData-fx-inheritance +.PHONY: check-monodocer-differentTypeDefinitions +check-monodocer-differentTypeDefinitions : Test/DocTest-differentTypeDefinitions-First.dll Test/DocTest-differentTypeDefinitions-Second.dll + -rm -Rf Test/en.actual + + -rm -Rf Test/FrameworkTestData-fx-differentTypeDefinitions + mkdir Test/FrameworkTestData-fx-differentTypeDefinitions + mkdir Test/FrameworkTestData-fx-differentTypeDefinitions/One + cp Test/DocTest-differentTypeDefinitions-First.dll Test/FrameworkTestData-fx-differentTypeDefinitions/One + cp Test/DocTest-differentTypeDefinitions-Second.dll Test/FrameworkTestData-fx-differentTypeDefinitions/One + $(MONO) $(PROGRAM) fx-bootstrap Test/FrameworkTestData-fx-differentTypeDefinitions + + $(MONO) $(PROGRAM) update -o Test/en.actual -frameworks Test/FrameworkTestData-fx-differentTypeDefinitions + $(DIFF) Test/en.expected.differentTypeDefinitions Test/en.actual + .PHONY: check-monodocer-typeForwards check-monodocer-typeForwards : Test/DocTest-typeForwards-First.dll Test/DocTest-typeForwards-Second.dll Test/DocTest-typeForwards-Third.dll -rm -Rf Test/en.actual @@ -726,6 +748,9 @@ check-monodocer-attached-entities: Test/TestClass.dll: $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -debug -optimize -target:library -out:$@ mdoc.Test/SampleClasses/Test*.cs +Test/GuidClass.dll: + $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -debug -optimize -target:library -out:$@ mdoc.Test/SampleClasses/GuidClass.cs + .PHONY: check-monodocer-operators-work check-monodocer-operators-work: Test/TestClass.dll rm -Rf Test/en.actual @@ -742,6 +767,11 @@ check-monodocer-operators-update: check-monodocer-operators-work rm -Rf Test/en.expected-operators mv Test/en.actual Test/en.expected-operators +check-monodocer-guid: Test/GuidClass.dll + rm -Rf Test/en.actual + $(MONO) $(PROGRAM) update -o Test/en.actual Test/GuidClass.dll -lang c++/cx -lang c++/winrt + $(DIFF) Test/en.expected-guid Test/en.actual + check-mdoc-export-html-update: find Test/html.expected -name \*.html -exec rm "{}" \; $(MONO) $(PROGRAM) export-html -o Test/html.expected \ @@ -827,6 +857,7 @@ run-test-local: check-doc-tools run-test-update : check-doc-tools-update check-doc-tools: \ + check-monodocer-differentTypeDefinitions \ check-monodocer-typeForwards \ check-monodocer-nestedType-typeForwards \ check-monodocer-Eii-importslashdoc \ @@ -856,6 +887,7 @@ check-doc-tools: \ check-monodocer-frameworks-inheritance \ check-monodocer-docid \ check-monodocer-operators \ + check-monodocer-guid \ check-monodocer-fx-statistics-remove \ check-overwrite-attribute \ check-monodocer-vbnet \ @@ -887,5 +919,5 @@ check-doc-tools-update: check-monodocer-since-update \ check-mdoc-export-msxdoc-update \ check-mdoc-validate-update -check: nunit check-doc-tools +check: nunit check-doc-tools @echo "mdoc Tests Complete!" diff --git a/mdoc/Mono.Documentation/MDocUpdater.cs b/mdoc/Mono.Documentation/MDocUpdater.cs index 3e24f500..47b50d40 100644 --- a/mdoc/Mono.Documentation/MDocUpdater.cs +++ b/mdoc/Mono.Documentation/MDocUpdater.cs @@ -320,6 +320,9 @@ namespace Mono.Documentation if (File.Exists(typeMapPath)) { Console.WriteLine($"Loading typemap file at {typeMapPath}"); + if (!Directory.Exists(srcPath)) + Directory.CreateDirectory(srcPath); + File.Copy(typeMapPath, Path.Combine(srcPath, "TypeMap.xml"), true); TypeMap map = TypeMap.FromXml(typeMapPath); this.TypeMap = map; FormatterManager.UpdateTypeMap(map); @@ -2451,7 +2454,6 @@ namespace Mono.Documentation info.Node = WriteElement (me, "Docs"); MakeDocNode (info, typeEntry.Framework.Importers, typeEntry); - foreach (MemberFormatter f in FormatterManager.MemberFormatters) { @@ -3870,9 +3872,22 @@ namespace Mono.Documentation NormalizeWhitespace(e); } + private bool ProcessedMoreThanOnce(FrameworkTypeEntry typeEntry) + { + if (typeEntry.TimesProcessed <= 1) + { + return false; + } + else + { + var assemblies = this.assemblies.Where(a => a.Name == typeEntry.Framework.Name).ToList(); + return assemblies.Any(a => a.IsTypeForwardingTo(typeEntry)); + } + } + public void MakeParameters (XmlElement root, MemberReference member, IList<ParameterDefinition> parameters, FrameworkTypeEntry typeEntry, ref bool fxAlternateTriggered, bool shouldDuplicateWithNew = false) { - if (typeEntry.TimesProcessed > 1) + if (ProcessedMoreThanOnce(typeEntry)) return; XmlElement e = WriteElement (root, "Parameters"); @@ -4407,9 +4422,9 @@ namespace Mono.Documentation return docTypeFormatter.GetName (type, useTypeProjection: useTypeProjection); } - internal static string GetDocTypeFullName (TypeReference type, bool useTypeProjection = true) + internal static string GetDocTypeFullName (TypeReference type, bool useTypeProjection = true, bool isTypeofOperator = false) { - return DocTypeFullMemberFormatter.Default.GetName (type, useTypeProjection: useTypeProjection); + return DocTypeFullMemberFormatter.Default.GetName (type, useTypeProjection: useTypeProjection, isTypeofOperator: isTypeofOperator); } internal static string GetXPathForMember (DocumentationMember member) diff --git a/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/ApplePlatformEnumFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/ApplePlatformEnumFormatter.cs deleted file mode 100644 index 55dd508f..00000000 --- a/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/ApplePlatformEnumFormatter.cs +++ /dev/null @@ -1,95 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -using Mono.Cecil; - -namespace Mono.Documentation.Updater -{ - /// <summary>A custom formatter for the ObjCRuntime.Platform enumeration.</summary> - class ApplePlatformEnumFormatter : AttributeValueFormatter - { - public override bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue) - { - TypeReference valueType = type.Reference; - string typename = MDocUpdater.GetDocTypeFullName (valueType); - TypeDefinition valueDef = type.Definition; - if (typename.Contains ("ObjCRuntime.Platform") && valueDef.CustomAttributes.Any (ca => ca.AttributeType.FullName == "System.FlagsAttribute")) - { - - var values = GetEnumerationValues (valueDef); - long c = ToInt64 (v); - - returnvalue = Format (c, values, typename); - return true; - } - - returnvalue = null; - return false; - } - - string Format (long c, IDictionary<long, string> values, string typename) - { - int iosarch, iosmajor, iosminor, iossubminor; - int macarch, macmajor, macminor, macsubminor; - GetEncodingiOS (c, out iosarch, out iosmajor, out iosminor, out iossubminor); - GetEncodingMac ((ulong)c, out macarch, out macmajor, out macminor, out macsubminor); - - if (iosmajor == 0 & iosminor == 0 && iossubminor == 0) - { - return FormatValues ("Mac", macarch, macmajor, macminor, macsubminor); - } - - if (macmajor == 0 & macminor == 0 && macsubminor == 0) - { - return FormatValues ("iOS", iosarch, iosmajor, iosminor, iossubminor); - } - - return string.Format ("(Platform){0}", c); - } - - string FormatValues (string plat, int arch, int major, int minor, int subminor) - { - string archstring = ""; - switch (arch) - { - case 1: - archstring = "32"; - break; - case 2: - archstring = "64"; - break; - } - return string.Format ("Platform.{4}_{0}_{1}{2} | Platform.{4}_Arch{3}", - major, - minor, - subminor == 0 ? "" : "_" + subminor.ToString (), - archstring, - plat - ); - } - - void GetEncodingiOS (long entireLong, out int archindex, out int major, out int minor, out int subminor) - { - long lowerBits = entireLong & 0xffffffff; - int lowerBitsAsInt = (int)lowerBits; - GetEncoding (lowerBitsAsInt, out archindex, out major, out minor, out subminor); - } - - void GetEncodingMac (ulong entireLong, out int archindex, out int major, out int minor, out int subminor) - { - ulong higherBits = entireLong & 0xffffffff00000000; - int higherBitsAsInt = (int)((higherBits) >> 32); - GetEncoding (higherBitsAsInt, out archindex, out major, out minor, out subminor); - } - - void GetEncoding (Int32 encodedBits, out int archindex, out int major, out int minor, out int subminor) - { - // format is AAJJNNSS - archindex = (int)((encodedBits & 0xFF000000) >> 24); - major = (int)((encodedBits & 0x00FF0000) >> 16); - minor = (int)((encodedBits & 0x0000FF00) >> 8); - subminor = (int)((encodedBits & 0x000000FF) >> 0); - } - } -}
\ No newline at end of file diff --git a/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/AttributeFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/AttributeFormatter.cs index 1378675a..b8076d73 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/AttributeFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/AttributeFormatter.cs @@ -2,13 +2,14 @@ using Mono.Documentation.Util; using System; using System.Collections.Generic; -using System.IO; using System.Linq; namespace Mono.Documentation.Updater.Formatters { public class AttributeFormatter { + private AttributeValueFormatter valueFormatter = new AttributeValueFormatter(); + public virtual string PrefixBrackets { get; } = ""; public virtual string SurfixBrackets { get; } = ""; public virtual string Language { get; } = ""; @@ -119,37 +120,9 @@ namespace Mono.Documentation.Updater.Formatters return $"{name}={value}"; } - public virtual string MakeAttributesValueString(object v, TypeReference valueType) + public virtual string MakeAttributesValueString(object argumentValue, TypeReference argumentType) { - var formatters = new[] { - new AttributeValueFormatter (), - new ApplePlatformEnumFormatter (), - new StandardFlagsEnumFormatter (), - new DefaultAttributeValueFormatter (), - }; - - ResolvedTypeInfo type = new ResolvedTypeInfo(valueType); - - if (valueType is ArrayType && v is CustomAttributeArgument[]) - { - ArrayType atype = valueType as ArrayType; - CustomAttributeArgument[] args = v as CustomAttributeArgument[]; - var returnvalue = $"new {atype.FullName}{(atype.FullName.EndsWith("[]") ? "" : "[]")} {{ { string.Join(", ", args.Select(a => MakeAttributesValueString(a.Value, a.Type)).ToArray()) } }}"; - return returnvalue; - } - - foreach (var formatter in formatters) - { - string formattedValue; - if (formatter.TryFormatValue(v, type, out formattedValue)) - { - return formattedValue; - } - } - - // this should never occur because the DefaultAttributeValueFormatter will always - // successfully format the value ... but this is needed to satisfy the compiler :) - throw new InvalidDataException(string.Format("Unable to format attribute value ({0})", v.ToString())); + return valueFormatter.Format(argumentType, argumentValue); } private bool IsIgnoredAttribute(CustomAttribute customAttribute) diff --git a/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/AttributeValueFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/AttributeValueFormatter.cs index a9e092bb..41566740 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/AttributeValueFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/AttributeValueFormatter.cs @@ -1,92 +1,385 @@ -using System; +using Mono.Cecil; +using System; using System.Collections.Generic; using System.Linq; -using Mono.Cecil; - -using Mono.Documentation.Util; namespace Mono.Documentation.Updater { - /// <summary>Formats attribute values. Should return true if it is able to format the value.</summary> - class AttributeValueFormatter - { - public virtual bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue) + public class AttributeValueFormatter + { + public string Format(TypeReference argumentType, object argumentValue) { - TypeReference valueType = type.Reference; - if (v == null) + // When a property type of an attribute is an object type you can assign any type to it, + // so we need to convert the object type to a concrete object type. + if (argumentValue is CustomAttributeArgument attributeArgument) { - returnvalue = "null"; - return true; + return Format(attributeArgument.Type, attributeArgument.Value); } - if (valueType.FullName == "System.Type") + + return FormatValue(argumentType, argumentValue); + } + + // The types of positional and named parameters for an attribute class are limited to the attribute parameter types, which are: + // https://github.com/dotnet/csharplang/blob/main/spec/attributes.md#attribute-parameter-types + private string FormatValue(TypeReference argumentType, object argumentValue) + { + if (IsNull(argumentValue)) { - var vTypeRef = v as TypeReference; - if (vTypeRef != null) - returnvalue = "typeof(" + NativeTypeManager.GetTranslatedName (vTypeRef) + ")"; // TODO: drop NS handling - else - returnvalue = "typeof(" + v.ToString () + ")"; + return "null"; + } - return true; + if (IsArrayType(argumentType, argumentValue)) + { + return ConvertToArrayType(argumentType, argumentValue); } - if (valueType.FullName == "System.String") + + if (IsTypeType(argumentType, argumentValue)) { - returnvalue = "\"" + FilterSpecialChars (v.ToString ()) + "\""; - return true; + return ConvertToType(argumentType, argumentValue); } - if (valueType.FullName == "System.Char") + + if (IsStringType(argumentType, argumentValue)) { - returnvalue = "'" + FilterSpecialChars (v.ToString ()) + "'"; - return true; + return ConvertToString(argumentType, argumentValue); } - if (v is Boolean) + + if (IsCharType(argumentType, argumentValue)) { - returnvalue = (bool)v ? "true" : "false"; - return true; + return ConvertToChar(argumentType, argumentValue); } - TypeDefinition valueDef = type.Definition; - if (valueDef == null || !valueDef.IsEnum) + if (IsBoolType(argumentType, argumentValue)) { - returnvalue = v.ToString (); - return true; + return ConvertToBool(argumentType, argumentValue); } - string typename = MDocUpdater.GetDocTypeFullName (valueType); - var values = GetEnumerationValues (valueDef); - long c = ToInt64 (v); - if (values.ContainsKey (c)) + if (IsEnumType(argumentType, argumentValue)) { - returnvalue = typename + "." + values[c]; - return true; + return ConvertToEnum(argumentType, argumentValue); + } + + return ConvertUnhandledTypeToString(argumentValue); + } + + private bool IsNull(object argumentValue) + { + return argumentValue == null; + } + + private bool IsEnumType(TypeReference argumentType, object argumentValue) + { + return argumentType.Resolve().IsEnum; + } + + private bool IsTypeType(TypeReference argumentType, object argumentValue) + { + return IsType("System.Type", argumentType, argumentValue); + } + + private bool IsStringType(TypeReference argumentType, object argumentValue) + { + return IsType("System.String", argumentType, argumentValue); + } + + private bool IsCharType(TypeReference argumentType, object argumentValue) + { + return IsType("System.Char", argumentType, argumentValue); + } + + private bool IsBoolType(TypeReference argumentType, object argumentValue) + { + return IsType("System.Boolean", argumentType, argumentValue); + } + + private bool IsType(string typeFullName, TypeReference argumentType, object argumentValue) + { + return argumentType.FullName.Equals(typeFullName); + } + + private bool IsArrayType(TypeReference argumentType, object argumentValue) + { + return argumentType is ArrayType && argumentValue is CustomAttributeArgument[]; + } + + private string ConvertToArrayType(TypeReference argumentType, object argumentValue) + { + var arrayType = argumentType as ArrayType; + var arrayArguments = argumentValue as CustomAttributeArgument[]; + var arrayTypeFullName = $"new {arrayType.FullName}{(arrayType.FullName.EndsWith("[]") ? "" : "[]")}"; + var arrayArgumentValues = arrayArguments.Select(i => FormatValue(i.Type, i.Value)); + + return $"{arrayTypeFullName} {{ {string.Join(", ", arrayArgumentValues)} }}"; + } + + private bool IsFlagsEnum(TypeReference argumentType, object argumentValue) + { + var argumentTypeDefinition = argumentType.Resolve(); + var isApplyFlagsAttributeEnumType = argumentTypeDefinition.CustomAttributes.Any(a => a.AttributeType.FullName == "System.FlagsAttribute"); + var isNotApplyAttributeFlagsEnumType = IsNotApplyAttributeFlagsEnumType(argumentTypeDefinition, argumentValue); + + return isApplyFlagsAttributeEnumType || isNotApplyAttributeFlagsEnumType; + } + + /// <summary> + /// We have a few legacy flags enum type not apply FlagsAttribute to it. + /// For example, Microsoft.JScript.JSFunctionAttributeEnum in .NET Framework 1.1 but the issue has been fixed in the newer version. + /// </summary> + private bool IsNotApplyAttributeFlagsEnumType(TypeDefinition argumentType, object argumentValue) + { + (var typeFullName, var enumConstants, var enumValue) = ExtractEnumTypeData(argumentType, argumentValue); + if (enumConstants.ContainsKey(enumValue)) + { + // Not is a combinations of values. + return false; + } + + var flagsEnumValues = enumConstants.Keys.ToList(); + flagsEnumValues.Remove(0); // The zero value is not a valid flags enum value. + + // The following example is an invalid and valid flags enum type. + // None = 0, Read = 1, Write = 2, ReadWrite = 3 maybe is a flags enum type but sometimes it is not. + // Read = 1, Write = 2, Open = 4, Close = 8 actually is a flags enum type. + var minFlagsEnumValueCount = 4; + if (flagsEnumValues.Count() >= minFlagsEnumValueCount) + { + long allEnumLogicalOrValue = 0; + foreach (var item in flagsEnumValues) + { + allEnumLogicalOrValue = allEnumLogicalOrValue | item; + } + + var isFlagsEnumType = !flagsEnumValues.Any(i => (i & allEnumLogicalOrValue) != i); + var isCombinationValue = flagsEnumValues.Count(i => (i & enumValue) != i) > 1; + + return isFlagsEnumType && isCombinationValue; } - returnvalue = null; return false; } - internal static IDictionary<long, string> GetEnumerationValues(TypeDefinition type) + private bool IsApplePlatformEnum(TypeReference argumentType, object argumentValue) + { + return MDocUpdater.GetDocTypeFullName(argumentType).Contains("ObjCRuntime.Platform"); + } + + private string ConvertToType(TypeReference argumentType, object argumentValue) { + var valueResult = GetArgumentValue("System.Type", argumentType, argumentValue); + var typeFullName = MDocUpdater.GetDocTypeFullName((TypeReference)valueResult, isTypeofOperator: true); + + return $"typeof({typeFullName})"; + } + + private string ConvertToString(TypeReference argumentType, object argumentValue) + { + var valueResult = GetArgumentValue("System.String", argumentType, argumentValue); + if (valueResult == null) + { + return "null"; + } + + return string.Format("\"{0}\"", FilterSpecialChars(valueResult.ToString())); + } + + private string ConvertToBool(TypeReference argumentType, object argumentValue) + { + return GetArgumentValue("System.Boolean", argumentType, argumentValue).ToString().ToLower(); + } + + private string ConvertToChar(TypeReference argumentType, object argumentValue) + { + var valueResult = GetArgumentValue("System.Char", argumentType, argumentValue).ToString(); + + return string.Format("'{0}'", FilterSpecialChars(valueResult)); + } + + private string ConvertUnhandledTypeToString(object argumentValue) + { + return argumentValue.ToString(); + } + + private string ConvertToEnum(TypeReference argumentType, object argumentValue) + { + if (IsFlagsEnum(argumentType, argumentValue)) + { + if (IsApplePlatformEnum(argumentType, argumentValue)) + { + return ConvertToApplePlatformEnum(argumentType, argumentValue); + } + + return ConvertToFlagsEnum(argumentType, argumentValue); + } + + return ConvertToNormalEnum(argumentType, argumentValue); + } + + private string ConvertToNormalEnum(TypeReference argumentType, object argumentValue) + { + (var typeFullName, var enumConstants, var enumValue) = ExtractEnumTypeData(argumentType, argumentValue); + if (enumConstants.ContainsKey(enumValue)) + { + return typeFullName + "." + enumConstants[enumValue]; + } + + return ConvertToUnknownEnum(argumentType, argumentValue); + } + + private string ConvertToUnknownEnum(TypeReference argumentType, object argumentValue) + { + (var typeFullName, var enumConstants, var enumValue) = ExtractEnumTypeData(argumentType, argumentValue); + + return $"({typeFullName}) {enumValue}"; + } + + private string ConvertToFlagsEnum(TypeReference argumentType, object argumentValue) + { + (var typeFullName, var enumConstants, var enumValue) = ExtractEnumTypeData(argumentType, argumentValue); + if (enumConstants.ContainsKey(enumValue)) + { + // Not is a combinations of values. + return $"{typeFullName}.{enumConstants[enumValue]}"; + } + + var flagsEnumValues = enumConstants.Keys.Where(i => (enumValue & i) == i && i != 0).ToList(); + var duplicateEnumValues = flagsEnumValues.Where(i => flagsEnumValues.Any(a => (a & i) == i && a > i)); + + flagsEnumValues.RemoveAll(i => duplicateEnumValues.Contains(i)); + var flagsEnumNames = flagsEnumValues + .Select(i => $"{typeFullName}.{enumConstants[i]}") + .OrderBy(val => val) // to maintain a consistent list across frameworks/versions + .ToArray(); + + if (flagsEnumNames.Length > 0) + { + return string.Join(" | ", flagsEnumNames); + } + + return ConvertToUnknownEnum(argumentType, argumentValue); + } + + private string ConvertToApplePlatformEnum(TypeReference argumentType, object argumentValue) + { + (var typeFullName, var enumConstants, var enumValue) = ExtractEnumTypeData(argumentType, argumentValue); + if (enumConstants.ContainsKey(enumValue)) + { + return typeFullName + "." + enumConstants[enumValue]; + } + + return FormatApplePlatformEnum(enumValue); + } + + private (string typeFullName, IDictionary<long, string> enumConstants, long enumValue) ExtractEnumTypeData(TypeReference argumentType, object argumentValue) + { + var argumentTypeDefinition = argumentType.Resolve(); + var typeFullName = MDocUpdater.GetDocTypeFullName(argumentTypeDefinition); + var enumConstants = GetEnumerationValues(argumentTypeDefinition); + var enumValue = ToInt64(argumentValue); + + return (typeFullName, enumConstants, enumValue); + } + + private string FormatApplePlatformEnum(long enumValue) + { + int iosarch, iosmajor, iosminor, iossubminor; + int macarch, macmajor, macminor, macsubminor; + GetEncodingiOS(enumValue, out iosarch, out iosmajor, out iosminor, out iossubminor); + GetEncodingMac((ulong)enumValue, out macarch, out macmajor, out macminor, out macsubminor); + + if (iosmajor == 0 & iosminor == 0 && iossubminor == 0) + { + return FormatApplePlatformEnumValue("Mac", macarch, macmajor, macminor, macsubminor); + } + + if (macmajor == 0 & macminor == 0 && macsubminor == 0) + { + return FormatApplePlatformEnumValue("iOS", iosarch, iosmajor, iosminor, iossubminor); + } + + return string.Format("(Platform){0}", enumValue); + } + + private string FormatApplePlatformEnumValue(string plat, int arch, int major, int minor, int subminor) + { + var archstring = string.Empty; + switch (arch) + { + case 1: + archstring = "32"; + break; + case 2: + archstring = "64"; + break; + } + + return string.Format("Platform.{4}_{0}_{1}{2} | Platform.{4}_Arch{3}", + major, + minor, + subminor == 0 ? "" : "_" + subminor.ToString(), + archstring, + plat + ); + } + + private void GetEncodingiOS(long entireLong, out int archindex, out int major, out int minor, out int subminor) + { + long lowerBits = entireLong & 0xffffffff; + int lowerBitsAsInt = (int)lowerBits; + GetEncodingApplePlatform(lowerBitsAsInt, out archindex, out major, out minor, out subminor); + } + + private void GetEncodingMac(ulong entireLong, out int archindex, out int major, out int minor, out int subminor) + { + ulong higherBits = entireLong & 0xffffffff00000000; + int higherBitsAsInt = (int)((higherBits) >> 32); + GetEncodingApplePlatform(higherBitsAsInt, out archindex, out major, out minor, out subminor); + } + + private void GetEncodingApplePlatform(Int32 encodedBits, out int archindex, out int major, out int minor, out int subminor) + { + // format is AAJJNNSS + archindex = (int)((encodedBits & 0xFF000000) >> 24); + major = (int)((encodedBits & 0x00FF0000) >> 16); + minor = (int)((encodedBits & 0x0000FF00) >> 8); + subminor = (int)((encodedBits & 0x000000FF) >> 0); + } + + private object GetArgumentValue(string argumentTypeFullName, TypeReference argumentType, object argumentValue) + { + if (argumentType.FullName.Equals(argumentTypeFullName)) + { + return argumentValue; + } + + throw new ArgumentException($"The argument type does not match {argumentTypeFullName}."); + } + + private IDictionary<long, string> GetEnumerationValues(TypeDefinition argumentType) + { + var enumValues = from f in argumentType.Fields + where !(f.IsRuntimeSpecialName || f.IsSpecialName) + select f; + var values = new Dictionary<long, string>(); - foreach (var f in - (from f in type.Fields - where !(f.IsRuntimeSpecialName || f.IsSpecialName) - select f)) + foreach (var item in enumValues) { - values[ToInt64(f.Constant)] = f.Name; + values[ToInt64(item.Constant)] = item.Name; } + return values; } - internal static long ToInt64(object value) + private long ToInt64(object value) { if (value is ulong) return (long)(ulong)value; + return Convert.ToInt64(value); } - public static string FilterSpecialChars(string value) + private string FilterSpecialChars(string value) { - return value.Replace("\0", "\\0") + return value + .Replace("\0", "\\0") .Replace("\t", "\\t") .Replace("\n", "\\n") .Replace("\r", "\\r") diff --git a/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/DefaultAttributeValueFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/DefaultAttributeValueFormatter.cs deleted file mode 100644 index d0a2f8ec..00000000 --- a/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/DefaultAttributeValueFormatter.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Mono.Documentation.Updater -{ - /// <summary>The final value formatter in the pipeline ... if no other formatter formats the value, - /// then this one will serve as the default implementation.</summary> - class DefaultAttributeValueFormatter : AttributeValueFormatter - { - public override bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue) - { - returnvalue = "(" + MDocUpdater.GetDocTypeFullName (type.Reference) + ") " + FilterSpecialChars(v.ToString ()); - return true; - } - } -}
\ No newline at end of file diff --git a/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/StandardFlagsEnumFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/StandardFlagsEnumFormatter.cs deleted file mode 100644 index 16a1ebe0..00000000 --- a/mdoc/Mono.Documentation/Updater/Formatters/AttributeFormatters/StandardFlagsEnumFormatter.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Linq; - -using Mono.Cecil; - -namespace Mono.Documentation.Updater -{ - /// <summary>Flags enum formatter that assumes powers of two values.</summary> - /// <remarks>As described here: https://msdn.microsoft.com/en-us/library/vstudio/ms229062(v=vs.100).aspx</remarks> - class StandardFlagsEnumFormatter : AttributeValueFormatter - { - public override bool TryFormatValue (object v, ResolvedTypeInfo type, out string returnvalue) - { - TypeReference valueType = type.Reference; - TypeDefinition valueDef = type.Definition; - if (valueDef.CustomAttributes.Any (ca => ca.AttributeType.FullName == "System.FlagsAttribute")) - { - - string typename = MDocUpdater.GetDocTypeFullName (valueType); - var values = GetEnumerationValues (valueDef); - long c = ToInt64 (v); - returnvalue = string.Join (" | ", - (from i in values.Keys - where (c & i) == i && i != 0 - select typename + "." + values[i]) - .DefaultIfEmpty (c.ToString ()) - .OrderBy (val => val) // to maintain a consistent list across frameworks/versions - .ToArray ()); - - return true; - } - - returnvalue = null; - return false; - } - } -}
\ No newline at end of file diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs index 34749cc5..7d0aa7c8 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs @@ -107,7 +107,7 @@ namespace Mono.Documentation.Updater.Formatters return buf; } - protected override string GetTypeName (TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = true) + protected override string GetTypeName (TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = true, bool isTypeofOperator = false) { GenericInstanceType genType = type as GenericInstanceType; if (IsSpecialGenericNullableValueType (genType)) @@ -316,10 +316,11 @@ namespace Mono.Documentation.Updater.Formatters for (int i = 1; i < constraints.Count; ++i) buf.Append (", ").Append (GetTypeName (constraints[i])); #endif + } if (isnew && !isvt) { - if (comma) + if (comma || constraints.Count > 0) buf.Append (", "); buf.Append ("new()"); } @@ -768,4 +769,4 @@ namespace Mono.Documentation.Updater.Formatters return buf.ToString (); } } -}
\ No newline at end of file +} diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs index efba11be..9415680f 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppCxFullMemberFormatter.cs @@ -62,6 +62,7 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters "System.String", "System.ValueType", "System.Enum", + "System.Guid", }; protected virtual IList<string> GetAllowedTypes() @@ -106,7 +107,7 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters if (t.Contains(' ')) { splitType = t.Split(' '); - typeToCompare = splitType[0]; + typeToCompare = splitType[0].Trim('&'); } switch (typeToCompare) @@ -125,10 +126,18 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters case "System.Boolean": typeToCompare = "bool"; break; case "System.Char": typeToCompare = "char16"; break; case "System.Void": typeToCompare = "void"; break; + case "System.Guid": typeToCompare = "Platform::Guid"; 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; + case "Windows.Foundation.Numerics.Matrix3x2": typeToCompare = "float3x2"; break; + case "Windows.Foundation.Numerics.Matrix4x4": typeToCompare = "float4x4"; break; + case "Windows.Foundation.Numerics.Plane": typeToCompare = "plane"; break; + case "Windows.Foundation.Numerics.Quaternion": typeToCompare = "quaternion"; break; + case "Windows.Foundation.Numerics.Vector2": typeToCompare = "float2"; break; + case "Windows.Foundation.Numerics.Vector3": typeToCompare = "float3"; break; + case "Windows.Foundation.Numerics.Vector4": typeToCompare = "float4"; break; } if (splitType != null) @@ -200,9 +209,10 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters buf.Append(GetTypeKind(type)); buf.Append(" "); - buf.Append(GetCppType(type.FullName) == null + var cppType = GetCppType(type.FullName); + buf.Append(cppType == null ? GetNameWithOptions(type, false, false) - : type.Name); + : cppType); if (type.IsAbstract && !type.IsInterface) buf.Append(" abstract"); @@ -330,7 +340,7 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters } } - if (allowedTypes.Contains(tref.FullName.Split(' ')[0]) || CppCxSpecificNamespases.Contains(tref.Namespace)) + if (allowedTypes.Contains(tref.FullName.Split(' ')[0].Trim('&')) || CppCxSpecificNamespases.Contains(tref.Namespace)) { return true; } diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs index 757b6431..9bb44003 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs @@ -112,11 +112,6 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters string typeFullName = type.FullName; if (string.IsNullOrWhiteSpace (typeFullName)) return buf; - - if (!typeFullName.StartsWith ("System.")) - { - return base.AppendTypeName(buf, type, context); - } string cppType = GetCppType(typeFullName); if (cppType != null) @@ -181,9 +176,10 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters buf.Append(GetTypeKind (type)); buf.Append(" "); - buf.Append(GetCppType(type.FullName) == null + var cppType = GetCppType(type.FullName); + buf.Append(cppType == null ? GetNameWithOptions(type, false, false) - : type.Name); + : cppType); if (type.IsAbstract && !type.IsInterface) buf.Append(" abstract"); @@ -553,7 +549,7 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters return AppendConstraints (buf, method.GenericParameters); } - protected override StringBuilder AppendGenericType(StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false) + protected override StringBuilder AppendGenericType(StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false, bool isTypeofOperator = false) { List<TypeReference> decls = DocUtils.GetDeclaringTypes( type is GenericInstanceType ? type.GetElementType() : type); @@ -733,7 +729,10 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters if (IsParamsParameter(parameter)) buf.AppendFormat ("... "); - buf.Append(GetTypeNameWithOptions(parameter.ParameterType, AppendHatOnReturn)).Append(" "); + buf.Append(GetTypeNameWithOptions(parameter.ParameterType, AppendHatOnReturn)); + if (!buf.ToString().EndsWith(" ")) + buf.Append(" "); + buf.Append(parameter.Name); return buf; diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtFullMemberFormatter.cs index a7f7d3ec..b2591b44 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtFullMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtFullMemberFormatter.cs @@ -10,7 +10,7 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters public class CppWinRtFullMemberFormatter : CppCxFullMemberFormatter { protected override bool AppendHatOnReturn => false; - protected override string HatModifier => $" const{RefTypeModifier}"; + protected override string HatModifier => $" const&"; public override string Language => Consts.CppWinRt; protected override string RefTypeModifier => " &"; @@ -41,7 +41,7 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters if (t.Contains(' ')) { splitType = t.Split(' '); - typeToCompare = splitType[0]; + typeToCompare = splitType[0].Trim('&'); foreach (var str in splitType) { @@ -59,19 +59,26 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters 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.UInt16": typeToCompare = "uint16_t"; break; case "System.UInt32": typeToCompare = "uint32_t"; break; case "System.UInt64": typeToCompare = "uint64_t"; 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 = "winrt::hstring"; break; + case "System.Guid": typeToCompare = "winrt::guid"; break; case "System.Object": typeToCompare = "winrt::Windows::Foundation::IInspectable"; break; + case "Windows.Foundation.Numerics.Matrix3x2": typeToCompare = "float3x2"; break; + case "Windows.Foundation.Numerics.Matrix4x4": typeToCompare = "float4x4"; break; + case "Windows.Foundation.Numerics.Plane": typeToCompare = "plane"; break; + case "Windows.Foundation.Numerics.Quaternion": typeToCompare = "quaternion"; break; + case "Windows.Foundation.Numerics.Vector2": typeToCompare = "float2"; break; + case "Windows.Foundation.Numerics.Vector3": typeToCompare = "float3"; break; + case "Windows.Foundation.Numerics.Vector4": typeToCompare = "float4"; break; } if (splitType != null) @@ -98,7 +105,12 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters buf.AppendFormat("... "); } - buf.Append(GetTypeNameWithOptions(parameter.ParameterType, !AppendHatOnReturn)).Append(" "); + buf.Append(GetTypeName(parameter.ParameterType, EmptyAttributeParserContext.Empty())); + if (!parameter.ParameterType.IsByReference && !parameter.ParameterType.IsPointer) + { + buf.Append(parameter.IsOut ? RefTypeModifier : HatModifier); + } + buf.Append(" "); buf.Append(parameter.Name); if (parameter.HasDefault && parameter.IsOptional && parameter.HasConstant) @@ -125,7 +137,7 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters protected override StringBuilder AppendArrayTypeName(StringBuilder buf, TypeReference type, IAttributeParserContext context) { - buf.Append("std::Array <"); + buf.Append("winrt::array_view <"); var item = type is TypeSpecification spec ? spec.ElementType : type.GetElementType(); _AppendTypeName(buf, item, context); @@ -159,14 +171,27 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters StringBuilder buf = new StringBuilder(); if (property.GetMethod != null) - buf.AppendLine($"{returnType} {apiName}();").AppendLine(); + { + if (property.GetMethod.IsStatic) + buf.AppendLine($"static {returnType} {apiName}();").AppendLine(); + else + buf.AppendLine($"{returnType} {apiName}();").AppendLine(); + } if (property.SetMethod != null) { string paramName = property.SetMethod.Parameters.First().Name; + if (property.SetMethod.IsStatic) + { + buf.Append("static "); + } if (string.IsNullOrWhiteSpace(paramName)) + { buf.AppendLine($"void {apiName}({returnType});"); + } else + { buf.AppendLine($"void {apiName}({returnType} {paramName});"); + } } return buf.ToString().Replace("\r\n", "\n").Trim(); } @@ -174,15 +199,20 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters protected override string GetEventDeclaration(EventDefinition e) { string apiName = e.Name, typeName = GetTypeNameWithOptions(e.EventType, AppendHatOnReturn); + var rtnAutoEventRevoker = e.DeclaringType.Name + NestedTypeSeparator + apiName; StringBuilder buf = new StringBuilder(); //if (AppendVisibility(buf, e.AddMethod).Length == 0) + var method = e.AddMethod; + string modifiers = string.Empty; + if (method.IsStatic) + modifiers += "static "; buf.AppendLine("// Register"); - buf.AppendLine($"event_token {apiName}({typeName} const& handler) const;"); + buf.AppendLine($"{modifiers}event_token {apiName}({typeName} const& handler) const;"); buf.AppendLine().AppendLine("// Revoke with event_token"); - buf.AppendLine($"void {apiName}(event_token const* cookie) const;"); + buf.AppendLine($"{modifiers}void {apiName}(event_token const* cookie) const;"); buf.AppendLine().AppendLine("// Revoke with event_revoker"); - buf.Append($"{apiName}_revoker {apiName}(auto_revoke_t, {typeName} const& handler) const;"); + buf.Append($"{modifiers}{rtnAutoEventRevoker}_revoker {apiName}(auto_revoke_t, {typeName} const& handler) const;"); return buf.ToString().Replace("\r\n", "\n"); } @@ -199,12 +229,11 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters buf.Append(GetTypeKind(type)); buf.Append(" "); - buf.Append(GetCppType(type.FullName) == null + var cppType = GetCppType(type.FullName); + buf.Append(cppType == null ? GetNameWithOptions(type, false, false) - : type.Name); + : cppType); - if (type.IsAbstract && !type.IsInterface) - buf.Append(" abstract"); if (type.IsSealed && !DocUtils.IsDelegate(type) && !type.IsValueType) buf.Append(" final"); diff --git a/mdoc/Mono.Documentation/Updater/Formatters/FSharpFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/FSharpFormatter.cs index 0589c7f9..25b78bf8 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/FSharpFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/FSharpFormatter.cs @@ -308,7 +308,7 @@ namespace Mono.Documentation.Updater return "class"; } - protected override StringBuilder AppendGenericType(StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false) + protected override StringBuilder AppendGenericType(StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false, bool isTypeofOperator = false) { List<TypeReference> decls = DocUtils.GetDeclaringTypes( type is GenericInstanceType ? type.GetElementType() : type); diff --git a/mdoc/Mono.Documentation/Updater/Formatters/ILFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/ILFullMemberFormatter.cs index 1ad73548..ad30e238 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/ILFullMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/ILFullMemberFormatter.cs @@ -203,7 +203,7 @@ namespace Mono.Documentation.Updater.Formatters return buf.ToString (); } - protected override StringBuilder AppendGenericType (StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false) + protected override StringBuilder AppendGenericType (StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false, bool isTypeofOperator = false) { List<TypeReference> decls = DocUtils.GetDeclaringTypes ( type is GenericInstanceType ? type.GetElementType () : type); diff --git a/mdoc/Mono.Documentation/Updater/Formatters/JsFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/JsFormatter.cs index 8664d1ba..dabceb3e 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/JsFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/JsFormatter.cs @@ -151,7 +151,7 @@ namespace Mono.Documentation.Updater.Formatters return CamelCase(method.Name); } - protected override string GetTypeName(TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false) + protected override string GetTypeName(TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false, bool isTypeofOperator = false) { int n = type.Name.IndexOf("`"); if (n >= 0) diff --git a/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs index faf87874..d5f634e1 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs @@ -1,12 +1,10 @@ -using System; +using Mono.Cecil; +using Mono.Documentation.Util; +using System; using System.Collections.Generic; using System.Linq; using System.Text; - -using Mono.Documentation.Util; -using Mono.Cecil; - namespace Mono.Documentation.Updater { public abstract class MemberFormatter @@ -25,16 +23,16 @@ namespace Mono.Documentation.Updater get { return "//"; } } - public string GetName (MemberReference member, bool appendGeneric = true, bool useTypeProjection = true) + public string GetName (MemberReference member, bool appendGeneric = true, bool useTypeProjection = true, bool isTypeofOperator = false) { - return GetName (member, EmptyAttributeParserContext.Empty(), appendGeneric, useTypeProjection: useTypeProjection); + return GetName (member, EmptyAttributeParserContext.Empty(), appendGeneric, useTypeProjection, isTypeofOperator); } - public virtual string GetName (MemberReference member, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = true) + public virtual string GetName (MemberReference member, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = true, bool isTypeofOperator = false) { TypeReference type = member as TypeReference; if (type != null) - return GetTypeName (type, context, appendGeneric, useTypeProjection: useTypeProjection); + return GetTypeName (type, context, appendGeneric, useTypeProjection, isTypeofOperator); MethodReference method = member as MethodReference; if (method != null && method.Name == ".ctor") // method.IsConstructor return GetConstructorName (method); @@ -58,12 +56,12 @@ namespace Mono.Documentation.Updater return GetTypeName (type, EmptyAttributeParserContext.Empty(), appendGeneric, useTypeProjection: useTypeProjection); } - protected virtual string GetTypeName (TypeReference type, IAttributeParserContext context, bool appendGeneric=true, bool useTypeProjection = true) + protected virtual string GetTypeName (TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = true, bool isTypeofOperator = false) { if (type == null) throw new ArgumentNullException (nameof (type)); - var typeName = _AppendTypeName (new StringBuilder (type.Name.Length), type, context, appendGeneric, useTypeProjection: useTypeProjection).ToString (); + var typeName = _AppendTypeName (new StringBuilder (type.Name.Length), type, context, appendGeneric, useTypeProjection, isTypeofOperator).ToString (); return RemoveMod (typeName); } @@ -138,7 +136,7 @@ namespace Mono.Documentation.Updater get => true; } - protected StringBuilder _AppendTypeName (StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection =false) + protected StringBuilder _AppendTypeName (StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false, bool isTypeofOperator = false) { if (type == null) return buf; @@ -206,7 +204,7 @@ namespace Mono.Documentation.Updater AppendFullTypeName (interimBuilder, type, context); return SetBuffer(buf, interimBuilder, useTypeProjection: useTypeProjection); } - AppendGenericType (interimBuilder, type, context, appendGeneric, useTypeProjection: useTypeProjection); + AppendGenericType (interimBuilder, type, context, appendGeneric, useTypeProjection, isTypeofOperator); return SetBuffer(buf, interimBuilder, useTypeProjection: useTypeProjection); } @@ -320,7 +318,7 @@ namespace Mono.Documentation.Updater get { return "."; } } - protected virtual StringBuilder AppendGenericType (StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = true) + protected virtual StringBuilder AppendGenericType (StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = true, bool isTypeofOperator = false) { int argIdx = 0; int prev = 0; @@ -344,22 +342,54 @@ namespace Mono.Documentation.Updater if (appendGeneric && c > 0) { buf.Append (GenericTypeContainer[0]); - var origState = MemberFormatterState; - MemberFormatterState = MemberFormatterState.WithinGenericTypeParameters; - AppendGenericTypeParameter (buf, genArgs[argIdx++], context, useTypeProjection); - for (int i = 1; i < c; ++i) + + var currentTypeArguments = genArgs.Skip(argIdx).Take(c); + if (IsTypeOfOperatorWithUnboundGenericType(decl, currentTypeArguments, isTypeofOperator)) { - buf.Append (","); + buf.Append(string.Join(string.Empty, Enumerable.Repeat(",", currentTypeArguments.Count() - 1))); + } + else + { + var origState = MemberFormatterState; + MemberFormatterState = MemberFormatterState.WithinGenericTypeParameters; AppendGenericTypeParameter (buf, genArgs[argIdx++], context, useTypeProjection); + for (int i = 1; i < c; ++i) + { + buf.Append (","); + AppendGenericTypeParameter (buf, genArgs[argIdx++], context, useTypeProjection); + } + + MemberFormatterState = origState; } - MemberFormatterState = origState; buf.Append (GenericTypeContainer[1]); } } + return buf; } + private bool IsTypeOfOperatorWithUnboundGenericType(TypeReference type, IEnumerable<TypeReference> genericArguments, bool isTypeofOperator) + { + if (isTypeofOperator) + { + var argumentCount = genericArguments.Count() > 0 ? genericArguments.Count().ToString() : string.Empty; + var genericTypeSeparator = $"`{argumentCount}"; + var genericTypeSeparatorIndex = type.FullName.LastIndexOf(genericTypeSeparator); + + var leftAngleBracketIndex = type.FullName.IndexOf("<", genericTypeSeparatorIndex); + var validLeftAngleBracketIndex = genericTypeSeparatorIndex + genericTypeSeparator.Length + 1; + + // If the type is an unbound generic type that type hasn't angle brackets after its full name. + var notExistParameterType = genericTypeSeparatorIndex >= 0 && leftAngleBracketIndex != validLeftAngleBracketIndex; + var notPassParameterType = genericArguments.All(i => i is GenericParameter); + + return notExistParameterType && notPassParameterType; + } + + return false; + } + private void AppendGenericTypeParameter (StringBuilder buf, TypeReference type, IAttributeParserContext context, bool useTypeProjection = true) { var isNullableType = false; diff --git a/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs index 4bb986fc..2a5dfa51 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs @@ -102,7 +102,7 @@ namespace Mono.Documentation.Updater return buf.Append (ArrayDelimeters[1]); } - protected override StringBuilder AppendGenericType (StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false) + protected override StringBuilder AppendGenericType (StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false, bool isTypeofOperator = false) { if (!AddTypeCount) base.AppendGenericType (buf, type, context); diff --git a/mdoc/Mono.Documentation/Updater/Formatters/VBFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/VBFullMemberFormatter.cs index 92a74cec..6d9761f8 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/VBFullMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/VBFullMemberFormatter.cs @@ -209,7 +209,7 @@ namespace Mono.Documentation.Updater } } - protected override StringBuilder AppendGenericType(StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false) + protected override StringBuilder AppendGenericType(StringBuilder buf, TypeReference type, IAttributeParserContext context, bool appendGeneric = true, bool useTypeProjection = false, bool isTypeofOperator = false) { List<TypeReference> decls = DocUtils.GetDeclaringTypes( type is GenericInstanceType ? type.GetElementType() : type); diff --git a/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs b/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs index ce46d488..533f221c 100644 --- a/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs +++ b/mdoc/Mono.Documentation/Updater/Frameworks/AssemblySet.cs @@ -228,5 +228,10 @@ namespace Mono.Documentation.Updater.Frameworks else return new HashSet<MDocResolver.TypeForwardEventArgs>(); }
+
+ public bool IsTypeForwardingTo(FrameworkTypeEntry typeEntry)
+ {
+ return forwardedTypesTo.ContainsKey(typeEntry.Name);
+ }
} } diff --git a/mdoc/Mono.Documentation/Updater/ResolvedTypeInfo.cs b/mdoc/Mono.Documentation/Updater/ResolvedTypeInfo.cs deleted file mode 100644 index 0db9b6da..00000000 --- a/mdoc/Mono.Documentation/Updater/ResolvedTypeInfo.cs +++ /dev/null @@ -1,29 +0,0 @@ - -using Mono.Cecil; -
-namespace Mono.Documentation.Updater -{
- class ResolvedTypeInfo - { - TypeDefinition typeDef; - - public ResolvedTypeInfo (TypeReference value) - { - Reference = value; - } - - public TypeReference Reference { get; private set; } - - public TypeDefinition Definition - { - get - { - if (typeDef == null) - { - typeDef = Reference.Resolve (); - } - return typeDef; - } - } - } -}
\ No newline at end of file diff --git a/mdoc/Test/ClassEnumeratorECMA.xml b/mdoc/Test/ClassEnumeratorECMA.xml index 7c7314bc..bc0dea5b 100644 --- a/mdoc/Test/ClassEnumeratorECMA.xml +++ b/mdoc/Test/ClassEnumeratorECMA.xml @@ -97,7 +97,7 @@ <MemberSignature Language="JavaScript" Value="function main(cmdArgs)" Usage="CustomNamespace.ClassEnumerator.main(cmdArgs)" />
<MemberSignature Language="C++ CLI" Value="public:
 static void Main(cli::array <System::String ^> ^ cmdArgs);" />
<MemberSignature Language="C++ CX" Value="public:
 static void Main(Platform::Array <Platform::String ^> ^ cmdArgs);" />
- <MemberSignature Language="C++ WINRT" Value=" static void Main(std::Array <winrt::hstring const &> const & cmdArgs);" />
+ <MemberSignature Language="C++ WINRT" Value=" static void Main(winrt::array_view <winrt::hstring const&> const& cmdArgs);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>0.0.65535.65535</AssemblyVersion>
diff --git a/mdoc/Test/DocTest-differentTypeDefinitions.cs b/mdoc/Test/DocTest-differentTypeDefinitions.cs new file mode 100644 index 00000000..c3c18181 --- /dev/null +++ b/mdoc/Test/DocTest-differentTypeDefinitions.cs @@ -0,0 +1,14 @@ +namespace TheNamespace +{ + public class TheClass + { + #if FIRST + public TheClass(int arg) + {} + #endif + #if SECOND + public TheClass(string arg) + {} + #endif + } +}
\ No newline at end of file diff --git a/mdoc/Test/DocTest-v1.cs b/mdoc/Test/DocTest-v1.cs index bd5b52a6..18bf8f3d 100644 --- a/mdoc/Test/DocTest-v1.cs +++ b/mdoc/Test/DocTest-v1.cs @@ -649,6 +649,13 @@ namespace Mono.DocTest.Generic { T Method <U> (T t, U u); } + /// <typeparam name="NGparam">Non-generic param</typeparam> + /// <remarks><c>T:Mono.DocTest.CompoundConstraints</c>.</remarks> + public class CompoundConstraints<NGparam> where NGparam : class, new() + { + public static void CompoundConstraintClass<param> () where param : class, new() { } + } + /// <typeparam name="A">Ako generic param</typeparam> /// <typeparam name="B">Bko generic param</typeparam> /// <remarks><c>T:Mono.DocTest.MyList`2</c>.</remarks> diff --git a/mdoc/Test/en.expected-attached-entities/AttachedEventsAndProperties/AquariumFilter.xml b/mdoc/Test/en.expected-attached-entities/AttachedEventsAndProperties/AquariumFilter.xml index fa35c654..7570f37a 100644 --- a/mdoc/Test/en.expected-attached-entities/AttachedEventsAndProperties/AquariumFilter.xml +++ b/mdoc/Test/en.expected-attached-entities/AttachedEventsAndProperties/AquariumFilter.xml @@ -47,7 +47,7 @@ <MemberSignature Language="F#" Value="member this.NeedsCleaningEvent : System.Windows.RoutedEvent with get, set" Usage="AttachedEventsAndProperties.AquariumFilter.NeedsCleaningEvent" /> <MemberSignature Language="JavaScript" Usage="var routedEvent = AquariumFilter.needsCleaningEvent;
AquariumFilter.needsCleaningEvent = routedEvent;" /> <MemberSignature Language="C++ CLI" Value="public:
 static property System::Windows::RoutedEvent ^ NeedsCleaningEvent { System::Windows::RoutedEvent ^ get(); void set(System::Windows::RoutedEvent ^ value); };" /> - <MemberSignature Language="C++ WINRT" Value="System::Windows::RoutedEvent NeedsCleaningEvent();

void NeedsCleaningEvent(System::Windows::RoutedEvent value);" /> + <MemberSignature Language="C++ WINRT" Value="static System::Windows::RoutedEvent NeedsCleaningEvent();

static void NeedsCleaningEvent(System::Windows::RoutedEvent value);" /> <MemberType>Property</MemberType> <AssemblyInfo> <AssemblyVersion>1.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected-attached-entities/AttachedEventsAndProperties/AttachedPropertyExample.xml b/mdoc/Test/en.expected-attached-entities/AttachedEventsAndProperties/AttachedPropertyExample.xml index 3ea1fcf1..684fa0f4 100644 --- a/mdoc/Test/en.expected-attached-entities/AttachedEventsAndProperties/AttachedPropertyExample.xml +++ b/mdoc/Test/en.expected-attached-entities/AttachedEventsAndProperties/AttachedPropertyExample.xml @@ -6,7 +6,7 @@ <TypeSignature Language="F#" Value="type AttachedPropertyExample = class" /> <TypeSignature Language="C++ CLI" Value="public ref class AttachedPropertyExample abstract sealed" /> <TypeSignature Language="C++ CX" Value="public ref class AttachedPropertyExample abstract sealed" /> - <TypeSignature Language="C++ WINRT" Value="class AttachedPropertyExample abstract final" /> + <TypeSignature Language="C++ WINRT" Value="class AttachedPropertyExample final" /> <AssemblyInfo> <AssemblyName>AttachedEventsAndProperties</AssemblyName> <AssemblyVersion>1.0.0.0</AssemblyVersion> @@ -174,7 +174,7 @@ <MemberSignature Language="JavaScript" Usage="var boolean = AttachedPropertyExample.isDuplicated;
AttachedPropertyExample.isDuplicated = boolean;" /> <MemberSignature Language="C++ CLI" Value="public:
 static property bool IsDuplicated { bool get(); void set(bool value); };" /> <MemberSignature Language="C++ CX" Value="public:
 static property bool IsDuplicated { bool get(); void set(bool value); };" /> - <MemberSignature Language="C++ WINRT" Value="bool IsDuplicated();

void IsDuplicated(bool value);" /> + <MemberSignature Language="C++ WINRT" Value="static bool IsDuplicated();

static void IsDuplicated(bool value);" /> <MemberType>Property</MemberType> <AssemblyInfo> <AssemblyVersion>1.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/CompoundConstraints`1.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/CompoundConstraints`1.xml new file mode 100644 index 00000000..a994bff7 --- /dev/null +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/CompoundConstraints`1.xml @@ -0,0 +1,67 @@ +<Type Name="CompoundConstraints<NGparam>" FullName="Mono.DocTest.Generic.CompoundConstraints<NGparam>"> + <TypeSignature Language="C#" Value="public class CompoundConstraints<NGparam> where NGparam : class, new()" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompoundConstraints`1<class .ctor NGparam> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="NGparam"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="NGparam">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CompoundConstraints ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 CompoundConstraints();" /> + <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="CompoundConstraintClass<param>"> + <MemberSignature Language="C#" Value="public static void CompoundConstraintClass<param> () where param : class, new();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void CompoundConstraintClass<class .ctor param>() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename param>
 where param : class, gcnew() static void CompoundConstraintClass();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="param"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="param">To be added.</typeparam> + <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 index 3a95c108..d7282c63 100644 --- a/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/MyList`1.xml +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest.Generic/MyList`1.xml @@ -120,7 +120,7 @@ <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);" /> + <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> diff --git a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget.xml b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget.xml index ab7b139b..ddad4349 100644 --- a/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget.xml +++ b/mdoc/Test/en.expected-cppcx2/Mono.DocTest/Widget.xml @@ -452,6 +452,7 @@ <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++ CX" Value="public:
 void M1(char16 c, [Runtime::InteropServices::Out] float & f, Mono::DocTest::DocValueType & v);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected-cppcx2/System/Array.xml b/mdoc/Test/en.expected-cppcx2/System/Array.xml index 964b5fc6..550201f1 100644 --- a/mdoc/Test/en.expected-cppcx2/System/Array.xml +++ b/mdoc/Test/en.expected-cppcx2/System/Array.xml @@ -83,7 +83,7 @@ <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);" /> + <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> diff --git a/mdoc/Test/en.expected-cppcx2/index.xml b/mdoc/Test/en.expected-cppcx2/index.xml index 7f30af16..0573cee6 100644 --- a/mdoc/Test/en.expected-cppcx2/index.xml +++ b/mdoc/Test/en.expected-cppcx2/index.xml @@ -35,6 +35,7 @@ <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="CompoundConstraints`1" DisplayName="CompoundConstraints<NGparam>" Kind="Class" /> <Type Name="Extensions" Kind="Class" /> <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> diff --git a/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClass.xml b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClass.xml index ad0dcc31..b7543278 100644 --- a/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClass.xml +++ b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClass.xml @@ -33,7 +33,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="float Hello(int const& value);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyName>DocTest-DropNS-classic</AssemblyName> diff --git a/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClassExtensions.xml b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClassExtensions.xml index 00948749..623e21b1 100644 --- a/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClassExtensions.xml +++ b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyNamespace/MyClassExtensions.xml @@ -1,7 +1,7 @@ <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 final" /> + <TypeSignature Language="C++ WINRT" Value="class MyClassExtensions final" /> <AssemblyInfo> <AssemblyName>DocTest-DropNS-classic</AssemblyName> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected-cppwinrt/MyFramework.MyOtherNamespace/MyOtherClass.xml b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyOtherNamespace/MyOtherClass.xml index 46dd62df..2c1ad6b4 100644 --- a/mdoc/Test/en.expected-cppwinrt/MyFramework.MyOtherNamespace/MyOtherClass.xml +++ b/mdoc/Test/en.expected-cppwinrt/MyFramework.MyOtherNamespace/MyOtherClass.xml @@ -33,7 +33,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="float Hello(double const& value);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> @@ -55,7 +55,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="float Hello(int const& value);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/CompoundConstraints`1.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/CompoundConstraints`1.xml new file mode 100644 index 00000000..d7a62c9c --- /dev/null +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/CompoundConstraints`1.xml @@ -0,0 +1,67 @@ +<Type Name="CompoundConstraints<NGparam>" FullName="Mono.DocTest.Generic.CompoundConstraints<NGparam>"> + <TypeSignature Language="C#" Value="public class CompoundConstraints<NGparam> where NGparam : class, new()" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompoundConstraints`1<class .ctor NGparam> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="NGparam"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="NGparam">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CompoundConstraints ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="C++ WINRT" Value=" CompoundConstraints();" /> + <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="CompoundConstraintClass<param>"> + <MemberSignature Language="C#" Value="public static void CompoundConstraintClass<param> () where param : class, new();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void CompoundConstraintClass<class .ctor param>() cil managed" /> + <MemberSignature Language="C++ WINRT" Value="template <typename param>
 where param : class, gcnew() static void CompoundConstraintClass();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="param"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="param">To be added.</typeparam> + <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/Extensions.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/Extensions.xml index e8452484..da00e18f 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/Extensions.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/Extensions.xml @@ -1,7 +1,7 @@ <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 final" /> + <TypeSignature Language="C++ WINRT" Value="class Extensions final" /> <AssemblyInfo> <AssemblyName>DocTest</AssemblyName> <AssemblyVersion>0.0.0.0</AssemblyVersion> 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 index 0f52ab69..47dd2f26 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/GenericBase`1.xml @@ -36,7 +36,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="template <typename S>
 U BaseMethod(S const& genericParameter);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -85,7 +85,7 @@ <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" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token ItemChanged(Action<Mono::DocTest::Generic::MyList<U>, Mono::DocTest::Generic::MyList<U>::Helper<U, U> const &> const& handler) const;

// Revoke with event_token
void ItemChanged(event_token const* cookie) const;

// Revoke with event_revoker
ItemChanged_revoker ItemChanged(auto_revoke_t, Action<Mono::DocTest::Generic::MyList<U>, Mono::DocTest::Generic::MyList<U>::Helper<U, U> const &> const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token ItemChanged(Action<Mono::DocTest::Generic::MyList<U>, Mono::DocTest::Generic::MyList<U>::Helper<U, U> const&> const& handler) const;

// Revoke with event_token
void ItemChanged(event_token const* cookie) const;

// Revoke with event_revoker
GenericBase`1::ItemChanged_revoker ItemChanged(auto_revoke_t, Action<Mono::DocTest::Generic::MyList<U>, Mono::DocTest::Generic::MyList<U>::Helper<U, U> const&> const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -101,7 +101,7 @@ <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" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token MyEvent(EventHandler<Mono::DocTest::Generic::GenericBase<U>::FooEventArgs> const& handler) const;

// Revoke with event_token
void MyEvent(event_token const* cookie) const;

// Revoke with event_revoker
MyEvent_revoker MyEvent(auto_revoke_t, EventHandler<Mono::DocTest::Generic::GenericBase<U>::FooEventArgs> const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token MyEvent(EventHandler<Mono::DocTest::Generic::GenericBase<U>::FooEventArgs> const& handler) const;

// Revoke with event_token
void MyEvent(event_token const* cookie) const;

// Revoke with event_revoker
GenericBase`1::MyEvent_revoker MyEvent(auto_revoke_t, EventHandler<Mono::DocTest::Generic::GenericBase<U>::FooEventArgs> const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -117,7 +117,7 @@ <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);" /> + <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> 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 index a054fb27..aee418ba 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/IFoo`1.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/IFoo`1.xml @@ -19,7 +19,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U>
 T Method(T const& t, U const& u);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> 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 index bc6635e3..eda0a7c2 100644 --- 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 @@ -39,7 +39,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void UseT(T const& a, U const& b, V const& c);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> 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 index f16eff4d..ce9e94a3 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`1.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`1.xml @@ -96,7 +96,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U>
 void Method(T const& t, U const& u);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -168,7 +168,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void Test(T const& t);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -188,7 +188,7 @@ <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);" /> + <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> 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 index 3883ed4b..1f1dbc61 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`2.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest.Generic/MyList`2.xml @@ -76,7 +76,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void CopyTo(winrt::array_view <A> const& array, int const& arrayIndex);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:System.Collections.Generic.ICollection`1.CopyTo(`0[],System.Int32)</InterfaceMember> @@ -195,7 +195,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U>
 A Mono.DocTest.Generic.IFoo<A>.Method(A const& a, U const& u);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:Mono.DocTest.Generic.IFoo`1.Method``1(`0,``0)</InterfaceMember> @@ -266,7 +266,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void System.Collections.Generic.ICollection<A>.Add(A const& item);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:System.Collections.Generic.ICollection`1.Add(`0)</InterfaceMember> @@ -309,7 +309,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="bool System.Collections.Generic.ICollection<A>.Contains(A const& item);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:System.Collections.Generic.ICollection`1.Contains(`0)</InterfaceMember> @@ -353,7 +353,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="bool System.Collections.Generic.ICollection<A>.Remove(A const& item);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:System.Collections.Generic.ICollection`1.Remove(`0)</InterfaceMember> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocAttribute.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocAttribute.xml index b5db4de6..328c1fd8 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocAttribute.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocAttribute.xml @@ -23,7 +23,7 @@ <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(winrt::hstring const & docs);" /> + <MemberSignature Language="C++ WINRT" Value=" DocAttribute(winrt::hstring const& docs);" /> <MemberType>Constructor</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocValueType.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocValueType.xml index 61df663c..fae74b1e 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocValueType.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/DocValueType.xml @@ -22,7 +22,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void M(int const& i);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/UseLists.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/UseLists.xml index b19b1ea8..9c0df75d 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/UseLists.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/UseLists.xml @@ -142,7 +142,7 @@ <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);" /> + <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> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass.xml index 80136bf9..5290bea1 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass.xml @@ -31,7 +31,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void M(int const& i);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> 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 index 51c7907a..73fe2061 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass`1.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget+NestedClass`1.xml @@ -35,7 +35,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void M(int const& i);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget.xml b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget.xml index 97ff0eb8..0bb9e49d 100644 --- a/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget.xml +++ b/mdoc/Test/en.expected-cppwinrt2/Mono.DocTest/Widget.xml @@ -52,7 +52,7 @@ <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(winrt::hstring const & s);" /> + <MemberSignature Language="C++ WINRT" Value=" Widget(winrt::hstring const& s);" /> <MemberType>Constructor</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -69,7 +69,7 @@ <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++ WINRT" Value="// Register
event_token AnEvent(Mono::DocTest::Widget::Del const& handler) const;

// Revoke with event_token
void AnEvent(event_token const* cookie) const;

// Revoke with event_revoker
AnEvent_revoker AnEvent(auto_revoke_t, Mono::DocTest::Widget::Del const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token AnEvent(Mono::DocTest::Widget::Del const& handler) const;

// Revoke with event_token
void AnEvent(event_token const* cookie) const;

// Revoke with event_revoker
Widget::AnEvent_revoker AnEvent(auto_revoke_t, Mono::DocTest::Widget::Del const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -99,7 +99,7 @@ <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++ WINRT" Value="// Register
event_token AnotherEvent(Mono::DocTest::Widget::Del const& handler) const;

// Revoke with event_token
void AnotherEvent(event_token const* cookie) const;

// Revoke with event_revoker
AnotherEvent_revoker AnotherEvent(auto_revoke_t, Mono::DocTest::Widget::Del const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token AnotherEvent(Mono::DocTest::Widget::Del const& handler) const;

// Revoke with event_token
void AnotherEvent(event_token const* cookie) const;

// Revoke with event_revoker
Widget::AnotherEvent_revoker AnotherEvent(auto_revoke_t, Mono::DocTest::Widget::Del const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -115,7 +115,7 @@ <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;" /> + <MemberSignature Language="C++ WINRT" Value="winrt::array_view <long> array1;" /> <MemberType>Field</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -131,7 +131,7 @@ <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;" /> + <MemberSignature Language="C++ WINRT" Value="winrt::array_view <Mono::DocTest::Widget const&, 2> array2;" /> <MemberType>Field</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -147,7 +147,7 @@ <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 <winrt::hstring const &> classCtorError;" /> + <MemberSignature Language="C++ WINRT" Value="static initonly winrt::array_view <winrt::hstring const&> classCtorError;" /> <MemberType>Field</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -163,7 +163,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void Default(int const& a = 1, int const& b = 2);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -185,7 +185,7 @@ <Member MemberName="Default"> <MemberSignature Language="C#" Value="public void Default (string a = "a", char b = '\0');" /> <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Default(string a, char b) cil managed" /> - <MemberSignature Language="C++ WINRT" Value="void Default(winrt::hstring const & a = "a", char b = '\0');" /> + <MemberSignature Language="C++ WINRT" Value="void Default(winrt::hstring const& a = "a", char const& b = '\0');" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -223,7 +223,7 @@ <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);" /> + <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> @@ -306,7 +306,7 @@ <Member MemberName="DynamicE1"> <MemberSignature Language="C#" Value="public event Func<dynamic> DynamicE1;" /> <MemberSignature Language="ILAsm" Value=".event class System.Func`1<object> DynamicE1" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token DynamicE1(Func<winrt::Windows::Foundation::IInspectable> const& handler) const;

// Revoke with event_token
void DynamicE1(event_token const* cookie) const;

// Revoke with event_revoker
DynamicE1_revoker DynamicE1(auto_revoke_t, Func<winrt::Windows::Foundation::IInspectable> const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token DynamicE1(Func<winrt::Windows::Foundation::IInspectable> const& handler) const;

// Revoke with event_token
void DynamicE1(event_token const* cookie) const;

// Revoke with event_revoker
Widget::DynamicE1_revoker DynamicE1(auto_revoke_t, Func<winrt::Windows::Foundation::IInspectable> const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -328,7 +328,7 @@ <Member MemberName="DynamicE2"> <MemberSignature Language="C#" Value="public event Func<dynamic> DynamicE2;" /> <MemberSignature Language="ILAsm" Value=".event class System.Func`1<object> DynamicE2" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token DynamicE2(Func<winrt::Windows::Foundation::IInspectable> const& handler) const;

// Revoke with event_token
void DynamicE2(event_token const* cookie) const;

// Revoke with event_revoker
DynamicE2_revoker DynamicE2(auto_revoke_t, Func<winrt::Windows::Foundation::IInspectable> const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token DynamicE2(Func<winrt::Windows::Foundation::IInspectable> const& handler) const;

// Revoke with event_token
void DynamicE2(event_token const* cookie) const;

// Revoke with event_revoker
Widget::DynamicE2_revoker DynamicE2(auto_revoke_t, Func<winrt::Windows::Foundation::IInspectable> const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -359,7 +359,7 @@ <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" /> - <MemberSignature Language="C++ WINRT" Value="Func<Func<winrt::hstring, winrt::Windows::Foundation::IInspectable const &, winrt::hstring const &>, Func<winrt::Windows::Foundation::IInspectable, Func<winrt::Windows::Foundation::IInspectable> const &, winrt::hstring const &> const &> DynamicP();" /> + <MemberSignature Language="C++ WINRT" Value="Func<Func<winrt::hstring, winrt::Windows::Foundation::IInspectable const&, winrt::hstring const&>, Func<winrt::Windows::Foundation::IInspectable, Func<winrt::Windows::Foundation::IInspectable> const&, winrt::hstring const&> const&> DynamicP();" /> <MemberType>Property</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -470,7 +470,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void M1(char const& c, [Runtime::InteropServices::Out] float & f, Mono::DocTest::DocValueType & v);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -527,7 +527,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void M2(winrt::array_view <short> const& x1, winrt::array_view <int, 2> const& x2, winrt::array_view <winrt::array_view <long> const&> const& x3);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -551,7 +551,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void M3(winrt::array_view <winrt::array_view <long> const&> const& x3, winrt::array_view <winrt::array_view <Mono::DocTest::Widget const&, 3> const&> const& x4);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -595,7 +595,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void M5(void* pv, winrt::array_view <winrt::array_view <double*, 2> const&> const& pd);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -645,7 +645,7 @@ <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);" /> + <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> @@ -697,7 +697,7 @@ <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);" /> + <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> @@ -736,7 +736,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value=" static explicit operator int(Mono::DocTest::Widget const& x);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -757,7 +757,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value=" static operator long(Mono::DocTest::Widget const& x);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -778,7 +778,7 @@ <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);" /> + <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> diff --git a/mdoc/Test/en.expected-cppwinrt2/System/Array.xml b/mdoc/Test/en.expected-cppwinrt2/System/Array.xml index 865b3cf4..a93cfc01 100644 --- a/mdoc/Test/en.expected-cppwinrt2/System/Array.xml +++ b/mdoc/Test/en.expected-cppwinrt2/System/Array.xml @@ -83,7 +83,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="template <typename T>
 static void Resize(winrt::array_view <T> const& & array, int const& newSize);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected-cppwinrt2/index.xml b/mdoc/Test/en.expected-cppwinrt2/index.xml index 0d692620..d94146c6 100644 --- a/mdoc/Test/en.expected-cppwinrt2/index.xml +++ b/mdoc/Test/en.expected-cppwinrt2/index.xml @@ -35,6 +35,7 @@ <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="CompoundConstraints`1" DisplayName="CompoundConstraints<NGparam>" Kind="Class" /> <Type Name="Extensions" Kind="Class" /> <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> diff --git a/mdoc/Test/en.expected-eii-implementation-ecmadoc/CustomNamespace/ClassEnumerator.xml b/mdoc/Test/en.expected-eii-implementation-ecmadoc/CustomNamespace/ClassEnumerator.xml index 3e0fdbfc..2cee2246 100644 --- a/mdoc/Test/en.expected-eii-implementation-ecmadoc/CustomNamespace/ClassEnumerator.xml +++ b/mdoc/Test/en.expected-eii-implementation-ecmadoc/CustomNamespace/ClassEnumerator.xml @@ -92,7 +92,7 @@ <MemberSignature Language="JavaScript" Value="function main(cmdArgs)" Usage="CustomNamespace.ClassEnumerator.main(cmdArgs)" /> <MemberSignature Language="C++ CLI" Value="public:
 static void Main(cli::array <System::String ^> ^ cmdArgs);" /> <MemberSignature Language="C++ CX" Value="public:
 static void Main(Platform::Array <Platform::String ^> ^ cmdArgs);" /> - <MemberSignature Language="C++ WINRT" Value=" static void Main(std::Array <winrt::hstring const &> const & cmdArgs);" /> + <MemberSignature Language="C++ WINRT" Value=" static void Main(winrt::array_view <winrt::hstring const&> const& cmdArgs);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.65535.65535</AssemblyVersion> diff --git a/mdoc/Test/en.expected-eii-implementation-slashdoc/CustomNamespace/ClassEnumerator.xml b/mdoc/Test/en.expected-eii-implementation-slashdoc/CustomNamespace/ClassEnumerator.xml index 405861e1..0bfc3fe1 100644 --- a/mdoc/Test/en.expected-eii-implementation-slashdoc/CustomNamespace/ClassEnumerator.xml +++ b/mdoc/Test/en.expected-eii-implementation-slashdoc/CustomNamespace/ClassEnumerator.xml @@ -96,7 +96,7 @@ <MemberSignature Language="JavaScript" Value="function main(cmdArgs)" Usage="CustomNamespace.ClassEnumerator.main(cmdArgs)" /> <MemberSignature Language="C++ CLI" Value="public:
 static void Main(cli::array <System::String ^> ^ cmdArgs);" /> <MemberSignature Language="C++ CX" Value="public:
 static void Main(Platform::Array <Platform::String ^> ^ cmdArgs);" /> - <MemberSignature Language="C++ WINRT" Value=" static void Main(std::Array <winrt::hstring const &> const & cmdArgs);" /> + <MemberSignature Language="C++ WINRT" Value=" static void Main(winrt::array_view <winrt::hstring const&> const& cmdArgs);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.65535.65535</AssemblyVersion> diff --git a/mdoc/Test/en.expected-eii-implementation/CustomNamespace/ClassEnumerator.xml b/mdoc/Test/en.expected-eii-implementation/CustomNamespace/ClassEnumerator.xml index ea03f5c3..58bb9d5d 100644 --- a/mdoc/Test/en.expected-eii-implementation/CustomNamespace/ClassEnumerator.xml +++ b/mdoc/Test/en.expected-eii-implementation/CustomNamespace/ClassEnumerator.xml @@ -92,7 +92,7 @@ <MemberSignature Language="JavaScript" Value="function main(cmdArgs)" Usage="CustomNamespace.ClassEnumerator.main(cmdArgs)" /> <MemberSignature Language="C++ CLI" Value="public:
 static void Main(cli::array <System::String ^> ^ cmdArgs);" /> <MemberSignature Language="C++ CX" Value="public:
 static void Main(Platform::Array <Platform::String ^> ^ cmdArgs);" /> - <MemberSignature Language="C++ WINRT" Value=" static void Main(std::Array <winrt::hstring const &> const & cmdArgs);" /> + <MemberSignature Language="C++ WINRT" Value=" static void Main(winrt::array_view <winrt::hstring const&> const& cmdArgs);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.65535.65535</AssemblyVersion> diff --git a/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Circle.xml b/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Circle.xml index 0df6e8c0..1cf1d136 100644 --- a/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Circle.xml +++ b/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Circle.xml @@ -16,8 +16,8 @@ <AttributeName Language="F#">[<System.Diagnostics.DebuggerDisplay("{__DebugDisplay(),nq}")>]</AttributeName> </Attribute> <Attribute> - <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions/Shape/Circle@DebugTypeProxy))]</AttributeName> - <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions/Shape/Circle@DebugTypeProxy))>]</AttributeName> + <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions+Shape+Circle@DebugTypeProxy))]</AttributeName> + <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions+Shape+Circle@DebugTypeProxy))>]</AttributeName> </Attribute> <Attribute> <AttributeName Language="C#">[System.Serializable]</AttributeName> diff --git a/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Prism.xml b/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Prism.xml index 6b82ea56..d692ac3a 100644 --- a/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Prism.xml +++ b/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Prism.xml @@ -16,8 +16,8 @@ <AttributeName Language="F#">[<System.Diagnostics.DebuggerDisplay("{__DebugDisplay(),nq}")>]</AttributeName> </Attribute> <Attribute> - <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions/Shape/Prism@DebugTypeProxy))]</AttributeName> - <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions/Shape/Prism@DebugTypeProxy))>]</AttributeName> + <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions+Shape+Prism@DebugTypeProxy))]</AttributeName> + <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions+Shape+Prism@DebugTypeProxy))>]</AttributeName> </Attribute> <Attribute> <AttributeName Language="C#">[System.Serializable]</AttributeName> diff --git a/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Rectangle.xml b/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Rectangle.xml index af196c39..fe657c9b 100644 --- a/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Rectangle.xml +++ b/mdoc/Test/en.expected-fsharp/DiscriminatedUnions+Shape+Rectangle.xml @@ -16,8 +16,8 @@ <AttributeName Language="F#">[<System.Diagnostics.DebuggerDisplay("{__DebugDisplay(),nq}")>]</AttributeName> </Attribute> <Attribute> - <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions/Shape/Rectangle@DebugTypeProxy))]</AttributeName> - <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions/Shape/Rectangle@DebugTypeProxy))>]</AttributeName> + <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions+Shape+Rectangle@DebugTypeProxy))]</AttributeName> + <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(DiscriminatedUnions+Shape+Rectangle@DebugTypeProxy))>]</AttributeName> </Attribute> <Attribute> <AttributeName Language="C#">[System.Serializable]</AttributeName> diff --git a/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+FirstLast.xml b/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+FirstLast.xml index b7b7a2de..e31b131c 100644 --- a/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+FirstLast.xml +++ b/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+FirstLast.xml @@ -16,8 +16,8 @@ <AttributeName Language="F#">[<System.Diagnostics.DebuggerDisplay("{__DebugDisplay(),nq}")>]</AttributeName> </Attribute> <Attribute> - <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples/PersonName/FirstLast@DebugTypeProxy))]</AttributeName> - <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples/PersonName/FirstLast@DebugTypeProxy))>]</AttributeName> + <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples+PersonName+FirstLast@DebugTypeProxy))]</AttributeName> + <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples+PersonName+FirstLast@DebugTypeProxy))>]</AttributeName> </Attribute> <Attribute> <AttributeName Language="C#">[System.Serializable]</AttributeName> diff --git a/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+FirstOnly.xml b/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+FirstOnly.xml index c50cd03a..8bc63289 100644 --- a/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+FirstOnly.xml +++ b/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+FirstOnly.xml @@ -16,8 +16,8 @@ <AttributeName Language="F#">[<System.Diagnostics.DebuggerDisplay("{__DebugDisplay(),nq}")>]</AttributeName> </Attribute> <Attribute> - <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples/PersonName/FirstOnly@DebugTypeProxy))]</AttributeName> - <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples/PersonName/FirstOnly@DebugTypeProxy))>]</AttributeName> + <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples+PersonName+FirstOnly@DebugTypeProxy))]</AttributeName> + <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples+PersonName+FirstOnly@DebugTypeProxy))>]</AttributeName> </Attribute> <Attribute> <AttributeName Language="C#">[System.Serializable]</AttributeName> diff --git a/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+LastOnly.xml b/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+LastOnly.xml index 9039e514..b9346976 100644 --- a/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+LastOnly.xml +++ b/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+PersonName+LastOnly.xml @@ -16,8 +16,8 @@ <AttributeName Language="F#">[<System.Diagnostics.DebuggerDisplay("{__DebugDisplay(),nq}")>]</AttributeName> </Attribute> <Attribute> - <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples/PersonName/LastOnly@DebugTypeProxy))]</AttributeName> - <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples/PersonName/LastOnly@DebugTypeProxy))>]</AttributeName> + <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples+PersonName+LastOnly@DebugTypeProxy))]</AttributeName> + <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples+PersonName+LastOnly@DebugTypeProxy))>]</AttributeName> </Attribute> <Attribute> <AttributeName Language="C#">[System.Serializable]</AttributeName> diff --git a/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+Shape+Circle.xml b/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+Shape+Circle.xml index 538409b3..cfc60932 100644 --- a/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+Shape+Circle.xml +++ b/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+Shape+Circle.xml @@ -16,8 +16,8 @@ <AttributeName Language="F#">[<System.Diagnostics.DebuggerDisplay("{__DebugDisplay(),nq}")>]</AttributeName> </Attribute> <Attribute> - <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples/Shape/Circle@DebugTypeProxy))]</AttributeName> - <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples/Shape/Circle@DebugTypeProxy))>]</AttributeName> + <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples+Shape+Circle@DebugTypeProxy))]</AttributeName> + <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples+Shape+Circle@DebugTypeProxy))>]</AttributeName> </Attribute> <Attribute> <AttributeName Language="C#">[System.Serializable]</AttributeName> diff --git a/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+Shape+Rectangle.xml b/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+Shape+Rectangle.xml index f22cf1ab..418a8add 100644 --- a/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+Shape+Rectangle.xml +++ b/mdoc/Test/en.expected-fsharp/PatternMatching/PatternMatchingExamples+Shape+Rectangle.xml @@ -16,8 +16,8 @@ <AttributeName Language="F#">[<System.Diagnostics.DebuggerDisplay("{__DebugDisplay(),nq}")>]</AttributeName> </Attribute> <Attribute> - <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples/Shape/Rectangle@DebugTypeProxy))]</AttributeName> - <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples/Shape/Rectangle@DebugTypeProxy))>]</AttributeName> + <AttributeName Language="C#">[System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples+Shape+Rectangle@DebugTypeProxy))]</AttributeName> + <AttributeName Language="F#">[<System.Diagnostics.DebuggerTypeProxy(typeof(PatternMatching.PatternMatchingExamples+Shape+Rectangle@DebugTypeProxy))>]</AttributeName> </Attribute> <Attribute> <AttributeName Language="C#">[System.Serializable]</AttributeName> diff --git a/mdoc/Test/en.expected-fx-import/FrameworksIndex/one.xml b/mdoc/Test/en.expected-fx-import/FrameworksIndex/one.xml index 0c0f7b01..4eb18767 100644 --- a/mdoc/Test/en.expected-fx-import/FrameworksIndex/one.xml +++ b/mdoc/Test/en.expected-fx-import/FrameworksIndex/one.xml @@ -109,6 +109,10 @@ </Type> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="Mono.DocTest.Generic.CompoundConstraints`1" Id="T:Mono.DocTest.Generic.CompoundConstraints`1"> + <Member Id="M:Mono.DocTest.Generic.CompoundConstraints`1.#ctor" /> + <Member Id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1" /> + </Type> <Type Name="Mono.DocTest.Generic.Extensions" Id="T:Mono.DocTest.Generic.Extensions"> <Member Id="M:Mono.DocTest.Generic.Extensions.Bar``1(Mono.DocTest.Generic.IFoo{``0},System.String)" /> <Member Id="M:Mono.DocTest.Generic.Extensions.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})" /> diff --git a/mdoc/Test/en.expected-fx-import/Mono.DocTest.Generic/CompoundConstraints`1.xml b/mdoc/Test/en.expected-fx-import/Mono.DocTest.Generic/CompoundConstraints`1.xml new file mode 100644 index 00000000..bebdeebd --- /dev/null +++ b/mdoc/Test/en.expected-fx-import/Mono.DocTest.Generic/CompoundConstraints`1.xml @@ -0,0 +1,68 @@ +<Type Name="CompoundConstraints<NGparam>" FullName="Mono.DocTest.Generic.CompoundConstraints<NGparam>"> + <TypeSignature Language="C#" Value="public class CompoundConstraints<NGparam> where NGparam : class, new()" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompoundConstraints`1<class .ctor NGparam> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="NGparam"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="NGparam">Non-generic param</typeparam> + <summary>To be added.</summary> + <remarks> + <c>T:Mono.DocTest.CompoundConstraints</c>.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CompoundConstraints ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="CompoundConstraintClass<param>"> + <MemberSignature Language="C#" Value="public static void CompoundConstraintClass<param> () where param : class, new();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void CompoundConstraintClass<class .ctor param>() cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="param"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="param">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-fx-import/index.xml b/mdoc/Test/en.expected-fx-import/index.xml index 5190f1db..2199327b 100644 --- a/mdoc/Test/en.expected-fx-import/index.xml +++ b/mdoc/Test/en.expected-fx-import/index.xml @@ -55,6 +55,7 @@ <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="CompoundConstraints`1" DisplayName="CompoundConstraints<NGparam>" Kind="Class" /> <Type Name="Extensions" Kind="Class" /> <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> diff --git a/mdoc/Test/en.expected-guid/index.xml b/mdoc/Test/en.expected-guid/index.xml new file mode 100644 index 00000000..9e662045 --- /dev/null +++ b/mdoc/Test/en.expected-guid/index.xml @@ -0,0 +1,22 @@ +<Overview> + <Assemblies> + <Assembly Name="GuidClass" 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="mdoc.Test.SampleClasses"> + <Type Name="GuidClass" Kind="Class" /> + </Namespace> + </Types> + <Title>GuidClass</Title> +</Overview> diff --git a/mdoc/Test/en.expected-guid/mdoc.Test.SampleClasses/GuidClass.xml b/mdoc/Test/en.expected-guid/mdoc.Test.SampleClasses/GuidClass.xml new file mode 100644 index 00000000..a6451db2 --- /dev/null +++ b/mdoc/Test/en.expected-guid/mdoc.Test.SampleClasses/GuidClass.xml @@ -0,0 +1,102 @@ +<Type Name="GuidClass" FullName="mdoc.Test.SampleClasses.GuidClass"> + <TypeSignature Language="C#" Value="public class GuidClass" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit GuidClass extends System.Object" /> + <TypeSignature Language="C++ WINRT" Value="[Windows::Foundation::Metadata::WebHostHidden]
class GuidClass" /> + <AssemblyInfo> + <AssemblyName>GuidClass</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 GuidClass (Guid guid);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype System.Guid guid) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 GuidClass(Platform::Guid guid);" /> + <MemberSignature Language="C++ WINRT" Value=" GuidClass(winrt::guid const& guid);" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters> + <Parameter Name="guid" Type="System.Guid" /> + </Parameters> + <Docs> + <param name="guid">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="CreateNewGuid"> + <MemberSignature Language="C#" Value="public static Guid CreateNewGuid ();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Guid CreateNewGuid() cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 static Platform::Guid CreateNewGuid();" /> + <MemberSignature Language="C++ WINRT" Value=" static winrt::guid CreateNewGuid();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Guid</ReturnType> + </ReturnValue> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="IsUnique"> + <MemberSignature Language="C#" Value="public bool IsUnique (Guid guid);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool IsUnique(valuetype System.Guid guid) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 bool IsUnique(Platform::Guid guid);" /> + <MemberSignature Language="C++ WINRT" Value="bool IsUnique(winrt::guid const& guid);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="guid" Type="System.Guid" /> + </Parameters> + <Docs> + <param name="guid">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="ObjectIndentical"> + <MemberSignature Language="C#" Value="public bool ObjectIndentical (Guid objGuid1, Guid objGuid2);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool ObjectIndentical(valuetype System.Guid objGuid1, valuetype System.Guid objGuid2) cil managed" /> + <MemberSignature Language="C++ CX" Value="public:
 bool ObjectIndentical(Platform::Guid objGuid1, Platform::Guid objGuid2);" /> + <MemberSignature Language="C++ WINRT" Value="bool ObjectIndentical(winrt::guid const& objGuid1, winrt::guid const& objGuid2);" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Boolean</ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="objGuid1" Type="System.Guid" /> + <Parameter Name="objGuid2" Type="System.Guid" /> + </Parameters> + <Docs> + <param name="objGuid1">To be added.</param> + <param name="objGuid2">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-guid/ns-mdoc.Test.SampleClasses.xml b/mdoc/Test/en.expected-guid/ns-mdoc.Test.SampleClasses.xml new file mode 100644 index 00000000..80a5e984 --- /dev/null +++ b/mdoc/Test/en.expected-guid/ns-mdoc.Test.SampleClasses.xml @@ -0,0 +1,6 @@ +<Namespace Name="mdoc.Test.SampleClasses"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected-javascript/Mono.DocTest.Generic/CompoundConstraints`1.xml b/mdoc/Test/en.expected-javascript/Mono.DocTest.Generic/CompoundConstraints`1.xml new file mode 100644 index 00000000..1655cde9 --- /dev/null +++ b/mdoc/Test/en.expected-javascript/Mono.DocTest.Generic/CompoundConstraints`1.xml @@ -0,0 +1,65 @@ +<Type Name="CompoundConstraints<NGparam>" FullName="Mono.DocTest.Generic.CompoundConstraints<NGparam>"> + <TypeSignature Language="C#" Value="public class CompoundConstraints<NGparam> where NGparam : class, new()" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompoundConstraints`1<class .ctor NGparam> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="NGparam"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="NGparam">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CompoundConstraints ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="CompoundConstraintClass<param>"> + <MemberSignature Language="C#" Value="public static void CompoundConstraintClass<param> () where param : class, new();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void CompoundConstraintClass<class .ctor param>() cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="param"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="param">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-javascript/index.xml b/mdoc/Test/en.expected-javascript/index.xml index c74a4a77..79f03305 100644 --- a/mdoc/Test/en.expected-javascript/index.xml +++ b/mdoc/Test/en.expected-javascript/index.xml @@ -35,6 +35,7 @@ <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="CompoundConstraints`1" DisplayName="CompoundConstraints<NGparam>" Kind="Class" /> <Type Name="Extensions" Kind="Class" /> <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> diff --git a/mdoc/Test/en.expected-vbnet2/Mono.DocTest.Generic/CompoundConstraints`1.xml b/mdoc/Test/en.expected-vbnet2/Mono.DocTest.Generic/CompoundConstraints`1.xml new file mode 100644 index 00000000..15297b83 --- /dev/null +++ b/mdoc/Test/en.expected-vbnet2/Mono.DocTest.Generic/CompoundConstraints`1.xml @@ -0,0 +1,68 @@ +<Type Name="CompoundConstraints<NGparam>" FullName="Mono.DocTest.Generic.CompoundConstraints<NGparam>"> + <TypeSignature Language="C#" Value="public class CompoundConstraints<NGparam> where NGparam : class, new()" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompoundConstraints`1<class .ctor NGparam> extends System.Object" /> + <TypeSignature Language="VB.NET" Value="Public Class CompoundConstraints(Of NGparam)" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="NGparam"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="NGparam">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CompoundConstraints ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="VB.NET" Value="Public Sub New ()" /> + <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="CompoundConstraintClass<param>"> + <MemberSignature Language="C#" Value="public static void CompoundConstraintClass<param> () where param : class, new();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void CompoundConstraintClass<class .ctor param>() cil managed" /> + <MemberSignature Language="VB.NET" Value="Public Shared Sub CompoundConstraintClass(Of param As {Class, New}) ()" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="param"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="param">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected-vbnet2/index.xml b/mdoc/Test/en.expected-vbnet2/index.xml index 91ad0ed3..9bcfe8be 100644 --- a/mdoc/Test/en.expected-vbnet2/index.xml +++ b/mdoc/Test/en.expected-vbnet2/index.xml @@ -35,6 +35,7 @@ <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="CompoundConstraints`1" DisplayName="CompoundConstraints<NGparam>" Kind="Class" /> <Type Name="Extensions" Kind="Class" /> <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> diff --git a/mdoc/Test/en.expected.delete/Mono.DocTest.Generic/CompoundConstraints`1.xml b/mdoc/Test/en.expected.delete/Mono.DocTest.Generic/CompoundConstraints`1.xml new file mode 100644 index 00000000..fa8b068a --- /dev/null +++ b/mdoc/Test/en.expected.delete/Mono.DocTest.Generic/CompoundConstraints`1.xml @@ -0,0 +1,58 @@ +<Type Name="CompoundConstraints<NGparam>" FullName="Mono.DocTest.Generic.CompoundConstraints<NGparam>"> + <TypeSignature Language="C#" Value="public class CompoundConstraints<NGparam> where NGparam : class, new()" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompoundConstraints`1<class .ctor NGparam> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="NGparam"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="NGparam">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CompoundConstraints ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberType>Constructor</MemberType> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="CompoundConstraintClass<param>"> + <MemberSignature Language="C#" Value="public static void CompoundConstraintClass<param> () where param : class, new();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void CompoundConstraintClass<class .ctor param>() cil managed" /> + <MemberType>Method</MemberType> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="param"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="param">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected.delete/index.xml b/mdoc/Test/en.expected.delete/index.xml index 0d692620..d94146c6 100644 --- a/mdoc/Test/en.expected.delete/index.xml +++ b/mdoc/Test/en.expected.delete/index.xml @@ -35,6 +35,7 @@ <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="CompoundConstraints`1" DisplayName="CompoundConstraints<NGparam>" Kind="Class" /> <Type Name="Extensions" Kind="Class" /> <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> diff --git a/mdoc/Test/en.expected.differentTypeDefinitions/FrameworksIndex/One.xml b/mdoc/Test/en.expected.differentTypeDefinitions/FrameworksIndex/One.xml new file mode 100644 index 00000000..cf5c13f9 --- /dev/null +++ b/mdoc/Test/en.expected.differentTypeDefinitions/FrameworksIndex/One.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<Framework Name="One"> + <Assemblies> + <Assembly Name="DocTest-differentTypeDefinitions-First" Version="0.0.0.0" /> + <Assembly Name="DocTest-differentTypeDefinitions-Second" Version="0.0.0.0" /> + </Assemblies> + <Namespace Name="TheNamespace"> + <Type Name="TheNamespace.TheClass" Id="T:TheNamespace.TheClass"> + <Member Id="M:TheNamespace.TheClass.#ctor(System.Int32)" /> + <Member Id="M:TheNamespace.TheClass.#ctor(System.String)" /> + </Type> + </Namespace> +</Framework>
\ No newline at end of file diff --git a/mdoc/Test/en.expected.differentTypeDefinitions/TheNamespace/TheClass.xml b/mdoc/Test/en.expected.differentTypeDefinitions/TheNamespace/TheClass.xml new file mode 100644 index 00000000..6351228d --- /dev/null +++ b/mdoc/Test/en.expected.differentTypeDefinitions/TheNamespace/TheClass.xml @@ -0,0 +1,56 @@ +<Type Name="TheClass" FullName="TheNamespace.TheClass"> + <TypeSignature Language="C#" Value="public class TheClass" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit TheClass extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest-differentTypeDefinitions-First</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <AssemblyInfo> + <AssemblyName>DocTest-differentTypeDefinitions-Second</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 TheClass (int arg);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(int32 arg) cil managed" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-differentTypeDefinitions-First</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters> + <Parameter Name="arg" Type="System.Int32" /> + </Parameters> + <Docs> + <param name="arg">To be added.</param> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public TheClass (string arg);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string arg) cil managed" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyName>DocTest-differentTypeDefinitions-Second</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters> + <Parameter Name="arg" Type="System.String" /> + </Parameters> + <Docs> + <param name="arg">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.differentTypeDefinitions/index.xml b/mdoc/Test/en.expected.differentTypeDefinitions/index.xml new file mode 100644 index 00000000..fffae27a --- /dev/null +++ b/mdoc/Test/en.expected.differentTypeDefinitions/index.xml @@ -0,0 +1,32 @@ +<Overview> + <Assemblies> + <Assembly Name="DocTest-differentTypeDefinitions-First" 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-differentTypeDefinitions-Second" 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="TheNamespace"> + <Type Name="TheClass" Kind="Class" /> + </Namespace> + </Types> + <Title>Untitled</Title> +</Overview> diff --git a/mdoc/Test/en.expected.differentTypeDefinitions/ns-TheNamespace.xml b/mdoc/Test/en.expected.differentTypeDefinitions/ns-TheNamespace.xml new file mode 100644 index 00000000..757c55bd --- /dev/null +++ b/mdoc/Test/en.expected.differentTypeDefinitions/ns-TheNamespace.xml @@ -0,0 +1,6 @@ +<Namespace Name="TheNamespace"> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> +</Namespace> diff --git a/mdoc/Test/en.expected.importslashdoc/Mono.DocTest.Generic/CompoundConstraints`1.xml b/mdoc/Test/en.expected.importslashdoc/Mono.DocTest.Generic/CompoundConstraints`1.xml new file mode 100644 index 00000000..f9ba1b6c --- /dev/null +++ b/mdoc/Test/en.expected.importslashdoc/Mono.DocTest.Generic/CompoundConstraints`1.xml @@ -0,0 +1,66 @@ +<Type Name="CompoundConstraints<NGparam>" FullName="Mono.DocTest.Generic.CompoundConstraints<NGparam>"> + <TypeSignature Language="C#" Value="public class CompoundConstraints<NGparam> where NGparam : class, new()" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompoundConstraints`1<class .ctor NGparam> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="NGparam"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="NGparam">Non-generic param</typeparam> + <summary>To be added.</summary> + <remarks> + <c>T:Mono.DocTest.CompoundConstraints</c>.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CompoundConstraints ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="CompoundConstraintClass<param>"> + <MemberSignature Language="C#" Value="public static void CompoundConstraintClass<param> () where param : class, new();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void CompoundConstraintClass<class .ctor param>() cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="param"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="param">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected.importslashdoc/index.xml b/mdoc/Test/en.expected.importslashdoc/index.xml index 82bf818b..da66cdec 100644 --- a/mdoc/Test/en.expected.importslashdoc/index.xml +++ b/mdoc/Test/en.expected.importslashdoc/index.xml @@ -35,6 +35,7 @@ <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="CompoundConstraints`1" DisplayName="CompoundConstraints<NGparam>" Kind="Class" /> <Type Name="Extensions" Kind="Class" /> <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> diff --git a/mdoc/Test/en.expected.since/Mono.DocTest.Generic/CompoundConstraints`1.xml b/mdoc/Test/en.expected.since/Mono.DocTest.Generic/CompoundConstraints`1.xml new file mode 100644 index 00000000..5398157d --- /dev/null +++ b/mdoc/Test/en.expected.since/Mono.DocTest.Generic/CompoundConstraints`1.xml @@ -0,0 +1,68 @@ +<Type Name="CompoundConstraints<NGparam>" FullName="Mono.DocTest.Generic.CompoundConstraints<NGparam>"> + <TypeSignature Language="C#" Value="public class CompoundConstraints<NGparam> where NGparam : class, new()" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompoundConstraints`1<class .ctor NGparam> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="NGparam"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="NGparam">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CompoundConstraints ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="CompoundConstraintClass<param>"> + <MemberSignature Language="C#" Value="public static void CompoundConstraintClass<param> () where param : class, new();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void CompoundConstraintClass<class .ctor param>() cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="param"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="param">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected.since/index.xml b/mdoc/Test/en.expected.since/index.xml index 0e220307..c06f7826 100644 --- a/mdoc/Test/en.expected.since/index.xml +++ b/mdoc/Test/en.expected.since/index.xml @@ -36,6 +36,7 @@ <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="CompoundConstraints`1" DisplayName="CompoundConstraints<NGparam>" Kind="Class" /> <Type Name="Extensions" Kind="Class" /> <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> diff --git a/mdoc/Test/en.expected/Mono.DocTest.Generic/CompoundConstraints`1.xml b/mdoc/Test/en.expected/Mono.DocTest.Generic/CompoundConstraints`1.xml new file mode 100644 index 00000000..5aaf82fd --- /dev/null +++ b/mdoc/Test/en.expected/Mono.DocTest.Generic/CompoundConstraints`1.xml @@ -0,0 +1,80 @@ +<Type Name="CompoundConstraints<NGparam>" FullName="Mono.DocTest.Generic.CompoundConstraints<NGparam>"> + <TypeSignature Language="C#" Value="public class CompoundConstraints<NGparam> where NGparam : class, new()" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompoundConstraints`1<class .ctor NGparam> extends System.Object" /> + <TypeSignature Language="DocId" Value="T:Mono.DocTest.Generic.CompoundConstraints`1" /> + <TypeSignature Language="VB.NET" Value="Public Class CompoundConstraints(Of NGparam)" /> + <TypeSignature Language="F#" Value="type CompoundConstraints<'NGparam (requires 'NGparam : null and 'NGparam : (new : unit -> 'NGparam))> = class" /> + <TypeSignature Language="C++ CLI" Value="generic <typename NGparam>
 where NGparam : class, gcnew()public ref class CompoundConstraints" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="NGparam"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="NGparam">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CompoundConstraints ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberSignature Language="DocId" Value="M:Mono.DocTest.Generic.CompoundConstraints`1.#ctor" /> + <MemberSignature Language="VB.NET" Value="Public Sub New ()" /> + <MemberSignature Language="C++ CLI" Value="public:
 CompoundConstraints();" /> + <MemberSignature Language="C++ CX" Value="public:
 CompoundConstraints();" /> + <MemberSignature Language="C++ WINRT" Value=" CompoundConstraints();" /> + <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="CompoundConstraintClass<param>"> + <MemberSignature Language="C#" Value="public static void CompoundConstraintClass<param> () where param : class, new();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void CompoundConstraintClass<class .ctor param>() cil managed" /> + <MemberSignature Language="DocId" Value="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1" /> + <MemberSignature Language="VB.NET" Value="Public Shared Sub CompoundConstraintClass(Of param As {Class, New}) ()" /> + <MemberSignature Language="F#" Value="static member CompoundConstraintClass : unit -> unit (requires 'param : null and 'param : (new : unit -> 'param))" Usage="Mono.DocTest.Generic.CompoundConstraints<'NGparam (requires 'NGparam : null and 'NGparam : (new : unit -> 'NGparam))>.CompoundConstraintClass " /> + <MemberSignature Language="C++ CLI" Value="public:
generic <typename param>
 where param : class, gcnew() static void CompoundConstraintClass();" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename param>
 where param : class, gcnew() static void CompoundConstraintClass();" /> + <MemberSignature Language="C++ WINRT" Value="template <typename param>
 where param : class, gcnew() static void CompoundConstraintClass();" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="param"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="param">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/en.expected/Mono.DocTest.Generic/Extensions.xml b/mdoc/Test/en.expected/Mono.DocTest.Generic/Extensions.xml index 98746f90..2663c3a5 100644 --- a/mdoc/Test/en.expected/Mono.DocTest.Generic/Extensions.xml +++ b/mdoc/Test/en.expected/Mono.DocTest.Generic/Extensions.xml @@ -6,7 +6,7 @@ <TypeSignature Language="F#" Value="type Extensions = class" /> <TypeSignature Language="C++ CLI" Value="public ref class Extensions abstract sealed" /> <TypeSignature Language="C++ CX" Value="public ref class Extensions abstract sealed" /> - <TypeSignature Language="C++ WINRT" Value="class Extensions abstract final" /> + <TypeSignature Language="C++ WINRT" Value="class Extensions final" /> <AssemblyInfo> <AssemblyName>DocTest</AssemblyName> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml b/mdoc/Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml index 083daab5..31a89773 100644 --- a/mdoc/Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml +++ b/mdoc/Test/en.expected/Mono.DocTest.Generic/GenericBase`1.xml @@ -49,7 +49,7 @@ <MemberSignature Language="F#" Value="member this.BaseMethod : 'S -> 'U" Usage="genericBase.BaseMethod genericParameter" /> <MemberSignature Language="C++ CLI" Value="public:
generic <typename S>
 U BaseMethod(S genericParameter);" /> <MemberSignature Language="C++ CX" Value="public:
generic <typename S>
 U BaseMethod(S genericParameter);" /> - <MemberSignature Language="C++ WINRT" Value="template <typename S>
 U BaseMethod(S genericParameter);" /> + <MemberSignature Language="C++ WINRT" Value="template <typename S>
 U BaseMethod(S const& genericParameter);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -107,7 +107,7 @@ <MemberSignature Language="VB.NET" Value="Public Custom Event ItemChanged As Action(Of MyList(Of U), MyList(Of U).Helper(Of U, U)) " /> <MemberSignature Language="F#" Value="member this.ItemChanged : Action<Mono.DocTest.Generic.MyList<'U>, Mono.DocTest.Generic.MyList<'U>.Helper<'U, 'U>> " Usage="member this.ItemChanged : System.Action<Mono.DocTest.Generic.MyList<'U>, Mono.DocTest.Generic.MyList<'U>.Helper<'U, 'U>> " /> <MemberSignature Language="C++ CLI" Value="public:
 event Action<Mono::DocTest::Generic::MyList<U> ^, Mono::DocTest::Generic::MyList<U>::Helper<U, U> ^> ^ ItemChanged;" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token ItemChanged(Action<Mono::DocTest::Generic::MyList<U>, Mono::DocTest::Generic::MyList<U>::Helper<U, U> const &> const& handler) const;

// Revoke with event_token
void ItemChanged(event_token const* cookie) const;

// Revoke with event_revoker
ItemChanged_revoker ItemChanged(auto_revoke_t, Action<Mono::DocTest::Generic::MyList<U>, Mono::DocTest::Generic::MyList<U>::Helper<U, U> const &> const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token ItemChanged(Action<Mono::DocTest::Generic::MyList<U>, Mono::DocTest::Generic::MyList<U>::Helper<U, U> const&> const& handler) const;

// Revoke with event_token
void ItemChanged(event_token const* cookie) const;

// Revoke with event_revoker
GenericBase`1::ItemChanged_revoker ItemChanged(auto_revoke_t, Action<Mono::DocTest::Generic::MyList<U>, Mono::DocTest::Generic::MyList<U>::Helper<U, U> const&> const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -127,7 +127,7 @@ <MemberSignature Language="VB.NET" Value="Public Custom Event MyEvent As EventHandler(Of GenericBase(Of U).FooEventArgs) " /> <MemberSignature Language="F#" Value="member this.MyEvent : EventHandler<Mono.DocTest.Generic.GenericBase<'U>.FooEventArgs> " Usage="member this.MyEvent : System.EventHandler<Mono.DocTest.Generic.GenericBase<'U>.FooEventArgs> " /> <MemberSignature Language="C++ CLI" Value="public:
 event EventHandler<Mono::DocTest::Generic::GenericBase<U>::FooEventArgs ^> ^ MyEvent;" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token MyEvent(EventHandler<Mono::DocTest::Generic::GenericBase<U>::FooEventArgs> const& handler) const;

// Revoke with event_token
void MyEvent(event_token const* cookie) const;

// Revoke with event_revoker
MyEvent_revoker MyEvent(auto_revoke_t, EventHandler<Mono::DocTest::Generic::GenericBase<U>::FooEventArgs> const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token MyEvent(EventHandler<Mono::DocTest::Generic::GenericBase<U>::FooEventArgs> const& handler) const;

// Revoke with event_token
void MyEvent(event_token const* cookie) const;

// Revoke with event_revoker
GenericBase`1::MyEvent_revoker MyEvent(auto_revoke_t, EventHandler<Mono::DocTest::Generic::GenericBase<U>::FooEventArgs> const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -147,7 +147,7 @@ <MemberSignature Language="VB.NET" Value="Public Shared Narrowing Operator CType (list As GenericBase(Of U)) As U" /> <MemberSignature Language="F#" Value="static member op_Explicit : Mono.DocTest.Generic.GenericBase<'U> -> 'U" Usage="Mono.DocTest.Generic.GenericBase<'U>.op_Explicit list" /> <MemberSignature Language="C++ CLI" Value="public:
 static explicit operator U(Mono::DocTest::Generic::GenericBase<U> ^ list);" /> - <MemberSignature Language="C++ WINRT" Value=" static explicit operator U(Mono::DocTest::Generic::GenericBase<U> const & list);" /> + <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> diff --git a/mdoc/Test/en.expected/Mono.DocTest.Generic/IFoo`1.xml b/mdoc/Test/en.expected/Mono.DocTest.Generic/IFoo`1.xml index fec45e1c..8ba61d91 100644 --- a/mdoc/Test/en.expected/Mono.DocTest.Generic/IFoo`1.xml +++ b/mdoc/Test/en.expected/Mono.DocTest.Generic/IFoo`1.xml @@ -29,7 +29,7 @@ <MemberSignature Language="F#" Value="abstract member Method : 'T * 'U -> 'T" Usage="iFoo.Method (t, u)" /> <MemberSignature Language="C++ CLI" Value="public:
generic <typename U>
 T Method(T t, U u);" /> <MemberSignature Language="C++ CX" Value="public:
generic <typename U>
 T Method(T t, U u);" /> - <MemberSignature Language="C++ WINRT" Value="template <typename U>
 T Method(T t, U u);" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U>
 T Method(T const& t, U const& u);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`1+Helper`2.xml b/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`1+Helper`2.xml index b0afe1a6..5e95262c 100644 --- a/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`1+Helper`2.xml +++ b/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`1+Helper`2.xml @@ -52,7 +52,7 @@ <MemberSignature Language="F#" Value="member this.UseT : 'T * 'U * 'V -> unit" Usage="helper.UseT (a, b, c)" /> <MemberSignature Language="C++ CLI" Value="public:
 void UseT(T a, U b, V c);" /> <MemberSignature Language="C++ CX" Value="public:
 void UseT(T a, U b, V c);" /> - <MemberSignature Language="C++ WINRT" Value="void UseT(T a, U b, V c);" /> + <MemberSignature Language="C++ WINRT" Value="void UseT(T const& a, U const& b, V const& c);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`1.xml b/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`1.xml index ef270948..877bd5fc 100644 --- a/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`1.xml +++ b/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`1.xml @@ -118,7 +118,7 @@ <MemberSignature Language="F#" Value="member this.Method : 'T * 'U -> unit" Usage="myList.Method (t, u)" /> <MemberSignature Language="C++ CLI" Value="public:
generic <typename U>
 void Method(T t, U u);" /> <MemberSignature Language="C++ CX" Value="public:
generic <typename U>
 void Method(T t, U u);" /> - <MemberSignature Language="C++ WINRT" Value="template <typename U>
 void Method(T t, U u);" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U>
 void Method(T const& t, U const& u);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -148,7 +148,7 @@ <MemberSignature Language="VB.NET" Value="Public Sub RefMethod(Of U) (ByRef t As T, ByRef u As U)" /> <MemberSignature Language="F#" Value="member this.RefMethod : 'T * 'U -> unit" Usage="myList.RefMethod (t, u)" /> <MemberSignature Language="C++ CLI" Value="public:
generic <typename U>
 void RefMethod(T % t, U % u);" /> - <MemberSignature Language="C++ CX" Value="public:
generic <typename U>
 void RefMethod(T & t, U & u);" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename U>
 void RefMethod(T & t, U & u);" /> <MemberSignature Language="C++ WINRT" Value="template <typename U>
 void RefMethod(T & t, U & u);" /> <MemberType>Method</MemberType> <AssemblyInfo> @@ -204,7 +204,7 @@ <MemberSignature Language="F#" Value="member this.Test : 'T -> unit" Usage="myList.Test t" /> <MemberSignature Language="C++ CLI" Value="public:
 void Test(T t);" /> <MemberSignature Language="C++ CX" Value="public:
 void Test(T t);" /> - <MemberSignature Language="C++ WINRT" Value="void Test(T t);" /> + <MemberSignature Language="C++ WINRT" Value="void Test(T const& t);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -228,7 +228,7 @@ <MemberSignature Language="VB.NET" Value="Public Sub UseHelper(Of U, V) (helper As MyList(Of T).Helper(Of U, V))" /> <MemberSignature Language="F#" Value="member this.UseHelper : Mono.DocTest.Generic.MyList<'T>.Helper<'U, 'V> -> unit" Usage="myList.UseHelper helper" /> <MemberSignature Language="C++ CLI" Value="public:
generic <typename U, typename V>
 void UseHelper(Mono::DocTest::Generic::MyList<T>::Helper<U, V> ^ helper);" /> - <MemberSignature Language="C++ WINRT" Value="template <typename U, typename V>
 void UseHelper(Mono::DocTest::Generic::MyList<T>::Helper<U, V> const & helper);" /> + <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> diff --git a/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`2.xml b/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`2.xml index c4a8f44f..12764a81 100644 --- a/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`2.xml +++ b/mdoc/Test/en.expected/Mono.DocTest.Generic/MyList`2.xml @@ -89,7 +89,7 @@ <MemberSignature Language="F#" Value="abstract member CopyTo : 'A[] * int -> unit
override this.CopyTo : 'A[] * int -> unit" Usage="myList.CopyTo (array, arrayIndex)" /> <MemberSignature Language="C++ CLI" Value="public:
 virtual void CopyTo(cli::array <A> ^ array, int arrayIndex);" /> <MemberSignature Language="C++ CX" Value="public:
 void CopyTo(Platform::Array <A> ^ array, int arrayIndex);" /> - <MemberSignature Language="C++ WINRT" Value="void CopyTo(std::Array <A> const & array, int arrayIndex);" /> + <MemberSignature Language="C++ WINRT" Value="void CopyTo(winrt::array_view <A> const& array, int const& arrayIndex);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:System.Collections.Generic.ICollection`1.CopyTo(`0[],System.Int32)</InterfaceMember> @@ -236,7 +236,7 @@ <MemberSignature Language="F#" Value="abstract member Mono.DocTest.Generic.IFoo<A>.Method : 'A * 'U -> 'A
override this.Mono.DocTest.Generic.IFoo<A>.Method : 'A * 'U -> 'A" Usage="myList.Mono.DocTest.Generic.IFoo<A>.Method (a, u)" /> <MemberSignature Language="C++ CLI" Value="generic <typename U>
 virtual A Mono.DocTest.Generic.IFoo<A>.Method(A a, U u) = Mono::DocTest::Generic::IFoo<A>::Method;" /> <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;" /> - <MemberSignature Language="C++ WINRT" Value="template <typename U>
 A Mono.DocTest.Generic.IFoo<A>.Method(A a, U u);" /> + <MemberSignature Language="C++ WINRT" Value="template <typename U>
 A Mono.DocTest.Generic.IFoo<A>.Method(A const& a, U const& u);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:Mono.DocTest.Generic.IFoo`1.Method``1(`0,``0)</InterfaceMember> @@ -322,7 +322,7 @@ <MemberSignature Language="F#" Value="abstract member System.Collections.Generic.ICollection<A>.Add : 'A -> unit
override this.System.Collections.Generic.ICollection<A>.Add : 'A -> unit" Usage="myList.System.Collections.Generic.ICollection<A>.Add item" /> <MemberSignature Language="C++ CLI" Value=" virtual void System.Collections.Generic.ICollection<A>.Add(A item) = System::Collections::Generic::ICollection<A>::Add;" /> <MemberSignature Language="C++ CX" Value=" virtual void System.Collections.Generic.ICollection<A>.Add(A item) = System::Collections::Generic::ICollection<A>::Add;" /> - <MemberSignature Language="C++ WINRT" Value="void System.Collections.Generic.ICollection<A>.Add(A item);" /> + <MemberSignature Language="C++ WINRT" Value="void System.Collections.Generic.ICollection<A>.Add(A const& item);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:System.Collections.Generic.ICollection`1.Add(`0)</InterfaceMember> @@ -375,7 +375,7 @@ <MemberSignature Language="F#" Value="abstract member System.Collections.Generic.ICollection<A>.Contains : 'A -> bool
override this.System.Collections.Generic.ICollection<A>.Contains : 'A -> bool" Usage="myList.System.Collections.Generic.ICollection<A>.Contains item" /> <MemberSignature Language="C++ CLI" Value=" virtual bool System.Collections.Generic.ICollection<A>.Contains(A item) = System::Collections::Generic::ICollection<A>::Contains;" /> <MemberSignature Language="C++ CX" Value=" virtual bool System.Collections.Generic.ICollection<A>.Contains(A item) = System::Collections::Generic::ICollection<A>::Contains;" /> - <MemberSignature Language="C++ WINRT" Value="bool System.Collections.Generic.ICollection<A>.Contains(A item);" /> + <MemberSignature Language="C++ WINRT" Value="bool System.Collections.Generic.ICollection<A>.Contains(A const& item);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:System.Collections.Generic.ICollection`1.Contains(`0)</InterfaceMember> @@ -429,7 +429,7 @@ <MemberSignature Language="F#" Value="abstract member System.Collections.Generic.ICollection<A>.Remove : 'A -> bool
override this.System.Collections.Generic.ICollection<A>.Remove : 'A -> bool" Usage="myList.System.Collections.Generic.ICollection<A>.Remove item" /> <MemberSignature Language="C++ CLI" Value=" virtual bool System.Collections.Generic.ICollection<A>.Remove(A item) = System::Collections::Generic::ICollection<A>::Remove;" /> <MemberSignature Language="C++ CX" Value=" virtual bool System.Collections.Generic.ICollection<A>.Remove(A item) = System::Collections::Generic::ICollection<A>::Remove;" /> - <MemberSignature Language="C++ WINRT" Value="bool System.Collections.Generic.ICollection<A>.Remove(A item);" /> + <MemberSignature Language="C++ WINRT" Value="bool System.Collections.Generic.ICollection<A>.Remove(A const& item);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:System.Collections.Generic.ICollection`1.Remove(`0)</InterfaceMember> diff --git a/mdoc/Test/en.expected/Mono.DocTest/DocAttribute.xml b/mdoc/Test/en.expected/Mono.DocTest/DocAttribute.xml index e86f9763..1ea7131d 100644 --- a/mdoc/Test/en.expected/Mono.DocTest/DocAttribute.xml +++ b/mdoc/Test/en.expected/Mono.DocTest/DocAttribute.xml @@ -35,7 +35,7 @@ <MemberSignature Language="JavaScript" Value="function DocAttribute(docs)" Usage="var docAttribute = new DocAttribute(docs);" /> <MemberSignature Language="C++ CLI" Value="public:
 DocAttribute(System::String ^ docs);" /> <MemberSignature Language="C++ CX" Value="public:
 DocAttribute(Platform::String ^ docs);" /> - <MemberSignature Language="C++ WINRT" Value=" DocAttribute(winrt::hstring const & docs);" /> + <MemberSignature Language="C++ WINRT" Value=" DocAttribute(winrt::hstring const& docs);" /> <MemberType>Constructor</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected/Mono.DocTest/DocValueType.xml b/mdoc/Test/en.expected/Mono.DocTest/DocValueType.xml index 7bbb671b..212c8444 100644 --- a/mdoc/Test/en.expected/Mono.DocTest/DocValueType.xml +++ b/mdoc/Test/en.expected/Mono.DocTest/DocValueType.xml @@ -34,7 +34,7 @@ <MemberSignature Language="JavaScript" Value="function m(i)" Usage="docValueType.m(i)" /> <MemberSignature Language="C++ CLI" Value="public:
 void M(int i);" /> <MemberSignature Language="C++ CX" Value="public:
 void M(int i);" /> - <MemberSignature Language="C++ WINRT" Value="void M(int i);" /> + <MemberSignature Language="C++ WINRT" Value="void M(int const& i);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected/Mono.DocTest/UseLists.xml b/mdoc/Test/en.expected/Mono.DocTest/UseLists.xml index bdad0604..d2646adc 100644 --- a/mdoc/Test/en.expected/Mono.DocTest/UseLists.xml +++ b/mdoc/Test/en.expected/Mono.DocTest/UseLists.xml @@ -179,7 +179,7 @@ <MemberSignature Language="VB.NET" Value="Public Sub UseHelper(Of T, U, V) (helper As MyList(Of T).Helper(Of U, V))" /> <MemberSignature Language="F#" Value="member this.UseHelper : Mono.DocTest.Generic.MyList<'T>.Helper<'U, 'V> -> unit" Usage="useLists.UseHelper helper" /> <MemberSignature Language="C++ CLI" Value="public:
generic <typename T, typename U, typename V>
 void UseHelper(Mono::DocTest::Generic::MyList<T>::Helper<U, V> ^ helper);" /> - <MemberSignature Language="C++ WINRT" Value="template <typename T, typename U, typename V>
 void UseHelper(Mono::DocTest::Generic::MyList<T>::Helper<U, V> const & helper);" /> + <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> diff --git a/mdoc/Test/en.expected/Mono.DocTest/Widget+NestedClass.xml b/mdoc/Test/en.expected/Mono.DocTest/Widget+NestedClass.xml index 5fc561bf..a3c8e1ce 100644 --- a/mdoc/Test/en.expected/Mono.DocTest/Widget+NestedClass.xml +++ b/mdoc/Test/en.expected/Mono.DocTest/Widget+NestedClass.xml @@ -43,7 +43,7 @@ <MemberSignature Language="F#" Value="member this.M : int -> unit" Usage="nestedClass.M i" /> <MemberSignature Language="C++ CLI" Value="public:
 void M(int i);" /> <MemberSignature Language="C++ CX" Value="public:
 void M(int i);" /> - <MemberSignature Language="C++ WINRT" Value="void M(int i);" /> + <MemberSignature Language="C++ WINRT" Value="void M(int const& i);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected/Mono.DocTest/Widget+NestedClass`1.xml b/mdoc/Test/en.expected/Mono.DocTest/Widget+NestedClass`1.xml index f14b1639..580dccd7 100644 --- a/mdoc/Test/en.expected/Mono.DocTest/Widget+NestedClass`1.xml +++ b/mdoc/Test/en.expected/Mono.DocTest/Widget+NestedClass`1.xml @@ -47,7 +47,7 @@ <MemberSignature Language="F#" Value="member this.M : int -> unit" Usage="nestedClass.M i" /> <MemberSignature Language="C++ CLI" Value="public:
 void M(int i);" /> <MemberSignature Language="C++ CX" Value="public:
 void M(int i);" /> - <MemberSignature Language="C++ WINRT" Value="void M(int i);" /> + <MemberSignature Language="C++ WINRT" Value="void M(int const& i);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected/Mono.DocTest/Widget.xml b/mdoc/Test/en.expected/Mono.DocTest/Widget.xml index 3d88d65c..4a2d0cc6 100644 --- a/mdoc/Test/en.expected/Mono.DocTest/Widget.xml +++ b/mdoc/Test/en.expected/Mono.DocTest/Widget.xml @@ -72,7 +72,7 @@ <MemberSignature Language="JavaScript" Value="function Widget(s)" Usage="var widget = new Widget(s);" /> <MemberSignature Language="C++ CLI" Value="public:
 Widget(System::String ^ s);" /> <MemberSignature Language="C++ CX" Value="public:
 Widget(Platform::String ^ s);" /> - <MemberSignature Language="C++ WINRT" Value=" Widget(winrt::hstring const & s);" /> + <MemberSignature Language="C++ WINRT" Value=" Widget(winrt::hstring const& s);" /> <MemberType>Constructor</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -95,7 +95,7 @@ <MemberSignature Language="JavaScript" Usage="function onAnEvent(eventArgs) { /* Your code */ }
widget.addEventListener("anevent", onAnEvent);
widget.removeEventListener("anevent", onAnEvent);
- or -
widget.onanevent = onAnEvent;" /> <MemberSignature Language="C++ CLI" Value="public:
 event Mono::DocTest::Widget::Del ^ AnEvent;" /> <MemberSignature Language="C++ CX" Value="public:
 event Mono::DocTest::Widget::Del ^ AnEvent;" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token AnEvent(Mono::DocTest::Widget::Del const& handler) const;

// Revoke with event_token
void AnEvent(event_token const* cookie) const;

// Revoke with event_revoker
AnEvent_revoker AnEvent(auto_revoke_t, Mono::DocTest::Widget::Del const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token AnEvent(Mono::DocTest::Widget::Del const& handler) const;

// Revoke with event_token
void AnEvent(event_token const* cookie) const;

// Revoke with event_revoker
Widget::AnEvent_revoker AnEvent(auto_revoke_t, Mono::DocTest::Widget::Del const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -133,7 +133,7 @@ <MemberSignature Language="F#" Value="member this.AnotherEvent : Mono.DocTest.Widget.Del " Usage="member this.AnotherEvent : Mono.DocTest.Widget.Del " /> <MemberSignature Language="C++ CLI" Value="protected:
 event Mono::DocTest::Widget::Del ^ AnotherEvent;" /> <MemberSignature Language="C++ CX" Value="protected:
 event Mono::DocTest::Widget::Del ^ AnotherEvent;" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token AnotherEvent(Mono::DocTest::Widget::Del const& handler) const;

// Revoke with event_token
void AnotherEvent(event_token const* cookie) const;

// Revoke with event_revoker
AnotherEvent_revoker AnotherEvent(auto_revoke_t, Mono::DocTest::Widget::Del const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token AnotherEvent(Mono::DocTest::Widget::Del const& handler) const;

// Revoke with event_token
void AnotherEvent(event_token const* cookie) const;

// Revoke with event_revoker
Widget::AnotherEvent_revoker AnotherEvent(auto_revoke_t, Mono::DocTest::Widget::Del const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -153,7 +153,7 @@ <MemberSignature Language="VB.NET" Value="Public array1 As Long() " /> <MemberSignature Language="F#" Value="val mutable array1 : int64[]" Usage="Mono.DocTest.Widget.array1" /> <MemberSignature Language="C++ CLI" Value="public: cli::array <long> ^ array1;" /> - <MemberSignature Language="C++ WINRT" Value="std::Array <long> array1;" /> + <MemberSignature Language="C++ WINRT" Value="winrt::array_view <long> array1;" /> <MemberType>Field</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -173,7 +173,7 @@ <MemberSignature Language="VB.NET" Value="Public array2 As Widget(,) " /> <MemberSignature Language="F#" Value="val mutable array2 : Mono.DocTest.Widget[,]" Usage="Mono.DocTest.Widget.array2" /> <MemberSignature Language="C++ CLI" Value="public: cli::array <Mono::DocTest::Widget ^, 2> ^ array2;" /> - <MemberSignature Language="C++ WINRT" Value="std::Array <Mono::DocTest::Widget const &, 2> array2;" /> + <MemberSignature Language="C++ WINRT" Value="winrt::array_view <Mono::DocTest::Widget const&, 2> array2;" /> <MemberType>Field</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -193,7 +193,7 @@ <MemberSignature Language="VB.NET" Value="Public Shared ReadOnly classCtorError As String() " /> <MemberSignature Language="F#" Value=" staticval mutable classCtorError : string[]" Usage="Mono.DocTest.Widget.classCtorError" /> <MemberSignature Language="C++ CLI" Value="public: static initonly cli::array <System::String ^> ^ classCtorError;" /> - <MemberSignature Language="C++ WINRT" Value="static initonly std::Array <winrt::hstring const &> classCtorError;" /> + <MemberSignature Language="C++ WINRT" Value="static initonly winrt::array_view <winrt::hstring const&> classCtorError;" /> <MemberType>Field</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -213,7 +213,7 @@ <MemberSignature Language="VB.NET" Value="Public Sub Default (Optional a As Integer = 1, Optional b As Integer = 2)" /> <MemberSignature Language="F#" Value="member this.Default : int * int -> unit" Usage="widget.Default (a, b)" /> <MemberSignature Language="JavaScript" Value="function default(a, b)" Usage="widget.default(a, b)" /> - <MemberSignature Language="C++ WINRT" Value="void Default(int a = 1, int b = 2);" /> + <MemberSignature Language="C++ WINRT" Value="void Default(int const& a = 1, int const& b = 2);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -239,7 +239,7 @@ <MemberSignature Language="VB.NET" Value="Public Sub Default (Optional a As String = "a", Optional b As Char = '\0')" /> <MemberSignature Language="F#" Value="member this.Default : string * char -> unit" Usage="widget.Default (a, b)" /> <MemberSignature Language="JavaScript" Value="function default(a, b)" Usage="widget.default(a, b)" /> - <MemberSignature Language="C++ WINRT" Value="void Default(winrt::hstring const & a = "a", char b = '\0');" /> + <MemberSignature Language="C++ WINRT" Value="void Default(winrt::hstring const& a = "a", char const& b = '\0');" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -288,7 +288,7 @@ <MemberSignature Language="JavaScript" Value="function dynamic0(a, b)" Usage="var object = widget.dynamic0(a, b)" /> <MemberSignature Language="C++ CLI" Value="public:
 System::Object ^ Dynamic0(System::Object ^ a, System::Object ^ b);" /> <MemberSignature Language="C++ CX" Value="public:
 Platform::Object ^ Dynamic0(Platform::Object ^ a, Platform::Object ^ b);" /> - <MemberSignature Language="C++ WINRT" Value="winrt::Windows::Foundation::IInspectable Dynamic0(winrt::Windows::Foundation::IInspectable const & a, winrt::Windows::Foundation::IInspectable const & b);" /> + <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> @@ -391,7 +391,7 @@ <MemberSignature Language="F#" Value="member this.DynamicE1 : Func<obj> " Usage="member this.DynamicE1 : System.Func<System.obj> " /> <MemberSignature Language="JavaScript" Usage="function onDynamicE1(eventArgs) { /* Your code */ }
widget.addEventListener("dynamice1", onDynamicE1);
widget.removeEventListener("dynamice1", onDynamicE1);
- or -
widget.ondynamice1 = onDynamicE1;" /> <MemberSignature Language="C++ CLI" Value="public:
 event Func<System::Object ^> ^ DynamicE1;" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token DynamicE1(Func<winrt::Windows::Foundation::IInspectable> const& handler) const;

// Revoke with event_token
void DynamicE1(event_token const* cookie) const;

// Revoke with event_revoker
DynamicE1_revoker DynamicE1(auto_revoke_t, Func<winrt::Windows::Foundation::IInspectable> const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token DynamicE1(Func<winrt::Windows::Foundation::IInspectable> const& handler) const;

// Revoke with event_token
void DynamicE1(event_token const* cookie) const;

// Revoke with event_revoker
Widget::DynamicE1_revoker DynamicE1(auto_revoke_t, Func<winrt::Windows::Foundation::IInspectable> const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -419,7 +419,7 @@ <MemberSignature Language="F#" Value="member this.DynamicE2 : Func<obj> " Usage="member this.DynamicE2 : System.Func<System.obj> " /> <MemberSignature Language="JavaScript" Usage="function onDynamicE2(eventArgs) { /* Your code */ }
widget.addEventListener("dynamice2", onDynamicE2);
widget.removeEventListener("dynamice2", onDynamicE2);
- or -
widget.ondynamice2 = onDynamicE2;" /> <MemberSignature Language="C++ CLI" Value="public:
 event Func<System::Object ^> ^ DynamicE2;" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token DynamicE2(Func<winrt::Windows::Foundation::IInspectable> const& handler) const;

// Revoke with event_token
void DynamicE2(event_token const* cookie) const;

// Revoke with event_revoker
DynamicE2_revoker DynamicE2(auto_revoke_t, Func<winrt::Windows::Foundation::IInspectable> const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token DynamicE2(Func<winrt::Windows::Foundation::IInspectable> const& handler) const;

// Revoke with event_token
void DynamicE2(event_token const* cookie) const;

// Revoke with event_revoker
Widget::DynamicE2_revoker DynamicE2(auto_revoke_t, Func<winrt::Windows::Foundation::IInspectable> const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -459,7 +459,7 @@ <MemberSignature Language="F#" Value="member this.DynamicP : Func<Func<string, obj, string>, Func<obj, Func<obj>, string>>" Usage="Mono.DocTest.Widget.DynamicP" /> <MemberSignature Language="JavaScript" Usage="var func = widget.dynamicP;" /> <MemberSignature Language="C++ CLI" Value="public:
 property Func<Func<System::String ^, System::Object ^, System::String ^> ^, Func<System::Object ^, Func<System::Object ^> ^, System::String ^> ^> ^ DynamicP { Func<Func<System::String ^, System::Object ^, System::String ^> ^, Func<System::Object ^, Func<System::Object ^> ^, System::String ^> ^> ^ get(); };" /> - <MemberSignature Language="C++ WINRT" Value="Func<Func<winrt::hstring, winrt::Windows::Foundation::IInspectable const &, winrt::hstring const &>, Func<winrt::Windows::Foundation::IInspectable, Func<winrt::Windows::Foundation::IInspectable> const &, winrt::hstring const &> const &> DynamicP();" /> + <MemberSignature Language="C++ WINRT" Value="Func<Func<winrt::hstring, winrt::Windows::Foundation::IInspectable const&, winrt::hstring const&>, Func<winrt::Windows::Foundation::IInspectable, Func<winrt::Windows::Foundation::IInspectable> const&, winrt::hstring const&> const&> DynamicP();" /> <MemberType>Property</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -596,7 +596,8 @@ <MemberSignature Language="VB.NET" Value="Public Sub M1 (c As Char, ByRef f As Single, ByRef v As DocValueType)" /> <MemberSignature Language="F#" Value="member this.M1 : char * single * DocValueType -> unit" Usage="widget.M1 (c, f, v)" /> <MemberSignature Language="C++ CLI" Value="public:
 void M1(char c, [Runtime::InteropServices::Out] float % f, Mono::DocTest::DocValueType % v);" /> - <MemberSignature Language="C++ WINRT" Value="void M1(char c, [Runtime::InteropServices::Out] float & f, Mono::DocTest::DocValueType & v);" /> + <MemberSignature Language="C++ CX" Value="public:
 void M1(char16 c, [Runtime::InteropServices::Out] float & f, Mono::DocTest::DocValueType & v);" /> + <MemberSignature Language="C++ WINRT" Value="void M1(char const& c, [Runtime::InteropServices::Out] float & f, Mono::DocTest::DocValueType & v);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -663,7 +664,7 @@ <MemberSignature Language="F#" Value="member this.M2 : int16[] * int[,] * int64[][] -> unit" Usage="widget.M2 (x1, x2, x3)" /> <MemberSignature Language="JavaScript" Value="function m2(x1, x2, x3)" Usage="widget.m2(x1, x2, x3)" /> <MemberSignature Language="C++ CLI" Value="public:
 void M2(cli::array <short> ^ x1, cli::array <int, 2> ^ x2, cli::array <cli::array <long> ^> ^ x3);" /> - <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);" /> + <MemberSignature Language="C++ WINRT" Value="void M2(winrt::array_view <short> const& x1, winrt::array_view <int, 2> const& x2, winrt::array_view <winrt::array_view <long> const&> const& x3);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -692,7 +693,7 @@ <MemberSignature Language="F#" Value="member this.M3 : int64[][] * Mono.DocTest.Widget[,,][] -> unit" Usage="widget.M3 (x3, x4)" /> <MemberSignature Language="JavaScript" Value="function m3(x3, x4)" Usage="widget.m3(x3, x4)" /> <MemberSignature Language="C++ CLI" Value="protected:
 void M3(cli::array <cli::array <long> ^> ^ x3, cli::array <cli::array <Mono::DocTest::Widget ^, 3> ^> ^ x4);" /> - <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);" /> + <MemberSignature Language="C++ WINRT" Value="void M3(winrt::array_view <winrt::array_view <long> const&> const& x3, winrt::array_view <winrt::array_view <Mono::DocTest::Widget const&, 3> const&> const& x4);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -744,7 +745,7 @@ <MemberSignature Language="F#" Value="member this.M5 : nativeptr<unit> * nativeptr<double>[,][] -> unit" Usage="widget.M5 (pv, pd)" /> <MemberSignature Language="JavaScript" Value="function m5(pv, pd)" Usage="widget.m5(pv, pd)" /> <MemberSignature Language="C++ CLI" Value="protected:
 void M5(void* pv, cli::array <cli::array <double*, 2> ^> ^ pd);" /> - <MemberSignature Language="C++ WINRT" Value="void M5(void* pv, std::Array <std::Array <double*, 2> const &> const & pd);" /> + <MemberSignature Language="C++ WINRT" Value="void M5(void* pv, winrt::array_view <winrt::array_view <double*, 2> const&> const& pd);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -805,7 +806,7 @@ <MemberSignature Language="F#" Value="member this.M7 : Mono.DocTest.Widget.NestedClass.Double.Triple.Quadruple -> unit" Usage="widget.M7 a" /> <MemberSignature Language="JavaScript" Value="function m7(a)" Usage="widget.m7(a)" /> <MemberSignature Language="C++ CLI" Value="public:
 void M7(Mono::DocTest::Widget::NestedClass::Double::Triple::Quadruple ^ a);" /> - <MemberSignature Language="C++ WINRT" Value="void M7(Mono::DocTest::Widget::NestedClass::Double::Triple::Quadruple const & a);" /> + <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> @@ -870,7 +871,7 @@ <MemberSignature Language="VB.NET" Value="Public Shared Operator + (x1 As Widget, x2 As Widget) As Widget" /> <MemberSignature Language="F#" Value="static member ( + ) : Mono.DocTest.Widget * Mono.DocTest.Widget -> Mono.DocTest.Widget" Usage="x1 + x2" /> <MemberSignature Language="C++ CLI" Value="public:
 static Mono::DocTest::Widget ^ operator +(Mono::DocTest::Widget ^ x1, Mono::DocTest::Widget ^ x2);" /> - <MemberSignature Language="C++ WINRT" Value=" static Mono::DocTest::Widget operator +(Mono::DocTest::Widget const & x1, Mono::DocTest::Widget const & x2);" /> + <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> @@ -917,7 +918,7 @@ <MemberSignature Language="VB.NET" Value="Public Shared Narrowing Operator CType (x As Widget) As Integer" /> <MemberSignature Language="F#" Value="static member op_Explicit : Mono.DocTest.Widget -> int" Usage="Mono.DocTest.Widget.op_Explicit x" /> <MemberSignature Language="C++ CLI" Value="public:
 static explicit operator int(Mono::DocTest::Widget ^ x);" /> - <MemberSignature Language="C++ WINRT" Value=" static explicit operator int(Mono::DocTest::Widget const & x);" /> + <MemberSignature Language="C++ WINRT" Value=" static explicit operator int(Mono::DocTest::Widget const& x);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -942,7 +943,7 @@ <MemberSignature Language="VB.NET" Value="Public Shared Widening Operator CType (x As Widget) As Long" /> <MemberSignature Language="F#" Value="static member op_Implicit : Mono.DocTest.Widget -> int64" Usage="Mono.DocTest.Widget.op_Implicit x" /> <MemberSignature Language="C++ CLI" Value="public:
 static operator long(Mono::DocTest::Widget ^ x);" /> - <MemberSignature Language="C++ WINRT" Value=" static operator long(Mono::DocTest::Widget const & x);" /> + <MemberSignature Language="C++ WINRT" Value=" static operator long(Mono::DocTest::Widget const& x);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> @@ -967,7 +968,7 @@ <MemberSignature Language="VB.NET" Value="Public Shared Operator + (x As Widget) As Widget" /> <MemberSignature Language="F#" Value="static member ( ~+ ) : Mono.DocTest.Widget -> Mono.DocTest.Widget" Usage="+ x" /> <MemberSignature Language="C++ CLI" Value="public:
 static Mono::DocTest::Widget ^ operator +(Mono::DocTest::Widget ^ x);" /> - <MemberSignature Language="C++ WINRT" Value=" static Mono::DocTest::Widget operator +(Mono::DocTest::Widget const & x);" /> + <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> diff --git a/mdoc/Test/en.expected/System/Array.xml b/mdoc/Test/en.expected/System/Array.xml index e88435ab..29dbb360 100644 --- a/mdoc/Test/en.expected/System/Array.xml +++ b/mdoc/Test/en.expected/System/Array.xml @@ -105,8 +105,8 @@ <MemberSignature Language="VB.NET" Value="Public Shared Sub Resize(Of T) (ByRef array As T(), newSize As Integer)" /> <MemberSignature Language="F#" Value="static member Resize : T[] * int -> unit" Usage="System.Array.Resize (array, newSize)" /> <MemberSignature Language="C++ CLI" Value="public:
generic <typename T>
 static void Resize(cli::array <T> ^ % array, int newSize);" /> - <MemberSignature Language="C++ CX" Value="public:
generic <typename T>
 static void Resize(Platform::Array <T> ^ & array, int newSize);" /> - <MemberSignature Language="C++ WINRT" Value="template <typename T>
 static void Resize(std::Array <T> const & & array, int newSize);" /> + <MemberSignature Language="C++ CX" Value="public:
generic <typename T>
 static void Resize(Platform::Array <T> ^ & array, int newSize);" /> + <MemberSignature Language="C++ WINRT" Value="template <typename T>
 static void Resize(winrt::array_view <T> const& & array, int const& newSize);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>0.0.0.0</AssemblyVersion> diff --git a/mdoc/Test/en.expected/index.xml b/mdoc/Test/en.expected/index.xml index 3937a118..e6e60ac8 100644 --- a/mdoc/Test/en.expected/index.xml +++ b/mdoc/Test/en.expected/index.xml @@ -35,6 +35,7 @@ <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="CompoundConstraints`1" DisplayName="CompoundConstraints<NGparam>" Kind="Class" /> <Type Name="Extensions" Kind="Class" /> <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class3.xml b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class3.xml index f94f0111..6bee5520 100644 --- a/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class3.xml +++ b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace2/Class3.xml @@ -36,7 +36,7 @@ <Member MemberName="ArrayOfTypeProperty"> <MemberSignature Language="C#" Value="public Type[] ArrayOfTypeProperty { get; set; }" /> <MemberSignature Language="ILAsm" Value=".property instance class System.Type[] ArrayOfTypeProperty" /> - <MemberSignature Language="C++ WINRT" Value="std::Array <Type const &> ArrayOfTypeProperty();

void ArrayOfTypeProperty(std::Array <Type const &> __set_formal);" /> + <MemberSignature Language="C++ WINRT" Value="winrt::array_view <Type const&> ArrayOfTypeProperty();

void ArrayOfTypeProperty(winrt::array_view <Type const&> __set_formal);" /> <MemberType>Property</MemberType> <AssemblyInfo> <AssemblyVersion>255.255.255.255</AssemblyVersion> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/Namespace222/App.xml b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace222/App.xml index 6a45fd01..00fcc78e 100644 --- a/mdoc/Test/ex.expected-cppwinrtuwp/Namespace222/App.xml +++ b/mdoc/Test/ex.expected-cppwinrtuwp/Namespace222/App.xml @@ -60,7 +60,7 @@ <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);" /> + <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> @@ -83,7 +83,7 @@ <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(winrt::hstring const & entryPoint);" /> + <MemberSignature Language="C++ WINRT" Value="void Load(winrt::hstring const& entryPoint);" /> <MemberType>Method</MemberType> <Implements> <InterfaceMember>M:Windows.ApplicationModel.Core.IFrameworkView.Load(System.String)</InterfaceMember> @@ -160,7 +160,7 @@ <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);" /> + <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> @@ -183,7 +183,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="void SetWindow1(winrt::Windows::UI::Core::CoreWindow const& window);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>255.255.255.255</AssemblyVersion> diff --git a/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/Class1.xml b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/Class1.xml index 1b6b3723..63823405 100644 --- a/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/Class1.xml +++ b/mdoc/Test/ex.expected-cppwinrtuwp/UwpTestWinRtComponentCpp/Class1.xml @@ -56,7 +56,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="winrt::Windows::Foundation::Collections::IVector<double> ComputeResult(double const& input);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>255.255.255.255</AssemblyVersion> @@ -77,7 +77,7 @@ <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<winrt::Windows::Foundation::Collections::IVector<int>, double> GetPrimesOrdered(int first, int last);" /> + <MemberSignature Language="C++ WINRT" Value="winrt::Windows::Foundation::IAsyncOperationWithProgress<winrt::Windows::Foundation::Collections::IVector<int>, double> GetPrimesOrdered(int const& first, int const& last);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>255.255.255.255</AssemblyVersion> @@ -100,7 +100,7 @@ <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);" /> + <MemberSignature Language="C++ WINRT" Value="winrt::Windows::Foundation::IAsyncActionWithProgress<double> GetPrimesUnordered(int const& first, int const& last);" /> <MemberType>Method</MemberType> <AssemblyInfo> <AssemblyVersion>255.255.255.255</AssemblyVersion> @@ -123,7 +123,7 @@ <Member MemberName="primeFoundEvent"> <MemberSignature Language="C#" Value="public event UwpTestWinRtComponentCpp.PrimeFoundHandler primeFoundEvent;" /> <MemberSignature Language="ILAsm" Value=".event class UwpTestWinRtComponentCpp.PrimeFoundHandler primeFoundEvent" /> - <MemberSignature Language="C++ WINRT" Value="// Register
event_token primeFoundEvent(UwpTestWinRtComponentCpp::PrimeFoundHandler const& handler) const;

// Revoke with event_token
void primeFoundEvent(event_token const* cookie) const;

// Revoke with event_revoker
primeFoundEvent_revoker primeFoundEvent(auto_revoke_t, UwpTestWinRtComponentCpp::PrimeFoundHandler const& handler) const;" /> + <MemberSignature Language="C++ WINRT" Value="// Register
event_token primeFoundEvent(UwpTestWinRtComponentCpp::PrimeFoundHandler const& handler) const;

// Revoke with event_token
void primeFoundEvent(event_token const* cookie) const;

// Revoke with event_revoker
Class1::primeFoundEvent_revoker primeFoundEvent(auto_revoke_t, UwpTestWinRtComponentCpp::PrimeFoundHandler const& handler) const;" /> <MemberType>Event</MemberType> <AssemblyInfo> <AssemblyVersion>255.255.255.255</AssemblyVersion> diff --git a/mdoc/Test/expected_statistics.txt b/mdoc/Test/expected_statistics.txt index ae5b2bd0..404d8a31 100644 --- a/mdoc/Test/expected_statistics.txt +++ b/mdoc/Test/expected_statistics.txt @@ -1,16 +1,16 @@ Framework: one -------- -Types Added: 32 +Types Added: 33 Types Removed: 0 -Types Total: 32 +Types Total: 33 Namespaces Added: 4 Namespaces Removed: 0 Namespaces Total: 4 -Members Added: 127 +Members Added: 129 Members Removed: 0 -Members Total: 127 +Members Total: 129 Framework: two -------- diff --git a/mdoc/Test/html.expected-with-array-extension/Mono.DocTest.Generic/CompoundConstraints`1.html b/mdoc/Test/html.expected-with-array-extension/Mono.DocTest.Generic/CompoundConstraints`1.html new file mode 100644 index 00000000..460e9f31 --- /dev/null +++ b/mdoc/Test/html.expected-with-array-extension/Mono.DocTest.Generic/CompoundConstraints`1.html @@ -0,0 +1,349 @@ +<html> + <head> + <title>Mono.DocTest.Generic.CompoundConstraints<NGparam></title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <style> + a { text-decoration: none } + + div.SideBar { + padding-left: 1em; + padding-right: 1em; + right: 0; + float: right; + border: thin solid black; + background-color: #f2f2f2; + } + + .CollectionTitle { font-weight: bold } + .PageTitle { font-size: 150%; font-weight: bold } + + .Summary { } + .Signature { } + .Remarks { } + .Members { } + .Copyright { } + + .Section { font-size: 125%; font-weight: bold } + p.Summary { + margin-left: 1em; + } + .SectionBox { margin-left: 2em } + .NamespaceName { font-size: 105%; font-weight: bold } + .NamespaceSumary { } + .MemberName { font-size: 115%; font-weight: bold; margin-top: 1em } + .Subsection { font-size: 105%; font-weight: bold } + .SubsectionBox { margin-left: 2em; margin-bottom: 1em } + + .CodeExampleTable { background-color: #f5f5dd; border: thin solid black; padding: .25em; } + + .TypesListing { + border-collapse: collapse; + } + + td { + vertical-align: top; + } + th { + text-align: left; + } + + .TypesListing td { + margin: 0px; + padding: .25em; + border: solid gray 1px; + } + + .TypesListing th { + margin: 0px; + padding: .25em; + background-color: #f2f2f2; + border: solid gray 1px; + } + + div.Footer { + border-top: 1px solid gray; + margin-top: 1.5em; + padding-top: 0.6em; + text-align: center; + color: gray; + } + + span.NotEntered /* Documentation for this section has not yet been entered */ { + font-style: italic; + color: red; + } + + div.Header { + background: #B0C4DE; + border: double; + border-color: white; + border-width: 7px; + padding: 0.5em; + } + + div.Header * { + font-size: smaller; + } + + div.Note { + } + + i.ParamRef { + } + + i.subtitle { + } + + ul.TypeMembersIndex { + text-align: left; + background: #F8F8F8; + } + + ul.TypeMembersIndex li { + display: inline; + margin: 0.5em; + } + + table.HeaderTable { + } + + table.SignatureTable { + } + + table.Documentation, table.Enumeration, table.TypeDocumentation { + border-collapse: collapse; + width: 100%; + } + + table.Documentation tr th, table.TypeMembers tr th, table.Enumeration tr th, table.TypeDocumentation tr th { + background: whitesmoke; + padding: 0.8em; + border: 1px solid gray; + text-align: left; + vertical-align: bottom; + } + + table.Documentation tr td, table.TypeMembers tr td, table.Enumeration tr td, table.TypeDocumentation tr td { + padding: 0.5em; + border: 1px solid gray; + text-align: left; + vertical-align: top; + } + + table.TypeMembers { + border: 1px solid #C0C0C0; + width: 100%; + } + + table.TypeMembers tr td { + background: #F8F8F8; + border: white; + } + + table.Documentation { + } + + table.TypeMembers { + } + + div.CodeExample { + width: 100%; + border: 1px solid #DDDDDD; + background-color: #F8F8F8; + } + + div.CodeExample p { + margin: 0.5em; + border-bottom: 1px solid #DDDDDD; + } + + div.CodeExample div { + margin: 0.5em; + } + + h4 { + margin-bottom: 0; + } + + div.Signature { + border: 1px solid #C0C0C0; + background: #F2F2F2; + padding: 1em; + } + </style> + <script type="text/JavaScript"> + function toggle_display (block) { + var w = document.getElementById (block); + var t = document.getElementById (block + ":toggle"); + if (w.style.display == "none") { + w.style.display = "block"; + t.innerHTML = "⊟"; + } else { + w.style.display = "none"; + t.innerHTML = "⊞"; + } + } + </script> + </head> + <body> + <div class="CollectionTitle"> + <a href="../index.html">DocTest</a> : <a href="index.html">Mono.DocTest.Generic Namespace</a></div> + <div class="SideBar"> + <p> + <a href="#T:Mono.DocTest.Generic.CompoundConstraints`1">Overview</a> + </p> + <p> + <a href="#T:Mono.DocTest.Generic.CompoundConstraints`1:Signature">Signature</a> + </p> + <p> + <a href="#T:Mono.DocTest.Generic.CompoundConstraints`1:Docs">Remarks</a> + </p> + <p> + <a href="#Members">Members</a> + </p> + <p> + <a href="#T:Mono.DocTest.Generic.CompoundConstraints`1:Members">Member Details</a> + </p> + </div> + <h1 class="PageTitle" id="T:Mono.DocTest.Generic.CompoundConstraints`1">CompoundConstraints<NGparam> Generic Class</h1> + <p class="Summary" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Summary"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </p> + <div> + <h2>Syntax</h2> + <div class="Signature" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Signature">public class <b>CompoundConstraints<NGparam></b><br /> where NGparam : classnew()</div> + </div> + <div class="Remarks" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Docs"> + <h4 class="Subsection">Type Parameters</h4> + <blockquote class="SubsectionBox" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Docs:Type Parameters"> + <dl> + <dt> + <i>NGparam</i> + </dt> + <dd> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </dd> + </dl> + </blockquote> + <h2 class="Section">Remarks</h2> + <div class="SectionBox" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Docs:Remarks"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </div> + <h2 class="Section">Requirements</h2> + <div class="SectionBox" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Docs:Version Information"> + <b>Namespace: </b>Mono.DocTest.Generic<br /><b>Assembly: </b>DocTest (in DocTest.dll)<br /><b>Assembly Versions: </b>0.0.0.0</div> + <h2 class="Section" id="Members">Members</h2> + <div class="SectionBox" id="_Members"> + <p> + See Also: Inherited members from + <a href="http://www.go-mono.com/docs/monodoc.ashx?link=T:System.Object">object</a>. + </p> + <h2 class="Section">Public Constructors</h2> + <div class="SectionBox" id="Public Constructors"> + <div class="SubsectionBox"> + <table class="TypeMembers"> + <tr valign="top"> + <td> + <div> + </div> + </td> + <td> + <div> + <b> + <a href="#C:Mono.DocTest.Generic.CompoundConstraints`1()">CompoundConstraints</a> + </b>()</div> + </td> + <td> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </td> + </tr> + </table> + </div> + </div> + <h2 class="Section">Public Methods</h2> + <div class="SectionBox" id="Public Methods"> + <div class="SubsectionBox"> + <table class="TypeMembers"> + <tr valign="top"> + <td> + <div>static </div> + </td> + <td colspan="2"> + <b> + <a href="#M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1()">CompoundConstraintClass<param></a> + </b>()<blockquote><span class="NotEntered">Documentation for this section has not yet been entered.</span></blockquote></td> + </tr> + </table> + </div> + </div> + <h2 class="Section">Extension Methods</h2> + <div class="SectionBox" id="Extension Methods"> + <div class="SubsectionBox"> + <table class="TypeMembers"> + <tr valign="top"> + <td> + <div>static </div> + </td> + <td colspan="2"> + <b> + <a href="../Mono.DocTest.Generic/Extensions.html#M:Mono.DocTest.Generic.Extensions.ToEnumerable``1(``0)">ToEnumerable<T></a> + </b>(<i>this</i> <i title="To be added.">T</i>)<nobr> : <a href="http://www.go-mono.com/docs/monodoc.ashx?link=T:System.Collections.Generic.IEnumerable`1">IEnumerable<T></a></nobr><blockquote><span class="NotEntered">Documentation for this section has not yet been entered.</span></blockquote></td> + </tr> + </table> + </div> + </div> + </div> + </div> + <div class="Members" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Members"> + <h2 class="Section" id="MemberDetails">Member Details</h2> + <div class="SectionBox" id="_MemberDetails"> + <h3 id="C:Mono.DocTest.Generic.CompoundConstraints`1()">CompoundConstraints Constructor</h3> + <blockquote id="C:Mono.DocTest.Generic.CompoundConstraints`1():member"> + <div class="msummary"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </div> + <h2>Syntax</h2> + <div class="Signature">public <b>CompoundConstraints</b> ()</div> + <h2 class="Section">Remarks</h2> + <div class="SectionBox" id="C:Mono.DocTest.Generic.CompoundConstraints`1():Remarks"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </div> + <h2 class="Section">Requirements</h2> + <div class="SectionBox" id="C:Mono.DocTest.Generic.CompoundConstraints`1():Version Information"> + <b>Namespace: </b>Mono.DocTest.Generic<br /><b>Assembly: </b>DocTest (in DocTest.dll)<br /><b>Assembly Versions: </b>0.0.0.0</div> + <hr size="1" /> + </blockquote> + <h3 id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1()">CompoundConstraintClass<param> Generic Method</h3> + <blockquote id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1():member"> + <div class="msummary"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </div> + <h2>Syntax</h2> + <div class="Signature">public static <a href="http://www.go-mono.com/docs/monodoc.ashx?link=T:System.Void">void</a> <b>CompoundConstraintClass<param></b> ()<br /> where param : classnew()</div> + <h4 class="Subsection">Type Parameters</h4> + <blockquote class="SubsectionBox" id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1():Type Parameters"> + <dl> + <dt> + <i>param</i> + </dt> + <dd> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </dd> + </dl> + </blockquote> + <h2 class="Section">Remarks</h2> + <div class="SectionBox" id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1():Remarks"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </div> + <h2 class="Section">Requirements</h2> + <div class="SectionBox" id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1():Version Information"> + <b>Namespace: </b>Mono.DocTest.Generic<br /><b>Assembly: </b>DocTest (in DocTest.dll)<br /><b>Assembly Versions: </b>0.0.0.0</div> + <hr size="1" /> + </blockquote> + </div> + </div> + <hr size="1" /> + <div class="Copyright"> + </div> + </body> +</html>
\ No newline at end of file diff --git a/mdoc/Test/html.expected-with-array-extension/Mono.DocTest.Generic/index.html b/mdoc/Test/html.expected-with-array-extension/Mono.DocTest.Generic/index.html index d82db15a..c88f29b3 100644 --- a/mdoc/Test/html.expected-with-array-extension/Mono.DocTest.Generic/index.html +++ b/mdoc/Test/html.expected-with-array-extension/Mono.DocTest.Generic/index.html @@ -206,6 +206,14 @@ </tr> <tr valign="top"> <td> + <a href="./CompoundConstraints`1.html">CompoundConstraints<NGparam></a> + </td> + <td> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </td> + </tr> + <tr valign="top"> + <td> <a href="./Extensions.html">Extensions</a> </td> <td> diff --git a/mdoc/Test/html.expected-with-array-extension/index.html b/mdoc/Test/html.expected-with-array-extension/index.html index fb1fea18..6622efe8 100644 --- a/mdoc/Test/html.expected-with-array-extension/index.html +++ b/mdoc/Test/html.expected-with-array-extension/index.html @@ -360,6 +360,14 @@ </tr> <tr valign="top"> <td> + <a href="Mono.DocTest.Generic/CompoundConstraints`1.html">CompoundConstraints<NGparam></a> + </td> + <td> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </td> + </tr> + <tr valign="top"> + <td> <a href="Mono.DocTest.Generic/Extensions.html">Extensions</a> </td> <td> diff --git a/mdoc/Test/html.expected/Mono.DocTest.Generic/CompoundConstraints`1.html b/mdoc/Test/html.expected/Mono.DocTest.Generic/CompoundConstraints`1.html new file mode 100644 index 00000000..773741fc --- /dev/null +++ b/mdoc/Test/html.expected/Mono.DocTest.Generic/CompoundConstraints`1.html @@ -0,0 +1,346 @@ +<html> + <head> + <title>Mono.DocTest.Generic.CompoundConstraints<NGparam></title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <style> + a { text-decoration: none } + + div.SideBar { + padding-left: 1em; + padding-right: 1em; + right: 0; + float: right; + border: thin solid black; + background-color: #f2f2f2; + } + + .CollectionTitle { font-weight: bold } + .PageTitle { font-size: 150%; font-weight: bold } + + .Summary { } + .Signature { } + .Remarks { } + .Members { } + .Copyright { } + + .Section { font-size: 125%; font-weight: bold } + p.Summary { + margin-left: 1em; + } + .SectionBox { margin-left: 2em } + .NamespaceName { font-size: 105%; font-weight: bold } + .NamespaceSumary { } + .MemberName { font-size: 115%; font-weight: bold; margin-top: 1em } + .Subsection { font-size: 105%; font-weight: bold } + .SubsectionBox { margin-left: 2em; margin-bottom: 1em } + + .CodeExampleTable { background-color: #f5f5dd; border: thin solid black; padding: .25em; } + + .TypesListing { + border-collapse: collapse; + } + + td { + vertical-align: top; + } + th { + text-align: left; + } + + .TypesListing td { + margin: 0px; + padding: .25em; + border: solid gray 1px; + } + + .TypesListing th { + margin: 0px; + padding: .25em; + background-color: #f2f2f2; + border: solid gray 1px; + } + + div.Footer { + border-top: 1px solid gray; + margin-top: 1.5em; + padding-top: 0.6em; + text-align: center; + color: gray; + } + + span.NotEntered /* Documentation for this section has not yet been entered */ { + font-style: italic; + color: red; + } + + div.Header { + background: #B0C4DE; + border: double; + border-color: white; + border-width: 7px; + padding: 0.5em; + } + + div.Header * { + font-size: smaller; + } + + div.Note { + } + + i.ParamRef { + } + + i.subtitle { + } + + ul.TypeMembersIndex { + text-align: left; + background: #F8F8F8; + } + + ul.TypeMembersIndex li { + display: inline; + margin: 0.5em; + } + + table.HeaderTable { + } + + table.SignatureTable { + } + + table.Documentation, table.Enumeration, table.TypeDocumentation { + border-collapse: collapse; + width: 100%; + } + + table.Documentation tr th, table.TypeMembers tr th, table.Enumeration tr th, table.TypeDocumentation tr th { + background: whitesmoke; + padding: 0.8em; + border: 1px solid gray; + text-align: left; + vertical-align: bottom; + } + + table.Documentation tr td, table.TypeMembers tr td, table.Enumeration tr td, table.TypeDocumentation tr td { + padding: 0.5em; + border: 1px solid gray; + text-align: left; + vertical-align: top; + } + + table.TypeMembers { + border: 1px solid #C0C0C0; + width: 100%; + } + + table.TypeMembers tr td { + background: #F8F8F8; + border: white; + } + + table.Documentation { + } + + table.TypeMembers { + } + + div.CodeExample { + width: 100%; + border: 1px solid #DDDDDD; + background-color: #F8F8F8; + } + + div.CodeExample p { + margin: 0.5em; + border-bottom: 1px solid #DDDDDD; + } + + div.CodeExample div { + margin: 0.5em; + } + + h4 { + margin-bottom: 0; + } + + div.Signature { + border: 1px solid #C0C0C0; + background: #F2F2F2; + padding: 1em; + } + </style> + <script type="text/JavaScript"> + function toggle_display (block) { + var w = document.getElementById (block); + var t = document.getElementById (block + ":toggle"); + if (w.style.display == "none") { + w.style.display = "block"; + t.innerHTML = "⊟"; + } else { + w.style.display = "none"; + t.innerHTML = "⊞"; + } + } + </script> + </head> + <body> + <div class="CollectionTitle"> + <a href="../index.html">DocTest</a> : <a href="index.html">Mono.DocTest.Generic Namespace</a></div> + <div class="SideBar"> + <p> + <a href="#T:Mono.DocTest.Generic.CompoundConstraints`1">Overview</a> + </p> + <p> + <a href="#T:Mono.DocTest.Generic.CompoundConstraints`1:Signature">Signature</a> + </p> + <p> + <a href="#T:Mono.DocTest.Generic.CompoundConstraints`1:Docs">Remarks</a> + </p> + <p> + <a href="#Members">Members</a> + </p> + <p> + <a href="#T:Mono.DocTest.Generic.CompoundConstraints`1:Members">Member Details</a> + </p> + </div> + <h1 class="PageTitle" id="T:Mono.DocTest.Generic.CompoundConstraints`1">CompoundConstraints<NGparam> Generic Class</h1> + <p class="Summary" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Summary"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </p> + <div> + <h2>Syntax</h2> + <div class="Signature" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Signature">public class <b>CompoundConstraints<NGparam></b><br /> where NGparam : classnew()</div> + </div> + <div class="Remarks" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Docs"> + <h4 class="Subsection">Type Parameters</h4> + <blockquote class="SubsectionBox" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Docs:Type Parameters"> + <dl> + <dt> + <i>NGparam</i> + </dt> + <dd>Non-generic param</dd> + </dl> + </blockquote> + <h2 class="Section">Remarks</h2> + <div class="SectionBox" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Docs:Remarks"> + <tt>T:Mono.DocTest.CompoundConstraints</tt>.</div> + <h2 class="Section">Requirements</h2> + <div class="SectionBox" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Docs:Version Information"> + <b>Namespace: </b>Mono.DocTest.Generic<br /><b>Assembly: </b>DocTest (in DocTest.dll)<br /><b>Assembly Versions: </b>0.0.0.0</div> + <h2 class="Section" id="Members">Members</h2> + <div class="SectionBox" id="_Members"> + <p> + See Also: Inherited members from + <a href="http://www.go-mono.com/docs/monodoc.ashx?link=T:System.Object">object</a>. + </p> + <h2 class="Section">Public Constructors</h2> + <div class="SectionBox" id="Public Constructors"> + <div class="SubsectionBox"> + <table class="TypeMembers"> + <tr valign="top"> + <td> + <div> + </div> + </td> + <td> + <div> + <b> + <a href="#C:Mono.DocTest.Generic.CompoundConstraints`1()">CompoundConstraints</a> + </b>()</div> + </td> + <td> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </td> + </tr> + </table> + </div> + </div> + <h2 class="Section">Public Methods</h2> + <div class="SectionBox" id="Public Methods"> + <div class="SubsectionBox"> + <table class="TypeMembers"> + <tr valign="top"> + <td> + <div>static </div> + </td> + <td colspan="2"> + <b> + <a href="#M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1()">CompoundConstraintClass<param></a> + </b>()<blockquote><span class="NotEntered">Documentation for this section has not yet been entered.</span></blockquote></td> + </tr> + </table> + </div> + </div> + <h2 class="Section">Extension Methods</h2> + <div class="SectionBox" id="Extension Methods"> + <div class="SubsectionBox"> + <table class="TypeMembers"> + <tr valign="top"> + <td> + <div>static </div> + </td> + <td colspan="2"> + <b> + <a href="../Mono.DocTest.Generic/Extensions.html#M:Mono.DocTest.Generic.Extensions.ToEnumerable``1(``0)">ToEnumerable<T></a> + </b>(<i>this</i> <i title="To be added.">T</i>)<nobr> : <a href="http://www.go-mono.com/docs/monodoc.ashx?link=T:System.Collections.Generic.IEnumerable`1">IEnumerable<T></a></nobr><blockquote><tt>System.Object</tt> extension method</blockquote></td> + </tr> + </table> + </div> + </div> + </div> + </div> + <div class="Members" id="T:Mono.DocTest.Generic.CompoundConstraints`1:Members"> + <h2 class="Section" id="MemberDetails">Member Details</h2> + <div class="SectionBox" id="_MemberDetails"> + <h3 id="C:Mono.DocTest.Generic.CompoundConstraints`1()">CompoundConstraints Constructor</h3> + <blockquote id="C:Mono.DocTest.Generic.CompoundConstraints`1():member"> + <div class="msummary"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </div> + <h2>Syntax</h2> + <div class="Signature">public <b>CompoundConstraints</b> ()</div> + <h2 class="Section">Remarks</h2> + <div class="SectionBox" id="C:Mono.DocTest.Generic.CompoundConstraints`1():Remarks"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </div> + <h2 class="Section">Requirements</h2> + <div class="SectionBox" id="C:Mono.DocTest.Generic.CompoundConstraints`1():Version Information"> + <b>Namespace: </b>Mono.DocTest.Generic<br /><b>Assembly: </b>DocTest (in DocTest.dll)<br /><b>Assembly Versions: </b>0.0.0.0</div> + <hr size="1" /> + </blockquote> + <h3 id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1()">CompoundConstraintClass<param> Generic Method</h3> + <blockquote id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1():member"> + <div class="msummary"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </div> + <h2>Syntax</h2> + <div class="Signature">public static <a href="http://www.go-mono.com/docs/monodoc.ashx?link=T:System.Void">void</a> <b>CompoundConstraintClass<param></b> ()<br /> where param : classnew()</div> + <h4 class="Subsection">Type Parameters</h4> + <blockquote class="SubsectionBox" id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1():Type Parameters"> + <dl> + <dt> + <i>param</i> + </dt> + <dd> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </dd> + </dl> + </blockquote> + <h2 class="Section">Remarks</h2> + <div class="SectionBox" id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1():Remarks"> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </div> + <h2 class="Section">Requirements</h2> + <div class="SectionBox" id="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1():Version Information"> + <b>Namespace: </b>Mono.DocTest.Generic<br /><b>Assembly: </b>DocTest (in DocTest.dll)<br /><b>Assembly Versions: </b>0.0.0.0</div> + <hr size="1" /> + </blockquote> + </div> + </div> + <hr size="1" /> + <div class="Copyright"> + </div> + </body> +</html>
\ No newline at end of file diff --git a/mdoc/Test/html.expected/Mono.DocTest.Generic/index.html b/mdoc/Test/html.expected/Mono.DocTest.Generic/index.html index ccd15a27..261c32c9 100644 --- a/mdoc/Test/html.expected/Mono.DocTest.Generic/index.html +++ b/mdoc/Test/html.expected/Mono.DocTest.Generic/index.html @@ -206,6 +206,14 @@ </tr> <tr valign="top"> <td> + <a href="./CompoundConstraints`1.html">CompoundConstraints<NGparam></a> + </td> + <td> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </td> + </tr> + <tr valign="top"> + <td> <a href="./Extensions.html">Extensions</a> </td> <td>extension methods!</td> diff --git a/mdoc/Test/html.expected/index.html b/mdoc/Test/html.expected/index.html index d521e764..487289b4 100644 --- a/mdoc/Test/html.expected/index.html +++ b/mdoc/Test/html.expected/index.html @@ -352,6 +352,14 @@ </tr> <tr valign="top"> <td> + <a href="Mono.DocTest.Generic/CompoundConstraints`1.html">CompoundConstraints<NGparam></a> + </td> + <td> + <span class="NotEntered">Documentation for this section has not yet been entered.</span> + </td> + </tr> + <tr valign="top"> + <td> <a href="Mono.DocTest.Generic/Extensions.html">Extensions</a> </td> <td>extension methods!</td> diff --git a/mdoc/Test/msxdoc-expected.importslashdoc.xml b/mdoc/Test/msxdoc-expected.importslashdoc.xml index 42f2bb1a..2b1faff4 100644 --- a/mdoc/Test/msxdoc-expected.importslashdoc.xml +++ b/mdoc/Test/msxdoc-expected.importslashdoc.xml @@ -591,6 +591,21 @@ class Example { <summary>To be added.</summary> <remarks>To be added.</remarks> </member> + <member name="T:Mono.DocTest.Generic.CompoundConstraints`1"> + <typeparam name="NGparam">Non-generic param</typeparam> + <summary>To be added.</summary> + <remarks> + <c>T:Mono.DocTest.CompoundConstraints</c>.</remarks> + </member> + <member name="C:Mono.DocTest.Generic.CompoundConstraints`1"> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </member> + <member name="M:Mono.DocTest.Generic.CompoundConstraints`1.CompoundConstraintClass``1"> + <typeparam name="param">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </member> <member name="T:Mono.DocTest.Generic.Extensions"> <summary>extension methods!</summary> <remarks> diff --git a/mdoc/Test/test-multiple-mdoc/en.expected.test.multiple.mdoc/Mono.DocTest.Generic/CompoundConstraints`1.xml b/mdoc/Test/test-multiple-mdoc/en.expected.test.multiple.mdoc/Mono.DocTest.Generic/CompoundConstraints`1.xml new file mode 100644 index 00000000..f9ba1b6c --- /dev/null +++ b/mdoc/Test/test-multiple-mdoc/en.expected.test.multiple.mdoc/Mono.DocTest.Generic/CompoundConstraints`1.xml @@ -0,0 +1,66 @@ +<Type Name="CompoundConstraints<NGparam>" FullName="Mono.DocTest.Generic.CompoundConstraints<NGparam>"> + <TypeSignature Language="C#" Value="public class CompoundConstraints<NGparam> where NGparam : class, new()" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit CompoundConstraints`1<class .ctor NGparam> extends System.Object" /> + <AssemblyInfo> + <AssemblyName>DocTest</AssemblyName> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <TypeParameters> + <TypeParameter Name="NGparam"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Base> + <BaseTypeName>System.Object</BaseTypeName> + </Base> + <Interfaces /> + <Docs> + <typeparam name="NGparam">Non-generic param</typeparam> + <summary>To be added.</summary> + <remarks> + <c>T:Mono.DocTest.CompoundConstraints</c>.</remarks> + </Docs> + <Members> + <Member MemberName=".ctor"> + <MemberSignature Language="C#" Value="public CompoundConstraints ();" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /> + <MemberType>Constructor</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Parameters /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + <Member MemberName="CompoundConstraintClass<param>"> + <MemberSignature Language="C#" Value="public static void CompoundConstraintClass<param> () where param : class, new();" /> + <MemberSignature Language="ILAsm" Value=".method public static hidebysig void CompoundConstraintClass<class .ctor param>() cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>0.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Void</ReturnType> + </ReturnValue> + <TypeParameters> + <TypeParameter Name="param"> + <Constraints> + <ParameterAttribute>DefaultConstructorConstraint</ParameterAttribute> + <ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute> + </Constraints> + </TypeParameter> + </TypeParameters> + <Parameters /> + <Docs> + <typeparam name="param">To be added.</typeparam> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/mdoc/Test/test-multiple-mdoc/en.expected.test.multiple.mdoc/index.xml b/mdoc/Test/test-multiple-mdoc/en.expected.test.multiple.mdoc/index.xml index 82bf818b..da66cdec 100644 --- a/mdoc/Test/test-multiple-mdoc/en.expected.test.multiple.mdoc/index.xml +++ b/mdoc/Test/test-multiple-mdoc/en.expected.test.multiple.mdoc/index.xml @@ -35,6 +35,7 @@ <Type Name="Widget+NestedClass+Double+Triple+Quadruple" Kind="Class" /> </Namespace> <Namespace Name="Mono.DocTest.Generic"> + <Type Name="CompoundConstraints`1" DisplayName="CompoundConstraints<NGparam>" Kind="Class" /> <Type Name="Extensions" Kind="Class" /> <Type Name="Func`2" DisplayName="Func<TArg,TRet>" Kind="Delegate" /> <Type Name="GenericBase`1" DisplayName="GenericBase<U>" Kind="Class" /> diff --git a/mdoc/mdoc.Test/AttributeValueFormatterTest.cs b/mdoc/mdoc.Test/AttributeValueFormatterTest.cs new file mode 100644 index 00000000..78d93872 --- /dev/null +++ b/mdoc/mdoc.Test/AttributeValueFormatterTest.cs @@ -0,0 +1,168 @@ +using mdoc.Test.SampleClasses; +using Mono.Cecil; +using Mono.Documentation.Updater; +using Mono.Documentation.Updater.Formatters; +using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace mdoc.Test +{ + [TestFixture()] + public class AttributeValueFormatterTest : BasicTests + { + [TestCase("PropertyTypeType", "typeof(Mono.Cecil.TypeReference)")] + [TestCase("PropertyTypeTypeWithNull", "null")] + [TestCase("PropertyTypeTypeWithNestedType", "typeof(mdoc.Test.SampleClasses.SomeNestedTypes+NestedClass)")] + [TestCase("PropertyTypeTypeWithUnboundCollection", "typeof(System.Collections.Generic.ICollection<>)")] + [TestCase("PropertyTypeTypeWithCollectionOfInt", "typeof(System.Collections.Generic.ICollection<System.Int32>)")] + [TestCase("PropertyTypeTypeWithUnboundDictionary", "typeof(System.Collections.Generic.IDictionary<,>)")] + [TestCase("PropertyTypeTypeWithDictionaryOfInt", "typeof(System.Collections.Generic.IDictionary<System.Int32,System.Int32>)")] + [TestCase("PropertyTypeTypeWithUnboundCustomGenericType", "typeof(mdoc.Test.SampleClasses.SomeGenericClass<>)")] + [TestCase("PropertyTypeTypeWithCustomGenericTypeOfInt", "typeof(mdoc.Test.SampleClasses.SomeGenericClass<System.Int32>)")] + [TestCase("PropertyTypeTypeWithUnboundNestedGenericType", "typeof(mdoc.Test.SampleClasses.SomeNestedTypes+NestedGenericType<>)")] + [TestCase("PropertyTypeTypeWithNestedGenericTypeOfInt", "typeof(mdoc.Test.SampleClasses.SomeNestedTypes+NestedGenericType<System.Int32>)")] + [TestCase("PropertyTypeTypeWithUnboundInnerNestedGenericType", "typeof(mdoc.Test.SampleClasses.SomeNestedTypes+NestedGenericType<>+InnerNestedGenericType<>)")] + [TestCase("PropertyTypeTypeWithInnerNestedGenericTypeOfInt", "typeof(mdoc.Test.SampleClasses.SomeNestedTypes+NestedGenericType<System.String>+InnerNestedGenericType<System.Int32>)")] + [TestCase("PropertyBoolType", "true")] + [TestCase("PropertySByteType", SByte.MinValue)] + [TestCase("PropertyByteType", Byte.MaxValue)] + [TestCase("PropertyInt16Type", Int16.MinValue)] + [TestCase("PropertyUInt16Type", UInt16.MaxValue)] + [TestCase("PropertyInt32Type", Int32.MinValue)] + [TestCase("PropertyUInt32Type", UInt32.MaxValue)] + [TestCase("PropertyInt64Type", Int64.MinValue)] + [TestCase("PropertyUInt64Type", UInt64.MaxValue)] + [TestCase("PropertySingleType", Single.MinValue)] + [TestCase("PropertyDoubleType", Double.MinValue)] + [TestCase("PropertyCharType", "'C'")] + [TestCase("PropertyStringType", "\"This is a string argument.\"")] + [TestCase("PropertyStringTypeWithEmptyString", "\"\"")] + [TestCase("PropertyStringTypeWithNull", "null")] + [TestCase("PropertyEnumType", "System.ConsoleColor.Red")] + [TestCase("PropertyEnumTypeWithUnknownValue", "(System.ConsoleColor) 2147483647")] + [TestCase("PropertyNestedEnumType", "mdoc.Test.SampleClasses.SomeNestedTypes+NestedEnum.Read")] + [TestCase("PropertyNestedEnumTypeWithUnknownValue", "(mdoc.Test.SampleClasses.SomeNestedTypes+NestedEnum) 2147483647")] + [TestCase("PropertyFlagsEnumType", "System.AttributeTargets.Class | System.AttributeTargets.Enum")] + [TestCase("PropertyFlagsEnumTypeWithAllValue", "System.AttributeTargets.All")] + [TestCase("PropertyFlagsEnumTypeWithUndefineValueZero", "(System.AttributeTargets) 0")] + [TestCase("PropertyDuplicateFlagsEnumTypeWithCombinationValue", "mdoc.Test.SampleClasses.SomeFlagsEnum.Open | mdoc.Test.SampleClasses.SomeFlagsEnum.ReadWrite")] + [TestCase("PropertyNestedFlagsEnumType", "mdoc.Test.SampleClasses.SomeNestedTypes+NestedFlagsEnum.Class | mdoc.Test.SampleClasses.SomeNestedTypes+NestedFlagsEnum.Enum")] + [TestCase("PropertyNestedFlagsEnumTypeWithUndefineValueZero", "(mdoc.Test.SampleClasses.SomeNestedTypes+NestedFlagsEnum) 0")] + [TestCase("PropertyFlagsEnumTypeWithNotApplyAttributeValidTypeAndCombinationValue", "mdoc.Test.SampleClasses.NotApplyAttributeValidFlagsEnum.Class | mdoc.Test.SampleClasses.NotApplyAttributeValidFlagsEnum.Enum")] + [TestCase("PropertyFlagsEnumTypeWithNotApplyAttributeValidTypeAndSingleValue", "mdoc.Test.SampleClasses.NotApplyAttributeValidFlagsEnum.Class")] + [TestCase("PropertyFlagsEnumTypeWithNotApplyAttributeInvalidTypeAndUnknownCombinationValue", "(mdoc.Test.SampleClasses.NotApplyAttributeInvalidFlagsEnum) 5")] + [TestCase("PropertyFlagsEnumTypeWithApplePlatformType", "Platform.Mac_10_8 | Platform.Mac_Arch64")] + [TestCase("PropertyFlagsEnumTypeWithApplePlatformAndNoneValue", "ObjCRuntime.Platform.None")] + [TestCase("PropertyArrayOfIntType", "new System.Int32[] { 0, 0, 7 }")] + [TestCase("PropertyArrayOfIntTypeWithNull", "null")] + [TestCase("PropertyObjectWithNull", "null")] + [TestCase("PropertyObjectWithTypeType", "typeof(Mono.Cecil.TypeReference)")] + [TestCase("PropertyObjectWithNestedTypeType", "typeof(mdoc.Test.SampleClasses.SomeNestedTypes+NestedClass)")] + [TestCase("PropertyObjectWithUnboundCollectionType", "typeof(System.Collections.Generic.ICollection<>)")] + [TestCase("PropertyObjectWithCollectionTypeOfInt", "typeof(System.Collections.Generic.ICollection<System.Int32>)")] + [TestCase("PropertyObjectWithUnboundDictionaryType", "typeof(System.Collections.Generic.IDictionary<,>)")] + [TestCase("PropertyObjectWithDictionaryTypeOfInt", "typeof(System.Collections.Generic.IDictionary<System.Int32,System.Int32>)")] + [TestCase("PropertyObjectWithUnboundCustomGenericType", "typeof(mdoc.Test.SampleClasses.SomeGenericClass<>)")] + [TestCase("PropertyObjectWithCustomGenericTypeOfInt", "typeof(mdoc.Test.SampleClasses.SomeGenericClass<System.Int32>)")] + [TestCase("PropertyObjectWithUnboundNestedGenericType", "typeof(mdoc.Test.SampleClasses.SomeNestedTypes+NestedGenericType<>)")] + [TestCase("PropertyObjectWithNestedGenericTypeOfInt", "typeof(mdoc.Test.SampleClasses.SomeNestedTypes+NestedGenericType<System.Int32>)")] + [TestCase("PropertyObjectWithUnboundInnerNestedGenericType", "typeof(mdoc.Test.SampleClasses.SomeNestedTypes+NestedGenericType<>+InnerNestedGenericType<>)")] + [TestCase("PropertyObjectWithInnerNestedGenericTypeOfInt", "typeof(mdoc.Test.SampleClasses.SomeNestedTypes+NestedGenericType<System.String>+InnerNestedGenericType<System.Int32>)")] + [TestCase("PropertyObjectWithBoolType", "true")] + [TestCase("PropertyObjectWithSByteType", SByte.MinValue)] + [TestCase("PropertyObjectWithByteType", Byte.MaxValue)] + [TestCase("PropertyObjectWithInt16Type", Int16.MinValue)] + [TestCase("PropertyObjectWithUInt16Type", UInt16.MaxValue)] + [TestCase("PropertyObjectWithInt32Type", Int32.MinValue)] + [TestCase("PropertyObjectWithUInt32Type", UInt32.MaxValue)] + [TestCase("PropertyObjectWithInt64Type", Int64.MinValue)] + [TestCase("PropertyObjectWithUInt64Type", UInt64.MaxValue)] + [TestCase("PropertyObjectWithSingleType", Single.MinValue)] + [TestCase("PropertyObjectWithDoubleType", Double.MinValue)] + [TestCase("PropertyObjectWithCharType", "'C'")] + [TestCase("PropertyObjectWithStringType", "\"This is a string argument.\"")] + [TestCase("PropertyObjectWithStringTypeAndEmptyString", "\"\"")] + [TestCase("PropertyObjectWithEnumType", "System.ConsoleColor.Red")] + [TestCase("PropertyObjectWithEnumTypeAndUnknownValue", "(System.ConsoleColor) 2147483647")] + [TestCase("PropertyObjectWithNestedEnumType", "mdoc.Test.SampleClasses.SomeNestedTypes+NestedEnum.Read")] + [TestCase("PropertyObjectWithNestedEnumTypeAndUnknownValue", "(mdoc.Test.SampleClasses.SomeNestedTypes+NestedEnum) 2147483647")] + [TestCase("PropertyObjectWithFlagsEnumType", "System.AttributeTargets.Class | System.AttributeTargets.Enum")] + [TestCase("PropertyObjectWithFlagsEnumTypeAndAllValue", "System.AttributeTargets.All")] + [TestCase("PropertyObjectWithFlagsEnumTypeAndUndefineValueZero", "(System.AttributeTargets) 0")] + [TestCase("PropertyObjectWithDuplicateFlagsEnumTypeAndCombinationValue", "mdoc.Test.SampleClasses.SomeFlagsEnum.Open | mdoc.Test.SampleClasses.SomeFlagsEnum.ReadWrite")] + [TestCase("PropertyObjectWithNestedFlagsEnumType", "mdoc.Test.SampleClasses.SomeNestedTypes+NestedFlagsEnum.Class | mdoc.Test.SampleClasses.SomeNestedTypes+NestedFlagsEnum.Enum")] + [TestCase("PropertyObjectWithNestedFlagsEnumTypeAndUndefineValueZero", "(mdoc.Test.SampleClasses.SomeNestedTypes+NestedFlagsEnum) 0")] + [TestCase("PropertyObjectWithNotApplyAttributeValidFlagsEnumTypeAndCombinationValue", "mdoc.Test.SampleClasses.NotApplyAttributeValidFlagsEnum.Class | mdoc.Test.SampleClasses.NotApplyAttributeValidFlagsEnum.Enum")] + [TestCase("PropertyObjectWithNotApplyAttributeValidFlagsEnumTypeAndSingleValue", "mdoc.Test.SampleClasses.NotApplyAttributeValidFlagsEnum.Class")] + [TestCase("PropertyObjectWithNotApplyAttributeInvalidFlagsEnumTypeAndUnknownCombinationValue", "(mdoc.Test.SampleClasses.NotApplyAttributeInvalidFlagsEnum) 5")] + [TestCase("PropertyObjectWithApplePlatformFlagsEnumType", "Platform.Mac_10_8 | Platform.Mac_Arch64")] + [TestCase("PropertyObjectWithApplePlatformFlagsEnumTypeAndNoneValue", "ObjCRuntime.Platform.None")] + [TestCase("PropertyObjectWithArrayOfIntType", "new System.Int32[] { 0, 0, 7 }")] + public void TestFormatValueWithDifferentTypes(string methodName, object argumentValue) + { + TestAttributeValueFormatter(typeof(SomeAttribute), methodName, argumentValue); + } + + [TestCase("GetEnumerator", "typeof(mdoc.Test.SampleClasses.SomeIteratorStateMachine<,>+<GetEnumerator>d__0)", typeof(SomeIteratorStateMachine<,>))] + [TestCase("GetEnumerator", "typeof(mdoc.Test.SampleClasses.SomeIteratorStateMachine<,>+SomeNestedIteratorStateMachine<,>+<GetEnumerator>d__0)", typeof(SomeIteratorStateMachine<,>.SomeNestedIteratorStateMachine<,>))] + [TestCase("WithParameterType", "typeof(mdoc.Test.SampleClasses.SomeIteratorStateMachine<,>+<WithParameterType>d__2<,>)", typeof(SomeIteratorStateMachine<,>))] + [TestCase("WithParameterType", "typeof(mdoc.Test.SampleClasses.SomeIteratorStateMachine<,>+SomeNestedIteratorStateMachine<,>+<WithParameterType>d__2<,>)", typeof(SomeIteratorStateMachine<,>.SomeNestedIteratorStateMachine<,>))] + public void TestFormartValueWithIteratorStateMachineAttribute(string methodName, object argumentValue, Type type) + { + TestAttributeValueFormatter(type, methodName, argumentValue); + } + + private void TestAttributeValueFormatter(Type type, string memberName, object expectedValue) + { + var (argumentType, argumentValue) = GetAttributeArguments(type, memberName); + + var attributeFormatter = new AttributeValueFormatter(); + var formatValue = attributeFormatter.Format(argumentType, argumentValue); + + Assert.AreEqual(expectedValue.ToString(), formatValue); + } + + private (TypeReference argumentType, object argumentValue) GetAttributeArguments(Type type, string memberName) + { + var methodDefinition = GetMethod(type, memberName); + var methodAttribute = AttributeFormatter.GetCustomAttributes(methodDefinition).First(); + CustomAttribute customAttribute = methodAttribute.Item1; + + var customAttributeList = new List<(TypeReference, object)>(); + for (int i = 0; i < customAttribute.ConstructorArguments.Count; ++i) + { + customAttributeList.Add((customAttribute.ConstructorArguments[i].Type, customAttribute.ConstructorArguments[i].Value)); + } + + foreach (var item in GetAttributeArgumentsFromFieldsAndProperties(customAttribute)) + { + customAttributeList.Add((item.argumentType, item.argumentValue)); + } + + return customAttributeList.First(); + } + + private IEnumerable<(string argumentName, TypeReference argumentType, object argumentValue)> GetAttributeArgumentsFromFieldsAndProperties(CustomAttribute customAttribute) + { + return (from namedArg in customAttribute.Fields + select (namedArg.Name, namedArg.Argument.Type, namedArg.Argument.Value)) + .Concat(from namedArg in customAttribute.Properties + select (namedArg.Name, namedArg.Argument.Type, namedArg.Argument.Value)) + .OrderBy(v => v.Name); + } + + protected override TypeDefinition GetType(Type type) + { + var moduleName = type.Module.FullyQualifiedName; + return GetType(moduleName, ConvertNestedTypeFullName(type.FullName)); + } + + private string ConvertNestedTypeFullName(string fullName) + { + // Simply of implementation for help nested class convert the full name from .NET style to mono.cecil style. + return fullName.Replace("+", "/"); + } + } +} diff --git a/mdoc/mdoc.Test/CppCxFormatterMembersTests.cs b/mdoc/mdoc.Test/CppCxFormatterMembersTests.cs index 14500934..c41cb572 100644 --- a/mdoc/mdoc.Test/CppCxFormatterMembersTests.cs +++ b/mdoc/mdoc.Test/CppCxFormatterMembersTests.cs @@ -1,4 +1,5 @@ -using Mono.Documentation.Updater.Formatters.CppFormatters; +using mdoc.Test.SampleClasses; +using Mono.Documentation.Updater.Formatters.CppFormatters; using Mono_DocTest; using NUnit.Framework; using Cpp = Mono_DocTest_Generic; @@ -11,6 +12,7 @@ namespace mdoc.Test { protected override CppCxFullMemberFormatter formatter { get; } = new CppCxFullMemberFormatter(); + private string _cppWinRtTestLibName = "../../../../external/Windows/Windows.Foundation.UniversalApiContract.winmd"; private const string CppCxTestLibName = "../../../../external/Test/UwpTestWinRtComponentCpp.winmd"; private const string CSharpTestLib = "../../../../external/Test/CSharpExample.dll"; @@ -44,6 +46,24 @@ namespace mdoc.Test [Test] [Category("Method")] + public void Method_CreateNewGuid() + { + var member = GetMethod(typeof(GuidClass), m => m.Name == "CreateNewGuid"); + var sig = formatter.GetDeclaration(member); + Assert.AreEqual("public:\n static Platform::Guid CreateNewGuid();", sig); + } + + [Test] + [Category("Method")] + public void Method_ObjectIndentical() + { + var member = GetMethod(typeof(GuidClass), m => m.Name == "ObjectIndentical"); + var sig = formatter.GetDeclaration(member); + Assert.AreEqual("public:\n bool ObjectIndentical(Platform::Guid objGuid1, Platform::Guid objGuid2);", sig); + } + + [Test] + [Category("Method")] public void Method_WinRtTypeInterfaceImplementation() { TestMethodSignature(CppCxTestLibName, "Namespace222.App", "SetWindow", @@ -75,6 +95,13 @@ namespace mdoc.Test [Test] [Category("Field")] + public void Field_WinRtNumericsPlaneNormal() + { + TestFieldSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Plane", "Normal", "public: float3 Normal;"); + } + + [Test] + [Category("Field")] public void Field_ValueType_String() { TestFieldSignature(CppCxTestLibName, "Namespace2.Class4", "StringField", "public: Platform::String ^ StringField;"); @@ -90,6 +117,21 @@ namespace mdoc.Test [Test] [Category("Properties")] + public void Property_WinRtNumericsActualSize() + { + TestPropertySignature(_cppWinRtTestLibName, "Windows.UI.Xaml.UIElement", "ActualSize", "public:\n property float2 ActualSize { float2 get(); };"); + } + + [Test] + [Category("Properties")] + public void Property_WinRtNumericsTransformMatrix() + { + TestPropertySignature(_cppWinRtTestLibName, "Windows.UI.Xaml.UIElement", "TransformMatrix", + "public:\n property float4x4 TransformMatrix { float4x4 get(); void set(float4x4 value); };"); + } + + [Test] + [Category("Properties")] public void Property_FundamentalType() { TestPropertySignature(CppCxTestLibName, "Namespace2.Class3", "LongProperty", @"public: diff --git a/mdoc/mdoc.Test/CppCxFormatterTypesTests.cs b/mdoc/mdoc.Test/CppCxFormatterTypesTests.cs index d8bf6909..2bbd8390 100644 --- a/mdoc/mdoc.Test/CppCxFormatterTypesTests.cs +++ b/mdoc/mdoc.Test/CppCxFormatterTypesTests.cs @@ -13,6 +13,7 @@ namespace mdoc.Test { protected override CppCxMemberFormatter formatter => new CppCxMemberFormatter(); + private string _cppWinRtTestLibName = "../../../../external/Windows/Windows.Foundation.UniversalApiContract.winmd"; private string _cppCxTestLibName = "../../../../external/Test/UwpTestWinRtComponentCpp.winmd"; protected override TypeDefinition GetType(Type type) @@ -85,9 +86,74 @@ namespace mdoc.Test TestTypeSignature(_cppCxTestLibName, "Namespace2.Class4", "public value class Class4"); } + [Test] + [Category("Type")] + public void TypeSignature_NumericsMatrix3x2() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Matrix3x2", "public value class float3x2"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsMatrix4x4() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Matrix4x4", "public value class float4x4"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsQuaternion() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Quaternion", "public value class quaternion"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsVector2() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Vector2", "public value class float2"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsVector3() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Vector3", "public value class float3"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsVector4() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Vector4", "public value class float4"); + } + + [Test] + [Category("Type")] + public void TypeSignature_ValueGuid() + { + TestTypeSignature(typeof(Guid), + "public value class Platform::Guid : IComparable, IComparable<Platform::Guid>, IEquatable<Platform::Guid>, IFormattable"); + } + + [Test] + [Category("Type")] + public void TypeSignature_ValueSingle() + { + TestTypeSignature(typeof(Single), + "public value class float : IComparable, IComparable<float>, IConvertible, IEquatable<float>, IFormattable"); + } + #region NoSupport [Test] + [Category("Type")] + public void TypeSignature_NumericsPlane() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Plane", null); + } + + [Test] [Category("NoSupport")] public void NoSupport_GenericDelegate() { diff --git a/mdoc/mdoc.Test/CppFullFormatterTests.cs b/mdoc/mdoc.Test/CppFullFormatterTests.cs index 9cd417d8..1ad39d43 100644 --- a/mdoc/mdoc.Test/CppFullFormatterTests.cs +++ b/mdoc/mdoc.Test/CppFullFormatterTests.cs @@ -240,7 +240,6 @@ generic <typename T> typeof(MyList1<,>), @"public: virtual System::Collections::Generic::IEnumerator<A> ^ GetEnumerator() = System::Collections::Generic::IEnumerable<A>::GetEnumerator;", nameof(MyList1<int, int>.GetEnumerator)); - } [Test] @@ -250,7 +249,6 @@ generic <typename T> static Mono_DocTest::Widget ^ operator +(Mono_DocTest::Widget ^ x1, Mono_DocTest::Widget ^ x2);", "op_Addition"); - [Test] [Category("Methods")] [Category("NoSupport")] @@ -266,6 +264,30 @@ generic <typename T> } [Test] + [Category("Type")] + public void TypeSignature_Widget() + { + TestTypeSignature(CSharpTestLib, + "Mono.DocTest.DocValueType", "public value class Mono::DocTest::DocValueType : Mono::DocTest::IProcess"); + } + + [Test] + [Category("Type")] + public void TypeSignature_Single() + { + TestTypeSignature(typeof(Single), + "public value class float : IComparable, IComparable<float>, IConvertible, IEquatable<float>, IFormattable"); + } + + [Test] + [Category("Type")] + public void TypeSignature_Int32() + { + TestTypeSignature(typeof(Int32), + "public value class int : IComparable, IComparable<int>, IConvertible, IEquatable<int>, IFormattable"); + } + + [Test] [Category("Methods")] public void MethodSignature_opExplicit() => TestMethodSignature(typeof(Widget), @"public: diff --git a/mdoc/mdoc.Test/CppWinRtFormatterTests.cs b/mdoc/mdoc.Test/CppWinRtFormatterTests.cs index c17ebec9..65e6a614 100644 --- a/mdoc/mdoc.Test/CppWinRtFormatterTests.cs +++ b/mdoc/mdoc.Test/CppWinRtFormatterTests.cs @@ -13,6 +13,7 @@ namespace mdoc.Test private static readonly CppWinRtMemberFormatter CppWinRtMemberFormatter = new CppWinRtMemberFormatter(); protected override CppWinRtMemberFormatter formatter => CppWinRtMemberFormatter; + private string _cppWinRtTestLibName = "../../../../external/Windows/Windows.Foundation.UniversalApiContract.winmd"; private string _cppCxTestLibName = "../../../../external/Test/UwpTestWinRtComponentCpp.winmd"; private const string CSharpTestLib = "../../../../external/Test/CSharpExample.dll"; @@ -55,6 +56,55 @@ namespace mdoc.Test [Test] [Category("Type")] + public void TypeSignature_NumericsMatrix3x2() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Matrix3x2", "struct float3x2"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsMatrix4x4() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Matrix4x4", "struct float4x4"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsPlane() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Plane", "struct plane"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsQuaternion() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Quaternion", "struct quaternion"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsVector2() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Vector2", "struct float2"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsVector3() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Vector3", "struct float3"); + } + + [Test] + [Category("Type")] + public void TypeSignature_NumericsVector4() + { + TestTypeSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Vector4", "struct float4"); + } + + [Test] + [Category("Type")] public void TypeSignature_GenericInterface() { TestTypeSignature(typeof(IFoo<>), @"template <typename T> @@ -87,6 +137,22 @@ class Widget : Mono_DocTest::IProcess"); } [Test] + [Category("Type")] + public void TypeSignature_ValueGuid() + { + TestTypeSignature(typeof(Guid), + "struct winrt::guid : IComparable, IComparable<winrt::guid>, IEquatable<winrt::guid>, IFormattable"); + } + + [Test] + [Category("Type")] + public void TypeSignature_ValueSingle() + { + TestTypeSignature(typeof(Single), + "struct float : IComparable, IComparable<float>, IConvertible, IEquatable<float>, IFormattable"); + } + + [Test] [Category("NoSupport")] public void NoSupport_Delegate() { diff --git a/mdoc/mdoc.Test/CppWinRtMembersTests.cs b/mdoc/mdoc.Test/CppWinRtMembersTests.cs index 000f7565..3711e8f8 100644 --- a/mdoc/mdoc.Test/CppWinRtMembersTests.cs +++ b/mdoc/mdoc.Test/CppWinRtMembersTests.cs @@ -1,4 +1,5 @@ -using Mono.Documentation.Updater.Formatters.CppFormatters; +using mdoc.Test.SampleClasses; +using Mono.Documentation.Updater.Formatters.CppFormatters; using Mono_DocTest; using NUnit.Framework; using Cpp = Mono_DocTest_Generic; @@ -11,6 +12,7 @@ namespace mdoc.Test private static readonly CppWinRtFullMemberFormatter CppWinRtFullMemberFormatter = new CppWinRtFullMemberFormatter(); protected override CppWinRtFullMemberFormatter formatter => CppWinRtFullMemberFormatter; + private string _cppWinRtTestLibName = "../../../../external/Windows/Windows.Foundation.UniversalApiContract.winmd"; private string CppCxTestLibName = "../../../../external/Test/UwpTestWinRtComponentCpp.winmd"; private const string CSharpTestLib = "../../../../external/Test/CSharpExample.dll"; @@ -19,7 +21,7 @@ namespace mdoc.Test public void Method_ComputeResult() { TestMethodSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "ComputeResult", - @"winrt::Windows::Foundation::Collections::IVector<double> ComputeResult(double input);"); + @"winrt::Windows::Foundation::Collections::IVector<double> ComputeResult(double const& input);"); } [Test] @@ -27,7 +29,7 @@ namespace mdoc.Test public void Method_GetPrimesOrdered() { TestMethodSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "GetPrimesOrdered", - @"winrt::Windows::Foundation::IAsyncOperationWithProgress<winrt::Windows::Foundation::Collections::IVector<int>, double> GetPrimesOrdered(int first, int last);"); + @"winrt::Windows::Foundation::IAsyncOperationWithProgress<winrt::Windows::Foundation::Collections::IVector<int>, double> GetPrimesOrdered(int const& first, int const& last);"); } @@ -36,7 +38,23 @@ namespace mdoc.Test public void Method_GetPrimesUnordered() { TestMethodSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "GetPrimesUnordered", - @"winrt::Windows::Foundation::IAsyncActionWithProgress<double> GetPrimesUnordered(int first, int last);"); + @"winrt::Windows::Foundation::IAsyncActionWithProgress<double> GetPrimesUnordered(int const& first, int const& last);"); + } + + [Test] + public void Method_CreateNewGuid() + { + var member = GetMethod(typeof(GuidClass), m => m.Name == "CreateNewGuid"); + var sig = formatter.GetDeclaration(member); + Assert.AreEqual(@" static winrt::guid CreateNewGuid();", sig); + } + + [Test] + public void Method_ObjectIndentical() + { + var member = GetMethod(typeof(GuidClass), m => m.Name == "ObjectIndentical"); + var sig = formatter.GetDeclaration(member); + Assert.AreEqual(@"bool ObjectIndentical(winrt::guid const& objGuid1, winrt::guid const& objGuid2);", sig); } [Test] @@ -44,7 +62,7 @@ namespace mdoc.Test public void Method_DefaultParameters() { TestMethodSignature(CSharpTestLib, "Mono.DocTest.Widget", "Default", - @"void Default(int a = 1, int b = 2);"); + @"void Default(int const& a = 1, int const& b = 2);"); } [Test] @@ -52,7 +70,7 @@ namespace mdoc.Test public void Method_RefType() { TestMethodSignature(CppCxTestLibName, "Namespace222.App", "SetWindow1", - @"void SetWindow1(winrt::Windows::UI::Core::CoreWindow const & window);"); + @"void SetWindow1(winrt::Windows::UI::Core::CoreWindow const& window);"); } [Test] @@ -60,7 +78,29 @@ namespace mdoc.Test public void Method_WinRtTypeInterfaceImplementation() { TestMethodSignature(CppCxTestLibName, "Namespace222.App", "SetWindow", - @"void SetWindow(winrt::Windows::UI::Core::CoreWindow const & window);"); + @"void SetWindow(winrt::Windows::UI::Core::CoreWindow const& window);"); + } + + [Test] + [Category("Properties")] + public void Property_WinRtNumericsActualSize() + { + TestPropertySignature(_cppWinRtTestLibName, "Windows.UI.Xaml.UIElement", "ActualSize", "float2 ActualSize();"); + } + + [Test] + [Category("Properties")] + public void Property_WinRtNumericsTransformMatrix() + { + TestPropertySignature(_cppWinRtTestLibName, "Windows.UI.Xaml.UIElement", "TransformMatrix", + "float4x4 TransformMatrix();\n\nvoid TransformMatrix(float4x4 value);"); + } + + [Test] + [Category("Fields")] + public void Field_WinRtNumericsPlaneNormal() + { + TestFieldSignature(_cppWinRtTestLibName, "Windows.Foundation.Numerics.Plane", "Normal", "float3 Normal;"); } [Test] @@ -90,7 +130,7 @@ event_token primeFoundEvent(UwpTestWinRtComponentCpp::PrimeFoundHandler const& h void primeFoundEvent(event_token const* cookie) const; // Revoke with event_revoker -primeFoundEvent_revoker primeFoundEvent(auto_revoke_t, UwpTestWinRtComponentCpp::PrimeFoundHandler const& handler) const;"; +Class1::primeFoundEvent_revoker primeFoundEvent(auto_revoke_t, UwpTestWinRtComponentCpp::PrimeFoundHandler const& handler) const;"; TestEventSignature(CppCxTestLibName, "UwpTestWinRtComponentCpp.Class1", "primeFoundEvent", expectedSig); } diff --git a/mdoc/mdoc.Test/FormatterTests.cs b/mdoc/mdoc.Test/FormatterTests.cs index 439d9767..f7b60e4e 100644 --- a/mdoc/mdoc.Test/FormatterTests.cs +++ b/mdoc/mdoc.Test/FormatterTests.cs @@ -226,6 +226,23 @@ namespace mdoc.Test var sig = formatter.GetDeclaration (member); Assert.AreEqual (".method public hidebysig instance void RefAndOut(int32& a, [out] int32& b) cil managed", sig); } + + [Test] + public void CreateNewGuid() + { + var member = GetMethod(typeof(GuidClass), m => m.Name == "CreateNewGuid"); + var sig = formatter.GetDeclaration(member); + Assert.AreEqual("public static Guid CreateNewGuid ();", sig); + } + + [Test] + public void ObjectIndentical() + { + var member = GetMethod(typeof(GuidClass), m => m.Name == "ObjectIndentical"); + var sig = formatter.GetDeclaration(member); + Assert.AreEqual("public bool ObjectIndentical (Guid objGuid1, Guid objGuid2);", sig); + } + [Test] public void MethodSignature_Finalize() => TestMethodSignature(typeof(SomeGenericClass<>), diff --git a/mdoc/mdoc.Test/SampleClasses/ApplePlatformEnum.cs b/mdoc/mdoc.Test/SampleClasses/ApplePlatformEnum.cs new file mode 100644 index 00000000..490c7978 --- /dev/null +++ b/mdoc/mdoc.Test/SampleClasses/ApplePlatformEnum.cs @@ -0,0 +1,48 @@ +using System; + +namespace ObjCRuntime +{ + [Flags] + public enum Platform : ulong + { + None = 0, + iOS_2_0 = 0x0000000000020000, + iOS_2_2 = 0x0000000000020200, + iOS_3_0 = 0x0000000000030000, + iOS_3_1 = 0x0000000000030100, + iOS_3_2 = 0x0000000000030200, + iOS_4_0 = 0x0000000000040000, + iOS_4_1 = 0x0000000000040100, + iOS_4_2 = 0x0000000000040200, + iOS_4_3 = 0x0000000000040300, + iOS_5_0 = 0x0000000000050000, + iOS_5_1 = 0x0000000000050100, + iOS_6_0 = 0x0000000000060000, + iOS_6_1 = 0x0000000000060100, + iOS_7_0 = 0x0000000000070000, + iOS_7_1 = 0x0000000000070100, + iOS_8_0 = 0x0000000000080000, + iOS_8_1 = 0x0000000000080100, + iOS_8_2 = 0x0000000000080200, + iOS_8_3 = 0x0000000000080300, + Mac_10_0 = 0x000A000000000000, + Mac_10_1 = 0x000A010000000000, + Mac_10_2 = 0x000A020000000000, + Mac_10_3 = 0x000A030000000000, + Mac_10_4 = 0x000A040000000000, + Mac_10_5 = 0x000A050000000000, + Mac_10_6 = 0x000A060000000000, + Mac_10_7 = 0x000A070000000000, + Mac_10_8 = 0x000A080000000000, + Mac_10_9 = 0x000A090000000000, + Mac_10_10 = 0x000A0A0000000000, + iOS_Version = 0x0000000000FFFFFF, + Mac_Version = 0x00FFFFFF00000000, + Mac_Arch32 = 0x0100000000000000, + Mac_Arch64 = 0x0200000000000000, + Mac_Arch = 0xFF00000000000000, + iOS_Arch32 = 0x0000000001000000, + iOS_Arch64 = 0x0000000002000000, + iOS_Arch = 0x00000000FF000000 + } +} diff --git a/mdoc/mdoc.Test/SampleClasses/AttributeDataTypeAttribute.cs b/mdoc/mdoc.Test/SampleClasses/AttributeDataTypeAttribute.cs new file mode 100644 index 00000000..ce49992e --- /dev/null +++ b/mdoc/mdoc.Test/SampleClasses/AttributeDataTypeAttribute.cs @@ -0,0 +1,57 @@ +using System; + +namespace mdoc.Test.SampleClasses +{ + public class AttributeDataTypeAttribute : Attribute + { + public object ObjectType { get; set; } + + public Type TypeType { get; set; } + + public bool BoolType { get; set; } + + public SByte SByteType { get; set; } + + public Byte ByteType { get; set; } + + public Int16 Int16Type { get; set; } + + public UInt16 UInt16Type { get; set; } + + public Int32 Int32Type { get; set; } + + public Int32? NullableOfInt32Type { get; set; } + + public UInt32 UInt32Type { get; set; } + + public Int64 Int64Type { get; set; } + + public UInt64 UInt64Type { get; set; } + + public Single SingleType { get; set; } + + public Double DoubleType { get; set; } + + public char CharType { get; set; } + + public string StringType { get; set; } + + public int[] ArrayOfIntType { get; set; } + + public ConsoleColor EnumType { get; set; } + + public SomeNestedTypes.NestedEnum NestedEnumType { get; set; } + + public SomeNestedTypes.NestedFlagsEnum NestedFlagsEnumType { get; set; } + + public SomeFlagsEnum DuplicateFlagsEnumType { get; set; } + + public AttributeTargets FlagsEnumType { get; set; } + + public NotApplyAttributeValidFlagsEnum NotApplyAttributeFlagsEnumType { get; set; } + + public NotApplyAttributeInvalidFlagsEnum NotApplyAttributeInvalidFlagsEnumType { get; set; } + + public ObjCRuntime.Platform ApplePlatformFlagsEnumType { get; set; } + } +} diff --git a/mdoc/mdoc.Test/SampleClasses/GuidClass.cs b/mdoc/mdoc.Test/SampleClasses/GuidClass.cs new file mode 100644 index 00000000..9e355b19 --- /dev/null +++ b/mdoc/mdoc.Test/SampleClasses/GuidClass.cs @@ -0,0 +1,17 @@ +using System; + +namespace mdoc.Test.SampleClasses +{ + public class GuidClass + { + private readonly Guid _guid = Guid.Empty; + + private GuidClass() { this._guid = Guid.NewGuid(); } + + public GuidClass (Guid guid) { this._guid = guid; } + + public static Guid CreateNewGuid() { return new Guid(); } + public bool ObjectIndentical(Guid objGuid1, Guid objGuid2) { return objGuid1 == objGuid2; } + public bool IsUnique(Guid guid) { return guid == _guid; } + } +} diff --git a/mdoc/mdoc.Test/SampleClasses/NotApplyAttributeInvalidFlagsEnum.cs b/mdoc/mdoc.Test/SampleClasses/NotApplyAttributeInvalidFlagsEnum.cs new file mode 100644 index 00000000..e0ad0455 --- /dev/null +++ b/mdoc/mdoc.Test/SampleClasses/NotApplyAttributeInvalidFlagsEnum.cs @@ -0,0 +1,10 @@ +namespace mdoc.Test.SampleClasses +{ + public enum NotApplyAttributeInvalidFlagsEnum + { + None = 0, + Read = 1, + Write = 2, + ReadWrite = 3 + } +} diff --git a/mdoc/mdoc.Test/SampleClasses/NotApplyAttributeValidFlagsEnum.cs b/mdoc/mdoc.Test/SampleClasses/NotApplyAttributeValidFlagsEnum.cs new file mode 100644 index 00000000..de4fa77e --- /dev/null +++ b/mdoc/mdoc.Test/SampleClasses/NotApplyAttributeValidFlagsEnum.cs @@ -0,0 +1,12 @@ +namespace mdoc.Test.SampleClasses +{ + public enum NotApplyAttributeValidFlagsEnum + { + None = 0, + Assembly = 1, + Module = 2, + Class = 4, + Struct = 8, + Enum = 16 + } +} diff --git a/mdoc/mdoc.Test/SampleClasses/SomeAttribute.cs b/mdoc/mdoc.Test/SampleClasses/SomeAttribute.cs new file mode 100644 index 00000000..2b7850ce --- /dev/null +++ b/mdoc/mdoc.Test/SampleClasses/SomeAttribute.cs @@ -0,0 +1,450 @@ +using Mono.Cecil; +using System; +using System.Collections.Generic; + +namespace mdoc.Test.SampleClasses +{ + public class SomeAttribute + { + [AttributeDataType(TypeType = typeof(TypeReference))] + public void PropertyTypeType() + { + } + + [AttributeDataType(TypeType = null)] + public void PropertyTypeTypeWithNull() + { + } + + [AttributeDataType(TypeType = typeof(SomeNestedTypes.NestedClass))] + public void PropertyTypeTypeWithNestedType() + { + } + + [AttributeDataType(TypeType = typeof(ICollection<>))] + public void PropertyTypeTypeWithUnboundCollection() + { + } + + [AttributeDataType(TypeType = typeof(ICollection<int>))] + public void PropertyTypeTypeWithCollectionOfInt() + { + } + + [AttributeDataType(TypeType = typeof(IDictionary<,>))] + public void PropertyTypeTypeWithUnboundDictionary() + { + } + + [AttributeDataType(TypeType = typeof(IDictionary<int, int>))] + public void PropertyTypeTypeWithDictionaryOfInt() + { + } + + [AttributeDataType(TypeType = typeof(SomeGenericClass<>))] + public void PropertyTypeTypeWithUnboundCustomGenericType() + { + } + + [AttributeDataType(TypeType = typeof(SomeGenericClass<int>))] + public void PropertyTypeTypeWithCustomGenericTypeOfInt() + { + } + + [AttributeDataType(TypeType = typeof(SomeNestedTypes.NestedGenericType<>))] + public void PropertyTypeTypeWithUnboundNestedGenericType() + { + } + + [AttributeDataType(TypeType = typeof(SomeNestedTypes.NestedGenericType<int>))] + public void PropertyTypeTypeWithNestedGenericTypeOfInt() + { + } + + + [AttributeDataType(TypeType = typeof(SomeNestedTypes.NestedGenericType<>.InnerNestedGenericType<>))] + public void PropertyTypeTypeWithUnboundInnerNestedGenericType() + { + } + + [AttributeDataType(TypeType = typeof(SomeNestedTypes.NestedGenericType<string>.InnerNestedGenericType<int>))] + public void PropertyTypeTypeWithInnerNestedGenericTypeOfInt() + { + } + + [AttributeDataType(BoolType = true)] + public void PropertyBoolType() + { + } + + [AttributeDataType(SByteType = SByte.MinValue)] + public void PropertySByteType() + { + } + + [AttributeDataType(ByteType = Byte.MaxValue)] + public void PropertyByteType() + { + } + + [AttributeDataType(Int16Type = Int16.MinValue)] + public void PropertyInt16Type() + { + } + + [AttributeDataType(UInt16Type = UInt16.MaxValue)] + public void PropertyUInt16Type() + { + } + + [AttributeDataType(Int32Type = Int32.MinValue)] + public void PropertyInt32Type() + { + } + + [AttributeDataType(UInt32Type = UInt32.MaxValue)] + public void PropertyUInt32Type() + { + } + + [AttributeDataType(Int64Type = Int64.MinValue)] + public void PropertyInt64Type() + { + } + + [AttributeDataType(UInt64Type = UInt64.MaxValue)] + public void PropertyUInt64Type() + { + } + + [AttributeDataType(SingleType = Single.MinValue)] + public void PropertySingleType() + { + } + + [AttributeDataType(DoubleType = Double.MinValue)] + public void PropertyDoubleType() + { + } + + [AttributeDataType(CharType = 'C')] + public void PropertyCharType() + { + } + + [AttributeDataType(StringType = "This is a string argument.")] + public void PropertyStringType() + { + } + + [AttributeDataType(StringType = null)] + public void PropertyStringTypeWithNull() + { + } + + [AttributeDataType(StringType = "")] + public void PropertyStringTypeWithEmptyString() + { + } + + [AttributeDataType(ArrayOfIntType = new[] { 0, 0, 7 })] + public void PropertyArrayOfIntType() + { + } + + [AttributeDataType(ArrayOfIntType = null)] + public void PropertyArrayOfIntTypeWithNull() + { + } + + [AttributeDataType(EnumType = ConsoleColor.Red)] + public void PropertyEnumType() + { + } + + [AttributeDataType(EnumType = (ConsoleColor)int.MaxValue)] + public void PropertyEnumTypeWithUnknownValue() + { + } + + [AttributeDataType(NestedEnumType = SomeNestedTypes.NestedEnum.Read)] + public void PropertyNestedEnumType() + { + } + + [AttributeDataType(NestedEnumType = (SomeNestedTypes.NestedEnum)int.MaxValue)] + public void PropertyNestedEnumTypeWithUnknownValue() + { + } + + [AttributeDataType(FlagsEnumType = AttributeTargets.Class | AttributeTargets.Enum)] + public void PropertyFlagsEnumType() + { + } + + [AttributeDataType(FlagsEnumType = AttributeTargets.All)] + public void PropertyFlagsEnumTypeWithAllValue() + { + } + + [AttributeDataType(FlagsEnumType = (AttributeTargets)0)] + public void PropertyFlagsEnumTypeWithUndefineValueZero() + { + } + + [AttributeDataType(DuplicateFlagsEnumType = SomeFlagsEnum.Read | SomeFlagsEnum.Write | SomeFlagsEnum.Open)] + public void PropertyDuplicateFlagsEnumTypeWithCombinationValue() + { + } + + [AttributeDataType(NestedFlagsEnumType = SomeNestedTypes.NestedFlagsEnum.Class | SomeNestedTypes.NestedFlagsEnum.Enum)] + public void PropertyNestedFlagsEnumType() + { + } + + [AttributeDataType(NestedFlagsEnumType = (SomeNestedTypes.NestedFlagsEnum)0)] + public void PropertyNestedFlagsEnumTypeWithUndefineValueZero() + { + } + + [AttributeDataType(NotApplyAttributeFlagsEnumType = NotApplyAttributeValidFlagsEnum.Class | NotApplyAttributeValidFlagsEnum.Enum)] + public void PropertyFlagsEnumTypeWithNotApplyAttributeValidTypeAndCombinationValue() + { + } + + [AttributeDataType(NotApplyAttributeFlagsEnumType = NotApplyAttributeValidFlagsEnum.Class)] + public void PropertyFlagsEnumTypeWithNotApplyAttributeValidTypeAndSingleValue() + { + } + + [AttributeDataType(NotApplyAttributeInvalidFlagsEnumType = (NotApplyAttributeInvalidFlagsEnum)5)] + public void PropertyFlagsEnumTypeWithNotApplyAttributeInvalidTypeAndUnknownCombinationValue() + { + } + + [AttributeDataType(ApplePlatformFlagsEnumType = ObjCRuntime.Platform.Mac_10_8 | ObjCRuntime.Platform.Mac_Arch64)] + public void PropertyFlagsEnumTypeWithApplePlatformType() + { + } + + [AttributeDataType(ApplePlatformFlagsEnumType = ObjCRuntime.Platform.None)] + public void PropertyFlagsEnumTypeWithApplePlatformAndNoneValue() + { + } + + [AttributeDataType(ObjectType = null)] + public void PropertyObjectWithNull() + { + } + + [AttributeDataType(ObjectType = typeof(TypeReference))] + public void PropertyObjectWithTypeType() + { + } + + [AttributeDataType(ObjectType = typeof(SomeNestedTypes.NestedClass))] + public void PropertyObjectWithNestedTypeType() + { + } + + [AttributeDataType(ObjectType = typeof(ICollection<>))] + public void PropertyObjectWithUnboundCollectionType() + { + } + + [AttributeDataType(ObjectType = typeof(ICollection<int>))] + public void PropertyObjectWithCollectionTypeOfInt() + { + } + + [AttributeDataType(ObjectType = typeof(IDictionary<,>))] + public void PropertyObjectWithUnboundDictionaryType() + { + } + + [AttributeDataType(ObjectType = typeof(IDictionary<int, int>))] + public void PropertyObjectWithDictionaryTypeOfInt() + { + } + + [AttributeDataType(ObjectType = typeof(SomeGenericClass<>))] + public void PropertyObjectWithUnboundCustomGenericType() + { + } + + [AttributeDataType(ObjectType = typeof(SomeGenericClass<int>))] + public void PropertyObjectWithCustomGenericTypeOfInt() + { + } + + [AttributeDataType(ObjectType = typeof(SomeNestedTypes.NestedGenericType<>))] + public void PropertyObjectWithUnboundNestedGenericType() + { + } + + [AttributeDataType(ObjectType = typeof(SomeNestedTypes.NestedGenericType<int>))] + public void PropertyObjectWithNestedGenericTypeOfInt() + { + } + + [AttributeDataType(ObjectType = typeof(SomeNestedTypes.NestedGenericType<>.InnerNestedGenericType<>))] + public void PropertyObjectWithUnboundInnerNestedGenericType() + { + } + + [AttributeDataType(ObjectType = typeof(SomeNestedTypes.NestedGenericType<string>.InnerNestedGenericType<int>))] + public void PropertyObjectWithInnerNestedGenericTypeOfInt() + { + } + + [AttributeDataType(ObjectType = true)] + public void PropertyObjectWithBoolType() + { + } + + [AttributeDataType(ObjectType = SByte.MinValue)] + public void PropertyObjectWithSByteType() + { + } + + [AttributeDataType(ObjectType = Byte.MaxValue)] + public void PropertyObjectWithByteType() + { + } + + [AttributeDataType(ObjectType = Int16.MinValue)] + public void PropertyObjectWithInt16Type() + { + } + + [AttributeDataType(ObjectType = UInt16.MaxValue)] + public void PropertyObjectWithUInt16Type() + { + } + + [AttributeDataType(ObjectType = Int32.MinValue)] + public void PropertyObjectWithInt32Type() + { + } + + [AttributeDataType(ObjectType = UInt32.MaxValue)] + public void PropertyObjectWithUInt32Type() + { + } + + [AttributeDataType(ObjectType = Int64.MinValue)] + public void PropertyObjectWithInt64Type() + { + } + + [AttributeDataType(ObjectType = UInt64.MaxValue)] + public void PropertyObjectWithUInt64Type() + { + } + + [AttributeDataType(ObjectType = Single.MinValue)] + public void PropertyObjectWithSingleType() + { + } + + [AttributeDataType(ObjectType = Double.MinValue)] + public void PropertyObjectWithDoubleType() + { + } + + [AttributeDataType(ObjectType = 'C')] + public void PropertyObjectWithCharType() + { + } + + [AttributeDataType(ObjectType = "This is a string argument.")] + public void PropertyObjectWithStringType() + { + } + + [AttributeDataType(ObjectType = "")] + public void PropertyObjectWithStringTypeAndEmptyString() + { + } + + [AttributeDataType(ObjectType = new[] { 0, 0, 7 })] + public void PropertyObjectWithArrayOfIntType() + { + } + + [AttributeDataType(ObjectType = ConsoleColor.Red)] + public void PropertyObjectWithEnumType() + { + } + + [AttributeDataType(ObjectType = (ConsoleColor)int.MaxValue)] + public void PropertyObjectWithEnumTypeAndUnknownValue() + { + } + + [AttributeDataType(ObjectType = SomeNestedTypes.NestedEnum.Read)] + public void PropertyObjectWithNestedEnumType() + { + } + + [AttributeDataType(ObjectType = (SomeNestedTypes.NestedEnum)int.MaxValue)] + public void PropertyObjectWithNestedEnumTypeAndUnknownValue() + { + } + + [AttributeDataType(ObjectType = AttributeTargets.Class | AttributeTargets.Enum)] + public void PropertyObjectWithFlagsEnumType() + { + } + + [AttributeDataType(ObjectType = AttributeTargets.All)] + public void PropertyObjectWithFlagsEnumTypeAndAllValue() + { + } + + [AttributeDataType(ObjectType = (AttributeTargets)0)] + public void PropertyObjectWithFlagsEnumTypeAndUndefineValueZero() + { + } + + [AttributeDataType(ObjectType = SomeFlagsEnum.Read | SomeFlagsEnum.Write | SomeFlagsEnum.Open)] + public void PropertyObjectWithDuplicateFlagsEnumTypeAndCombinationValue() + { + } + + [AttributeDataType(ObjectType = SomeNestedTypes.NestedFlagsEnum.Class | SomeNestedTypes.NestedFlagsEnum.Enum)] + public void PropertyObjectWithNestedFlagsEnumType() + { + } + + [AttributeDataType(ObjectType = (SomeNestedTypes.NestedFlagsEnum)0)] + public void PropertyObjectWithNestedFlagsEnumTypeAndUndefineValueZero() + { + } + + [AttributeDataType(ObjectType = NotApplyAttributeValidFlagsEnum.Class | NotApplyAttributeValidFlagsEnum.Enum)] + public void PropertyObjectWithNotApplyAttributeValidFlagsEnumTypeAndCombinationValue() + { + } + + [AttributeDataType(ObjectType = NotApplyAttributeValidFlagsEnum.Class)] + public void PropertyObjectWithNotApplyAttributeValidFlagsEnumTypeAndSingleValue() + { + } + + [AttributeDataType(ObjectType = (NotApplyAttributeInvalidFlagsEnum)5)] + public void PropertyObjectWithNotApplyAttributeInvalidFlagsEnumTypeAndUnknownCombinationValue() + { + } + + [AttributeDataType(ObjectType = ObjCRuntime.Platform.Mac_10_8 | ObjCRuntime.Platform.Mac_Arch64)] + public void PropertyObjectWithApplePlatformFlagsEnumType() + { + } + + [AttributeDataType(ObjectType = ObjCRuntime.Platform.None)] + public void PropertyObjectWithApplePlatformFlagsEnumTypeAndNoneValue() + { + } + } +} diff --git a/mdoc/mdoc.Test/SampleClasses/SomeFlagsEnum.cs b/mdoc/mdoc.Test/SampleClasses/SomeFlagsEnum.cs new file mode 100644 index 00000000..a95365d3 --- /dev/null +++ b/mdoc/mdoc.Test/SampleClasses/SomeFlagsEnum.cs @@ -0,0 +1,14 @@ +using System; + +namespace mdoc.Test.SampleClasses +{ + [Flags] + public enum SomeFlagsEnum + { + Read = 1, + Write = 2, + ReadWrite = Read | Write, + Open = 4, + Close = 8 + } +} diff --git a/mdoc/mdoc.Test/SampleClasses/SomeIteratorStateMachine.cs b/mdoc/mdoc.Test/SampleClasses/SomeIteratorStateMachine.cs new file mode 100644 index 00000000..3dbf6032 --- /dev/null +++ b/mdoc/mdoc.Test/SampleClasses/SomeIteratorStateMachine.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace mdoc.Test.SampleClasses +{ + public class SomeIteratorStateMachine<TKey, TValue> : IEnumerable<KeyValuePair<TKey, TValue>> + { + public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator() + { + yield return new KeyValuePair<TKey, TValue>(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + throw new NotImplementedException(); + } + + public IEnumerator<KeyValuePair<T1, T2>> WithParameterType<T1, T2>() + { + yield return new KeyValuePair<T1, T2>(); + + } + + public class SomeNestedIteratorStateMachine<NestedTKey, NestedTValue> : IEnumerable<KeyValuePair<NestedTKey, NestedTValue>> + { + public IEnumerator<KeyValuePair<NestedTKey, NestedTValue>> GetEnumerator() + { + yield return new KeyValuePair<NestedTKey, NestedTValue>(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + throw new NotImplementedException(); + } + + public IEnumerator<KeyValuePair<NestedT1, NestedT2>> WithParameterType<NestedT1, NestedT2>() + { + yield return new KeyValuePair<NestedT1, NestedT2>(); + + } + } + } +} diff --git a/mdoc/mdoc.Test/SampleClasses/SomeNestedTypes.cs b/mdoc/mdoc.Test/SampleClasses/SomeNestedTypes.cs new file mode 100644 index 00000000..1c8f332e --- /dev/null +++ b/mdoc/mdoc.Test/SampleClasses/SomeNestedTypes.cs @@ -0,0 +1,34 @@ +using System; + +namespace mdoc.Test.SampleClasses +{ + public class SomeNestedTypes + { + public class NestedClass + { + } + + public class NestedGenericType<T> + { + public class InnerNestedGenericType<T1> + { + } + } + + public enum NestedEnum + { + Read = 1, + Write = 2, + } + + [Flags] + public enum NestedFlagsEnum + { + Assembly = 1, + Module = 2, + Class = 4, + Struct = 8, + Enum = 16 + } + } +} diff --git a/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class1.cpp b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class1.cpp index 44d5f4cf..bf2bd782 100644 --- a/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class1.cpp +++ b/mdoc/mdoc.Test/UwpTestWinRtComponentCpp/Class1.cpp @@ -163,4 +163,4 @@ IAsyncActionWithProgress<double>^ Class1::GetPrimesUnordered(int first, int last }); reporter.report(100.0); }); -} +}
\ No newline at end of file diff --git a/mdoc/mdoc.Test/mdoc.Test.csproj b/mdoc/mdoc.Test/mdoc.Test.csproj index 5daf4464..6f33aeb6 100644 --- a/mdoc/mdoc.Test/mdoc.Test.csproj +++ b/mdoc/mdoc.Test/mdoc.Test.csproj @@ -72,6 +72,7 @@ <Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="AttributeValueFormatterTest.cs" />
<Compile Include="BasicFormatterTests.cs" />
<Compile Include="BasicTests.cs" />
<Compile Include="CppWinRtMembersTests.cs" />
@@ -94,11 +95,20 @@ <Compile Include="MDocFileSourceTests.cs" />
<Compile Include="MDocUpdaterTests.cs" />
<Compile Include="NullableReferenceTypesTests.cs" />
+ <Compile Include="SampleClasses\ApplePlatformEnum.cs" />
<Compile Include="SampleClasses\EiiImplementclass.cs" />
+ <Compile Include="SampleClasses\GuidClass.cs" />
<Compile Include="SampleClasses\Interface_A.cs" />
<Compile Include="SampleClasses\Interface_B.cs" />
<Compile Include="SampleClasses\InternalEIICalss.cs" />
+ <Compile Include="SampleClasses\SomeFlagsEnum.cs" />
+ <Compile Include="SampleClasses\SomeIteratorStateMachine.cs" />
+ <Compile Include="SampleClasses\NotApplyAttributeValidFlagsEnum.cs" />
+ <Compile Include="SampleClasses\NotApplyAttributeInvalidFlagsEnum.cs" />
<Compile Include="SampleClasses\NullablesAndTuples.cs" />
+ <Compile Include="SampleClasses\AttributeDataTypeAttribute.cs" />
+ <Compile Include="SampleClasses\SomeAttribute.cs" />
+ <Compile Include="SampleClasses\SomeNestedTypes.cs" />
<Compile Include="SampleClasses\StaticClass.cs" />
<Compile Include="SampleClasses\TestClassThree.cs" />
<Compile Include="SpanSpecial.cs" />
diff --git a/mdoc/mdoc.csproj b/mdoc/mdoc.csproj index f9b0d745..9de40804 100644 --- a/mdoc/mdoc.csproj +++ b/mdoc/mdoc.csproj @@ -59,7 +59,6 @@ <Compile Include="Mono.Documentation\Framework\FrameworkTypeModel.cs" />
<Compile Include="Mono.Documentation\Framework\FrameworkNamespaceModel.cs" />
<Compile Include="Mono.Documentation\Updater\IAttributeParserContext.cs" />
- <Compile Include="Mono.Documentation\Updater\Formatters\AttributeFormatters\ApplePlatformEnumFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\AttributeFormatters\AttributeFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\AttributeFormatters\CppWinRtAttributeFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\AttributeFormatters\FSharpAttributeFormatter.cs" />
@@ -81,12 +80,9 @@ <Compile Include="Mono.Documentation\Updater\Formatters\CSharpMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\SlashDocCSharpMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\MsxdocSlashDocMemberFormatter.cs" />
- <Compile Include="Mono.Documentation\Updater\Formatters\AttributeFormatters\StandardFlagsEnumFormatter.cs" />
- <Compile Include="Mono.Documentation\Updater\Formatters\AttributeFormatters\DefaultAttributeValueFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\AttributeFormatters\AttributeValueFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\VBFullMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\VBMemberFormatter.cs" />
- <Compile Include="Mono.Documentation\Updater\ResolvedTypeInfo.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\FileNameMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\SlashDocMemberFormatter.cs" />
<Compile Include="Mono.Documentation\Updater\Formatters\DocTypeMemberFormatter.cs" />
diff --git a/mdoc/mdoc.nuspec b/mdoc/mdoc.nuspec index 6adf740b..770a36a5 100644 --- a/mdoc/mdoc.nuspec +++ b/mdoc/mdoc.nuspec @@ -2,7 +2,7 @@ <package > <metadata> <id>mdoc</id> - <version>5.8.2</version> + <version>5.8.3</version> <title>mdoc</title> <authors>Microsoft</authors> <owners>Microsoft</owners> |