2008-05-01 Marek Safar <marek.safar@gmail.com>
authorMarek Safar <marek.safar@gmail.com>
Thu, 1 May 2008 10:19:31 +0000 (10:19 -0000)
committerMarek Safar <marek.safar@gmail.com>
Thu, 1 May 2008 10:19:31 +0000 (10:19 -0000)
* ecore.cs: CreateExpressionTree is finally abstract.

* expression.cs, linq.cs: Updated.

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

mcs/mcs/ChangeLog
mcs/mcs/ecore.cs
mcs/mcs/expression.cs
mcs/mcs/linq.cs

index 1167447524dd799638c152052c829325ad9b70c2..ecff5515255c1fa17030043c2c516da08f66ac20 100644 (file)
@@ -1,3 +1,9 @@
+2008-05-01  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs: CreateExpressionTree is finally abstract.
+
+       * expression.cs, linq.cs: Updated.
+
 2008-05-01  Marek Safar  <marek.safar@gmail.com>
 
        * expression.cs, ecore.cs: Block base access expression inside expression
index 6502a4d44a49c9b4c22fbf8bae9ea3d89b6ffabe..db9467305b45cb465108bef5ca34115055c21308 100644 (file)
@@ -1257,11 +1257,10 @@ namespace Mono.CSharp {
                        return cloned;
                }
 
-               public virtual Expression CreateExpressionTree (EmitContext ec)
-               {
-                       throw new NotImplementedException (
-                               "Expression tree conversion not implemented for " + GetType ());
-               }
+               //
+               // Implementation of expression to expression tree conversion
+               //
+               public abstract Expression CreateExpressionTree (EmitContext ec);
 
                protected Expression CreateExpressionFactoryCall (string name, ArrayList args)
                {
@@ -5110,7 +5109,7 @@ namespace Mono.CSharp {
                        //args.Add (new Argument (InstanceExpression.CreateExpressionTree (ec)));
                        //args.Add (getter expression);
                        //return CreateExpressionFactoryCall ("Property", args);
-                       return base.CreateExpressionTree (ec);
+                       throw new NotImplementedException ();
                }
 
                public Expression CreateSetterTypeOfExpression ()
index 5d904fc3ef9bfd440522d99c99b911ea04e0e9ea..c5566d63500e620efe5238511dcadf6188a8b219 100644 (file)
@@ -8441,6 +8441,11 @@ namespace Mono.CSharp {
                        this.args = args;
                }
 
+               public override Expression CreateExpressionTree (EmitContext ec)
+               {
+                       throw new NotSupportedException ("ET");
+               }
+
                public override Expression DoResolve (EmitContext ec)
                {
                        Expression c = CommonResolve (ec);
index a338dca44fed4b236eb846bd4bd498ced48dd67d..a7b76aff7d95b30af94362e17d5caa89e1e432b8 100644 (file)
@@ -142,6 +142,12 @@ namespace Mono.CSharp.Linq
                                t.next = (AQueryClause)next.Clone (clonectx);
                }
 
+               public override Expression CreateExpressionTree (EmitContext ec)
+               {
+                       // Should not be reached
+                       throw new NotSupportedException ("ET");
+               }
+
                public override Expression DoResolve (EmitContext ec)
                {
                        return expr.DoResolve (ec);
@@ -664,6 +670,11 @@ namespace Mono.CSharp.Linq
                                // Nothing to clone
                        }
 
+                       public override Expression CreateExpressionTree (EmitContext ec)
+                       {
+                               throw new NotSupportedException ();
+                       }
+
                        public override Expression DoResolve (EmitContext ec)
                        {
                                throw new NotSupportedException ();