diff options
author | Stephane Delcroix <stephane@delcroix.org> | 2017-02-02 15:19:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-02 15:19:03 +0100 |
commit | eacbc1acf4cc2b95b98099d069e7bfa31c89f4f8 (patch) | |
tree | 5b4b6eb618cba84ec9dbec4a86dd5cdb8ffd3f04 /Xamarin.Forms.Build.Tasks | |
parent | c25a360efbbbe1f161e6737e61aed4b96cd37ac3 (diff) | |
download | xamarin-forms-eacbc1acf4cc2b95b98099d069e7bfa31c89f4f8.tar.gz xamarin-forms-eacbc1acf4cc2b95b98099d069e7bfa31c89f4f8.tar.bz2 xamarin-forms-eacbc1acf4cc2b95b98099d069e7bfa31c89f4f8.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')
-rw-r--r-- | Xamarin.Forms.Build.Tasks/TypeReferenceExtensions.cs | 6 |
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; |