[mcs] Constant folding of null strings casted to object
authorMarek Safar <marek.safar@gmail.com>
Wed, 2 Jul 2014 13:33:16 +0000 (15:33 +0200)
committerMarek Safar <marek.safar@gmail.com>
Wed, 2 Jul 2014 13:33:16 +0000 (15:33 +0200)
mcs/mcs/cfold.cs

index 72f3a9c3620eb72e7c9a3e6c11afda7fd69c922d..befa0dbdbe3b93322cd155a48ccd30e56fe8bcdd 100644 (file)
@@ -309,10 +309,10 @@ namespace Mono.CSharp {
                                                return new StringConstant (ec.BuiltinTypes, (string)left.GetValue () + (string)right.GetValue (),
                                                        left.Location);
 
-                                       if (lt == InternalType.NullLiteral)
+                                       if (lt == InternalType.NullLiteral || left.IsNull)
                                                return new StringConstant (ec.BuiltinTypes, "" + right.GetValue (), left.Location);
 
-                                       if (rt == InternalType.NullLiteral)
+                                       if (rt == InternalType.NullLiteral || right.IsNull)
                                                return new StringConstant (ec.BuiltinTypes, left.GetValue () + "", left.Location);
 
                                        return null;