[Facades] Moved subdirs list to subdirs.make
[mono.git] / mcs / mcs / convert.cs
index df21c11d11b84a0a5c281f85d7c2fef69dc6fc6a..95f9897c081a7dfbe9bde7d9faef9a60baae01dd 100644 (file)
@@ -345,7 +345,7 @@ namespace Mono.CSharp {
                                        if (target_type.Kind == MemberKind.InternalCompilerType)
                                                return target_type.BuiltinType == BuiltinTypeSpec.Type.Dynamic;
 
-                                       return TypeSpec.IsReferenceType (target_type);
+                                       return TypeSpec.IsReferenceType (target_type) || target_type.Kind == MemberKind.PointerType;
                                }
 
                                //
@@ -1472,6 +1472,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;
                }