From 328c62e8896de975c286209a027be63afabc6c3f Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Tue, 22 Nov 2022 21:44:06 +0100 Subject: [PATCH] Don't bind against non-shipping contract assemblies Manual backport of c8503d39053f9e0d94716a23c406b66f126ca259 Fixes https://github.com/dotnet/runtime/issues/77988 Unblocks https://github.com/dotnet/runtime/pull/78532 Introduce the AnnotateTargetPathWithContract switch to make it configure-able when a source project should return the reference project's assembly instead of the source assembly, when other projects compile against it. Set it so that reference assemblies are only returned for NetCoreAppCurrent tfms or when the project isn't packable. - Fix System.DirectoryServices.AccountManagement build System.DirectoryServices.AccountManagement now builds against src/System.DirectoryServices instead of ref/System.DirectoryServices (because the package doesn't contain the ref assembly). Because of that, the compiler now gets confused because of the System.DirectoryServices.Interop namespace and the global Interop class. This happens even though the DirectoryServices.Interop namespace doesn't include any public types. That results in the following errors: src\libraries\System.DirectoryServices.AccountManagement\src\System\DirectoryServices\AccountManagement\AD\SidList.cs(50,26): error CS0246: The type or namespace name 'SID_AND_ATTRIBUTES' could not be found (are you missing a using directive or an assembly reference?) src\libraries\System.DirectoryServices.AccountManagement\src\System\DirectoryServices\AccountManagement\interopt.cs(439,20): error CS0246: The type or namespace name 'UNICODE_INTPTR_STRING' could not be found (are you missing a using directive or an assembly reference?) This commit fixes that by removing the System.DirectoryServices.Interop namespace and moving the types into the parent namespace. - Suppress nullable warnings in Serialization.Schema Now that Schema compiles against the source assembly of System.CodeDom, it receives nullability errors. I'm suppressing them manually for now but am filing an issue to correctly fix those. Related: https://github.com/dotnet/runtime/issues/78036 --- eng/resolveContract.targets | 13 ++++++++++++- .../src/ILLink/ILLink.Suppressions.xml | 2 +- .../src/Interop/AdsOptions.cs | 2 +- .../src/Interop/AdsPropertyOperation.cs | 2 +- .../src/Interop/AdsSearchColumn.cs | 2 +- .../src/Interop/AdsSearchPreferenceInfo.cs | 2 +- .../src/Interop/AdsSearchPreferences.cs | 2 +- .../src/Interop/AdsSortKey.cs | 2 +- .../src/Interop/AdsType.cs | 2 +- .../src/Interop/AdsValue2.cs | 2 +- .../src/Interop/AdsValueHelper2.cs | 2 +- .../src/Interop/NativeMethods.cs | 2 +- .../src/Interop/SafeNativeMethods.cs | 2 +- .../src/Interop/UnsafeNativeMethods.cs | 2 +- .../ActiveDirectory/DomainController.cs | 2 +- .../DirectoryServices/AuthenticationTypes.cs | 2 -- .../System/DirectoryServices/DirectoryEntries.cs | 1 - .../System/DirectoryServices/DirectoryEntry.cs | 1 - .../DirectoryEntryConfiguration.cs | 1 - .../DirectoryServices/DirectorySearcher.cs | 1 - .../DirectoryServicesCOMException.cs | 1 - .../DirectoryServices/PropertyCollection.cs | 1 - .../DirectoryServices/PropertyValueCollection.cs | 1 - .../DirectoryServices/SchemaNameCollection.cs | 1 - .../DirectoryServices/SearchResultCollection.cs | 1 - .../Runtime/Serialization/Schema/CodeExporter.cs | 16 ++++++++-------- 26 files changed, 34 insertions(+), 34 deletions(-) diff --git a/eng/resolveContract.targets b/eng/resolveContract.targets index 4a2b0a5adfcbd..0aaf56d0a9731 100644 --- a/eng/resolveContract.targets +++ b/eng/resolveContract.targets @@ -20,6 +20,17 @@ true false + + true @@ -36,7 +47,7 @@ diff --git a/src/libraries/System.DirectoryServices/src/ILLink/ILLink.Suppressions.xml b/src/libraries/System.DirectoryServices/src/ILLink/ILLink.Suppressions.xml index ca9681a8e8f63..b27ed192851d2 100644 --- a/src/libraries/System.DirectoryServices/src/ILLink/ILLink.Suppressions.xml +++ b/src/libraries/System.DirectoryServices/src/ILLink/ILLink.Suppressions.xml @@ -5,7 +5,7 @@ ILLink IL2050 member - M:System.DirectoryServices.Interop.UnsafeNativeMethods.ADsOpenObject(System.String,System.String,System.String,System.Int32,System.Guid@,System.Object@) + M:System.DirectoryServices.UnsafeNativeMethods.ADsOpenObject(System.String,System.String,System.String,System.Int32,System.Guid@,System.Object@) ILLink diff --git a/src/libraries/System.DirectoryServices/src/Interop/AdsOptions.cs b/src/libraries/System.DirectoryServices/src/Interop/AdsOptions.cs index fe0ad8b59edce..d69988da76d4f 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/AdsOptions.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/AdsOptions.cs @@ -1,7 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { internal enum AdsOptions { diff --git a/src/libraries/System.DirectoryServices/src/Interop/AdsPropertyOperation.cs b/src/libraries/System.DirectoryServices/src/Interop/AdsPropertyOperation.cs index 4d5baf7145e79..51e3ca30f7e91 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/AdsPropertyOperation.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/AdsPropertyOperation.cs @@ -1,7 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { internal enum AdsPropertyOperation { diff --git a/src/libraries/System.DirectoryServices/src/Interop/AdsSearchColumn.cs b/src/libraries/System.DirectoryServices/src/Interop/AdsSearchColumn.cs index 76dca56431ad3..eec178f3802bb 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/AdsSearchColumn.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/AdsSearchColumn.cs @@ -3,7 +3,7 @@ using System.Runtime.InteropServices; -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { [StructLayout(LayoutKind.Sequential)] internal unsafe struct AdsSearchColumn diff --git a/src/libraries/System.DirectoryServices/src/Interop/AdsSearchPreferenceInfo.cs b/src/libraries/System.DirectoryServices/src/Interop/AdsSearchPreferenceInfo.cs index e1b5936c71fd3..0e8c328615446 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/AdsSearchPreferenceInfo.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/AdsSearchPreferenceInfo.cs @@ -3,7 +3,7 @@ using System.Runtime.InteropServices; -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { [StructLayout(LayoutKind.Sequential)] internal struct AdsSearchPreferenceInfo diff --git a/src/libraries/System.DirectoryServices/src/Interop/AdsSearchPreferences.cs b/src/libraries/System.DirectoryServices/src/Interop/AdsSearchPreferences.cs index ec409e3a53c30..dd4df804005e0 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/AdsSearchPreferences.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/AdsSearchPreferences.cs @@ -1,7 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { internal enum AdsSearchPreferences { diff --git a/src/libraries/System.DirectoryServices/src/Interop/AdsSortKey.cs b/src/libraries/System.DirectoryServices/src/Interop/AdsSortKey.cs index 1c844d7741c97..b25a14b9a29cf 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/AdsSortKey.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/AdsSortKey.cs @@ -3,7 +3,7 @@ using System.Runtime.InteropServices; -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { [StructLayout(LayoutKind.Sequential)] internal struct AdsSortKey diff --git a/src/libraries/System.DirectoryServices/src/Interop/AdsType.cs b/src/libraries/System.DirectoryServices/src/Interop/AdsType.cs index 7320c9d512cb4..2c1d54779ab44 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/AdsType.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/AdsType.cs @@ -1,7 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { internal enum AdsType { diff --git a/src/libraries/System.DirectoryServices/src/Interop/AdsValue2.cs b/src/libraries/System.DirectoryServices/src/Interop/AdsValue2.cs index 82c2413f1ec71..5aa77b9ea7c95 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/AdsValue2.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/AdsValue2.cs @@ -3,7 +3,7 @@ using System.Runtime.InteropServices; -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { [StructLayout(LayoutKind.Sequential)] internal struct Ads_Pointer diff --git a/src/libraries/System.DirectoryServices/src/Interop/AdsValueHelper2.cs b/src/libraries/System.DirectoryServices/src/Interop/AdsValueHelper2.cs index 10b208f0784cc..3a19d778c2464 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/AdsValueHelper2.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/AdsValueHelper2.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Globalization; -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { [StructLayout(LayoutKind.Sequential)] internal struct SystemTime diff --git a/src/libraries/System.DirectoryServices/src/Interop/NativeMethods.cs b/src/libraries/System.DirectoryServices/src/Interop/NativeMethods.cs index 7ce5748edbc6c..ca45d792515d6 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/NativeMethods.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/NativeMethods.cs @@ -1,7 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { internal static class NativeMethods { diff --git a/src/libraries/System.DirectoryServices/src/Interop/SafeNativeMethods.cs b/src/libraries/System.DirectoryServices/src/Interop/SafeNativeMethods.cs index db401906f69ee..9ae1fdfd26811 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/SafeNativeMethods.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/SafeNativeMethods.cs @@ -5,7 +5,7 @@ using System.Security; using System.Runtime.InteropServices; -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { internal static partial class SafeNativeMethods { diff --git a/src/libraries/System.DirectoryServices/src/Interop/UnsafeNativeMethods.cs b/src/libraries/System.DirectoryServices/src/Interop/UnsafeNativeMethods.cs index 30912155a31fc..b6f6e72aad9bd 100644 --- a/src/libraries/System.DirectoryServices/src/Interop/UnsafeNativeMethods.cs +++ b/src/libraries/System.DirectoryServices/src/Interop/UnsafeNativeMethods.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Security; -namespace System.DirectoryServices.Interop +namespace System.DirectoryServices { [StructLayout(LayoutKind.Explicit)] diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/ActiveDirectory/DomainController.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/ActiveDirectory/DomainController.cs index 98eb7d7204497..0a855c618d928 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/ActiveDirectory/DomainController.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/ActiveDirectory/DomainController.cs @@ -410,7 +410,7 @@ public void SeizeRoleOwnership(ActiveDirectoryRole role) // Increment the RIDAvailablePool by 30k. if (role == ActiveDirectoryRole.RidRole) { - System.DirectoryServices.Interop.UnsafeNativeMethods.IADsLargeInteger ridPool = (System.DirectoryServices.Interop.UnsafeNativeMethods.IADsLargeInteger)roleObjectEntry.Properties[PropertyManager.RIDAvailablePool].Value!; + System.DirectoryServices.UnsafeNativeMethods.IADsLargeInteger ridPool = (System.DirectoryServices.UnsafeNativeMethods.IADsLargeInteger)roleObjectEntry.Properties[PropertyManager.RIDAvailablePool].Value!; // check the overflow of the low part if (ridPool.LowPart + UpdateRidPoolSeizureValue < ridPool.LowPart) diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/AuthenticationTypes.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/AuthenticationTypes.cs index 0a7ece6d9ddb1..f44e180c4c384 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/AuthenticationTypes.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/AuthenticationTypes.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.DirectoryServices.Interop; - namespace System.DirectoryServices { /// diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntries.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntries.cs index 71d53ef690119..cb2082a0f1ffb 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntries.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntries.cs @@ -3,7 +3,6 @@ using System.Runtime.InteropServices; using System.Collections; -using System.DirectoryServices.Interop; namespace System.DirectoryServices { diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntry.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntry.cs index 429c4a4f779e8..c4d046cf00656 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntry.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntry.cs @@ -3,7 +3,6 @@ using System.Runtime.InteropServices; using System.Diagnostics; -using System.DirectoryServices.Interop; using System.ComponentModel; using System.Threading; using System.Reflection; diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntryConfiguration.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntryConfiguration.cs index df98c45350281..1ff7fcb1e3d2a 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntryConfiguration.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryEntryConfiguration.cs @@ -1,7 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.DirectoryServices.Interop; using System.ComponentModel; namespace System.DirectoryServices diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectorySearcher.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectorySearcher.cs index 846fffa58e4f2..1ef524342a335 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectorySearcher.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectorySearcher.cs @@ -4,7 +4,6 @@ using System.Runtime.InteropServices; using System.Collections; using System.Collections.Specialized; -using System.DirectoryServices.Interop; using System.ComponentModel; using INTPTR_INTPTRCAST = System.IntPtr; diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryServicesCOMException.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryServicesCOMException.cs index ac1ee821b1c46..6ff6d88c56241 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryServicesCOMException.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/DirectoryServicesCOMException.cs @@ -4,7 +4,6 @@ using System.ComponentModel; using System.Runtime.InteropServices; using System.Runtime.Serialization; -using System.DirectoryServices.Interop; namespace System.DirectoryServices { diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/PropertyCollection.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/PropertyCollection.cs index 51878e2cc52d1..38d202f705364 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/PropertyCollection.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/PropertyCollection.cs @@ -3,7 +3,6 @@ using System.Runtime.InteropServices; using System.Collections; -using System.DirectoryServices.Interop; using System.Globalization; namespace System.DirectoryServices diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/PropertyValueCollection.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/PropertyValueCollection.cs index 4ae15eb0b7a9d..a006b65e7e4bb 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/PropertyValueCollection.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/PropertyValueCollection.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections; -using System.DirectoryServices.Interop; namespace System.DirectoryServices { diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/SchemaNameCollection.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/SchemaNameCollection.cs index 853c659ecfd88..7acb9bf62334e 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/SchemaNameCollection.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/SchemaNameCollection.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections; -using System.DirectoryServices.Interop; namespace System.DirectoryServices { diff --git a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/SearchResultCollection.cs b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/SearchResultCollection.cs index 4711b60e97b54..dac7ae1f9f754 100644 --- a/src/libraries/System.DirectoryServices/src/System/DirectoryServices/SearchResultCollection.cs +++ b/src/libraries/System.DirectoryServices/src/System/DirectoryServices/SearchResultCollection.cs @@ -4,7 +4,6 @@ using System.Net; using System.Runtime.InteropServices; using System.Collections; -using System.DirectoryServices.Interop; using System.Text; using INTPTR_INTPTRCAST = System.IntPtr; diff --git a/src/libraries/System.Runtime.Serialization.Schema/src/System/Runtime/Serialization/Schema/CodeExporter.cs b/src/libraries/System.Runtime.Serialization.Schema/src/System/Runtime/Serialization/Schema/CodeExporter.cs index 45476be4423f1..78a0301fe3ad5 100644 --- a/src/libraries/System.Runtime.Serialization.Schema/src/System/Runtime/Serialization/Schema/CodeExporter.cs +++ b/src/libraries/System.Runtime.Serialization.Schema/src/System/Runtime/Serialization/Schema/CodeExporter.cs @@ -520,8 +520,8 @@ private static CodeTypeDeclaration CreateTypeDeclaration(string typeName, DataCo CodeAttributeDeclaration generatedCodeAttribute = new CodeAttributeDeclaration(typeof(GeneratedCodeAttribute).FullName!); AssemblyName assemblyName = Assembly.GetExecutingAssembly().GetName(); - generatedCodeAttribute.Arguments.Add(new CodeAttributeArgument(new CodePrimitiveExpression(assemblyName.Name))); - generatedCodeAttribute.Arguments.Add(new CodeAttributeArgument(new CodePrimitiveExpression(assemblyName.Version?.ToString()))); + generatedCodeAttribute.Arguments.Add(new CodeAttributeArgument(new CodePrimitiveExpression(assemblyName.Name!))); + generatedCodeAttribute.Arguments.Add(new CodeAttributeArgument(new CodePrimitiveExpression(assemblyName.Version?.ToString()!))); // System.Diagnostics.DebuggerStepThroughAttribute not allowed on enums // ensure that the attribute is only generated on types that are not enums @@ -820,7 +820,7 @@ private void ExportClassDataContract(DataContract classDataContract, ContractCod { ContractCodeDomInfo baseContractCodeDomInfo = GetContractCodeDomInfo(classDataContract.BaseContract); Debug.Assert(baseContractCodeDomInfo.IsProcessed, "Cannot generate code for type if code for base type has not been generated"); - type.BaseTypes.Add(baseContractCodeDomInfo.TypeReference); + type.BaseTypes.Add(baseContractCodeDomInfo.TypeReference!); AddBaseMemberNames(baseContractCodeDomInfo, contractCodeDomInfo); if (baseContractCodeDomInfo.ReferencedTypeExists) { @@ -1153,7 +1153,7 @@ private void ExportISerializableDataContract(DataContract classDataContract, Con { ContractCodeDomInfo baseContractCodeDomInfo = GetContractCodeDomInfo(classDataContract.BaseContract); GenerateType(classDataContract.BaseContract, baseContractCodeDomInfo); - type.BaseTypes.Add(baseContractCodeDomInfo.TypeReference); + type.BaseTypes.Add(baseContractCodeDomInfo.TypeReference!); if (baseContractCodeDomInfo.ReferencedTypeExists) { Type? actualType = (Type?)baseContractCodeDomInfo.TypeReference?.UserData[s_codeUserDataActualTypeKey]; @@ -1238,7 +1238,7 @@ private void ExportCollectionDataContract(DataContract collectionContract, Contr Debug.Assert(contractCodeDomInfo.TypeDeclaration != null); CodeTypeDeclaration generatedType = contractCodeDomInfo.TypeDeclaration; - generatedType.BaseTypes.Add(baseTypeReference); + generatedType.BaseTypes.Add(baseTypeReference!); CodeAttributeDeclaration collectionContractAttribute = new CodeAttributeDeclaration(GetClrTypeFullName(typeof(CollectionDataContractAttribute))); collectionContractAttribute.Arguments.Add(new CodeAttributeArgument(ImportGlobals.NameProperty, new CodePrimitiveExpression(dataContractName))); collectionContractAttribute.Arguments.Add(new CodeAttributeArgument(ImportGlobals.NamespaceProperty, new CodePrimitiveExpression(collectionContract.XmlName.Namespace))); @@ -1673,7 +1673,7 @@ private static CodeThisReferenceExpression ThisReference private static CodePrimitiveExpression NullReference { - get { return new CodePrimitiveExpression(null); } + get { return new CodePrimitiveExpression(null!); } } private CodeParameterDeclarationExpression SerializationInfoParameter @@ -1784,12 +1784,12 @@ private CodeMemberMethod GetSchemaStaticMethod new CodeTypeReferenceExpression(GetCodeTypeReference(typeof(XmlSerializableServices))), nameof(XmlSerializableServices.AddDefaultSchema), new CodeArgumentReferenceExpression(paramDeclaration.Name), - new CodeFieldReferenceExpression(null, TypeNameFieldName) + new CodeFieldReferenceExpression(null!, TypeNameFieldName) ) ); getSchemaStaticMethod.Statements.Add( new CodeMethodReturnStatement( - new CodeFieldReferenceExpression(null, TypeNameFieldName) + new CodeFieldReferenceExpression(null!, TypeNameFieldName) ) ); return getSchemaStaticMethod;