Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Look up Queryable operator MethodInfos without MakeGenericMethod #79717

Merged
merged 1 commit into from
Dec 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/libraries/Common/tests/System/Linq/SkipTakeData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public static IEnumerable<object[]> QueryableData()
return EnumerableData().Select(array =>
{
var enumerable = (IEnumerable<int>)array[0];
return new object[] { enumerable.AsQueryable(), array[1] };
return new[] { enumerable.AsQueryable(), array[1] };
});
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
<EnableAotAnalyzer>true</EnableAotAnalyzer>
</PropertyGroup>
<ItemGroup>
<Compile Include="System\Linq\CachedReflection.cs" />
<Compile Include="System\Linq\EnumerableExecutor.cs" />
<Compile Include="System\Linq\EnumerableQuery.cs" />
<Compile Include="System\Linq\EnumerableRewriter.cs" />
Expand Down
1,061 changes: 0 additions & 1,061 deletions src/libraries/System.Linq.Queryable/src/System/Linq/CachedReflection.cs

This file was deleted.

804 changes: 305 additions & 499 deletions src/libraries/System.Linq.Queryable/src/System/Linq/Queryable.cs

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions src/libraries/System.Linq.Queryable/tests/AggregateTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,21 +64,21 @@ public void NullResultSelector()
[Fact]
public void Aggregate1()
{
var val = (new int[] { 0, 2, 1 }).AsQueryable().Aggregate((n1, n2) => n1 + n2);
var val = new[] { 0, 2, 1 }.AsQueryable().Aggregate((n1, n2) => n1 + n2);
Assert.Equal((int)3, val);
}

[Fact]
public void Aggregate2()
{
var val = (new int[] { 0, 2, 1 }).AsQueryable().Aggregate("", (n1, n2) => n1 + n2.ToString());
var val = new[] { 0, 2, 1 }.AsQueryable().Aggregate("", (n1, n2) => n1 + n2.ToString());
Assert.Equal("021", val);
}

[Fact]
public void Aggregate3()
{
var val = (new int[] { 0, 2, 1 }).AsQueryable().Aggregate(0L, (n1, n2) => n1 + n2, n => n.ToString());
var val = new[] { 0, 2, 1 }.AsQueryable().Aggregate(0L, (n1, n2) => n1 + n2, n => n.ToString());
Assert.Equal("3", val);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/libraries/System.Linq.Queryable/tests/AllTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public void NullPredicateUsed()
[Fact]
public void All()
{
var val = (new int[] { 0, 2, 1 }).AsQueryable().All(n => n > 1);
var val = new[] { 0, 2, 1 }.AsQueryable().All(n => n > 1);
Assert.False(val);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/libraries/System.Linq.Queryable/tests/AnyTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,14 @@ public void NullPredicateUsed()
[Fact]
public void Any1()
{
var val = (new int[] { 0, 2, 1 }).AsQueryable().Any();
var val = new[] { 0, 2, 1 }.AsQueryable().Any();
Assert.True(val);
}

[Fact]
public void Any2()
{
var val = (new int[] { 0, 2, 1 }).AsQueryable().Any(n => n > 1);
var val = new[] { 0, 2, 1 }.AsQueryable().Any(n => n > 1);
Assert.True(val);
}
}
Expand Down
40 changes: 20 additions & 20 deletions src/libraries/System.Linq.Queryable/tests/AverageTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -432,140 +432,140 @@ public void MultipleFloatFromSelector()
[Fact]
public void Average1()
{
var val = (new int[] { 0, 2, 1 }).AsQueryable().Average();
var val = new[] { 0, 2, 1 }.AsQueryable().Average();
Assert.Equal((double)1, val);
}

[Fact]
public void Average2()
{
var val = (new int?[] { 0, 2, 1 }).AsQueryable().Average();
var val = new int?[] { 0, 2, 1 }.AsQueryable().Average();
Assert.Equal((double)1, val);
}

[Fact]
public void Average3()
{
var val = (new long[] { 0, 2, 1 }).AsQueryable().Average();
var val = new long[] { 0, 2, 1 }.AsQueryable().Average();
Assert.Equal((double)1, val);
}

[Fact]
public void Average4()
{
var val = (new long?[] { 0, 2, 1 }).AsQueryable().Average();
var val = new long?[] { 0, 2, 1 }.AsQueryable().Average();
Assert.Equal((double)1, val);
}

[Fact]
public void Average5()
{
var val = (new float[] { 0, 2, 1 }).AsQueryable().Average();
var val = new float[] { 0, 2, 1 }.AsQueryable().Average();
Assert.Equal((float)1, val);
}

[Fact]
public void Average6()
{
var val = (new float?[] { 0, 2, 1 }).AsQueryable().Average();
var val = new float?[] { 0, 2, 1 }.AsQueryable().Average();
Assert.Equal((float)1, val);
}

[Fact]
public void Average7()
{
var val = (new double[] { 0, 2, 1 }).AsQueryable().Average();
var val = new double[] { 0, 2, 1 }.AsQueryable().Average();
Assert.Equal((double)1, val);
}

[Fact]
public void Average8()
{
var val = (new double?[] { 0, 2, 1 }).AsQueryable().Average();
var val = new double?[] { 0, 2, 1 }.AsQueryable().Average();
Assert.Equal((double)1, val);
}

[Fact]
public void Average9()
{
var val = (new decimal[] { 0, 2, 1 }).AsQueryable().Average();
var val = new decimal[] { 0, 2, 1 }.AsQueryable().Average();
Assert.Equal((decimal)1, val);
}

[Fact]
public void Average10()
{
var val = (new decimal?[] { 0, 2, 1 }).AsQueryable().Average();
var val = new decimal?[] { 0, 2, 1 }.AsQueryable().Average();
Assert.Equal((decimal)1, val);
}

[Fact]
public void Average11()
{
var val = (new int[] { 0, 2, 1 }).AsQueryable().Average(n => n);
var val = new[] { 0, 2, 1 }.AsQueryable().Average(n => n);
Assert.Equal((double)1, val);
}

[Fact]
public void Average12()
{
var val = (new int?[] { 0, 2, 1 }).AsQueryable().Average(n => n);
var val = new int?[] { 0, 2, 1 }.AsQueryable().Average(n => n);
Assert.Equal((double)1, val);
}

[Fact]
public void Average13()
{
var val = (new long[] { 0, 2, 1 }).AsQueryable().Average(n => n);
var val = new long[] { 0, 2, 1 }.AsQueryable().Average(n => n);
Assert.Equal((double)1, val);
}

[Fact]
public void Average14()
{
var val = (new long?[] { 0, 2, 1 }).AsQueryable().Average(n => n);
var val = new long?[] { 0, 2, 1 }.AsQueryable().Average(n => n);
Assert.Equal((double)1, val);
}

[Fact]
public void Average15()
{
var val = (new float[] { 0, 2, 1 }).AsQueryable().Average(n => n);
var val = new float[] { 0, 2, 1 }.AsQueryable().Average(n => n);
Assert.Equal((float)1, val);
}

[Fact]
public void Average16()
{
var val = (new float?[] { 0, 2, 1 }).AsQueryable().Average(n => n);
var val = new float?[] { 0, 2, 1 }.AsQueryable().Average(n => n);
Assert.Equal((float)1, val);
}

[Fact]
public void Average17()
{
var val = (new double[] { 0, 2, 1 }).AsQueryable().Average(n => n);
var val = new double[] { 0, 2, 1 }.AsQueryable().Average(n => n);
Assert.Equal((double)1, val);
}

[Fact]
public void Average18()
{
var val = (new double?[] { 0, 2, 1 }).AsQueryable().Average(n => n);
var val = new double?[] { 0, 2, 1 }.AsQueryable().Average(n => n);
Assert.Equal((double)1, val);
}

[Fact]
public void Average19()
{
var val = (new decimal[] { 0, 2, 1 }).AsQueryable().Average(n => n);
var val = new decimal[] { 0, 2, 1 }.AsQueryable().Average(n => n);
Assert.Equal((decimal)1, val);
}

[Fact]
public void Average20()
{
var val = (new decimal?[] { 0, 2, 1 }).AsQueryable().Average(n => n);
var val = new decimal?[] { 0, 2, 1 }.AsQueryable().Average(n => n);
Assert.Equal((decimal)1, val);
}
}
Expand Down
14 changes: 7 additions & 7 deletions src/libraries/System.Linq.Queryable/tests/CastTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public void ThrowOnUncastableItem()
[Fact]
public void ThrowCastingIntToDouble()
{
int[] source = new int[] { -4, 1, 2, 9 };
int[] source = { -4, 1, 2, 9 };

IQueryable<double> cast = source.AsQueryable().Cast<double>();
Assert.Throws<InvalidCastException>(() => cast.ToList());
Expand Down Expand Up @@ -159,7 +159,7 @@ public void NullableIntFromNullsAndInts()
[Fact]
public void ThrowCastingIntToLong()
{
int[] source = new int[] { -4, 1, 2, 3, 9 };
int[] source = { -4, 1, 2, 3, 9 };

IQueryable<long> cast = source.AsQueryable().Cast<long>();
Assert.Throws<InvalidCastException>(() => cast.ToList());
Expand All @@ -168,7 +168,7 @@ public void ThrowCastingIntToLong()
[Fact]
public void ThrowCastingIntToNullableLong()
{
int[] source = new int[] { -4, 1, 2, 3, 9 };
int[] source = { -4, 1, 2, 3, 9 };

IQueryable<long?> cast = source.AsQueryable().Cast<long?>();
Assert.Throws<InvalidCastException>(() => cast.ToList());
Expand All @@ -177,7 +177,7 @@ public void ThrowCastingIntToNullableLong()
[Fact]
public void ThrowCastingNullableIntToLong()
{
int?[] source = new int?[] { -4, 1, 2, 3, 9 };
int?[] source = { -4, 1, 2, 3, 9 };

IQueryable<long> cast = source.AsQueryable().Cast<long>();
Assert.Throws<InvalidCastException>(() => cast.ToList());
Expand All @@ -186,7 +186,7 @@ public void ThrowCastingNullableIntToLong()
[Fact]
public void ThrowCastingNullableIntToNullableLong()
{
int?[] source = new int?[] { -4, 1, 2, 3, 9, null };
int?[] source = { -4, 1, 2, 3, 9, null };

IQueryable<long?> cast = source.AsQueryable().Cast<long?>();
Assert.Throws<InvalidCastException>(() => cast.ToList());
Expand All @@ -195,7 +195,7 @@ public void ThrowCastingNullableIntToNullableLong()
[Fact]
public void CastingNullToNonnullableIsNullReferenceException()
{
int?[] source = new int?[] { -4, 1, null, 3 };
int?[] source = { -4, 1, null, 3 };
IQueryable<int> cast = source.AsQueryable().Cast<int>();
Assert.Throws<NullReferenceException>(() => cast.ToList());
}
Expand All @@ -209,7 +209,7 @@ public void NullSource()
[Fact]
public void Cast()
{
var count = (new object[] { 0, 1, 2 }).AsQueryable().Cast<int>().Count();
var count = new object[] { 0, 1, 2 }.AsQueryable().Cast<int>().Count();
Assert.Equal(3, count);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/libraries/System.Linq.Queryable/tests/ConcatTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public void SecondNull()
[Fact]
public void Concat()
{
var count = (new int[] { 0, 1, 2 }).AsQueryable().Concat((new int[] { 10, 11, 12 }).AsQueryable()).Count();
var count = new[] { 0, 1, 2 }.AsQueryable().Concat(new[] { 10, 11, 12 }.AsQueryable()).Count();
Assert.Equal(6, count);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/libraries/System.Linq.Queryable/tests/ContainsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,14 @@ public void NullSource()
[Fact]
public void Contains1()
{
var val = (new int[] { 0, 2, 1 }).AsQueryable().Contains(1);
var val = new[] { 0, 2, 1 }.AsQueryable().Contains(1);
Assert.True(val);
}

[Fact]
public void Contains2()
{
var val = (new int[] { 0, 2, 1 }).AsQueryable().Contains(1, EqualityComparer<int>.Default);
var val = new[] { 0, 2, 1 }.AsQueryable().Contains(1, EqualityComparer<int>.Default);
Assert.True(val);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/libraries/System.Linq.Queryable/tests/CountTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,14 @@ public void NullPredicateUsed()
[Fact]
public void Count1()
{
var count = (new int[] { 0 }).AsQueryable().Count();
var count = new[] { 0 }.AsQueryable().Count();
Assert.Equal(1, count);
}

[Fact]
public void Count2()
{
var count = (new int[] { 0, 1, 2 }).AsQueryable().Count(n => n > 0);
var count = new[] { 0, 1, 2 }.AsQueryable().Count(n => n > 0);
Assert.Equal(2, count);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,14 @@ public void NullSource()
[Fact]
public void DefaultIfEmpty1()
{
var count = (new int[] { }).AsQueryable().DefaultIfEmpty().Count();
var count = new int[] { }.AsQueryable().DefaultIfEmpty().Count();
Assert.Equal(1, count);
}

[Fact]
public void DefaultIfEmpty2()
{
var count = (new int[] { }).AsQueryable().DefaultIfEmpty(3).Count();
var count = new int[] { }.AsQueryable().DefaultIfEmpty(3).Count();
Assert.Equal(1, count);
}

Expand Down
4 changes: 2 additions & 2 deletions src/libraries/System.Linq.Queryable/tests/DistinctTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,14 @@ public void NullSourceCustomComparer()
[Fact]
public void Distinct1()
{
var count = (new int[] { 0, 1, 2, 2, 0 }).AsQueryable().Distinct().Count();
var count = new[] { 0, 1, 2, 2, 0 }.AsQueryable().Distinct().Count();
Assert.Equal(3, count);
}

[Fact]
public void Distinct2()
{
var count = (new int[] { 0, 1, 2, 2, 0 }).AsQueryable().Distinct(EqualityComparer<int>.Default).Count();
var count = new[] { 0, 1, 2, 2, 0 }.AsQueryable().Distinct(EqualityComparer<int>.Default).Count();
Assert.Equal(3, count);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public void InappropriateExpressionType()
public void WrapsEnumerableInExpression()
{
int[] source = { 1, 2, 3 };
IQueryable<int> query = (source).AsQueryable();
IQueryable<int> query = source.AsQueryable();
var exp = (ConstantExpression)query.Expression;
Assert.Equal(source, (IEnumerable<int>)exp.Value);
}
Expand Down
4 changes: 2 additions & 2 deletions src/libraries/System.Linq.Queryable/tests/ExceptTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,14 @@ public void SecondNullNoComparer()
[Fact]
public void Except1()
{
var count = (new int[] { 0, 1, 2 }).AsQueryable().Except((new int[] { 1, 2, 3 }).AsQueryable()).Count();
var count = new[] { 0, 1, 2 }.AsQueryable().Except(new[] { 1, 2, 3 }.AsQueryable()).Count();
Assert.Equal(1, count);
}

[Fact]
public void Except2()
{
var count = (new int[] { 0, 1, 2 }).AsQueryable().Except((new int[] { 1, 2, 3 }).AsQueryable(), EqualityComparer<int>.Default).Count();
var count = new[] { 0, 1, 2 }.AsQueryable().Except(new[] { 1, 2, 3 }.AsQueryable(), EqualityComparer<int>.Default).Count();
Assert.Equal(1, count);
}

Expand Down
Loading