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:
Diffstat (limited to 'mdoc/Mono.Documentation/Updater/Formatters')
-rw-r--r--mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs49
-rw-r--r--mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs5
-rw-r--r--mdoc/Mono.Documentation/Updater/Formatters/FSharpFormatter.cs5
-rw-r--r--mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs17
-rw-r--r--mdoc/Mono.Documentation/Updater/Formatters/MsxdocSlashDocMemberFormatter.cs5
-rw-r--r--mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs2
6 files changed, 43 insertions, 40 deletions
diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs
index 4f4f287a..37c0da24 100644
--- a/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs
+++ b/mdoc/Mono.Documentation/Updater/Formatters/CSharpFullMemberFormatter.cs
@@ -517,18 +517,6 @@ namespace Mono.Documentation.Updater.Formatters
if (method.IsFinal) modifiers += " sealed";
if (modifiers == " virtual sealed") modifiers = "";
- if ((method.ReturnType.IsRequiredModifier
- && ((RequiredModifierType)method.ReturnType).ElementType.IsByReference)
- || method.ReturnType.IsByReference)
- {
- modifiers += " ref";
- }
-
- if (method.ReturnType.IsRequiredModifier && DocUtils.HasCustomAttribute(method.MethodReturnType, Consts.IsReadOnlyAttribute))
- {
- modifiers += " readonly";
- }
-
switch (method.Name)
{
case "op_Implicit":
@@ -542,6 +530,24 @@ namespace Mono.Documentation.Updater.Formatters
return buf.Append (modifiers);
}
+ protected override StringBuilder AppendRefTypeName(StringBuilder buf, ByReferenceType type, IAttributeParserContext context)
+ {
+ buf.Append("ref ");
+ return base.AppendRefTypeName(buf, type, context);
+ }
+
+ protected override StringBuilder AppendRequiredModifierTypeName(
+ StringBuilder buf, RequiredModifierType type, IAttributeParserContext context)
+ {
+ if (type.ModifierType.FullName == Consts.InAttribute && type.ElementType is ByReferenceType refType)
+ {
+ buf.Append("ref readonly ");
+ return _AppendTypeName(buf, refType.ElementType, context);
+ }
+
+ return base.AppendRequiredModifierTypeName(buf, type, context);
+ }
+
protected override StringBuilder AppendGenericMethod (StringBuilder buf, MethodDefinition method)
{
if (method.IsGenericMethod ())
@@ -585,19 +591,23 @@ namespace Mono.Documentation.Updater.Formatters
private StringBuilder AppendParameter (StringBuilder buf, ParameterDefinition parameter)
{
- if (parameter.ParameterType is ByReferenceType)
+ TypeReference parameterType = parameter.ParameterType;
+
+ if (parameterType is ByReferenceType byReferenceType)
{
if (parameter.IsOut)
{
buf.Append ("out ");
}
+ else if(parameter.IsIn)
+ {
+ buf.Append("in ");
+ }
else
{
- if (parameter.HasCustomAttributes && parameter.CustomAttributes.Any (ca => ca.AttributeType.Name == "IsReadOnlyAttribute"))
- buf.Append ("in ");
- else
- buf.Append ("ref ");
+ buf.Append("ref ");
}
+ parameterType = byReferenceType.ElementType;
}
if (parameter.HasCustomAttributes)
@@ -609,7 +619,7 @@ namespace Mono.Documentation.Updater.Formatters
var context = AttributeParserContext.Create (parameter);
var isNullableType = context.IsNullable ();
- buf.Append (GetTypeName (parameter.ParameterType, context));
+ buf.Append (GetTypeName (parameterType, context));
buf.Append (GetTypeNullableSymbol (parameter.ParameterType, isNullableType));
buf.Append (" ");
buf.Append (parameter.Name);
@@ -673,9 +683,6 @@ namespace Mono.Documentation.Updater.Formatters
modifiers = "";
buf.Append (modifiers).Append (' ');
- if (property.PropertyType.IsByReference)
- buf.Append("ref ");
-
var context = AttributeParserContext.Create (property);
var isNullableType = context.IsNullable ();
var propertyReturnTypeName = GetTypeName (property.PropertyType, context);
diff --git a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs
index 9bb44003..516c9a93 100644
--- a/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs
+++ b/mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs
@@ -776,10 +776,9 @@ namespace Mono.Documentation.Updater.Formatters.CppFormatters
return buf;
}
- protected override StringBuilder AppendRefTypeName(StringBuilder buf, TypeReference type, IAttributeParserContext context)
+ protected override StringBuilder AppendRefTypeName(StringBuilder buf, ByReferenceType type, IAttributeParserContext context)
{
- TypeSpecification spec = type as TypeSpecification;
- _AppendTypeName(buf, spec != null ? spec.ElementType : type.GetElementType(), context);
+ _AppendTypeName(buf, type.ElementType, context);
AppendHat(buf, type);
buf.Append(RefTypeModifier);
diff --git a/mdoc/Mono.Documentation/Updater/Formatters/FSharpFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/FSharpFormatter.cs
index 25b78bf8..f810f1dd 100644
--- a/mdoc/Mono.Documentation/Updater/Formatters/FSharpFormatter.cs
+++ b/mdoc/Mono.Documentation/Updater/Formatters/FSharpFormatter.cs
@@ -613,10 +613,9 @@ namespace Mono.Documentation.Updater
return buf;
}
- protected override StringBuilder AppendRefTypeName(StringBuilder buf, TypeReference type, IAttributeParserContext context)
+ protected override StringBuilder AppendRefTypeName(StringBuilder buf, ByReferenceType type, IAttributeParserContext context)
{
- ByReferenceType reftype = type as ByReferenceType;
- return AppendTypeName(buf, reftype?.ElementType, context);
+ return AppendTypeName(buf, type.ElementType, context);
}
protected override StringBuilder AppendModifiers(StringBuilder buf, MethodDefinition method)
diff --git a/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs
index 439d91b5..6e1ca5bd 100644
--- a/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs
+++ b/mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs
@@ -143,14 +143,14 @@ namespace Mono.Documentation.Updater
StringBuilder interimBuilder = new StringBuilder();
- if (ShouldStripModFromTypeName && type is RequiredModifierType)
+ if (ShouldStripModFromTypeName && type is RequiredModifierType requiredModifierType)
{
- AppendRequiredModifierTypeName(interimBuilder, type as RequiredModifierType, context);
+ AppendRequiredModifierTypeName(interimBuilder, requiredModifierType, context);
return SetBuffer(buf, interimBuilder, useTypeProjection: useTypeProjection);
}
- if (ShouldStripModFromTypeName && type is OptionalModifierType)
+ if (ShouldStripModFromTypeName && type is OptionalModifierType optionalModifierType)
{
- AppendOptionalModifierTypeName(interimBuilder, type as OptionalModifierType, context);
+ AppendOptionalModifierTypeName(interimBuilder, optionalModifierType, context);
return SetBuffer(buf, interimBuilder, useTypeProjection: useTypeProjection);
}
if (type is ArrayType)
@@ -158,9 +158,9 @@ namespace Mono.Documentation.Updater
AppendArrayTypeName(interimBuilder, type, context);
return SetBuffer(buf, interimBuilder, useTypeProjection: useTypeProjection);
}
- if (type is ByReferenceType)
+ if (type is ByReferenceType byReferenceType)
{
- AppendRefTypeName (interimBuilder, type, context);
+ AppendRefTypeName (interimBuilder, byReferenceType, context);
return SetBuffer(buf, interimBuilder, useTypeProjection: useTypeProjection);
}
if (type is PointerType)
@@ -290,10 +290,9 @@ namespace Mono.Documentation.Updater
get { return "@"; }
}
- protected virtual StringBuilder AppendRefTypeName (StringBuilder buf, TypeReference type, IAttributeParserContext context)
+ protected virtual StringBuilder AppendRefTypeName (StringBuilder buf, ByReferenceType type, IAttributeParserContext context)
{
- TypeSpecification spec = type as TypeSpecification;
- return _AppendTypeName(buf, spec != null ? spec.ElementType : type.GetElementType(), context);
+ return _AppendTypeName(buf, type.ElementType, context);
}
protected virtual string PointerModifier
diff --git a/mdoc/Mono.Documentation/Updater/Formatters/MsxdocSlashDocMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/MsxdocSlashDocMemberFormatter.cs
index 8d0beac3..a9b9aa6b 100644
--- a/mdoc/Mono.Documentation/Updater/Formatters/MsxdocSlashDocMemberFormatter.cs
+++ b/mdoc/Mono.Documentation/Updater/Formatters/MsxdocSlashDocMemberFormatter.cs
@@ -7,10 +7,9 @@ namespace Mono.Documentation.Updater
{
public MsxdocSlashDocMemberFormatter(TypeMap map) : base(map) { }
- protected override StringBuilder AppendRefTypeName(StringBuilder buf, TypeReference type, IAttributeParserContext context)
+ protected override StringBuilder AppendRefTypeName(StringBuilder buf, ByReferenceType type, IAttributeParserContext context)
{
- TypeSpecification spec = type as TypeSpecification;
- return _AppendTypeName(buf, spec != null ? spec.ElementType : type.GetElementType(), context).Append(RefTypeModifier);
+ return _AppendTypeName(buf, type.ElementType, context).Append(RefTypeModifier);
}
}
}
diff --git a/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs b/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs
index 2a5dfa51..26b2024d 100644
--- a/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs
+++ b/mdoc/Mono.Documentation/Updater/Formatters/SlashDocMemberFormatter.cs
@@ -82,7 +82,7 @@ namespace Mono.Documentation.Updater
return buf;
}
- protected override StringBuilder AppendRefTypeName (StringBuilder buf, TypeReference type, IAttributeParserContext context)
+ protected override StringBuilder AppendRefTypeName (StringBuilder buf, ByReferenceType type, IAttributeParserContext context)
{
return base.AppendRefTypeName (buf, type, context).Append (RefTypeModifier);
}