2010-06-15 Marek Safar <marek.safar@gmail.com>
authorMarek Safar <marek.safar@gmail.com>
Tue, 15 Jun 2010 07:57:13 +0000 (07:57 -0000)
committerMarek Safar <marek.safar@gmail.com>
Tue, 15 Jun 2010 07:57:13 +0000 (07:57 -0000)
A fix for bug #613397
* expression.cs: Removed too aggressive object initializers
optimization.

svn path=/trunk/mcs/; revision=158921

mcs/mcs/ChangeLog
mcs/mcs/expression.cs

index fa49b3f5b905d83054719daffb7ab67928c3e7f9..b8da0df3d720061d6d6dbe11611e5c1358a8d972 100644 (file)
@@ -1,3 +1,9 @@
+2010-06-15  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #613397
+       * expression.cs: Removed too aggressive object initializers
+       optimization.
+       
 2010-06-15  Marek Safar  <marek.safar@gmail.com>
        
        * parameter.cs, property.cs, membercache.cs, decl.cs, iterators.cs,
index 38d991d6df0eae27c9e79412be3b703eaaa58681..99d2a999ae39bd7ce66e5067037a0b5b908ef4be 100644 (file)
@@ -8938,18 +8938,7 @@ namespace Mono.CSharp {
                                return this;
                        }
 
-                       Expression expr = base.DoResolve (ec);
-                       if (expr == null)
-                               return null;
-
-                       //
-                       // Ignore field initializers with default value
-                       //
-                       Constant c = source as Constant;
-                       if (c != null && c.IsDefaultInitializer (type) && target.eclass == ExprClass.Variable)
-                               return EmptyExpressionStatement.Instance.Resolve (ec);
-
-                       return expr;
+                       return base.DoResolve (ec);
                }
 
                protected override MemberExpr Error_MemberLookupFailed (ResolveContext ec, TypeSpec type, IList<MemberSpec> members)
@@ -9102,7 +9091,7 @@ namespace Mono.CSharp {
                {
                        List<string> element_names = null;
                        for (int i = 0; i < initializers.Count; ++i) {
-                               Expression initializer = (Expression) initializers [i];
+                               Expression initializer = initializers [i];
                                ElementInitializer element_initializer = initializer as ElementInitializer;
 
                                if (i == 0) {