X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fmcs%2Fconvert.cs;h=36c5626bcc32dd190a10ff102953fb65f56ea8e3;hb=efd53c8e2f1823568309a2920091b724be0feff8;hp=065c9a7e3f8cc8bf7321042febe71c4798a42a82;hpb=f0d2ee46f839cc3cebcdaa674b3a31d9a3e22863;p=mono.git diff --git a/mcs/mcs/convert.cs b/mcs/mcs/convert.cs index 065c9a7e3f8..36c5626bcc3 100644 --- a/mcs/mcs/convert.cs +++ b/mcs/mcs/convert.cs @@ -715,6 +715,12 @@ namespace Mono.CSharp { return false; } + var interpolated_string = expr as InterpolatedString; + if (interpolated_string != null) { + if (target_type == rc.Module.PredefinedTypes.IFormattable.TypeSpec || target_type == rc.Module.PredefinedTypes.FormattableString.TypeSpec) + return true; + } + return ImplicitStandardConversionExists (expr, target_type); } @@ -1472,6 +1478,12 @@ namespace Mono.CSharp { if (expr_type.IsStruct && TypeSpecComparer.IsEqual (expr_type, target_type)) return expr_type == target_type ? expr : EmptyCast.Create (expr, target_type); + var interpolated_string = expr as InterpolatedString; + if (interpolated_string != null) { + if (target_type == ec.Module.PredefinedTypes.IFormattable.TypeSpec || target_type == ec.Module.PredefinedTypes.FormattableString.TypeSpec) + return interpolated_string.ConvertTo (ec, target_type); + } + return null; }