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:
authorJoel Martinez <joelmartinez@gmail.com>2020-02-12 01:34:01 +0300
committerJoel Martinez <joelmartinez@gmail.com>2020-02-12 01:34:01 +0300
commitf99186d1a284a1820e6b12c4a5550ec25beeefd2 (patch)
treeb8772d13c6fc38ace23debb749aefa924a3f0ef3 /mdoc/Mono.Documentation/Updater/DocUtils.cs
parentf69b39d83b3d21ca8f2130c4f329a80d6e14ee79 (diff)
parent5b8dd40e9593f82068a37d18d9dbc7ed93fe002f (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'mdoc/Mono.Documentation/Updater/DocUtils.cs')
-rw-r--r--mdoc/Mono.Documentation/Updater/DocUtils.cs91
1 files changed, 50 insertions, 41 deletions
diff --git a/mdoc/Mono.Documentation/Updater/DocUtils.cs b/mdoc/Mono.Documentation/Updater/DocUtils.cs
index a69085e8..0c491756 100644
--- a/mdoc/Mono.Documentation/Updater/DocUtils.cs
+++ b/mdoc/Mono.Documentation/Updater/DocUtils.cs
@@ -287,24 +287,24 @@ namespace Mono.Documentation.Updater
return inst != null
? inst.GenericArguments.Count
: type.GenericParameters.Count;
- }
+ }
class TypeEquality : IEqualityComparer<TypeReference>
- {
- bool IEqualityComparer<TypeReference>.Equals (TypeReference x, TypeReference y)
+ {
+ bool IEqualityComparer<TypeReference>.Equals (TypeReference x, TypeReference y)
+ {
+ if (x == null && y == null) return true;
+ if (x == null || y == null) return false;
+ return x.FullName == y.FullName;
+ }
+
+ int IEqualityComparer<TypeReference>.GetHashCode (TypeReference obj)
{
- if (x is null && y is null) return true;
- if (x is null || y is null) return false;
- return x.FullName == y.FullName;
- }
-
- int IEqualityComparer<TypeReference>.GetHashCode (TypeReference obj)
- {
- return obj.GetHashCode ();
+ return obj.GetHashCode ();
}
}
static TypeEquality typeEqualityComparer = new TypeEquality ();
-
+
public static IEnumerable<TypeReference> GetAllPublicInterfaces (TypeDefinition type)
{
return GetAllInterfacesFromType (type)
@@ -314,7 +314,7 @@ namespace Mono.Documentation.Updater
private static IEnumerable<TypeReference> GetAllInterfacesFromType(TypeDefinition type)
{
- if (type is null)
+ if (type == null)
yield break;
foreach(var i in type.Interfaces)
@@ -535,26 +535,29 @@ namespace Mono.Documentation.Updater
FillUnifiedMemberTypeNames(unifiedTypeNames, memberReference as IGenericParameterProvider);// Fill the member generic parameters unified names as M0, M1....
FillUnifiedTypeNames(unifiedTypeNames, memberReference.DeclaringType, genericInterface);// Fill the type generic parameters unified names as T0, T1....
- switch (memberReference)
- {
- case IMethodSignature methodSignature:
- buf.Append(GetUnifiedTypeName(methodSignature.ReturnType, unifiedTypeNames)).Append(" ");
- buf.Append(SimplifyName(memberReference.Name)).Append(" ");
- AppendParameters(buf, methodSignature.Parameters, unifiedTypeNames);
- break;
- case PropertyDefinition propertyReference:
- buf.Append(GetUnifiedTypeName(propertyReference.PropertyType, unifiedTypeNames)).Append(" ");
- if (propertyReference.GetMethod != null)
- buf.Append("get").Append(" ");
- if (propertyReference.SetMethod != null)
- buf.Append("set").Append(" ");
- buf.Append(SimplifyName(memberReference.Name)).Append(" ");
- AppendParameters(buf, propertyReference.Parameters, unifiedTypeNames);
- break;
- case EventDefinition eventReference:
- buf.Append(GetUnifiedTypeName(eventReference.EventType, unifiedTypeNames)).Append(" ");
- buf.Append(SimplifyName(memberReference.Name)).Append(" ");
- break;
+ if (memberReference is IMethodSignature)
+ {
+ IMethodSignature methodSignature = (IMethodSignature)memberReference;
+ buf.Append(GetUnifiedTypeName(methodSignature.ReturnType, unifiedTypeNames)).Append(" ");
+ buf.Append(SimplifyName(memberReference.Name)).Append(" ");
+ AppendParameters(buf, methodSignature.Parameters, unifiedTypeNames);
+ }
+ if (memberReference is PropertyDefinition)
+ {
+ PropertyDefinition propertyReference = (PropertyDefinition)memberReference;
+ buf.Append(GetUnifiedTypeName(propertyReference.PropertyType, unifiedTypeNames)).Append(" ");
+ if (propertyReference.GetMethod != null)
+ buf.Append("get").Append(" ");
+ if (propertyReference.SetMethod != null)
+ buf.Append("set").Append(" ");
+ buf.Append(SimplifyName(memberReference.Name)).Append(" ");
+ AppendParameters(buf, propertyReference.Parameters, unifiedTypeNames);
+ }
+ if (memberReference is EventDefinition)
+ {
+ EventDefinition eventReference = (EventDefinition)memberReference;
+ buf.Append(GetUnifiedTypeName(eventReference.EventType, unifiedTypeNames)).Append(" ");
+ buf.Append(SimplifyName(memberReference.Name)).Append(" ");
}
var memberUnifiedTypeNames = new Dictionary<string, string>();
@@ -676,14 +679,20 @@ namespace Mono.Documentation.Updater
/// </summary>
private static Collection<MethodReference> GetOverrides(MemberReference memberReference)
{
- switch (memberReference)
+ if (memberReference is MethodDefinition)
+ {
+ MethodDefinition methodDefinition = (MethodDefinition)memberReference;
+ return methodDefinition.Overrides;
+ }
+ if (memberReference is PropertyDefinition)
+ {
+ PropertyDefinition propertyDefinition = (PropertyDefinition)memberReference;
+ return (propertyDefinition.GetMethod ?? propertyDefinition.SetMethod)?.Overrides;
+ }
+ if (memberReference is EventDefinition)
{
- case MethodDefinition methodDefinition:
- return methodDefinition.Overrides;
- case PropertyDefinition propertyDefinition:
- return (propertyDefinition.GetMethod ?? propertyDefinition.SetMethod)?.Overrides;
- case EventDefinition evendDefinition:
- return evendDefinition.AddMethod.Overrides;
+ EventDefinition evendDefinition = (EventDefinition)memberReference;
+ return evendDefinition.AddMethod.Overrides;
}
return null;
@@ -702,4 +711,4 @@ namespace Mono.Documentation.Updater
return method.Name.StartsWith("op_", StringComparison.Ordinal);
}
}
-} \ No newline at end of file
+}