From e7bb3812fb3688b6b832a3f17cd933b6ad0ab3a8 Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Wed, 5 Sep 2007 09:19:08 +0000 Subject: [PATCH] 2007-09-05 Marek Safar A fix for bug #82676 * convert.cs (ImplicitReferenceConversionCore): From any class-type S to any interface-type T means to any of interface type T. svn path=/trunk/mcs/; revision=85337 --- mcs/mcs/ChangeLog | 6 ++++++ mcs/mcs/convert.cs | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/mcs/mcs/ChangeLog b/mcs/mcs/ChangeLog index b48ca67a0d8..f1c8badf71a 100644 --- a/mcs/mcs/ChangeLog +++ b/mcs/mcs/ChangeLog @@ -1,3 +1,9 @@ +2007-09-05 Marek Safar + + A fix for bug #82676 + * convert.cs (ImplicitReferenceConversionCore): From any class-type S to + any interface-type T means to any of interface type T. + 2007-09-04 Marek Safar * namespace.cs: We have 2 versions of System.Core assembly. diff --git a/mcs/mcs/convert.cs b/mcs/mcs/convert.cs index a0baac88b0a..c0911770646 100644 --- a/mcs/mcs/convert.cs +++ b/mcs/mcs/convert.cs @@ -349,6 +349,13 @@ namespace Mono.CSharp { return !TypeManager.IsGenericParameter (expr_type) && !TypeManager.IsValueType (expr_type); } + + if (!TypeManager.IsGenericType (target_type)) { + foreach (Type iface in TypeManager.GetInterfaces (target_type)) { + if (TypeManager.ImplementsInterface (expr_type, iface)) + return true; + } + } } // from any interface type S to interface-type T. -- 2.25.1