summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Build.Tasks/TypeReferenceExtensions.cs
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2017-02-02 15:19:03 +0100
committerKangho Hur <kangho.hur@samsung.com>2017-03-24 13:18:41 +0900
commitf001684556f104a7d847d7b276164e5f0246f06f (patch)
tree517119bf5a706214a057ba511b1c45becb4c93b4 /Xamarin.Forms.Build.Tasks/TypeReferenceExtensions.cs
parentfc482ef2eb128dae25342613a3e6d6d0f676419a (diff)
downloadxamarin-forms-f001684556f104a7d847d7b276164e5f0246f06f.tar.gz
xamarin-forms-f001684556f104a7d847d7b276164e5f0246f06f.tar.bz2
xamarin-forms-f001684556f104a7d847d7b276164e5f0246f06f.zip
[Xaml[C]] check for compatible types on op_implicit (#715)
* [Xaml[C]] check for compatible types on op_implicit * fix merge issue
Diffstat (limited to 'Xamarin.Forms.Build.Tasks/TypeReferenceExtensions.cs')
-rw-r--r--Xamarin.Forms.Build.Tasks/TypeReferenceExtensions.cs6
1 files changed, 2 insertions, 4 deletions
diff --git a/Xamarin.Forms.Build.Tasks/TypeReferenceExtensions.cs b/Xamarin.Forms.Build.Tasks/TypeReferenceExtensions.cs
index 3b69bfd5..f862de3e 100644
--- a/Xamarin.Forms.Build.Tasks/TypeReferenceExtensions.cs
+++ b/Xamarin.Forms.Build.Tasks/TypeReferenceExtensions.cs
@@ -157,7 +157,7 @@ namespace Xamarin.Forms.Build.Tasks
var typeDef = typeRef.Resolve();
if (TypeRefComparer.Default.Equals(typeDef, baseClass.Resolve()))
return true;
- if (typeDef.Interfaces.Any(ir => TypeRefComparer.Default.Equals(ir.InterfaceType, baseClass)))
+ if (typeDef.Interfaces.Any(ir => TypeRefComparer.Default.Equals(ir.InterfaceType.ResolveGenericParameters(typeRef), baseClass)))
return true;
if (typeDef.BaseType == null)
return false;
@@ -257,10 +257,8 @@ namespace Xamarin.Forms.Build.Tasks
var returnType = castDef.ReturnType;
if (returnType.IsGenericParameter)
returnType = ((GenericInstanceType)opDeclTypeRef).GenericArguments [((GenericParameter)returnType).Position];
- if (returnType.FullName == toType.FullName &&
- cast.Parameters [0].ParameterType.Name == fromType.Name) {
+ if (returnType.InheritsFromOrImplements(toType))
return castDef;
- }
}
}
return null;