diff --git a/Directory.Build.props b/Directory.Build.props index f6776738457046..3c8246c896739e 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -114,8 +114,8 @@ - 7.0.0 - net7.0 + 8.0.0 + net8.0 $(NetFrameworkToolCurrent) diff --git a/docs/project/library-servicing.md b/docs/project/library-servicing.md index dd5f4b3a766a81..bea41e65265b46 100644 --- a/docs/project/library-servicing.md +++ b/docs/project/library-servicing.md @@ -4,6 +4,7 @@ This document provides the steps that need to be followed after modifying a libr Servicing branches represent shipped versions of .NET, and their name is in the format `release/X.0-staging`. Examples: +- `release/8.0-staging` - `release/7.0-staging` - `release/6.0-staging` @@ -32,11 +33,12 @@ All the servicing change must go through an approval process. You have two ways - By manually creating your PR using [this template](https://raw.githubusercontent.com/dotnet/runtime/main/.github/PULL_REQUEST_TEMPLATE/servicing_pull_request_template.md). - Or by asking the bot to automatically create the servicing PR for you using a merged `main` PR as source. This method requires typing an AzDO backport command as a comment of your merged PR using the format `/backport to release/X.0-staging`. Examples: -- + + - `/backport to release/8.0-staging` - `/backport to release/7.0-staging` - `/backport to release/6.0-staging` -For both cases, you must: +For all cases, you must: - Fill out the template of the PR description. - Bring it to the attention of the [engineering lead responsible for the area](~/docs/area-owners.md). diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4d2d5b07608b86..14a6dd1a0ccbc0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -99,9 +99,9 @@ 0af50f733332e8c148f7f2debef2cb90504840d5 - + https://github.com/dotnet/source-build-reference-packages - b4fa7f2e1e65ef49881be2ab2df27624280a8c55 + fa4c0e8f53ef2541a23e519af4dfb86cb88e1bae @@ -354,9 +354,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-optimization c68e08c656a1e9b058fe22cc0546dbbd245c85fb - + https://github.com/dotnet/hotreload-utils - 8e108a21d0c7d8fa2050a1bdd4d4ba50d2b8df13 + 12d02e5c2310be6460f896bc3aeb0ddf1e8926bc https://github.com/dotnet/runtime-assets @@ -383,9 +383,13 @@ https://github.com/dotnet/roslyn-analyzers b4d9a1334d5189172977ba8fddd00bda70161e4a - + https://github.com/dotnet/sdk - 7e33fd449381b337c290a801057fdcd68c4b7220 + e9d13cbe7e8c1d52ce276a8655f52a87e1017c46 + + + https://github.com/dotnet/sdk + e9d13cbe7e8c1d52ce276a8655f52a87e1017c46 diff --git a/eng/Versions.props b/eng/Versions.props index d37b781bec6fe8..ced5caaeb98999 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -7,7 +7,7 @@ 0 1 8.0.100 - 7.0.14 + 7.0.$([MSBuild]::Add($(PatchVersion),14)) 6.0.$([MSBuild]::Add($([System.Version]::Parse('$(PackageVersionNet7)').Build),11)) servicing @@ -85,7 +85,7 @@ 0.2.0 - 8.0.100-rtm.23520.8 + 8.0.100 8.0.0-beta.23556.5 8.0.0-beta.23556.5 @@ -127,7 +127,7 @@ 7.0.0 5.0.0 4.8.5 - 7.0.0 + 8.0.0 5.0.0 4.5.5 7.0.0 @@ -186,7 +186,7 @@ 8.0.0-prerelease.23407.2 8.0.0-prerelease.23407.2 8.0.0-prerelease.23407.2 - 8.0.0-alpha.0.23523.2 + 8.0.0-alpha.0.23563.1 2.4.2 1.0.0 2.4.5 @@ -258,7 +258,7 @@ 3.1.7 1.0.406601 - 8.0.100-rtm.23506.1 - + 8.0.100 + $(MicrosoftDotnetSdkInternalVersion) diff --git a/eng/packaging.targets b/eng/packaging.targets index a36102a37acd5d..a1fbe07ed2a570 100644 --- a/eng/packaging.targets +++ b/eng/packaging.targets @@ -11,6 +11,7 @@ '$(SuppressFinalPackageVersion)' == 'true' or '$(DotNetBuildFromSource)' == 'true'">true $(ApiCompatNetCoreAppBaselineVersion) + $(BeforePack);IncludeAnalyzersInPackage;AddNETStandardCompatErrorFileForPackaging $(TargetsForTfmSpecificContentInPackage);AddRuntimeSpecificFilesToPackage;IncludeProjectReferencesWithPackAttributeInPackage @@ -37,6 +38,13 @@ false + + + true + + $(NoWarn);CP0003 + + - - - - CP0002 - M:Microsoft.Extensions.DependencyInjection.Specification.DependencyInjectionSpecificationTests.TypeActivatorCreateInstanceUsesFirstMathchedConstructor(System.Object,System.String) - true - - \ No newline at end of file diff --git a/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs b/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs index 47cb71c3411cde..ab2c19de81923a 100644 --- a/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs +++ b/src/libraries/Microsoft.Extensions.Options/gen/Parser.cs @@ -687,7 +687,7 @@ private void TrackRangeAttributeForSubstitution(AttributeData attribute, ITypeSy var model = new ValidatedModel( GetFQN(mt), mt.Name, - false, + ModelSelfValidates(mt), membersToValidate); var validatorTypeName = "__" + mt.Name + "Validator__"; diff --git a/src/libraries/Microsoft.Extensions.Options/src/Microsoft.Extensions.Options.csproj b/src/libraries/Microsoft.Extensions.Options/src/Microsoft.Extensions.Options.csproj index c7ea3e00049e3e..abbc5d2329c5c1 100644 --- a/src/libraries/Microsoft.Extensions.Options/src/Microsoft.Extensions.Options.csproj +++ b/src/libraries/Microsoft.Extensions.Options/src/Microsoft.Extensions.Options.csproj @@ -4,6 +4,8 @@ $(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.1;netstandard2.0;$(NetFrameworkMinimum) true true + true + 1 Provides a strongly typed way of specifying and accessing settings using dependency injection. diff --git a/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Baselines/NetCoreApp/Validators.g.cs b/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Baselines/NetCoreApp/Validators.g.cs index c487888c9f16bb..956cae26e90f6d 100644 --- a/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Baselines/NetCoreApp/Validators.g.cs +++ b/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Baselines/NetCoreApp/Validators.g.cs @@ -1154,6 +1154,41 @@ partial class FirstValidator } } namespace SelfValidation +{ + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Extensions.Options.SourceGeneration", "42.42.42.42")] + internal sealed partial class __SecondModelValidator__ + { + /// + /// Validates a specific named options instance (or all when is ). + /// + /// The name of the options instance being validated. + /// The options instance. + /// Validation result. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Extensions.Options.SourceGeneration", "42.42.42.42")] + [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage("Trimming", "IL2026:RequiresUnreferencedCode", + Justification = "The created ValidationContext object is used in a way that never call reflection")] + public static global::Microsoft.Extensions.Options.ValidateOptionsResult Validate(string? name, global::SelfValidation.SecondModel options) + { + global::Microsoft.Extensions.Options.ValidateOptionsResultBuilder? builder = null; + var context = new global::System.ComponentModel.DataAnnotations.ValidationContext(options); + var validationResults = new global::System.Collections.Generic.List(); + var validationAttributes = new global::System.Collections.Generic.List(1); + + context.MemberName = "P3"; + context.DisplayName = string.IsNullOrEmpty(name) ? "SecondModel.P3" : $"{name}.P3"; + validationAttributes.Add(global::__OptionValidationStaticInstances.__Attributes.A1); + if (!global::System.ComponentModel.DataAnnotations.Validator.TryValidateValue(options.P3, context, validationResults, validationAttributes)) + { + (builder ??= new()).AddResults(validationResults); + } + + (builder ??= new()).AddResults(((global::System.ComponentModel.DataAnnotations.IValidatableObject)options).Validate(context)); + + return builder is null ? global::Microsoft.Extensions.Options.ValidateOptionsResult.Success : builder.Build(); + } + } +} +namespace SelfValidation { partial struct FirstValidator { @@ -1181,6 +1216,21 @@ partial struct FirstValidator (builder ??= new()).AddResults(validationResults); } + context.MemberName = "P2"; + context.DisplayName = string.IsNullOrEmpty(name) ? "FirstModel.P2" : $"{name}.P2"; + validationResults.Clear(); + validationAttributes.Clear(); + validationAttributes.Add(global::__OptionValidationStaticInstances.__Attributes.A1); + if (!global::System.ComponentModel.DataAnnotations.Validator.TryValidateValue(options.P2, context, validationResults, validationAttributes)) + { + (builder ??= new()).AddResults(validationResults); + } + + if (options.P2 is not null) + { + (builder ??= new()).AddResult(global::SelfValidation.__SecondModelValidator__.Validate(string.IsNullOrEmpty(name) ? "FirstModel.P2" : $"{name}.P2", options.P2)); + } + (builder ??= new()).AddResults(((global::System.ComponentModel.DataAnnotations.IValidatableObject)options).Validate(context)); return builder is null ? global::Microsoft.Extensions.Options.ValidateOptionsResult.Success : builder.Build(); diff --git a/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Baselines/NetFX/Validators.g.cs b/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Baselines/NetFX/Validators.g.cs index 7e998cea22cddf..faae7d62d9c410 100644 --- a/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Baselines/NetFX/Validators.g.cs +++ b/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Baselines/NetFX/Validators.g.cs @@ -1098,6 +1098,39 @@ partial class FirstValidator } } namespace SelfValidation +{ + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Extensions.Options.SourceGeneration", "42.42.42.42")] + internal sealed partial class __SecondModelValidator__ + { + /// + /// Validates a specific named options instance (or all when is ). + /// + /// The name of the options instance being validated. + /// The options instance. + /// Validation result. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Extensions.Options.SourceGeneration", "42.42.42.42")] + public static global::Microsoft.Extensions.Options.ValidateOptionsResult Validate(string? name, global::SelfValidation.SecondModel options) + { + global::Microsoft.Extensions.Options.ValidateOptionsResultBuilder? builder = null; + var context = new global::System.ComponentModel.DataAnnotations.ValidationContext(options); + var validationResults = new global::System.Collections.Generic.List(); + var validationAttributes = new global::System.Collections.Generic.List(1); + + context.MemberName = "P3"; + context.DisplayName = string.IsNullOrEmpty(name) ? "SecondModel.P3" : $"{name}.P3"; + validationAttributes.Add(global::__OptionValidationStaticInstances.__Attributes.A1); + if (!global::System.ComponentModel.DataAnnotations.Validator.TryValidateValue(options.P3, context, validationResults, validationAttributes)) + { + (builder ??= new()).AddResults(validationResults); + } + + (builder ??= new()).AddResults(((global::System.ComponentModel.DataAnnotations.IValidatableObject)options).Validate(context)); + + return builder is null ? global::Microsoft.Extensions.Options.ValidateOptionsResult.Success : builder.Build(); + } + } +} +namespace SelfValidation { partial struct FirstValidator { @@ -1123,6 +1156,21 @@ partial struct FirstValidator (builder ??= new()).AddResults(validationResults); } + context.MemberName = "P2"; + context.DisplayName = string.IsNullOrEmpty(name) ? "FirstModel.P2" : $"{name}.P2"; + validationResults.Clear(); + validationAttributes.Clear(); + validationAttributes.Add(global::__OptionValidationStaticInstances.__Attributes.A1); + if (!global::System.ComponentModel.DataAnnotations.Validator.TryValidateValue(options.P2, context, validationResults, validationAttributes)) + { + (builder ??= new()).AddResults(validationResults); + } + + if (options.P2 is not null) + { + (builder ??= new()).AddResult(global::SelfValidation.__SecondModelValidator__.Validate(string.IsNullOrEmpty(name) ? "FirstModel.P2" : $"{name}.P2", options.P2)); + } + (builder ??= new()).AddResults(((global::System.ComponentModel.DataAnnotations.IValidatableObject)options).Validate(context)); return builder is null ? global::Microsoft.Extensions.Options.ValidateOptionsResult.Success : builder.Build(); diff --git a/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Generated/SelfValidationTests.cs b/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Generated/SelfValidationTests.cs index 0a511333f03571..36d15fe74a10e5 100644 --- a/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Generated/SelfValidationTests.cs +++ b/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/Generated/SelfValidationTests.cs @@ -15,12 +15,16 @@ public void Invalid() var firstModel = new FirstModel { P1 = "1234", + P2 = new SecondModel + { + P3 = "5678" + } }; var validator = default(FirstValidator); var vr = validator.Validate("SelfValidation", firstModel); - Utils.VerifyValidateOptionsResult(vr, 1, "P1"); + Utils.VerifyValidateOptionsResult(vr, 2, "P3", "P1"); } [Fact] @@ -29,6 +33,10 @@ public void Valid() var firstModel = new FirstModel { P1 = "12345", + P2 = new SecondModel + { + P3 = "67890" + } }; var validator = default(FirstValidator); diff --git a/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/TestClasses/SelfValidation.cs b/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/TestClasses/SelfValidation.cs index 1ca4e93142a372..893c3ffc90ad99 100644 --- a/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/TestClasses/SelfValidation.cs +++ b/src/libraries/Microsoft.Extensions.Options/tests/SourceGenerationTests/TestClasses/SelfValidation.cs @@ -15,6 +15,10 @@ public class FirstModel : IValidatableObject [Required] public string P1 { get; set; } = string.Empty; + [Required] + [ValidateObjectMembers] + public SecondModel P2 { get; set; } + public IEnumerable Validate(ValidationContext validationContext) { if (P1.Length < 5) @@ -26,6 +30,22 @@ public IEnumerable Validate(ValidationContext validationContex } } + public class SecondModel : IValidatableObject + { + [Required] + public string P3 { get; set; } = string.Empty; + + public IEnumerable Validate(ValidationContext validationContext) + { + if (P3.Length < 5) + { + return new[] { new ValidationResult("P3 is not long enough") }; + } + + return Array.Empty(); + } + } + [OptionsValidator] public partial struct FirstValidator : IValidateOptions { diff --git a/src/libraries/Microsoft.NET.WebAssembly.Threading/src/CompatibilitySuppressions.xml b/src/libraries/Microsoft.NET.WebAssembly.Threading/src/CompatibilitySuppressions.xml deleted file mode 100644 index 26a2ff56955993..00000000000000 --- a/src/libraries/Microsoft.NET.WebAssembly.Threading/src/CompatibilitySuppressions.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - PKV006 - net7.0 - - \ No newline at end of file diff --git a/src/libraries/Microsoft.NET.WebAssembly.Threading/src/Microsoft.NET.WebAssembly.Threading.proj b/src/libraries/Microsoft.NET.WebAssembly.Threading/src/Microsoft.NET.WebAssembly.Threading.proj index 3613b012fe57f2..45b3320dcfb5f6 100644 --- a/src/libraries/Microsoft.NET.WebAssembly.Threading/src/Microsoft.NET.WebAssembly.Threading.proj +++ b/src/libraries/Microsoft.NET.WebAssembly.Threading/src/Microsoft.NET.WebAssembly.Threading.proj @@ -12,6 +12,7 @@ $(NoWarn);NU5128;NU5131;PKV004 ref + true diff --git a/src/libraries/System.Collections.Immutable/src/System/Collections/Frozen/String/KeyAnalyzer.cs b/src/libraries/System.Collections.Immutable/src/System/Collections/Frozen/String/KeyAnalyzer.cs index da050f12a83cb5..23742d276e23fc 100644 --- a/src/libraries/System.Collections.Immutable/src/System/Collections/Frozen/String/KeyAnalyzer.cs +++ b/src/libraries/System.Collections.Immutable/src/System/Collections/Frozen/String/KeyAnalyzer.cs @@ -37,7 +37,7 @@ public static AnalysisResults Analyze( AnalysisResults results; if (minLength == 0 || !TryUseSubstring(uniqueStrings, ignoreCase, minLength, maxLength, out results)) { - results = CreateAnalysisResults(uniqueStrings, ignoreCase, minLength, maxLength, 0, 0, static (s, _, _) => s.AsSpan()); + results = CreateAnalysisResults(uniqueStrings, ignoreCase, minLength, maxLength, 0, 0, isSubstring: false, static (s, _, _) => s.AsSpan()); } return results; @@ -71,7 +71,7 @@ private static bool TryUseSubstring(ReadOnlySpan uniqueStrings, bool ign if (HasSufficientUniquenessFactor(set, uniqueStrings)) { results = CreateAnalysisResults( - uniqueStrings, ignoreCase, minLength, maxLength, index, count, + uniqueStrings, ignoreCase, minLength, maxLength, index, count, isSubstring: true, static (string s, int index, int count) => s.AsSpan(index, count)); return true; } @@ -96,7 +96,7 @@ private static bool TryUseSubstring(ReadOnlySpan uniqueStrings, bool ign if (HasSufficientUniquenessFactor(set, uniqueStrings)) { results = CreateAnalysisResults( - uniqueStrings, ignoreCase, minLength, maxLength, comparer.Index, count, + uniqueStrings, ignoreCase, minLength, maxLength, comparer.Index, count, isSubstring: true, static (string s, int index, int count) => s.AsSpan(s.Length + index, count)); return true; } @@ -110,7 +110,7 @@ private static bool TryUseSubstring(ReadOnlySpan uniqueStrings, bool ign } private static AnalysisResults CreateAnalysisResults( - ReadOnlySpan uniqueStrings, bool ignoreCase, int minLength, int maxLength, int index, int count, GetSpan getSubstringSpan) + ReadOnlySpan uniqueStrings, bool ignoreCase, int minLength, int maxLength, int index, int count, bool isSubstring, GetSpan getSubstringSpan) { // Start off by assuming all strings are ASCII bool allAsciiIfIgnoreCase = true; @@ -120,11 +120,11 @@ private static AnalysisResults CreateAnalysisResults( // substrings are ASCII, so we check each. if (ignoreCase) { - // Further, if the ASCII substrings don't contain any letters, then we can + // Further, if the ASCII keys (in their entirety) don't contain any letters, then we can // actually perform the comparison as case-sensitive even if case-insensitive // was requested, as there's nothing that would compare equally to the substring // other than the substring itself. - bool canSwitchIgnoreCaseToCaseSensitive = true; + bool canSwitchIgnoreCaseHashToCaseSensitive = !isSubstring; foreach (string s in uniqueStrings) { @@ -135,20 +135,20 @@ private static AnalysisResults CreateAnalysisResults( if (!IsAllAscii(substring)) { allAsciiIfIgnoreCase = false; - canSwitchIgnoreCaseToCaseSensitive = false; + canSwitchIgnoreCaseHashToCaseSensitive = false; break; } // All substrings so far are still ASCII only. If this one contains any ASCII // letters, mark that we can't switch to case-sensitive. - if (canSwitchIgnoreCaseToCaseSensitive && ContainsAnyLetters(substring)) + if (canSwitchIgnoreCaseHashToCaseSensitive && ContainsAnyLetters(substring)) { - canSwitchIgnoreCaseToCaseSensitive = false; + canSwitchIgnoreCaseHashToCaseSensitive = false; } } // If we can switch to case-sensitive, do so. - if (canSwitchIgnoreCaseToCaseSensitive) + if (canSwitchIgnoreCaseHashToCaseSensitive) { ignoreCase = false; } diff --git a/src/libraries/System.Collections.Immutable/tests/Frozen/FrozenFromKnownValuesTests.cs b/src/libraries/System.Collections.Immutable/tests/Frozen/FrozenFromKnownValuesTests.cs index e11de4412941e5..5776a7373bb5fd 100644 --- a/src/libraries/System.Collections.Immutable/tests/Frozen/FrozenFromKnownValuesTests.cs +++ b/src/libraries/System.Collections.Immutable/tests/Frozen/FrozenFromKnownValuesTests.cs @@ -142,6 +142,15 @@ public static IEnumerable StringStringData() => Enumerable.Range(0, 100).Select(i => $"{i:D2}ABCDEFGH\U0001F600").ToArray(), // left justified substring non-ascii Enumerable.Range(0, 100).Select(i => $"ABCDEFGH\U0001F600{i:D2}").ToArray(), // right justified substring non-ascii Enumerable.Range(0, 20).Select(i => i.ToString("D2")).Select(s => (char)(s[0] + 128) + "" + (char)(s[1] + 128)).ToArray(), // left-justified non-ascii + + Enumerable.Range(0, 10).Select(i => $"{i}ABCDefgh").ToArray(), // left justified single char ascii, mixed casing + Enumerable.Range(0, 10).Select(i => $"ABCDefgh{i}").ToArray(), // right justified single char ascii, mixed casing + Enumerable.Range(0, 100).Select(i => $"{i:D2}ABCDefgh").ToArray(), // left justified substring ascii, mixed casing + Enumerable.Range(0, 100).Select(i => $"ABCDefgh{i:D2}").ToArray(), // right justified substring ascii, mixed casing + Enumerable.Range(0, 10).Select(i => $"{i}ABCDefgh\U0001F600").ToArray(), // left justified single char non-ascii, mixed casing + Enumerable.Range(0, 10).Select(i => $"ABCDefgh\U0001F600{i}").ToArray(), // right justified single char non-ascii, mixed casing + Enumerable.Range(0, 100).Select(i => $"{i:D2}ABCDefgh\U0001F600").ToArray(), // left justified substring non-ascii, mixed casing + Enumerable.Range(0, 100).Select(i => $"ABCDefgh\U0001F600{i:D2}").ToArray(), // right justified substring non-ascii, mixed casing } select new object[] { keys.ToDictionary(i => i, i => i, comparer) }; @@ -191,6 +200,23 @@ private static void FrozenDictionaryWorker(Dictionary pair in source) + { + TKey keyUpper = (TKey)(object)((string)(object)pair.Key).ToUpper(); + bool isValidTest = frozen.Comparer.Equals(pair.Key, keyUpper); + if (isValidTest) + { + Assert.Equal(pair.Value, frozen.GetValueRefOrNullRef(keyUpper)); + Assert.Equal(pair.Value, frozen[keyUpper]); + Assert.True(frozen.TryGetValue(keyUpper, out TValue value)); + Assert.Equal(pair.Value, value); + } + } + } + foreach (KeyValuePair pair in frozen) { Assert.True(source.TryGetValue(pair.Key, out TValue value)); @@ -269,6 +295,22 @@ private void FrozenSetWorker(Dictionary source) Assert.True(frozen.TryGetValue(pair.Key, out TKey actualKey)); Assert.Equal(pair.Key, actualKey); } + + if (typeof(TKey) == typeof(string) && ReferenceEquals(frozen.Comparer, StringComparer.OrdinalIgnoreCase)) + { + foreach (KeyValuePair pair in source) + { + TKey keyUpper = (TKey)(object)((string)(object)pair.Key).ToUpper(); + bool isValidTest = frozen.Comparer.Equals(pair.Key, keyUpper); + if (isValidTest) + { + Assert.True(frozen.Contains(keyUpper)); + Assert.True(frozen.TryGetValue(keyUpper, out TKey actualKey)); + Assert.Equal(pair.Key, actualKey); + } + } + } + foreach (TKey key in frozen) { Assert.True(source.TryGetValue(key, out _)); diff --git a/src/libraries/System.Collections.Immutable/tests/Frozen/KeyAnalyzerTests.cs b/src/libraries/System.Collections.Immutable/tests/Frozen/KeyAnalyzerTests.cs index 6ddec56b6005e8..417ac4eb3533da 100644 --- a/src/libraries/System.Collections.Immutable/tests/Frozen/KeyAnalyzerTests.cs +++ b/src/libraries/System.Collections.Immutable/tests/Frozen/KeyAnalyzerTests.cs @@ -97,6 +97,14 @@ public static void LeftHandCaseInsensitive() Assert.False(r.AllAsciiIfIgnoreCase); Assert.Equal(7, r.HashIndex); Assert.Equal(1, r.HashCount); + + r = RunAnalysis(new[] { "1abc", "2abc", "3abc", "4abc", "5abc", "6abc" }, true); + Assert.False(r.RightJustifiedSubstring); + Assert.True(r.IgnoreCase); + Assert.True(r.AllAsciiIfIgnoreCase); + Assert.Equal(0, r.HashIndex); + Assert.Equal(1, r.HashCount); + } [Fact] diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Protocol.cs b/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Protocol.cs index 8c258b6f6bc5d5..38274fd85acd8d 100644 --- a/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Protocol.cs +++ b/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Protocol.cs @@ -817,15 +817,12 @@ private SecurityStatusPal GenerateToken(ReadOnlySpan inputBuffer, ref byte cachedCreds = _sslAuthenticationOptions.IsServer ? AcquireServerCredentials(ref thumbPrint) : AcquireClientCredentials(ref thumbPrint); - - if (cachedCreds && _sslAuthenticationOptions.IsServer) - { - sendTrustList = _sslAuthenticationOptions.CertificateContext?.Trust?._sendTrustInHandshake ?? false; - } } if (_sslAuthenticationOptions.IsServer) { + sendTrustList = _sslAuthenticationOptions.CertificateContext?.Trust?._sendTrustInHandshake ?? false; + status = SslStreamPal.AcceptSecurityContext( ref _credentialsHandle!, ref _securityContext, diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/Connect.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/Connect.cs index 7fbb92a2717428..7c8afc925f7388 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/Connect.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/Connect.cs @@ -137,6 +137,12 @@ public async Task Connect_AfterDisconnect_Fails() [InlineData("[::ffff:1.1.1.1]", true, false)] public async Task ConnectGetsCanceledByDispose(string addressString, bool useDns, bool owning) { + if (UsesSync && PlatformDetection.IsLinux) + { + // [ActiveIssue("https://github.com/dotnet/runtime/issues/94149", TestPlatforms.Linux)] + return; + } + // Aborting sync operations for non-owning handles is not supported on Unix. if (!owning && UsesSync && !PlatformDetection.IsWindows) { diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/TelemetryTest.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/TelemetryTest.cs index 851b68288fd866..0f342572c6c6bf 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/TelemetryTest.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/TelemetryTest.cs @@ -193,6 +193,12 @@ await listener.RunWithCallbackAsync(e => events.Enqueue((e, e.ActivityId)), asyn [MemberData(nameof(SocketMethods_WithBools_MemberData))] public void EventSource_SocketConnectFailure_LogsConnectFailed(string connectMethod, bool useDnsEndPoint) { + if (connectMethod == "Sync" && PlatformDetection.IsLinux) + { + // [ActiveIssue("https://github.com/dotnet/runtime/issues/94149", TestPlatforms.Linux)] + return; + } + RemoteExecutor.Invoke(async (connectMethod, useDnsEndPointString) => { EndPoint endPoint = await GetRemoteEndPointAsync(useDnsEndPointString, port: 12345); diff --git a/src/libraries/System.Private.CoreLib/src/System/DateTimeOffset.Android.cs b/src/libraries/System.Private.CoreLib/src/System/DateTimeOffset.Android.cs index c40e4708e47aab..e9ca7bb3eeb877 100644 --- a/src/libraries/System.Private.CoreLib/src/System/DateTimeOffset.Android.cs +++ b/src/libraries/System.Private.CoreLib/src/System/DateTimeOffset.Android.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Globalization; using System.Threading; namespace System @@ -60,7 +61,7 @@ public static DateTimeOffset Now } // Fast path obtained offset incorporated into ToLocalTime(DateTime.UtcNow, true) logic - int localDateTimeOffsetSeconds = Convert.ToInt32(localDateTimeOffset); + int localDateTimeOffsetSeconds = Convert.ToInt32(localDateTimeOffset, CultureInfo.InvariantCulture); TimeSpan offset = TimeSpan.FromSeconds(localDateTimeOffsetSeconds); long localTicks = utcDateTime.Ticks + offset.Ticks; if (localTicks < DateTime.MinTicks || localTicks > DateTime.MaxTicks) diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/InlineArrayAttribute.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/InlineArrayAttribute.cs index 9872c61e191ffa..0ce7e225042538 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/InlineArrayAttribute.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/InlineArrayAttribute.cs @@ -1,22 +1,38 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.ComponentModel; - namespace System.Runtime.CompilerServices { /// /// Indicates that the instance's storage is sequentially replicated "length" times. /// - [EditorBrowsable(EditorBrowsableState.Never)] + /// + /// + /// This attribute can be used to annotate a type with a single field. + /// The runtime will replicate that field in the actual type layout as many times as is specified. + /// + /// + /// Here's an example of how an inline array type with 8 values can be declared: + /// + /// [InlineArray(8)] + /// struct Float8InlineArray + /// { + /// private float _value; + /// } + /// + /// + /// [AttributeUsage(AttributeTargets.Struct, AllowMultiple = false)] public sealed class InlineArrayAttribute : Attribute { + /// Creates a new instance with the specified length. + /// The number of sequential fields to replicate in the inline array type. public InlineArrayAttribute(int length) { Length = length; } + /// Gets the number of sequential fields to replicate in the inline array type. public int Length { get; } } } diff --git a/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/NewMethodThrows.cs b/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/NewMethodThrows.cs new file mode 100644 index 00000000000000..baef24d1ab19ec --- /dev/null +++ b/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/NewMethodThrows.cs @@ -0,0 +1,16 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +using System; + + +namespace System.Reflection.Metadata.ApplyUpdate.Test +{ + public class NewMethodThrows + { + public string ExistingMethod(string x) + { + return x; + } + + } +} diff --git a/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/NewMethodThrows_v1.cs b/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/NewMethodThrows_v1.cs new file mode 100644 index 00000000000000..be7ee1389ce1de --- /dev/null +++ b/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/NewMethodThrows_v1.cs @@ -0,0 +1,21 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +using System; + + +namespace System.Reflection.Metadata.ApplyUpdate.Test +{ + public class NewMethodThrows + { + public string ExistingMethod(string x) + { + return NewMethod(x); + } + + public string NewMethod(string x) + { + throw new InvalidOperationException (x); + } + + } +} diff --git a/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows.csproj b/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows.csproj new file mode 100644 index 00000000000000..2948ee7979c527 --- /dev/null +++ b/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows.csproj @@ -0,0 +1,11 @@ + + + System.Runtime.Loader.Tests + $(NetCoreAppCurrent) + true + deltascript.json + + + + + diff --git a/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/deltascript.json b/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/deltascript.json new file mode 100644 index 00000000000000..fbc53a9a091f95 --- /dev/null +++ b/src/libraries/System.Runtime.Loader/tests/ApplyUpdate/System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows/deltascript.json @@ -0,0 +1,6 @@ +{ + "changes": [ + {"document": "NewMethodThrows.cs", "update": "NewMethodThrows_v1.cs"}, + ] +} + diff --git a/src/libraries/System.Runtime.Loader/tests/ApplyUpdateTest.cs b/src/libraries/System.Runtime.Loader/tests/ApplyUpdateTest.cs index 8ca126834cfcdb..2fdb62c7e4bfb4 100644 --- a/src/libraries/System.Runtime.Loader/tests/ApplyUpdateTest.cs +++ b/src/libraries/System.Runtime.Loader/tests/ApplyUpdateTest.cs @@ -938,5 +938,50 @@ public static void TestGenericAddInstanceField() Assert.Equal(dt, z.GetIt()); }); } - } + + [ConditionalFact(typeof(ApplyUpdateUtil), nameof(ApplyUpdateUtil.IsSupported))] + public static void TestNewMethodThrows() + { + ApplyUpdateUtil.TestCase(static () => + { + var assm = typeof(System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows).Assembly; + + var x = new System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows(); + + Assert.Equal("abcd", x.ExistingMethod("abcd")); + + ApplyUpdateUtil.ApplyUpdate(assm); + + InvalidOperationException exn = Assert.Throws(() => x.ExistingMethod("spqr")); + + Assert.Equal("spqr", exn.Message); + + var stackTrace = new System.Diagnostics.StackTrace(exn, fNeedFileInfo: true); + + var frames = stackTrace.GetFrames(); + + // the throwing method and its caller and a few frames of XUnit machinery for Assert.Throws, above + Assert.True(frames.Length >= 2); + + var throwingMethod = frames[0].GetMethod(); + + var newMethod = typeof (System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows).GetMethod("NewMethod"); + + Assert.Equal(newMethod, throwingMethod); + + // We don't have the filename on all runtimes and platforms + var frame0Name = frames[0].GetFileName(); + Assert.True(frame0Name == null || frame0Name.Contains("NewMethodThrows.cs")); + + var existingMethod = typeof (System.Reflection.Metadata.ApplyUpdate.Test.NewMethodThrows).GetMethod("ExistingMethod"); + + var throwingMethodCaller = frames[1].GetMethod(); + + Assert.Equal(existingMethod, throwingMethodCaller); + + var frame1Name = frames[0].GetFileName(); + Assert.True(frame1Name == null || frame1Name.Contains("NewMethodThrows.cs")); + }); + } + } } diff --git a/src/libraries/System.Runtime.Loader/tests/System.Runtime.Loader.Tests.csproj b/src/libraries/System.Runtime.Loader/tests/System.Runtime.Loader.Tests.csproj index 293105e20d4345..3cd6969d01d745 100644 --- a/src/libraries/System.Runtime.Loader/tests/System.Runtime.Loader.Tests.csproj +++ b/src/libraries/System.Runtime.Loader/tests/System.Runtime.Loader.Tests.csproj @@ -66,6 +66,7 @@ + diff --git a/src/libraries/System.Runtime/ref/System.Runtime.cs b/src/libraries/System.Runtime/ref/System.Runtime.cs index bc7e04a54f96b3..18a8775076bd90 100644 --- a/src/libraries/System.Runtime/ref/System.Runtime.cs +++ b/src/libraries/System.Runtime/ref/System.Runtime.cs @@ -12888,7 +12888,6 @@ public sealed partial class InterpolatedStringHandlerAttribute : System.Attribut public InterpolatedStringHandlerAttribute() { } } [System.AttributeUsageAttribute(System.AttributeTargets.Struct, AllowMultiple = false)] - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public sealed partial class InlineArrayAttribute : System.Attribute { public InlineArrayAttribute(int length) { } diff --git a/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/CngCommon.SignVerify.cs b/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/CngCommon.SignVerify.cs index 994772779b23e3..ec6241baa7f1a1 100644 --- a/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/CngCommon.SignVerify.cs +++ b/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/CngCommon.SignVerify.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.Diagnostics; using Internal.Cryptography; using Microsoft.Win32.SafeHandles; using ErrorCode = Interop.NCrypt.ErrorCode; @@ -20,22 +21,22 @@ public static unsafe byte[] SignHash(this SafeNCryptKeyHandle keyHandle, ReadOnl #endif byte[] signature = new byte[estimatedSize]; int numBytesNeeded; - ErrorCode errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, hash.Length, signature, signature.Length, out numBytesNeeded, paddingMode); + ErrorCode errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, signature, out numBytesNeeded, paddingMode); if (errorCode == ErrorCode.STATUS_UNSUCCESSFUL) { - errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, hash.Length, signature, signature.Length, out numBytesNeeded, paddingMode); + errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, signature, out numBytesNeeded, paddingMode); } if (errorCode.IsBufferTooSmall()) { signature = new byte[numBytesNeeded]; - errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, hash.Length, signature, signature.Length, out numBytesNeeded, paddingMode); + errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, signature, out numBytesNeeded, paddingMode); } if (errorCode == ErrorCode.STATUS_UNSUCCESSFUL) { - errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, hash.Length, signature, signature.Length, out numBytesNeeded, paddingMode); + errorCode = Interop.NCrypt.NCryptSignHash(keyHandle, pPaddingInfo, hash, signature, out numBytesNeeded, paddingMode); } if (errorCode != ErrorCode.ERROR_SUCCESS) @@ -53,9 +54,7 @@ public static unsafe bool TrySignHash(this SafeNCryptKeyHandle keyHandle, ReadOn keyHandle, pPaddingInfo, hash, - hash.Length, signature, - signature.Length, out int numBytesNeeded, paddingMode); @@ -63,6 +62,7 @@ public static unsafe bool TrySignHash(this SafeNCryptKeyHandle keyHandle, ReadOn { case ErrorCode.ERROR_SUCCESS: bytesWritten = numBytesNeeded; + Debug.Assert(bytesWritten <= signature.Length); return true; case ErrorCode code when code.IsBufferTooSmall(): diff --git a/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Emitter.cs b/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Emitter.cs index 5109227a9b12d6..90575721c507d7 100644 --- a/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Emitter.cs +++ b/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Emitter.cs @@ -707,7 +707,7 @@ private static void GenerateCtorParamMetadataInitFunc(SourceWriter writer, strin ParameterType = typeof({{spec.ParameterType.FullyQualifiedName}}), Position = {{spec.ParameterIndex}}, HasDefaultValue = {{FormatBool(spec.HasDefaultValue)}}, - DefaultValue = {{FormatDefaultConstructorParameter(spec.DefaultValue, spec.ParameterType)}} + DefaultValue = {{CSharpSyntaxUtilities.FormatLiteral(spec.DefaultValue, spec.ParameterType)}} }; """); @@ -1351,56 +1351,6 @@ private static string FormatJsonSerializerDefaults(JsonSerializerDefaults defaul private static string CreateTypeInfoMethodName(TypeGenerationSpec typeSpec) => $"Create_{typeSpec.TypeInfoPropertyName}"; - private static string FormatDefaultConstructorParameter(object? value, TypeRef type) - { - if (value == null) - { - return $"default({type.FullyQualifiedName})"; - } - - if (type.TypeKind is TypeKind.Enum) - { - // Return the numeric value. - return FormatNumber(); - } - - switch (value) - { - case string @string: - return SymbolDisplay.FormatLiteral(@string, quote: true); ; - case char @char: - return SymbolDisplay.FormatLiteral(@char, quote: true); - case double.NegativeInfinity: - return "double.NegativeInfinity"; - case double.PositiveInfinity: - return "double.PositiveInfinity"; - case double.NaN: - return "double.NaN"; - case double @double: - return $"({type.FullyQualifiedName})({@double.ToString(JsonConstants.DoubleFormatString, CultureInfo.InvariantCulture)})"; - case float.NegativeInfinity: - return "float.NegativeInfinity"; - case float.PositiveInfinity: - return "float.PositiveInfinity"; - case float.NaN: - return "float.NaN"; - case float @float: - return $"({type.FullyQualifiedName})({@float.ToString(JsonConstants.SingleFormatString, CultureInfo.InvariantCulture)})"; - case decimal.MaxValue: - return "decimal.MaxValue"; - case decimal.MinValue: - return "decimal.MinValue"; - case decimal @decimal: - return @decimal.ToString(CultureInfo.InvariantCulture); - case bool @bool: - return FormatBool(@bool); - default: - // Assume this is a number. - return FormatNumber(); - } - - string FormatNumber() => $"({type.FullyQualifiedName})({Convert.ToString(value, CultureInfo.InvariantCulture)})"; - } private static string FormatDefaultConstructorExpr(TypeGenerationSpec typeSpec) { diff --git a/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets b/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets index 23add6278d7c07..9b6b9fc77aea52 100644 --- a/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets +++ b/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets @@ -30,6 +30,7 @@ + diff --git a/src/libraries/System.Text.Json/tests/Common/ConstructorTests/ConstructorTests.ParameterMatching.cs b/src/libraries/System.Text.Json/tests/Common/ConstructorTests/ConstructorTests.ParameterMatching.cs index b06f0ad9bbae16..0cf16797cd463f 100644 --- a/src/libraries/System.Text.Json/tests/Common/ConstructorTests/ConstructorTests.ParameterMatching.cs +++ b/src/libraries/System.Text.Json/tests/Common/ConstructorTests/ConstructorTests.ParameterMatching.cs @@ -1602,6 +1602,14 @@ public class ClassWithIgnoredPropertyDefaultParam public ClassWithIgnoredPropertyDefaultParam(int x, int y = 5) => (X, Y) = (x, y); } + [Fact] + public async Task TestClassWithManyDefaultParams() + { + string json = "{}"; + Class_With_Parameters_Default_Values result = await Serializer.DeserializeWrapper(json); + result.Verify(); + } + [Fact] public async Task TestClassWithCustomConverterOnCtorParameter_ShouldPassCorrectTypeToConvertParameter() { diff --git a/src/libraries/System.Text.Json/tests/Common/TestClasses/TestClasses.Constructor.cs b/src/libraries/System.Text.Json/tests/Common/TestClasses/TestClasses.Constructor.cs index f12cf89e41de59..c2bf9e06a9a335 100644 --- a/src/libraries/System.Text.Json/tests/Common/TestClasses/TestClasses.Constructor.cs +++ b/src/libraries/System.Text.Json/tests/Common/TestClasses/TestClasses.Constructor.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System; using System.Collections; using System.Collections.Generic; using System.Collections.Immutable; @@ -1972,6 +1973,61 @@ public void VerifyMinimal() MyTuple.Item4.Verify(); } } + public class Class_With_Parameters_Default_Values + { + public int I { get; } + public float F { get; } + public double D { get; } + public decimal M { get; } + public StringComparison SC { get; } + public char C { get; } + public int? NI { get; } + public float? NF { get; } + public double? ND { get; } + public decimal? NM { get; } + public StringComparison? NSC { get; } + public char? NC { get; } + + public Class_With_Parameters_Default_Values( + int i = 21, float f = 42.0f, double d = 3.14159, decimal m = 3.1415926535897932384626433M, StringComparison sc = StringComparison.Ordinal, char c = 'q', + int? ni = 21, float? nf = 42.0f, double? nd = 3.14159, decimal? nm = 3.1415926535897932384626433M, StringComparison? nsc = StringComparison.Ordinal, char? nc = 'q') + { + I = i; + F = f; + D = d; + M = m; + SC = sc; + C = c; + NI = ni; + NF = nf; + ND = nd; + NM = nm; + NSC = nsc; + NC = nc; + } + + public void Initialize() { } + + public static readonly string s_json = @"{}"; + + public static readonly byte[] s_data = Encoding.UTF8.GetBytes(s_json); + + public void Verify() + { + Assert.Equal(21, I); + Assert.Equal(42.0f, F); + Assert.Equal(3.14159, D); + Assert.Equal(3.1415926535897932384626433M, M); + Assert.Equal(StringComparison.Ordinal, SC); + Assert.Equal('q', C); + Assert.Equal(21, NI); + Assert.Equal(42.0f, NF); + Assert.Equal(3.14159, ND); + Assert.Equal(3.1415926535897932384626433M, NM); + Assert.Equal(StringComparison.Ordinal, NSC); + Assert.Equal('q', NC); + } + } public class Point_MembersHave_JsonPropertyName : ITestClass { diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/Serialization/ConstructorTests.cs b/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/Serialization/ConstructorTests.cs index d1769f491104db..1f2fe901f456ea 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/Serialization/ConstructorTests.cs +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/Serialization/ConstructorTests.cs @@ -112,6 +112,7 @@ protected ConstructorTests_Metadata(JsonSerializerWrapper stringWrapper) [JsonSerializable(typeof(SimpleClassWithParameterizedCtor_Derived_GenericIDictionary_ObjectExt))] [JsonSerializable(typeof(Point_MembersHave_JsonInclude))] [JsonSerializable(typeof(ClassWithFiveArgs_MembersHave_JsonNumberHandlingAttributes))] + [JsonSerializable(typeof(Class_With_Parameters_Default_Values))] [JsonSerializable(typeof(Point_MembersHave_JsonPropertyName))] [JsonSerializable(typeof(Point_MembersHave_JsonConverter))] [JsonSerializable(typeof(Point_MembersHave_JsonIgnore))] @@ -260,6 +261,7 @@ public ConstructorTests_Default(JsonSerializerWrapper jsonSerializer) : base(jso [JsonSerializable(typeof(SimpleClassWithParameterizedCtor_Derived_GenericIDictionary_ObjectExt))] [JsonSerializable(typeof(Point_MembersHave_JsonInclude))] [JsonSerializable(typeof(ClassWithFiveArgs_MembersHave_JsonNumberHandlingAttributes))] + [JsonSerializable(typeof(Class_With_Parameters_Default_Values))] [JsonSerializable(typeof(Point_MembersHave_JsonPropertyName))] [JsonSerializable(typeof(Point_MembersHave_JsonConverter))] [JsonSerializable(typeof(Point_MembersHave_JsonIgnore))] diff --git a/src/libraries/apicompat/ApiCompat.proj b/src/libraries/apicompat/ApiCompat.proj index 06c48f5cd57af7..15c5b617fe509f 100644 --- a/src/libraries/apicompat/ApiCompat.proj +++ b/src/libraries/apicompat/ApiCompat.proj @@ -44,7 +44,7 @@ - + diff --git a/src/libraries/apicompat/ApiCompatBaseline.NetCoreAppLatestStable.xml b/src/libraries/apicompat/ApiCompatBaseline.NetCoreAppLatestStable.xml index 0e532d660810fe..05317adadabbfe 100644 --- a/src/libraries/apicompat/ApiCompatBaseline.NetCoreAppLatestStable.xml +++ b/src/libraries/apicompat/ApiCompatBaseline.NetCoreAppLatestStable.xml @@ -1,2692 +1,4 @@  - - CP0002 - F:System.Net.Quic.QuicError.AddressInUse - net7.0/System.Net.Quic.dll - net8.0/System.Net.Quic.dll - - - CP0002 - F:System.Net.Quic.QuicError.HostUnreachable - net7.0/System.Net.Quic.dll - net8.0/System.Net.Quic.dll - - - CP0002 - F:System.Net.Quic.QuicError.InvalidAddress - net7.0/System.Net.Quic.dll - net8.0/System.Net.Quic.dll - - - CP0002 - F:System.Net.Quic.QuicError.ProtocolError - net7.0/System.Net.Quic.dll - net8.0/System.Net.Quic.dll - - - CP0002 - M:System.Runtime.InteropServices.JavaScript.JSFunctionBinding.#ctor - net7.0/System.Runtime.InteropServices.JavaScript.dll - net8.0/System.Runtime.InteropServices.JavaScript.dll - - - CP0014 - M:System.Console.get_WindowHeight:[T:System.Runtime.Versioning.UnsupportedOSPlatformAttribute] - net7.0/mscorlib.dll - net8.0/mscorlib.dll - - - CP0014 - M:System.Console.get_WindowWidth:[T:System.Runtime.Versioning.UnsupportedOSPlatformAttribute] - net7.0/mscorlib.dll - net8.0/mscorlib.dll - - - CP0014 - M:System.Console.set_WindowHeight(System.Int32):[T:System.Runtime.Versioning.SupportedOSPlatformAttribute] - net7.0/mscorlib.dll - net8.0/mscorlib.dll - - - CP0014 - M:System.Console.set_WindowWidth(System.Int32):[T:System.Runtime.Versioning.SupportedOSPlatformAttribute] - net7.0/mscorlib.dll - net8.0/mscorlib.dll - - - CP0014 - M:System.Console.SetWindowSize(System.Int32,System.Int32):[T:System.Runtime.Versioning.SupportedOSPlatformAttribute] - net7.0/mscorlib.dll - net8.0/mscorlib.dll - - - CP0014 - M:System.Console.get_WindowHeight:[T:System.Runtime.Versioning.UnsupportedOSPlatformAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Console.get_WindowWidth:[T:System.Runtime.Versioning.UnsupportedOSPlatformAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Console.set_WindowHeight(System.Int32):[T:System.Runtime.Versioning.SupportedOSPlatformAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Console.set_WindowWidth(System.Int32):[T:System.Runtime.Versioning.SupportedOSPlatformAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Console.SetWindowSize(System.Int32,System.Int32):[T:System.Runtime.Versioning.SupportedOSPlatformAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Aggregate``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``0,``0}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Aggregate``2(System.Linq.IQueryable{``0},``1,System.Linq.Expressions.Expression{System.Func{``1,``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Aggregate``3(System.Linq.IQueryable{``0},``1,System.Linq.Expressions.Expression{System.Func{``1,``0,``1}},System.Linq.Expressions.Expression{System.Func{``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.All``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Any``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Any``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Append``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Decimal}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Double}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int64}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Decimal}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Double}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int32}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int64}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Single}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Single}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Cast``1(System.Linq.IQueryable):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Chunk``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Concat``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Contains``1(System.Linq.IQueryable{``0},``0,System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Contains``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.DefaultIfEmpty``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.DefaultIfEmpty``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Distinct``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Distinct``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.DistinctBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.DistinctBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.ElementAt``1(System.Linq.IQueryable{``0},System.Index):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.ElementAt``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.ElementAtOrDefault``1(System.Linq.IQueryable{``0},System.Index):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.ElementAtOrDefault``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Except``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Except``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.ExceptBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.ExceptBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``4(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``4(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.GroupJoin``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3}},System.Collections.Generic.IEqualityComparer{``2}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.GroupJoin``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Intersect``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Intersect``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.IntersectBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.IntersectBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Join``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,``1,``3}},System.Collections.Generic.IEqualityComparer{``2}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Join``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,``1,``3}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Last``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Last``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.LongCount``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.LongCount``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Max``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Max``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Max``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.MaxBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.MaxBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Min``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Min``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Min``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.MinBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.MinBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.OfType``1(System.Linq.IQueryable):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Order``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Order``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.OrderBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.OrderBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.OrderByDescending``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.OrderByDescending``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.OrderDescending``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.OrderDescending``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Prepend``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Reverse``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Select``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Select``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1}}},System.Linq.Expressions.Expression{System.Func{``0,``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}}},System.Linq.Expressions.Expression{System.Func{``0,``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SequenceEqual``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SequenceEqual``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Single``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Single``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Skip``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SkipLast``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SkipWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.SkipWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Decimal}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Double}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int64}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Decimal}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Double}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int32}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int64}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Single}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Single}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Take``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Take``1(System.Linq.IQueryable{``0},System.Range):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.TakeLast``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.TakeWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.TakeWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.ThenBy``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.ThenBy``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.ThenByDescending``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.ThenByDescending``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Union``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Union``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.UnionBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.UnionBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Where``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Where``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Zip``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Zip``3(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Collections.Generic.IEnumerable{``2}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Linq.Queryable.Zip``3(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - T:System.Net.Security.NegotiateStream:[T:System.Runtime.Versioning.UnsupportedOSPlatformAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0014 - M:System.Console.get_WindowHeight:[T:System.Runtime.Versioning.UnsupportedOSPlatformAttribute] - net7.0/System.Console.dll - net8.0/System.Console.dll - - - CP0014 - M:System.Console.get_WindowWidth:[T:System.Runtime.Versioning.UnsupportedOSPlatformAttribute] - net7.0/System.Console.dll - net8.0/System.Console.dll - - - CP0014 - M:System.Console.set_WindowHeight(System.Int32):[T:System.Runtime.Versioning.SupportedOSPlatformAttribute] - net7.0/System.Console.dll - net8.0/System.Console.dll - - - CP0014 - M:System.Console.set_WindowWidth(System.Int32):[T:System.Runtime.Versioning.SupportedOSPlatformAttribute] - net7.0/System.Console.dll - net8.0/System.Console.dll - - - CP0014 - M:System.Console.SetWindowSize(System.Int32,System.Int32):[T:System.Runtime.Versioning.SupportedOSPlatformAttribute] - net7.0/System.Console.dll - net8.0/System.Console.dll - - - CP0014 - M:System.Linq.Queryable.Aggregate``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``0,``0}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Aggregate``2(System.Linq.IQueryable{``0},``1,System.Linq.Expressions.Expression{System.Func{``1,``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Aggregate``3(System.Linq.IQueryable{``0},``1,System.Linq.Expressions.Expression{System.Func{``1,``0,``1}},System.Linq.Expressions.Expression{System.Func{``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.All``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Any``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Any``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Append``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Decimal}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Double}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int64}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Decimal}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Double}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int32}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int64}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Single}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Single}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Cast``1(System.Linq.IQueryable):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Chunk``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Concat``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Contains``1(System.Linq.IQueryable{``0},``0,System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Contains``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.DefaultIfEmpty``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.DefaultIfEmpty``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Distinct``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Distinct``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.DistinctBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.DistinctBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.ElementAt``1(System.Linq.IQueryable{``0},System.Index):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.ElementAt``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.ElementAtOrDefault``1(System.Linq.IQueryable{``0},System.Index):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.ElementAtOrDefault``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Except``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Except``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.ExceptBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.ExceptBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``4(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``4(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.GroupJoin``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3}},System.Collections.Generic.IEqualityComparer{``2}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.GroupJoin``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Intersect``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Intersect``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.IntersectBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.IntersectBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Join``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,``1,``3}},System.Collections.Generic.IEqualityComparer{``2}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Join``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,``1,``3}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Last``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Last``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.LongCount``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.LongCount``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Max``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Max``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Max``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.MaxBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.MaxBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Min``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Min``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Min``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.MinBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.MinBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.OfType``1(System.Linq.IQueryable):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Order``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Order``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.OrderBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.OrderBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.OrderByDescending``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.OrderByDescending``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.OrderDescending``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.OrderDescending``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Prepend``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Reverse``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Select``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Select``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1}}},System.Linq.Expressions.Expression{System.Func{``0,``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}}},System.Linq.Expressions.Expression{System.Func{``0,``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SequenceEqual``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SequenceEqual``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Single``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Single``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Skip``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SkipLast``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SkipWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.SkipWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Decimal}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Double}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int64}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Decimal}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Double}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int32}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int64}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Single}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Single}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Take``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Take``1(System.Linq.IQueryable{``0},System.Range):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.TakeLast``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.TakeWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.TakeWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.ThenBy``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.ThenBy``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.ThenByDescending``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.ThenByDescending``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Union``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Union``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.UnionBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.UnionBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Where``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Where``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Zip``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Zip``3(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Collections.Generic.IEnumerable{``2}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Linq.Queryable.Zip``3(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0014 - M:System.Diagnostics.DiagnosticListener.Write(System.String,System.Object):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Diagnostics.DiagnosticSource.dll - net8.0/System.Diagnostics.DiagnosticSource.dll - - - CP0014 - M:System.Diagnostics.DiagnosticSource.StartActivity(System.Diagnostics.Activity,System.Object):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Diagnostics.DiagnosticSource.dll - net8.0/System.Diagnostics.DiagnosticSource.dll - - - CP0014 - M:System.Diagnostics.DiagnosticSource.StopActivity(System.Diagnostics.Activity,System.Object):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Diagnostics.DiagnosticSource.dll - net8.0/System.Diagnostics.DiagnosticSource.dll - - - CP0014 - M:System.Diagnostics.DiagnosticSource.Write(System.String,System.Object):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Diagnostics.DiagnosticSource.dll - net8.0/System.Diagnostics.DiagnosticSource.dll - - - CP0014 - T:System.Net.Security.NegotiateStream:[T:System.Runtime.Versioning.UnsupportedOSPlatformAttribute] - net7.0/System.dll - net8.0/System.dll - - - CP0014 - M:System.Linq.Queryable.Aggregate``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``0,``0}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Aggregate``2(System.Linq.IQueryable{``0},``1,System.Linq.Expressions.Expression{System.Func{``1,``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Aggregate``3(System.Linq.IQueryable{``0},``1,System.Linq.Expressions.Expression{System.Func{``1,``0,``1}},System.Linq.Expressions.Expression{System.Func{``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.All``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Any``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Any``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Append``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Decimal}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Double}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int64}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Decimal}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Double}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int32}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int64}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Single}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Average``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Single}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Cast``1(System.Linq.IQueryable):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Chunk``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Concat``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Contains``1(System.Linq.IQueryable{``0},``0,System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Contains``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Count``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.DefaultIfEmpty``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.DefaultIfEmpty``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Distinct``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Distinct``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.DistinctBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.DistinctBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.ElementAt``1(System.Linq.IQueryable{``0},System.Index):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.ElementAt``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.ElementAtOrDefault``1(System.Linq.IQueryable{``0},System.Index):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.ElementAtOrDefault``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Except``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Except``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.ExceptBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.ExceptBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.First``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.FirstOrDefault``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``4(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.GroupBy``4(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.GroupJoin``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3}},System.Collections.Generic.IEqualityComparer{``2}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.GroupJoin``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Intersect``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Intersect``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.IntersectBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.IntersectBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Join``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,``1,``3}},System.Collections.Generic.IEqualityComparer{``2}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Join``4(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Linq.Expressions.Expression{System.Func{``0,``1,``3}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Last``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Last``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.LastOrDefault``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.LongCount``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.LongCount``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Max``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Max``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Max``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.MaxBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.MaxBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Min``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Min``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Min``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.MinBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.MinBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.OfType``1(System.Linq.IQueryable):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Order``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Order``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.OrderBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.OrderBy``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.OrderByDescending``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.OrderByDescending``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.OrderDescending``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.OrderDescending``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Prepend``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Reverse``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Select``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Select``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Collections.Generic.IEnumerable{``1}}},System.Linq.Expressions.Expression{System.Func{``0,``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SelectMany``3(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}}},System.Linq.Expressions.Expression{System.Func{``0,``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SequenceEqual``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SequenceEqual``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Single``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Single``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},``0):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SingleOrDefault``1(System.Linq.IQueryable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Skip``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SkipLast``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SkipWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.SkipWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Decimal}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Double}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int64}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Decimal}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Double}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int32}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Int64}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Nullable{System.Single}}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Sum``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Single}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Take``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Take``1(System.Linq.IQueryable{``0},System.Range):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.TakeLast``1(System.Linq.IQueryable{``0},System.Int32):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.TakeWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.TakeWhile``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.ThenBy``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.ThenBy``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.ThenByDescending``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.ThenByDescending``2(System.Linq.IOrderedQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Union``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Union``1(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.UnionBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.Collections.Generic.IEqualityComparer{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.UnionBy``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Where``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Where``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Int32,System.Boolean}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Zip``2(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Zip``3(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Collections.Generic.IEnumerable{``2}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - M:System.Linq.Queryable.Zip``3(System.Linq.IQueryable{``0},System.Collections.Generic.IEnumerable{``1},System.Linq.Expressions.Expression{System.Func{``0,``1,``2}}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0014 - T:System.Net.Security.NegotiateStream:[T:System.Runtime.Versioning.UnsupportedOSPlatformAttribute] - net7.0/System.Net.Security.dll - net8.0/System.Net.Security.dll - - - CP0015 - M:System.Type.GetEnumValues:[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/mscorlib.dll - net8.0/mscorlib.dll - - - CP0015 - M:System.Linq.Queryable.AsQueryable(System.Collections.IEnumerable):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0015 - M:System.Linq.Queryable.AsQueryable``1(System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0015 - M:System.Type.GetEnumValues:[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0015 - T:System.Linq.EnumerableQuery`1:[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/netstandard.dll - net8.0/netstandard.dll - - - CP0015 - M:System.Linq.Queryable.AsQueryable(System.Collections.IEnumerable):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0015 - M:System.Linq.Queryable.AsQueryable``1(System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0015 - T:System.Linq.EnumerableQuery`1:[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Core.dll - net8.0/System.Core.dll - - - CP0015 - M:System.Linq.Queryable.AsQueryable(System.Collections.IEnumerable):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0015 - M:System.Linq.Queryable.AsQueryable``1(System.Collections.Generic.IEnumerable{``0}):[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0015 - T:System.Linq.EnumerableQuery`1:[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Linq.Queryable.dll - net8.0/System.Linq.Queryable.dll - - - CP0015 - M:System.Type.GetEnumValues:[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Runtime.dll - net8.0/System.Runtime.dll - - - CP0015 - T:System.Runtime.InteropServices.Marshalling.NativeMarshallingAttribute:[T:System.AttributeUsageAttribute] - net7.0/System.Runtime.dll - net8.0/System.Runtime.dll - - - CP0015 - M:System.Reflection.Metadata.MetadataUpdateHandlerAttribute.#ctor(System.Type)$0:[T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute] - net7.0/System.Runtime.Loader.dll - net8.0/System.Runtime.Loader.dll - - - CP0015 - P:System.Reflection.Metadata.MetadataUpdateHandlerAttribute.HandlerType:[T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute] - net7.0/System.Runtime.Loader.dll - net8.0/System.Runtime.Loader.dll - - - CP0015 - T:System.Text.Json.Serialization.JsonStringEnumConverter:[T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute] - net7.0/System.Text.Json.dll - net8.0/System.Text.Json.dll - - \ No newline at end of file + diff --git a/src/mono/mono/metadata/mono-debug.c b/src/mono/mono/metadata/mono-debug.c index 2472c62e62d33b..e49089b3e4652c 100644 --- a/src/mono/mono/metadata/mono-debug.c +++ b/src/mono/mono/metadata/mono-debug.c @@ -777,6 +777,28 @@ mono_debug_lookup_source_location (MonoMethod *method, guint32 address, MonoDoma if (mono_debug_format == MONO_DEBUG_FORMAT_NONE) return NULL; + MonoImage *img = m_class_get_image (method->klass); + if (G_UNLIKELY (img->has_updates)) { + guint32 idx = mono_metadata_token_index (method->token); + MonoDebugInformationEnc *mdie = (MonoDebugInformationEnc *) mono_metadata_update_get_updated_method_ppdb (img, idx); + if (mdie != NULL) { + offset = il_offset_from_address (method, address); + if (offset < 0) { + mono_debugger_unlock (); + return NULL; + } + + MonoDebugSourceLocation * ret = mono_ppdb_lookup_location_enc (mdie->ppdb_file, mdie->idx, offset); + if (ret) + return ret; + } else { + /// added method without EnC info, maybe the delta came in without a PDB delta + gboolean added_method = idx >= table_info_get_rows (&img->tables[MONO_TABLE_METHOD]); + if (added_method) + return NULL; + } + } + mono_debugger_lock (); minfo = lookup_method (method); if (!minfo || !minfo->handle) { diff --git a/src/mono/mono/metadata/object.c b/src/mono/mono/metadata/object.c index 0b79c0d713b67e..5d23bb87273ea6 100644 --- a/src/mono/mono/metadata/object.c +++ b/src/mono/mono/metadata/object.c @@ -458,6 +458,7 @@ mono_runtime_class_init_full (MonoVTable *vtable, MonoError *error) * on this cond var. */ +retry_top: mono_type_initialization_lock (); /* double check... */ if (vtable->initialized) { @@ -507,6 +508,12 @@ mono_runtime_class_init_full (MonoVTable *vtable, MonoError *error) blocked = GUINT_TO_POINTER (MONO_NATIVE_THREAD_ID_TO_UINT (lock->initializing_tid)); while ((pending_lock = (TypeInitializationLock*) g_hash_table_lookup (blocked_thread_hash, blocked))) { if (mono_native_thread_id_equals (pending_lock->initializing_tid, tid)) { + if (mono_trace_is_traced (G_LOG_LEVEL_DEBUG, MONO_TRACE_TYPE)) { + char* type_name = mono_type_full_name (m_class_get_byval_arg (klass)); + mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_TYPE, "Detected deadlock for class .cctor for %s from '%s'", type_name, m_class_get_image (klass)->name); + g_free (type_name); + } + if (!pending_lock->done) { mono_type_initialization_unlock (); goto return_true; @@ -605,9 +612,49 @@ mono_runtime_class_init_full (MonoVTable *vtable, MonoError *error) } else { /* this just blocks until the initializing thread is done */ mono_type_init_lock (lock); - while (!lock->done) - mono_coop_cond_wait (&lock->cond, &lock->mutex); + if (!lock->done) { + int timeout_ms = 500; + int wait_result = mono_coop_cond_timedwait (&lock->cond, &lock->mutex, timeout_ms); + if (wait_result == -1) { + /* timed out - go around again from the beginning. If we got here + * from the "is_blocked = FALSE" case, above (another thread was + * blocked on the current thread, but on a lock that was already + * done but it didn't get to wake up yet), then it might still be + * the case that the current thread cannot proceed even if the other + * thread got to wake up - there might be a new deadlock. We need + * to re-evaluate. + * + * This can happen if two threads A and B need to call the cctors + * for classes X and Y but in opposite orders, and also call a cctor + * for a third class Z. (That is thread A wants to init: X, Z, Y; + * thread B wants to init: Y, Z, X.) In that case, if B is waiting + * for A to finish initializing Z, and A (the current thread ) + * already finished Z and wants to init Y. In A, control will come + * here with "lock" being Y's lock. But we will time out because B + * will see that A is responsible for initializing X and will also + * block. So A is waiting for B to finish Y and B is waiting for A + * to finish X. So the fact that A allowed B to wait for Z to + * finish didn't actually let us make progress. Thread A must go + * around to the top once more and try to init Y - and detect that + * there is now a deadlock between X and Y. + */ + mono_type_init_unlock (lock); + // clean up blocked thread hash and lock refcount. + mono_type_initialization_lock (); + g_hash_table_remove (blocked_thread_hash, GUINT_TO_POINTER (tid)); + gboolean deleted = unref_type_lock (lock); + if (deleted) + g_hash_table_remove (type_initialization_hash, vtable); + mono_type_initialization_unlock (); + goto retry_top; + } else if (wait_result == 0) { + /* Success: we were signaled that the other thread is done. Proceed */ + } else { + g_assert_not_reached (); + } + } mono_type_init_unlock (lock); + g_assert (lock->done); } /* Do cleanup and setting vtable->initialized inside the global lock again */ @@ -1384,8 +1431,8 @@ print_imt_entry (const char* message, MonoImtBuilderEntry *e, int num) { message, num, method, - method->klass->name_space, - method->klass->name, + m_class_get_name_space (method->klass), + m_class_get_name (method->klass), method->name); } else { printf (" * %s: NULL\n", message); @@ -1497,12 +1544,11 @@ get_generic_virtual_entries (MonoMemoryManager *mem_manager, gpointer *vtable_sl * */ static void -build_imt_slots (MonoClass *klass, MonoVTable *vt, gpointer* imt, GSList *extra_interfaces, int slot_num) +build_imt_slots (MonoClass *klass, MonoVTable *vt, gpointer* imt, int slot_num) { MONO_REQ_GC_NEUTRAL_MODE; int i; - GSList *list_item; guint32 imt_collisions_bitmap = 0; MonoImtBuilderEntry **imt_builder = (MonoImtBuilderEntry **)g_calloc (MONO_IMT_SIZE, sizeof (MonoImtBuilderEntry*)); int method_count = 0; @@ -1550,8 +1596,10 @@ build_imt_slots (MonoClass *klass, MonoVTable *vt, gpointer* imt, GSList *extra_ } method = mono_class_get_method_by_index (iface, method_slot_in_interface); if (method->is_generic) { - has_generic_virtual = TRUE; - vt_slot ++; + if (m_method_is_virtual (method)) { + has_generic_virtual = TRUE; + vt_slot ++; + } continue; } @@ -1567,23 +1615,6 @@ build_imt_slots (MonoClass *klass, MonoVTable *vt, gpointer* imt, GSList *extra_ } } } - if (extra_interfaces) { - int interface_offset = m_class_get_vtable_size (klass); - - for (list_item = extra_interfaces; list_item != NULL; list_item=list_item->next) { - MonoClass* iface = (MonoClass *)list_item->data; - int method_slot_in_interface; - int mcount = mono_class_get_method_count (iface); - for (method_slot_in_interface = 0; method_slot_in_interface < mcount; method_slot_in_interface++) { - MonoMethod *method = mono_class_get_method_by_index (iface, method_slot_in_interface); - - if (method->is_generic) - has_generic_virtual = TRUE; - add_imt_builder_entry (imt_builder, method, &imt_collisions_bitmap, interface_offset + method_slot_in_interface, slot_num); - } - interface_offset += mcount; - } - } for (i = 0; i < MONO_IMT_SIZE; ++i) { /* overwrite the imt slot only if we're building all the entries or if * we're building this specific one @@ -1683,7 +1714,7 @@ mono_vtable_build_imt_slot (MonoVTable* vtable, int imt_slot) mono_loader_lock (); /* we change the slot only if it wasn't changed from the generic imt trampoline already */ if (!callbacks.imt_entry_inited (vtable, imt_slot)) - build_imt_slots (vtable->klass, vtable, imt, NULL, imt_slot); + build_imt_slots (vtable->klass, vtable, imt, imt_slot); mono_loader_unlock (); } diff --git a/src/mono/wasi/Wasi.Build.Tests/data/nuget8.config b/src/mono/wasi/Wasi.Build.Tests/data/nuget8.config index dfdc8009c6a5d5..4c33988a4365b8 100644 --- a/src/mono/wasi/Wasi.Build.Tests/data/nuget8.config +++ b/src/mono/wasi/Wasi.Build.Tests/data/nuget8.config @@ -9,6 +9,11 @@ + + + + + diff --git a/src/mono/wasm/Wasm.Build.Tests/NonWasmTemplateBuildTests.cs b/src/mono/wasm/Wasm.Build.Tests/NonWasmTemplateBuildTests.cs index 579debf24502d9..d4b5800b89ad36 100644 --- a/src/mono/wasm/Wasm.Build.Tests/NonWasmTemplateBuildTests.cs +++ b/src/mono/wasm/Wasm.Build.Tests/NonWasmTemplateBuildTests.cs @@ -67,8 +67,11 @@ public NonWasmTemplateBuildTests(ITestOutputHelper output, SharedBuildPerTestCla ) .MultiplyWithSingleArgs ( + // Disable net6 and net7 tests for now, as the latest versions aren't in the feeds yet + /* "net6.0", s_previousTargetFramework, + */ s_latestTargetFramework ) .UnwrapItemsAsArrays().ToList(); diff --git a/src/mono/wasm/Wasm.Build.Tests/data/nuget8.config b/src/mono/wasm/Wasm.Build.Tests/data/nuget8.config index dfdc8009c6a5d5..4c33988a4365b8 100644 --- a/src/mono/wasm/Wasm.Build.Tests/data/nuget8.config +++ b/src/mono/wasm/Wasm.Build.Tests/data/nuget8.config @@ -9,6 +9,11 @@ + + + + + diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/HotReloadTests.cs b/src/mono/wasm/debugger/DebuggerTestSuite/HotReloadTests.cs index ade5c6adc8bbd5..5383b9d9a61733 100644 --- a/src/mono/wasm/debugger/DebuggerTestSuite/HotReloadTests.cs +++ b/src/mono/wasm/debugger/DebuggerTestSuite/HotReloadTests.cs @@ -627,6 +627,68 @@ public async Task DebugHotReloadMethod_AddingNewClassUsingDebugAttribute() await StepAndCheck(StepKind.Into, $"dotnet://ApplyUpdateReferencedAssembly.dll/MethodBody1.cs", 119, 12, "ApplyUpdateReferencedAssembly.MethodBody10.StaticMethod1"); } + [ConditionalFact(nameof(RunningOnChrome))] + public async Task DebugHotReloadMethod_AddingNewMethodAndThrowException() + { + //await SetPauseOnException("all"); + string asm_file = Path.Combine(DebuggerTestAppPath, "ApplyUpdateReferencedAssembly.dll"); + string pdb_file = Path.Combine(DebuggerTestAppPath, "ApplyUpdateReferencedAssembly.pdb"); + string asm_file_hot_reload = Path.Combine(DebuggerTestAppPath, "../wasm/ApplyUpdateReferencedAssembly.dll"); + + var bp_notchanged = await SetBreakpoint(".*/MethodBody1.cs$", 129, 12, use_regex: true); + var bp_invalid = await SetBreakpoint(".*/MethodBody1.cs$", 133, 12, use_regex: true); + + var pause_location = await LoadAssemblyAndTestHotReloadUsingSDBWithoutChanges( + asm_file, pdb_file, "MethodBody11", "StaticMethod1", expectBpResolvedEvent: true, sourcesToWait: new string [] { "MethodBody0.cs", "MethodBody1.cs" }); + + CheckLocation("dotnet://ApplyUpdateReferencedAssembly.dll/MethodBody1.cs", 129, 12, scripts, pause_location["callFrames"]?[0]["location"]); + //apply first update + pause_location = await LoadAssemblyAndTestHotReloadUsingSDB( + asm_file_hot_reload, "MethodBody11", "NewMethodStaticWithThrow", 1); + + JToken top_frame = pause_location["callFrames"]?[0]; + AssertEqual("ApplyUpdateReferencedAssembly.MethodBody11.NewMethodStaticWithThrow", top_frame?["functionName"]?.Value(), top_frame?.ToString()); + CheckLocation("dotnet://ApplyUpdateReferencedAssembly.dll/MethodBody1.cs", 133, 12, scripts, top_frame["location"]); + await StepAndCheck(StepKind.Over, "dotnet://ApplyUpdateReferencedAssembly.dll/MethodBody1.cs", 134, 12, "ApplyUpdateReferencedAssembly.MethodBody11.NewMethodStaticWithThrow", + locals_fn: async (locals) => + { + CheckNumber(locals, "i", 20); + await Task.CompletedTask; + } + ); + + await SetPauseOnException("all"); + + pause_location = await SendCommandAndCheck(JObject.FromObject(new { }), "Debugger.resume", null, 0, 0, null); + + await CheckValue(pause_location["data"], JObject.FromObject(new + { + type = "object", + subtype = "error", + className = "System.Exception", + uncaught = false + }), "exception0.data"); + + pause_location = await SendCommandAndCheck(JObject.FromObject(new { }), "Debugger.resume", null, 0, 0, null); + try + { + pause_location = await SendCommandAndCheck(JObject.FromObject(new { }), "Debugger.resume", null, 0, 0, null); + } + catch (System.Exception ae) + { + System.Console.WriteLine(ae); + var eo = JObject.Parse(ae.Message); + + AssertEqual("Uncaught", eo["exceptionDetails"]?["text"]?.Value(), "text"); + + await CheckValue(eo["exceptionDetails"]?["exception"], JObject.FromObject(new + { + type = "object", + subtype = "error", + className = "Error" + }), "exception"); + } + } // Enable this test when https://github.com/dotnet/hotreload-utils/pull/264 flows into dotnet/runtime repo // [ConditionalFact(nameof(RunningOnChrome))] // public async Task DebugHotReloadMethod_ChangeParameterName() diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1.cs b/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1.cs index 2c510d1415d515..bb23eb2b9d2b5a 100644 --- a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1.cs +++ b/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1.cs @@ -112,4 +112,23 @@ public static void StaticMethod1 () { // return M1(1, 2); // } // } + + + + + + + + + + + + + + public class MethodBody11 { + public static void StaticMethod1 () { + Console.WriteLine("breakpoint in a line that will not be changed"); + Console.WriteLine("original"); + } + } } diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v1.cs b/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v1.cs index b813b506d86925..7b6c0403de45f5 100644 --- a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v1.cs +++ b/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v1.cs @@ -124,4 +124,18 @@ public static void StaticMethod2 () { Console.WriteLine($"do not step into here"); } } + + public class MethodBody11 { + public static void StaticMethod1 () { + Console.WriteLine("breakpoint in a line that will not be changed"); + Console.WriteLine("original"); + } + public static void NewMethodStaticWithThrow () { + int i = 20; + Console.WriteLine($"add a breakpoint in the new static method, look at locals {i}"); + throw new Exception("my exception"); + /*var newvar = new MethodBody6(); + newvar.NewMethodInstance (10);*/ + } + } } diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v2.cs b/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v2.cs index 3ea27466fa549a..dda7496ccc91e4 100644 --- a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v2.cs +++ b/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v2.cs @@ -124,4 +124,18 @@ public static void StaticMethod2 () { Console.WriteLine($"do not step into here"); } } + + public class MethodBody11 { + public static void StaticMethod1 () { + Console.WriteLine("breakpoint in a line that will not be changed"); + Console.WriteLine("original"); + } + public static void NewMethodStaticWithThrow () { + int i = 20; + Console.WriteLine($"add a breakpoint in the new static method, look at locals {i}"); + throw new Exception("my exception"); + /*var newvar = new MethodBody6(); + newvar.NewMethodInstance (10);*/ + } + } } diff --git a/src/mono/wasm/testassets/SatelliteAssemblyFromProjectRef/LibraryWithResources/LibraryWithResources.csproj b/src/mono/wasm/testassets/SatelliteAssemblyFromProjectRef/LibraryWithResources/LibraryWithResources.csproj index c6c44c64130006..ec2cce14320ca5 100644 --- a/src/mono/wasm/testassets/SatelliteAssemblyFromProjectRef/LibraryWithResources/LibraryWithResources.csproj +++ b/src/mono/wasm/testassets/SatelliteAssemblyFromProjectRef/LibraryWithResources/LibraryWithResources.csproj @@ -1,5 +1,5 @@ - net7.0 + net8.0 diff --git a/src/native/libs/System.Security.Cryptography.Native.Android/pal_jni.c b/src/native/libs/System.Security.Cryptography.Native.Android/pal_jni.c index 27a36b43f30ae3..d562451ee54a04 100644 --- a/src/native/libs/System.Security.Cryptography.Native.Android/pal_jni.c +++ b/src/native/libs/System.Security.Cryptography.Native.Android/pal_jni.c @@ -86,6 +86,7 @@ jmethodID g_SSLParametersSetServerNames; // com/android/org/conscrypt/OpenSSLEngineImpl jclass g_ConscryptOpenSSLEngineImplClass; jfieldID g_ConscryptOpenSSLEngineImplSslParametersField; +jfieldID g_ConscryptOpenSSLEngineImplHandshakeSessionField; // com/android/org/conscrypt/SSLParametersImpl jclass g_ConscryptSSLParametersImplClass; @@ -627,6 +628,17 @@ jfieldID GetField(JNIEnv *env, bool isStatic, jclass klass, const char* name, co return fid; } +jfieldID GetOptionalField(JNIEnv *env, bool isStatic, jclass klass, const char* name, const char* sig) +{ + jfieldID fid = isStatic ? (*env)->GetStaticFieldID(env, klass, name, sig) : (*env)->GetFieldID(env, klass, name, sig); + if (!fid) { + LOG_INFO("optional field %s %s was not found", name, sig); + // Failing to find an optional field causes an exception state, which we need to clear. + TryClearJNIExceptions(env); + } + return fid; +} + static void DetachThreadFromJNI(void* unused) { LOG_DEBUG("Detaching thread from JNI"); @@ -761,6 +773,7 @@ JNI_OnLoad(JavaVM *vm, void *reserved) if (g_ConscryptOpenSSLEngineImplClass != NULL) { g_ConscryptOpenSSLEngineImplSslParametersField = GetField(env, false, g_ConscryptOpenSSLEngineImplClass, "sslParameters", "Lcom/android/org/conscrypt/SSLParametersImpl;"); + g_ConscryptOpenSSLEngineImplHandshakeSessionField = GetOptionalField(env, false, g_ConscryptOpenSSLEngineImplClass, "handshakeSession", "Lcom/android/org/conscrypt/OpenSSLSessionImpl;"); g_ConscryptSSLParametersImplClass = GetClassGRef(env, "com/android/org/conscrypt/SSLParametersImpl"); g_ConscryptSSLParametersImplSetUseSni = GetMethod(env, false, g_ConscryptSSLParametersImplClass, "setUseSni", "(Z)V"); diff --git a/src/native/libs/System.Security.Cryptography.Native.Android/pal_jni.h b/src/native/libs/System.Security.Cryptography.Native.Android/pal_jni.h index 341a274ba110ee..d1dc577bdf078a 100644 --- a/src/native/libs/System.Security.Cryptography.Native.Android/pal_jni.h +++ b/src/native/libs/System.Security.Cryptography.Native.Android/pal_jni.h @@ -98,6 +98,7 @@ extern jmethodID g_SSLParametersSetServerNames; // com/android/org/conscrypt/OpenSSLEngineImpl extern jclass g_ConscryptOpenSSLEngineImplClass; extern jfieldID g_ConscryptOpenSSLEngineImplSslParametersField; +extern jfieldID g_ConscryptOpenSSLEngineImplHandshakeSessionField; // com/android/org/conscrypt/SSLParametersImpl extern jclass g_ConscryptSSLParametersImplClass; @@ -590,6 +591,7 @@ bool TryGetJNIException(JNIEnv* env, jthrowable *ex, bool printException) ARGS_N jmethodID GetMethod(JNIEnv *env, bool isStatic, jclass klass, const char* name, const char* sig) ARGS_NON_NULL_ALL; jmethodID GetOptionalMethod(JNIEnv *env, bool isStatic, jclass klass, const char* name, const char* sig) ARGS_NON_NULL_ALL; jfieldID GetField(JNIEnv *env, bool isStatic, jclass klass, const char* name, const char* sig) ARGS_NON_NULL_ALL; +jfieldID GetOptionalField(JNIEnv *env, bool isStatic, jclass klass, const char* name, const char* sig) ARGS_NON_NULL_ALL; JNIEnv* GetJNIEnv(void); int GetEnumAsInt(JNIEnv *env, jobject enumObj) ARGS_NON_NULL_ALL; diff --git a/src/native/libs/System.Security.Cryptography.Native.Android/pal_sslstream.c b/src/native/libs/System.Security.Cryptography.Native.Android/pal_sslstream.c index 37be72df3f494e..f19210fe9e05a6 100644 --- a/src/native/libs/System.Security.Cryptography.Native.Android/pal_sslstream.c +++ b/src/native/libs/System.Security.Cryptography.Native.Android/pal_sslstream.c @@ -65,16 +65,38 @@ static bool IsHandshaking(int handshakeStatus) ARGS_NON_NULL(1, 2) static jobject GetSslSession(JNIEnv* env, SSLStream* sslStream, int handshakeStatus) { // During the initial handshake our sslStream->sslSession doesn't have access to the peer certificates - // which we need for hostname verification. Luckily, the SSLEngine has a getter for the handshake SSLSession. + // which we need for hostname verification. There are different ways to access the handshake session + // in different Android API levels. // SSLEngine.getHandshakeSession() is available since API 24. + // In older Android versions (API 21-23) we need to access the handshake session by accessing + // a private field instead. - jobject sslSession = IsHandshaking(handshakeStatus) && g_SSLEngineGetHandshakeSession != NULL - ? (*env)->CallObjectMethod(env, sslStream->sslEngine, g_SSLEngineGetHandshakeSession) - : (*env)->CallObjectMethod(env, sslStream->sslEngine, g_SSLEngineGetSession); - if (CheckJNIExceptions(env)) - return NULL; + if (g_SSLEngineGetHandshakeSession != NULL) + { + jobject sslSession = IsHandshaking(handshakeStatus) + ? (*env)->CallObjectMethod(env, sslStream->sslEngine, g_SSLEngineGetHandshakeSession) + : (*env)->CallObjectMethod(env, sslStream->sslEngine, g_SSLEngineGetSession); + if (CheckJNIExceptions(env)) + return NULL; - return sslSession; + return sslSession; + } + else if (g_ConscryptOpenSSLEngineImplHandshakeSessionField != NULL) + { + jobject sslSession = IsHandshaking(handshakeStatus) + ? (*env)->GetObjectField(env, sslStream->sslEngine, g_ConscryptOpenSSLEngineImplHandshakeSessionField) + : (*env)->CallObjectMethod(env, sslStream->sslEngine, g_SSLEngineGetSession); + if (CheckJNIExceptions(env)) + return NULL; + + return sslSession; + } + else + { + LOG_ERROR("Unable to get the current SSLSession from SSLEngine."); + assert(false && "Unable to get the current SSLSession from SSLEngine."); + return NULL; + } } ARGS_NON_NULL_ALL static jobject GetCurrentSslSession(JNIEnv* env, SSLStream* sslStream) diff --git a/src/tasks/MonoTargetsTasks/RuntimeConfigParser/RuntimeConfigParser.cs b/src/tasks/MonoTargetsTasks/RuntimeConfigParser/RuntimeConfigParser.cs index 612df3cc9f0fef..2188e4250b3cbf 100644 --- a/src/tasks/MonoTargetsTasks/RuntimeConfigParser/RuntimeConfigParser.cs +++ b/src/tasks/MonoTargetsTasks/RuntimeConfigParser/RuntimeConfigParser.cs @@ -61,7 +61,7 @@ public override bool Execute() ConvertDictionaryToBlob(configProperties, blobBuilder); Directory.CreateDirectory(Path.GetDirectoryName(OutputFile!)!); - using var stream = File.OpenWrite(OutputFile); + using var stream = new FileStream(OutputFile, FileMode.Create, FileAccess.Write, FileShare.None); blobBuilder.WriteContentTo(stream); return !Log.HasLoggedErrors; diff --git a/src/tasks/WasmAppBuilder/WasmAppBuilderBaseTask.cs b/src/tasks/WasmAppBuilder/WasmAppBuilderBaseTask.cs index b5a6539e2cb87b..c533e404c41739 100644 --- a/src/tasks/WasmAppBuilder/WasmAppBuilderBaseTask.cs +++ b/src/tasks/WasmAppBuilder/WasmAppBuilderBaseTask.cs @@ -152,7 +152,7 @@ protected virtual void UpdateRuntimeConfigJson() AddToRuntimeConfig(wasmHostProperties: wasmHostProperties, runtimeArgsArray: runtimeArgsArray, perHostConfigs: perHostConfigs); string dstPath = Path.Combine(AppDir!, Path.GetFileName(runtimeConfigPath)); - using FileStream? fs = File.OpenWrite(dstPath); + using FileStream? fs = new FileStream(dstPath, FileMode.Create, FileAccess.Write, FileShare.None); using var writer = new Utf8JsonWriter(fs, new JsonWriterOptions { Indented = true }); rootObject.WriteTo(writer); _fileWrites.Add(dstPath); diff --git a/src/tests/Loader/classloader/TypeInitialization/CircularCctors/CircularCctorTwoThreadsThreeCC.cs b/src/tests/Loader/classloader/TypeInitialization/CircularCctors/CircularCctorTwoThreadsThreeCC.cs new file mode 100644 index 00000000000000..cd5b45ca95527f --- /dev/null +++ b/src/tests/Loader/classloader/TypeInitialization/CircularCctors/CircularCctorTwoThreadsThreeCC.cs @@ -0,0 +1,182 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.CompilerServices; +using System.Threading; + +using Xunit; + +// Regression test for https://github.com/dotnet/runtime/issues/93778 +namespace CircularCctorTwoThreadsThreeCC; + +[Flags] +public enum SlotConstants : int +{ + ZInited = 1, + YInitedFromX = 2, + XInitedFromY = 4, + + Thread1 = 1 << 16, + Thread2 = 2 << 16, +} + +/// X and Y both try to use each other, and also both use Z. +/// We expect to see exactly one thread initialize Z and +/// either X inited from Y or Y inited from X. +public class X +{ + public static X Singleton = new(); + private X() { + Z.Singleton.Ping(); + Y.Singleton?.Pong(); + } + + public void Pong() => Coordinator.Note(SlotConstants.XInitedFromY); +} + +public class Y +{ + public static Y Singleton = new(); + private Y() { + Z.Singleton.Ping(); + X.Singleton?.Pong(); + } + + public void Pong() => Coordinator.Note(SlotConstants.YInitedFromX); +} + +public class Z +{ + public static Z Singleton = new(); + + private Z() { + Coordinator.Note(SlotConstants.ZInited); + } + + public void Ping() { } + +} + +public class Coordinator +{ + [ThreadStatic] + private static SlotConstants t_threadTag; + + private static int s_NextNote; + private static readonly SlotConstants[] Notes = new SlotConstants[12]; + + private static SlotConstants DecorateWithThread(SlotConstants c) + { + return c | t_threadTag; + } + + public static void Note(SlotConstants s) { + int idx = Interlocked.Increment(ref s_NextNote); + idx--; + Notes[idx] = DecorateWithThread (s); + } + + public static Coordinator CreateThread(bool xThenY, SlotConstants threadTag) + { + return new Coordinator(xThenY, threadTag); + } + + public readonly Thread Thread; + private static readonly Barrier s_barrier = new (3); + + private Coordinator(bool xThenY, SlotConstants threadTag) + { + var t = new Thread(() => { + t_threadTag = threadTag; + // Log("started"); + NextPhase(); + // Log("racing"); + DoConstructions(xThenY); + NextPhase(); + // Log("done"); + }); + Thread = t; + t.Start(); + } + + public static void NextPhase() { s_barrier.SignalAndWait(); } + + [MethodImpl(MethodImplOptions.NoInlining)] + public static void DoConstructions(bool xThenY) + { + if (xThenY) { + XCreate(); + } else { + YCreate(); + } + } + + [MethodImpl(MethodImplOptions.NoInlining)] + private static void XCreate() + { + var _ = X.Singleton; + } + + [MethodImpl(MethodImplOptions.NoInlining)] + private static void YCreate() + { + var _ = Y.Singleton; + } + + public static void Log(string msg) + { + Console.WriteLine ($"{Thread.CurrentThread.ManagedThreadId}: {msg}"); + } + + [Fact] + public static void RunTestCase() + { + var c1 = CreateThread(xThenY: true, threadTag: SlotConstants.Thread1); + var c2 = CreateThread(xThenY: false, threadTag: SlotConstants.Thread2); + // created all threads + NextPhase(); + // racing + NextPhase(); + // done + + // one second should be plenty for all these threads, but it's arbitrary + int threadJoinTimeoutMS = 1000; + var j1 = c1.Thread.Join(threadJoinTimeoutMS); + var j2 = c2.Thread.Join(threadJoinTimeoutMS); + Assert.True(j1); + Assert.True(j2); + // all joined + + // exactly one thread inited Z + Assert.Equal(1, CountNotes(SlotConstants.ZInited)); + // either X was inited or Y, not both. + Assert.Equal(1, Count2Notes(SlotConstants.XInitedFromY, SlotConstants.YInitedFromX)); + } + + private static int CountNotes(SlotConstants mask) + { + int found = 0; + foreach (var note in Notes) { + if ((note & mask) != (SlotConstants)0) { + found++; + } + } + return found; + } + + private static int Count2Notes(SlotConstants mask1, SlotConstants mask2) + { + int found = 0; + foreach (var note in Notes) { + if ((note & mask1) != (SlotConstants)0) { + found++; + } + if ((note & mask2) != (SlotConstants)0) { + found++; + } + } + return found; + } + +} diff --git a/src/tests/Loader/classloader/TypeInitialization/CircularCctors/CircularCctorTwoThreadsThreeCC.csproj b/src/tests/Loader/classloader/TypeInitialization/CircularCctors/CircularCctorTwoThreadsThreeCC.csproj new file mode 100644 index 00000000000000..c9936332a86764 --- /dev/null +++ b/src/tests/Loader/classloader/TypeInitialization/CircularCctors/CircularCctorTwoThreadsThreeCC.csproj @@ -0,0 +1,9 @@ + + + true + 0 + + + + + diff --git a/src/tests/Loader/classloader/regressions/GitHub_93770/GitHub_93770.cs b/src/tests/Loader/classloader/regressions/GitHub_93770/GitHub_93770.cs new file mode 100644 index 00000000000000..7784ed40a0c73d --- /dev/null +++ b/src/tests/Loader/classloader/regressions/GitHub_93770/GitHub_93770.cs @@ -0,0 +1,128 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using Xunit; + +namespace ReproGH93770; + +// By default in Mono every class that implements interfaces has 19 +// interface method table slots that are used to dispatch interface +// calls. The methods are assigned to slots based on a hash of some +// metadata. This test tries to create at least one IMT slot that has +// a collision by creating an interface with 20 virtual methods. +// +// The bug is that if the method also has a non-virtual generic +// method, the IMT slot with the collision calls the wrong vtable +// element. + +public class ReproGH93770 +{ + [Fact] + public static int TestEntryPoint() + { + C c = new C(); + I1 i1 = c; + Helper(i1); + return 100; + } + [MethodImpl(MethodImplOptions.NoInlining)] + private static void Helper(I1 i1) + { + var e = 0; + var n = i1.M0(); + Assert.Equal(e, n); + e++; + n = i1.M1(); + Assert.Equal(e, n); + e++; + n = i1.M2(); + Assert.Equal(e, n); + e++; + n = i1.M3(); + Assert.Equal(e, n); + e++; + n = i1.M4(); + Assert.Equal(e, n); + e++; + n = i1.M5(); + Assert.Equal(e, n); + e++; + n = i1.M6(); + Assert.Equal(e, n); + e++; + n = i1.M7(); + Assert.Equal(e, n); + e++; + n = i1.M8(); + Assert.Equal(e, n); + e++; + n = i1.M9(); + Assert.Equal(e, n); + e++; + n = i1.M10(); + Assert.Equal(e, n); + e++; + n = i1.M11(); + Assert.Equal(e, n); + e++; + n = i1.M12(); + Assert.Equal(e, n); + e++; + n = i1.M13(); + Assert.Equal(e, n); + e++; + n = i1.M14(); + Assert.Equal(e, n); + e++; + n = i1.M15(); + Assert.Equal(e, n); + e++; + n = i1.M16(); + Assert.Equal(e, n); + e++; + n = i1.M17(); + Assert.Equal(e, n); + e++; + n = i1.M18(); + Assert.Equal(e, n); + e++; + n = i1.M19(); + Assert.Equal(e, n); + e++; + } +} + +public interface I1 { + public static T Id (T t)=> t; + + public int M0() => 0; + public int M1() => 1; + public int M2() => 2; + public int M3() => 3; + public int M4() => 4; + + public int M5() => 5; + public int M6() => 6; + public int M7() => 7; + public int M8() => 8; + public int M9() => 9; + public int M10() => 10; + public int M11() => 11; + public int M12() => 12; + public int M13() => 13; + public int M14() => 14; + public int M15() => 15; + public int M16() => 16; + public int M17() => 17; + public int M18() => 18; + public int M19() => 19; + +} + +public class C : I1 { + +} + + diff --git a/src/tests/Loader/classloader/regressions/GitHub_93770/GitHub_93770.csproj b/src/tests/Loader/classloader/regressions/GitHub_93770/GitHub_93770.csproj new file mode 100644 index 00000000000000..72aaed3e55208c --- /dev/null +++ b/src/tests/Loader/classloader/regressions/GitHub_93770/GitHub_93770.csproj @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 5c9868e334b088..537655fa553ce1 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -3259,6 +3259,9 @@ System.Threading.Thread.UnsafeStart not supported + + System.Threading.Thread.ThrowIfNoThreadStart: PlatformNotSupportedException + Could not load legacy Microsoft.Diagnostics.Tools.RuntimeClient diff --git a/src/tools/illink/src/linker/Linker/DgmlDependencyRecorder.cs b/src/tools/illink/src/linker/Linker/DgmlDependencyRecorder.cs index eed05fc7108484..0e862b62b73cd7 100644 --- a/src/tools/illink/src/linker/Linker/DgmlDependencyRecorder.cs +++ b/src/tools/illink/src/linker/Linker/DgmlDependencyRecorder.cs @@ -38,7 +38,7 @@ public DgmlDependencyRecorder (LinkContext context, string? fileName = null) Directory.CreateDirectory (context.OutputDirectory); } - var depsFile = File.OpenWrite (fileName); + var depsFile = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None); stream = depsFile; writer = XmlWriter.Create (stream, settings); diff --git a/src/tools/illink/src/linker/Linker/XmlDependencyRecorder.cs b/src/tools/illink/src/linker/Linker/XmlDependencyRecorder.cs index 6c386ac367c9bf..189e6fa274efa4 100644 --- a/src/tools/illink/src/linker/Linker/XmlDependencyRecorder.cs +++ b/src/tools/illink/src/linker/Linker/XmlDependencyRecorder.cs @@ -61,7 +61,7 @@ public XmlDependencyRecorder (LinkContext context, string? fileName = null) Directory.CreateDirectory (context.OutputDirectory); } - var depsFile = File.OpenWrite (fileName); + var depsFile = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None); stream = depsFile; writer = XmlWriter.Create (stream, settings);