diff options
author | Joel Martinez <joelmartinez@gmail.com> | 2020-02-12 01:34:01 +0300 |
---|---|---|
committer | Joel Martinez <joelmartinez@gmail.com> | 2020-02-12 01:34:01 +0300 |
commit | f99186d1a284a1820e6b12c4a5550ec25beeefd2 (patch) | |
tree | b8772d13c6fc38ace23debb749aefa924a3f0ef3 /mdoc/Mono.Documentation/Updater/DocUtils.cs | |
parent | f69b39d83b3d21ca8f2130c4f329a80d6e14ee79 (diff) | |
parent | 5b8dd40e9593f82068a37d18d9dbc7ed93fe002f (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.cs | 91 |
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 +}
|