diff options
-rw-r--r-- | apidoctools.sln | 14 | ||||
-rw-r--r-- | mdoc/Makefile | 2 | ||||
-rw-r--r-- | mdoc/Mono.Documentation/MDocUpdater.cs | 18 | ||||
-rw-r--r-- | mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs | 18 | ||||
-rw-r--r-- | mdoc/mdoc.Test/FormatterTests.cs | 11 |
5 files changed, 28 insertions, 35 deletions
diff --git a/apidoctools.sln b/apidoctools.sln index 28aa52c9..98cf6bb9 100644 --- a/apidoctools.sln +++ b/apidoctools.sln @@ -15,8 +15,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mdoc.Test", "mdoc\mdoc.Test EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "mdoc.Test.FSharp", "mdoc\mdoc.Test\mdoc.Test.FSharp\mdoc.Test.FSharp.fsproj", "{979F9F80-12FE-4236-9E93-6D554AB13701}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mdoc.Test.Cplusplus", "mdoc.Test.Cplusplus\mdoc.Test.Cplusplus.vcxproj", "{9398D4E3-1779-44FD-AF8C-BB46562DCD88}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -125,18 +123,6 @@ Global {979F9F80-12FE-4236-9E93-6D554AB13701}.Release|x64.Build.0 = Release|Any CPU
{979F9F80-12FE-4236-9E93-6D554AB13701}.Release|x86.ActiveCfg = Release|Any CPU
{979F9F80-12FE-4236-9E93-6D554AB13701}.Release|x86.Build.0 = Release|Any CPU
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Debug|Any CPU.ActiveCfg = Debug|Win32
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Debug|ARM.ActiveCfg = Debug|Win32
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Debug|x64.ActiveCfg = Debug|x64
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Debug|x64.Build.0 = Debug|x64
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Debug|x86.ActiveCfg = Debug|Win32
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Debug|x86.Build.0 = Debug|Win32
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Release|Any CPU.ActiveCfg = Release|Win32
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Release|ARM.ActiveCfg = Release|Win32
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Release|x64.ActiveCfg = Release|x64
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Release|x64.Build.0 = Release|x64
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Release|x86.ActiveCfg = Release|Win32
- {9398D4E3-1779-44FD-AF8C-BB46562DCD88}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/mdoc/Makefile b/mdoc/Makefile index 75b37b9a..b98c321b 100644 --- a/mdoc/Makefile +++ b/mdoc/Makefile @@ -48,7 +48,7 @@ MULTI-UNIFIED = Test/DocTest-DropNS-unified.dll Test/DocTest-DropNS-unified-mult DIFF = diff -rup DIFF_QUIET = diff --brief -ifeq ($(OS), Windows_NT) +ifeq ($(PLATFORM), win32) DIFF = diff -rupZ DIFF_QUIET = diff --brief -Z endif diff --git a/mdoc/Mono.Documentation/MDocUpdater.cs b/mdoc/Mono.Documentation/MDocUpdater.cs index 5db01ae6..d3808bc4 100644 --- a/mdoc/Mono.Documentation/MDocUpdater.cs +++ b/mdoc/Mono.Documentation/MDocUpdater.cs @@ -3830,17 +3830,15 @@ namespace Mono.Documentation { XmlElement e = WriteElement (root, "ReturnValue"); var valueToUse = GetDocTypeFullName (type); - if (type.IsRequiredModifier) - { - if (((RequiredModifierType)type).ElementType.IsByReference) - e.SetAttribute("RefType", "Ref"); + if ((type.IsRequiredModifier && ((RequiredModifierType)type).ElementType.IsByReference) + || type.IsByReference) + e.SetAttribute("RefType", "Ref"); - if (IsReadonlyAttribute(attributes)) - { - e.SetAttribute("RefType", "Readonly"); - if (valueToUse[valueToUse.Length - 1] == '&') - valueToUse = valueToUse.Remove(valueToUse.Length - 1); - } + if (type.IsRequiredModifier && IsReadonlyAttribute(attributes)) + { + e.SetAttribute("RefType", "Readonly"); + if (valueToUse[valueToUse.Length - 1] == '&') + valueToUse = valueToUse.Remove(valueToUse.Length - 1); } AddXmlNode (e.SelectNodes ("ReturnType").Cast<XmlElement> ().ToArray (), diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs index a7e0344e..938884f5 100644 --- a/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs +++ b/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs @@ -411,17 +411,17 @@ namespace Mono.Documentation.Updater if (method.IsFinal) modifiers += " sealed"; if (modifiers == " virtual sealed") modifiers = ""; - if (method.ReturnType.IsRequiredModifier)
+ if ((method.ReturnType.IsRequiredModifier
+ && ((RequiredModifierType)method.ReturnType).ElementType.IsByReference)
+ || method.ReturnType.IsByReference)
{
- if (((RequiredModifierType)method.ReturnType).ElementType.IsByReference)
- {
- modifiers += " ref";
- }
+ modifiers += " ref";
+ }
- if (method.MethodReturnType.CustomAttributes.Any(attr => attr.AttributeType.FullName == "System.Runtime.CompilerServices.IsReadOnlyAttribute"))
- {
- modifiers += " readonly";
- }
+ if (method.ReturnType.IsRequiredModifier
+ && method.MethodReturnType.CustomAttributes.Any(attr => attr.AttributeType.FullName == "System.Runtime.CompilerServices.IsReadOnlyAttribute"))
+ {
+ modifiers += " readonly";
} switch (method.Name) diff --git a/mdoc/mdoc.Test/FormatterTests.cs b/mdoc/mdoc.Test/FormatterTests.cs index 9ad9df2e..51e6f0d2 100644 --- a/mdoc/mdoc.Test/FormatterTests.cs +++ b/mdoc/mdoc.Test/FormatterTests.cs @@ -208,7 +208,7 @@ namespace mdoc.Test "Finalize"); [Test] - public void CSharpReadonlyRef() + public void CSharpReadonlyRefReturn() { var member = GetMethod(typeof(ReadonlyRefClass), m => m.Name == "ReadonlyRef"); var formatter = new CSharpFullMemberFormatter(); @@ -216,6 +216,15 @@ namespace mdoc.Test Assert.AreEqual("public ref readonly int ReadonlyRef ();", sig); } + [Test] + public void CSharpRefReturn() + { + var member = GetMethod(typeof(ReadonlyRefClass), m => m.Name == "Ref"); + var formatter = new CSharpFullMemberFormatter(); + var sig = formatter.GetDeclaration(member); + Assert.AreEqual("public ref int Ref ();", sig); + } + #region Helper Methods string RealTypeName(string name){ switch (name) { |