diff options
author | Marek Safar <marek.safar@gmail.com> | 2019-08-08 11:59:18 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2019-08-08 12:06:28 +0300 |
commit | af7cc3c3a5f3b42050df111231b7f0ed298ce6d9 (patch) | |
tree | 660b02cde3e6ee03d6958720f45cf59ed592a64b /src | |
parent | e4f7102bf749ab5f2566e7b3e5d1de5f6331cede (diff) |
Add dependency tracking for linker to EnumerableRewriter. Fixes https://github.com/mono/mono/issues/15259
Diffstat (limited to 'src')
-rw-r--r-- | src/System.Linq.Queryable/src/System/Linq/EnumerableRewriter.cs | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/System.Linq.Queryable/src/System/Linq/EnumerableRewriter.cs b/src/System.Linq.Queryable/src/System/Linq/EnumerableRewriter.cs index 5219fe59b2..488a589870 100644 --- a/src/System.Linq.Queryable/src/System/Linq/EnumerableRewriter.cs +++ b/src/System.Linq.Queryable/src/System/Linq/EnumerableRewriter.cs @@ -8,6 +8,7 @@ using System.Collections.ObjectModel; using System.Diagnostics; using System.Linq.Expressions; using System.Reflection; +using System.Runtime.CompilerServices; namespace System.Linq { @@ -212,6 +213,63 @@ namespace System.Linq private static ILookup<string, MethodInfo> s_seqMethods; + + [PreserveDependency ("Aggregate`1", "System.Linq.Enumerable")] + [PreserveDependency ("Aggregate`2", "System.Linq.Enumerable")] + [PreserveDependency ("Aggregate`3", "System.Linq.Enumerable")] + [PreserveDependency ("All`1", "System.Linq.Enumerable")] + [PreserveDependency ("Any`1", "System.Linq.Enumerable")] + [PreserveDependency ("Append`1", "System.Linq.Enumerable")] + [PreserveDependency ("Average", "System.Linq.Enumerable")] + [PreserveDependency ("Average`1", "System.Linq.Enumerable")] + [PreserveDependency ("Cast`1", "System.Linq.Enumerable")] + [PreserveDependency ("Concat`1", "System.Linq.Enumerable")] + [PreserveDependency ("Contains`1", "System.Linq.Enumerable")] + [PreserveDependency ("Count`1", "System.Linq.Enumerable")] + [PreserveDependency ("DefaultIfEmpty`1", "System.Linq.Enumerable")] + [PreserveDependency ("Distinct`1", "System.Linq.Enumerable")] + [PreserveDependency ("ElementAt`1", "System.Linq.Enumerable")] + [PreserveDependency ("ElementAtOrDefault`1", "System.Linq.Enumerable")] + [PreserveDependency ("Except`1", "System.Linq.Enumerable")] + [PreserveDependency ("First`1", "System.Linq.Enumerable")] + [PreserveDependency ("FirstOrDefault`1", "System.Linq.Enumerable")] + [PreserveDependency ("GroupBy`2", "System.Linq.Enumerable")] + [PreserveDependency ("GroupBy`3", "System.Linq.Enumerable")] + [PreserveDependency ("GroupBy`4", "System.Linq.Enumerable")] + [PreserveDependency ("GroupJoin`4", "System.Linq.Enumerable")] + [PreserveDependency ("Intersect`1", "System.Linq.Enumerable")] + [PreserveDependency ("Join`4", "System.Linq.Enumerable")] + [PreserveDependency ("Last`1", "System.Linq.Enumerable")] + [PreserveDependency ("LastOrDefault`1", "System.Linq.Enumerable")] + [PreserveDependency ("LongCount`1", "System.Linq.Enumerable")] + [PreserveDependency ("Max`1", "System.Linq.Enumerable")] + [PreserveDependency ("Max`2", "System.Linq.Enumerable")] + [PreserveDependency ("Min`1", "System.Linq.Enumerable")] + [PreserveDependency ("Min`2", "System.Linq.Enumerable")] + [PreserveDependency ("OfType`1", "System.Linq.Enumerable")] + [PreserveDependency ("OrderBy`2", "System.Linq.Enumerable")] + [PreserveDependency ("OrderByDescending`2", "System.Linq.Enumerable")] + [PreserveDependency ("Prepend`1", "System.Linq.Enumerable")] + [PreserveDependency ("Reverse`1", "System.Linq.Enumerable")] + [PreserveDependency ("Select`2", "System.Linq.Enumerable")] + [PreserveDependency ("SelectMany`2", "System.Linq.Enumerable")] + [PreserveDependency ("SelectMany`3", "System.Linq.Enumerable")] + [PreserveDependency ("SequenceEqual`1", "System.Linq.Enumerable")] + [PreserveDependency ("Single`1", "System.Linq.Enumerable")] + [PreserveDependency ("SingleOrDefault`1", "System.Linq.Enumerable")] + [PreserveDependency ("Skip`1", "System.Linq.Enumerable")] + [PreserveDependency ("SkipLast`1", "System.Linq.Enumerable")] + [PreserveDependency ("SkipWhile`1", "System.Linq.Enumerable")] + [PreserveDependency ("Sum", "System.Linq.Enumerable")] + [PreserveDependency ("Sum`1", "System.Linq.Enumerable")] + [PreserveDependency ("Take`1", "System.Linq.Enumerable")] + [PreserveDependency ("TakeLast`1", "System.Linq.Enumerable")] + [PreserveDependency ("TakeWhile`1", "System.Linq.Enumerable")] + [PreserveDependency ("ThenBy`2", "System.Linq.Enumerable")] + [PreserveDependency ("ThenByDescending`2", "System.Linq.Enumerable")] + [PreserveDependency ("Union`1", "System.Linq.Enumerable")] + [PreserveDependency ("Where`1", "System.Linq.Enumerable")] + [PreserveDependency ("Zip`3", "System.Linq.Enumerable")] private static MethodInfo FindEnumerableMethod(string name, ReadOnlyCollection<Expression> args, params Type[] typeArgs) { if (s_seqMethods == null) |