summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Build.Tasks
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2017-02-02 15:19:03 +0100
committerGitHub <noreply@github.com>2017-02-02 15:19:03 +0100
commiteacbc1acf4cc2b95b98099d069e7bfa31c89f4f8 (patch)
tree5b4b6eb618cba84ec9dbec4a86dd5cdb8ffd3f04 /Xamarin.Forms.Build.Tasks
parentc25a360efbbbe1f161e6737e61aed4b96cd37ac3 (diff)
downloadxamarin-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.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;