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

github.com/mono/api-doc-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiao Luo <basehello@icloud.com>2021-10-21 13:55:51 +0300
committerGitHub <noreply@github.com>2021-10-21 13:55:51 +0300
commit7c0e36407dbac73203378e1eafd24e140af26565 (patch)
treeb01d1d4a16b0a4c4421474ccaab482a438e7a1bd
parent9d0792f186a21aa2a802ce5248451b6756be575b (diff)
Bug 422813: Fix the in parameter modifier not be rendered. (#557)
* Initial commit. * Update test case.
-rw-r--r--mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs11
-rw-r--r--mdoc/mdoc.Test/FormatterTests.cs9
-rw-r--r--mdoc/mdoc.Test/SampleClasses/SomeClass.cs7
3 files changed, 25 insertions, 2 deletions
diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs
index 7d0aa7c8..e225e659 100644
--- a/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs
+++ b/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs
@@ -573,10 +573,18 @@ namespace Mono.Documentation.Updater.Formatters
if (parameter.ParameterType is ByReferenceType)
{
if (parameter.IsOut)
+ {
buf.Append ("out ");
+ }
else
- buf.Append ("ref ");
+ {
+ if (parameter.HasCustomAttributes && parameter.CustomAttributes.Any (ca => ca.AttributeType.Name == "IsReadOnlyAttribute"))
+ buf.Append ("in ");
+ else
+ buf.Append ("ref ");
+ }
}
+
if (parameter.HasCustomAttributes)
{
var isParams = parameter.CustomAttributes.Any (ca => ca.AttributeType.Name == "ParamArrayAttribute");
@@ -596,6 +604,7 @@ namespace Mono.Documentation.Updater.Formatters
var ReturnVal = new AttributeFormatter().MakeAttributesValueString(parameter.Constant, parameter.ParameterType);
buf.AppendFormat (" = {0}", ReturnVal == "null" ? "default" : ReturnVal);
}
+
return buf;
}
diff --git a/mdoc/mdoc.Test/FormatterTests.cs b/mdoc/mdoc.Test/FormatterTests.cs
index f7b60e4e..01a8f6cf 100644
--- a/mdoc/mdoc.Test/FormatterTests.cs
+++ b/mdoc/mdoc.Test/FormatterTests.cs
@@ -275,6 +275,15 @@ namespace mdoc.Test
}
[Test]
+ public void CSharpInModifier()
+ {
+ var member = GetMethod(typeof(SomeClass), m => m.Name == "SomeMethodWithInParameterModifier");
+ var formatter = new CSharpFullMemberFormatter();
+ var sig = formatter.GetDeclaration(member);
+ Assert.AreEqual("public void SomeMethodWithInParameterModifier (in string s);", sig);
+ }
+
+ [Test]
public void CSharpTuple()
{
var member = GetMethod(typeof(NullablesAndTuples), m => m.Name == "TupleReturn");
diff --git a/mdoc/mdoc.Test/SampleClasses/SomeClass.cs b/mdoc/mdoc.Test/SampleClasses/SomeClass.cs
index 8687c830..615ab8b2 100644
--- a/mdoc/mdoc.Test/SampleClasses/SomeClass.cs
+++ b/mdoc/mdoc.Test/SampleClasses/SomeClass.cs
@@ -46,7 +46,12 @@ namespace mdoc.Test.SampleClasses
public void SomeMethodWithParameters(SomeClass someClass, int i)
{
-
+
+ }
+
+ public void SomeMethodWithInParameterModifier(in string s)
+ {
+
}
public void SomeMethod()