Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs/class
diff options
context:
space:
mode:
authorJb Evain <jbevain@gmail.com>2010-06-22 17:30:22 +0400
committerJb Evain <jbevain@gmail.com>2010-06-22 17:30:22 +0400
commit9678267eb6999dda69d976dd0f533fdc8e8ac1c2 (patch)
tree474dcebef195ae52b1f0b0fb67c38ae7614060ee /mcs/class
parent2f2bd4ce47627de08de6d2cba20b43dbb48a7a68 (diff)
2010-06-22 Jb Evain <jbevain@novell.com>
backport of r159337. * Queryable.cs: properly set the constants types in the queryable expression tree. svn path=/branches/mono-2-6/mcs/; revision=159338
Diffstat (limited to 'mcs/class')
-rw-r--r--mcs/class/System.Core/System.Linq/ChangeLog7
-rw-r--r--mcs/class/System.Core/System.Linq/Queryable.cs66
2 files changed, 40 insertions, 33 deletions
diff --git a/mcs/class/System.Core/System.Linq/ChangeLog b/mcs/class/System.Core/System.Linq/ChangeLog
index 241eb4d889a..4bf0dcaa06f 100644
--- a/mcs/class/System.Core/System.Linq/ChangeLog
+++ b/mcs/class/System.Core/System.Linq/ChangeLog
@@ -1,5 +1,12 @@
2010-06-22 Jb Evain <jbevain@novell.com>
+ backport of r159337.
+
+ * Queryable.cs: properly set the constants types in the queryable
+ expression tree.
+
+2010-06-22 Jb Evain <jbevain@novell.com>
+
backport of r159329.
* QueryableEnumerable.cs: override ToString.
diff --git a/mcs/class/System.Core/System.Linq/Queryable.cs b/mcs/class/System.Core/System.Linq/Queryable.cs
index 4aaccdff3bb..9d59829490a 100644
--- a/mcs/class/System.Core/System.Linq/Queryable.cs
+++ b/mcs/class/System.Core/System.Linq/Queryable.cs
@@ -77,7 +77,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource), typeof (TAccumulate)),
source.Expression,
- Expression.Constant (seed),
+ Expression.Constant (seed, typeof (TAccumulate)),
Expression.Quote (func)));
}
@@ -88,7 +88,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource), typeof (TAccumulate), typeof (TResult)),
source.Expression,
- Expression.Constant (seed),
+ Expression.Constant (seed, typeof (TAccumulate)),
Expression.Quote (func),
Expression.Quote (selector)));
}
@@ -406,7 +406,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source1.Expression,
- Expression.Constant (source2)));
+ Expression.Constant (source2, typeof (IEnumerable<TSource>))));
}
#endregion
@@ -421,7 +421,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source.Expression,
- Expression.Constant (item)));
+ Expression.Constant (item, typeof (TSource))));
}
public static bool Contains<TSource> (this IQueryable<TSource> source, TSource item, IEqualityComparer<TSource> comparer)
@@ -432,8 +432,8 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source.Expression,
- Expression.Constant (item),
- Expression.Constant (comparer)));
+ Expression.Constant (item, typeof (TSource)),
+ Expression.Constant (comparer, typeof (IEqualityComparer<TSource>))));
}
#endregion
@@ -480,7 +480,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source.Expression,
- Expression.Constant (defaultValue)));
+ Expression.Constant (defaultValue, typeof (TSource))));
}
#endregion
@@ -505,7 +505,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source.Expression,
- Expression.Constant (comparer)));
+ Expression.Constant (comparer, typeof (IEqualityComparer<TSource>))));
}
#endregion
@@ -550,7 +550,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source1.Expression,
- Expression.Constant (source2)));
+ Expression.Constant (source2, typeof (IEnumerable<TSource>))));
}
public static IQueryable<TSource> Except<TSource> (this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource> comparer)
@@ -561,8 +561,8 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source1.Expression,
- Expression.Constant (source2),
- Expression.Constant (comparer)));
+ Expression.Constant (source2, typeof (IEnumerable<TSource>)),
+ Expression.Constant (comparer, typeof (IEqualityComparer<TSource>))));
}
#endregion
@@ -638,7 +638,7 @@ namespace System.Linq {
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource), typeof (TKey)),
source.Expression,
Expression.Quote (keySelector),
- Expression.Constant (comparer)));
+ Expression.Constant (comparer, typeof (IEqualityComparer<TKey>))));
}
public static IQueryable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement> (this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector)
{
@@ -672,7 +672,7 @@ namespace System.Linq {
source.Expression,
Expression.Quote (keySelector),
Expression.Quote (elementSelector),
- Expression.Constant (comparer)));
+ Expression.Constant (comparer, typeof (IEqualityComparer<TKey>))));
}
public static IQueryable<TResult> GroupBy<TSource, TKey, TElement, TResult> (this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector, Expression<Func<TKey, IEnumerable<TElement>, TResult>> resultSelector)
{
@@ -697,7 +697,7 @@ namespace System.Linq {
source.Expression,
Expression.Quote (keySelector),
Expression.Quote (resultSelector),
- Expression.Constant (comparer)));
+ Expression.Constant (comparer, typeof (IEqualityComparer<TKey>))));
}
public static IQueryable<TResult> GroupBy<TSource, TKey, TElement, TResult> (this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector, Expression<Func<TKey, IEnumerable<TElement>, TResult>> resultSelector, IEqualityComparer<TKey> comparer)
{
@@ -710,7 +710,7 @@ namespace System.Linq {
Expression.Quote (keySelector),
Expression.Quote (elementSelector),
Expression.Quote (resultSelector),
- Expression.Constant (comparer)));
+ Expression.Constant (comparer, typeof (IEqualityComparer<TKey>))));
}
#endregion
@@ -733,7 +733,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TOuter), typeof (TInner), typeof (TKey), typeof (TResult)),
outer.Expression,
- Expression.Constant (inner),
+ Expression.Constant (inner, typeof (IEnumerable<TInner>)),
Expression.Quote (outerKeySelector),
Expression.Quote (innerKeySelector),
Expression.Quote (resultSelector)));
@@ -756,7 +756,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TOuter), typeof (TInner), typeof (TKey), typeof (TResult)),
outer.Expression,
- Expression.Constant (inner),
+ Expression.Constant (inner, typeof (IEnumerable<TInner>)),
Expression.Quote (outerKeySelector),
Expression.Quote (innerKeySelector),
Expression.Quote (resultSelector),
@@ -775,7 +775,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source1.Expression,
- Expression.Constant (source2)));
+ Expression.Constant (source2, typeof (IEnumerable<TSource>))));
}
public static IQueryable<TSource> Intersect<TSource> (this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource> comparer)
@@ -786,8 +786,8 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source1.Expression,
- Expression.Constant (source2),
- Expression.Constant (comparer)));
+ Expression.Constant (source2, typeof (IEnumerable<TSource>)),
+ Expression.Constant (comparer, typeof (IEqualityComparer<TSource>))));
}
#endregion
@@ -802,7 +802,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TOuter), typeof (TInner), typeof (TKey), typeof (TResult)),
outer.Expression,
- Expression.Constant (inner),
+ Expression.Constant (inner, typeof (IEnumerable<TInner>)),
Expression.Quote (outerKeySelector),
Expression.Quote (innerKeySelector),
Expression.Quote (resultSelector)));
@@ -816,11 +816,11 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TOuter), typeof (TInner), typeof (TKey), typeof (TResult)),
outer.Expression,
- Expression.Constant (inner),
+ Expression.Constant (inner, typeof (IEnumerable<TInner>)),
Expression.Quote (outerKeySelector),
Expression.Quote (innerKeySelector),
Expression.Quote (resultSelector),
- Expression.Constant (comparer)));
+ Expression.Constant (comparer, typeof (IEqualityComparer<TKey>))));
}
@@ -986,7 +986,7 @@ namespace System.Linq {
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource), typeof (TKey)),
source.Expression,
Expression.Quote (keySelector),
- Expression.Constant (comparer)));
+ Expression.Constant (comparer, typeof (IComparer<TKey>))));
}
#endregion
@@ -1013,7 +1013,7 @@ namespace System.Linq {
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource), typeof (TKey)),
source.Expression,
Expression.Quote (keySelector),
- Expression.Constant (comparer)));
+ Expression.Constant (comparer, typeof (IComparer<TKey>))));
}
#endregion
@@ -1118,7 +1118,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source1.Expression,
- Expression.Constant (source2)));
+ Expression.Constant (source2, typeof (IEnumerable<TSource>))));
}
public static bool SequenceEqual<TSource> (this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource> comparer)
@@ -1129,8 +1129,8 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source1.Expression,
- Expression.Constant (source2),
- Expression.Constant (comparer)));
+ Expression.Constant (source2, typeof (IEnumerable<TSource>)),
+ Expression.Constant (comparer, typeof (IEqualityComparer<TSource>))));
}
#endregion
@@ -1517,7 +1517,7 @@ namespace System.Linq {
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource), typeof (TKey)),
source.Expression,
Expression.Quote (keySelector),
- Expression.Constant (comparer)));
+ Expression.Constant (comparer, typeof (IComparer<TKey>))));
}
#endregion
@@ -1544,7 +1544,7 @@ namespace System.Linq {
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource), typeof (TKey)),
source.Expression,
Expression.Quote (keySelector),
- Expression.Constant (comparer)));
+ Expression.Constant (comparer, typeof (IComparer<TKey>))));
}
#endregion
@@ -1559,7 +1559,7 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source1.Expression,
- Expression.Constant (source2)));
+ Expression.Constant (source2, typeof (IEnumerable<TSource>))));
}
public static IQueryable<TSource> Union<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource> comparer)
@@ -1570,8 +1570,8 @@ namespace System.Linq {
StaticCall (
MakeGeneric (MethodBase.GetCurrentMethod (), typeof (TSource)),
source1.Expression,
- Expression.Constant (source2),
- Expression.Constant (comparer)));
+ Expression.Constant (source2, typeof (IEnumerable<TSource>)),
+ Expression.Constant (comparer, typeof (IEqualityComparer<TSource>))));
}