Skip to content

Commit bff7c3d

Browse files
Revert "Add annotations to System.Private.DataContractSerialization (#73337)" (#73878)
This reverts commit c4ea2ca.
1 parent 339a6bc commit bff7c3d

File tree

53 files changed

+7
-688
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+7
-688
lines changed

src/libraries/System.Private.DataContractSerialization/src/System.Private.DataContractSerialization.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<TargetFramework>$(NetCoreAppCurrent)</TargetFramework>
44
<NoWarn>$(NoWarn);1634;1691;649</NoWarn>
55
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
66
<!-- Too much private reflection. Do not bother with trimming -->
77
<ILLinkTrimAssembly>false</ILLinkTrimAssembly>
8-
<EnableAOTAnalyzer>true</EnableAOTAnalyzer>
98
</PropertyGroup>
109

1110
<PropertyGroup>

src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/AccessorBuilder.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ internal static class FastInvokerBuilder
2727

2828
[UnconditionalSuppressMessage("ReflectionAnalysis", "IL2060:MakeGenericMethod",
2929
Justification = "The call to MakeGenericMethod is safe due to the fact that we are preserving the constructors of type which is what Make() is doing.")]
30-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
3130
public static Func<object> GetMakeNewInstanceFunc(
3231
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)]
3332
Type type)
@@ -67,9 +66,7 @@ public static Getter CreateGetter(MemberInfo memberInfo)
6766
// Only JIT if dynamic code is supported.
6867
if (RuntimeFeature.IsDynamicCodeSupported || (!declaringType.IsValueType && !propertyType.IsValueType))
6968
{
70-
#pragma warning disable IL3050 // AOT compiling should recognize that this call is gated by RuntimeFeature.IsDynamicCodeSupported
7169
var createGetterGeneric = s_createGetterInternal.MakeGenericMethod(declaringType, propertyType).CreateDelegate<Func<PropertyInfo, Getter>>();
72-
#pragma warning restore IL3050 // Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.
7370
return createGetterGeneric(propInfo);
7471
}
7572
else
@@ -124,9 +121,7 @@ public static Setter CreateSetter(MemberInfo memberInfo)
124121
// Only JIT if dynamic code is supported.
125122
if (RuntimeFeature.IsDynamicCodeSupported || (!declaringType.IsValueType && !propertyType.IsValueType))
126123
{
127-
#pragma warning disable IL3050 // AOT compiling should recognize that this call is gated by RuntimeFeature.IsDynamicCodeSupported
128124
var createSetterGeneric = s_createSetterInternal.MakeGenericMethod(propInfo.DeclaringType!, propInfo.PropertyType).CreateDelegate<Func<PropertyInfo, Setter>>();
129-
#pragma warning restore IL3050 // Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.
130125
return createSetterGeneric(propInfo);
131126
}
132127
else

src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/ClassDataContract.cs

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,12 @@ internal sealed class ClassDataContract : DataContract
4141
DynamicallyAccessedMemberTypes.PublicProperties;
4242

4343
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
44-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
4544
internal ClassDataContract(Type type) : base(new ClassDataContractCriticalHelper(type))
4645
{
4746
InitClassDataContract();
4847
}
4948

5049
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
51-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
5250
private ClassDataContract(Type type, XmlDictionaryString ns, string[] memberNames) : base(new ClassDataContractCriticalHelper(type, ns, memberNames))
5351
{
5452
InitClassDataContract();
@@ -77,7 +75,6 @@ internal List<DataMember>? Members
7775
public XmlDictionaryString?[]? ChildElementNamespaces
7876
{
7977
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
80-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
8178
get
8279
{
8380
if (_childElementNamespaces == null)
@@ -136,7 +133,6 @@ internal MethodInfo? ExtensionDataSetMethod
136133
public override DataContractDictionary? KnownDataContracts
137134
{
138135
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
139-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
140136
get
141137
{ return _helper.KnownDataContracts; }
142138
}
@@ -208,8 +204,6 @@ internal MethodInfo? GetKeyValuePairMethodInfo
208204
}
209205

210206
private Func<object>? _makeNewInstance;
211-
[UnconditionalSuppressMessage("AOT Analysis", "IL3050:RequiresDynamicCode",
212-
Justification = "Cannot annotate a field, annotating the usage instead")]
213207
private Func<object> MakeNewInstance => _makeNewInstance ??= FastInvokerBuilder.GetMakeNewInstanceFunc(UnderlyingType);
214208

215209
internal bool CreateNewInstanceViaDefaultConstructor([NotNullWhen(true)] out object? obj)
@@ -235,7 +229,6 @@ internal bool CreateNewInstanceViaDefaultConstructor([NotNullWhen(true)] out obj
235229
}
236230

237231
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
238-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
239232
private XmlFormatClassWriterDelegate CreateXmlFormatWriterDelegate()
240233
{
241234
return new XmlFormatWriterGenerator().GenerateClassWriter(this);
@@ -244,7 +237,6 @@ private XmlFormatClassWriterDelegate CreateXmlFormatWriterDelegate()
244237
internal XmlFormatClassWriterDelegate XmlFormatWriterDelegate
245238
{
246239
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
247-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
248240
get
249241
{
250242
if (_helper.XmlFormatWriterDelegate == null)
@@ -267,7 +259,6 @@ internal XmlFormatClassWriterDelegate XmlFormatWriterDelegate
267259
}
268260

269261
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
270-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
271262
private XmlFormatClassReaderDelegate CreateXmlFormatReaderDelegate()
272263
{
273264
return new XmlFormatReaderGenerator().GenerateClassReader(this);
@@ -276,7 +267,6 @@ private XmlFormatClassReaderDelegate CreateXmlFormatReaderDelegate()
276267
internal XmlFormatClassReaderDelegate XmlFormatReaderDelegate
277268
{
278269
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
279-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
280270
get
281271
{
282272
if (_helper.XmlFormatReaderDelegate == null)
@@ -299,7 +289,6 @@ internal XmlFormatClassReaderDelegate XmlFormatReaderDelegate
299289
}
300290

301291
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
302-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
303292
internal static ClassDataContract CreateClassDataContractForKeyValue(Type type, XmlDictionaryString ns, string[] memberNames)
304293
{
305294
ClassDataContract? cdc = (ClassDataContract?)DataContract.GetDataContractFromGeneratedAssembly(type);
@@ -334,7 +323,6 @@ internal static void CheckAndAddMember(List<DataMember> members, DataMember memb
334323
}
335324

336325
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
337-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
338326
internal static XmlDictionaryString? GetChildNamespaceToDeclare(DataContract dataContract, Type childType, XmlDictionary dictionary)
339327
{
340328
childType = DataContract.UnwrapNullableType(childType);
@@ -458,7 +446,6 @@ internal static bool IsNonSerializedMember(Type type, string memberName)
458446
}
459447

460448
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
461-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
462449
private XmlDictionaryString?[]? CreateChildElementNamespaces()
463450
{
464451
if (Members == null)
@@ -487,7 +474,6 @@ private void EnsureMethodsImported()
487474
}
488475

489476
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
490-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
491477
public override void WriteXmlValue(XmlWriterDelegator xmlWriter, object obj, XmlObjectSerializerWriteContext? context)
492478
{
493479
Debug.Assert(context != null);
@@ -500,7 +486,6 @@ public override void WriteXmlValue(XmlWriterDelegator xmlWriter, object obj, Xml
500486
}
501487

502488
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
503-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
504489
public override object? ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext? context)
505490
{
506491
if (_isScriptObject)
@@ -708,8 +693,6 @@ private sealed class ClassDataContractCriticalHelper : DataContract.DataContract
708693
{
709694
private static Type[]? s_serInfoCtorArgs;
710695
private static readonly MethodInfo s_getKeyValuePairMethod = typeof(KeyValuePairAdapter<,>).GetMethod("GetKeyValuePair", Globals.ScanAllMembers)!;
711-
[UnconditionalSuppressMessage("AOT Analysis", "IL3050:RequiresDynamicCode",
712-
Justification = "Cannot annotate a field, annotating the method that uses the field instead")]
713696
private static readonly ConstructorInfo s_ctorGenericMethod = typeof(KeyValuePairAdapter<,>).GetConstructor(Globals.ScanAllMembers, new Type[] { typeof(KeyValuePair<,>).MakeGenericType(typeof(KeyValuePairAdapter<,>).GetGenericArguments()) })!;
714697

715698
private ClassDataContract? _baseContract;
@@ -742,7 +725,6 @@ private sealed class ClassDataContractCriticalHelper : DataContract.DataContract
742725
public XmlDictionaryString[]? MemberNamespaces;
743726

744727
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
745-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
746728
internal ClassDataContractCriticalHelper([DynamicallyAccessedMembers(DataContractPreserveMemberTypes)]
747729
Type type) : base(type)
748730
{
@@ -857,7 +839,6 @@ internal ClassDataContractCriticalHelper([DynamicallyAccessedMembers(DataContrac
857839
}
858840

859841
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
860-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
861842
internal ClassDataContractCriticalHelper(
862843
[DynamicallyAccessedMembers(DataContractPreserveMemberTypes)]
863844
Type type, XmlDictionaryString ns, string[] memberNames) : base(type)
@@ -934,7 +915,6 @@ private void EnsureIsReferenceImported(Type type)
934915
[MemberNotNull(nameof(_members))]
935916
[MemberNotNull(nameof(Members))]
936917
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
937-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
938918
private void ImportDataMembers()
939919
{
940920
Type type = this.UnderlyingType;
@@ -1113,7 +1093,6 @@ private static bool CanSerializeMember(FieldInfo? field)
11131093
}
11141094

11151095
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
1116-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
11171096
private static bool SetIfGetOnlyCollection(DataMember memberContract)
11181097
{
11191098
//OK to call IsCollection here since the use of surrogated collection types is not supported in get-only scenarios
@@ -1188,7 +1167,6 @@ private void SetIfMembersHaveConflict(List<DataMember> members)
11881167
}
11891168

11901169
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
1191-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
11921170
private XmlQualifiedName GetStableNameAndSetHasDataContract(Type type)
11931171
{
11941172
return DataContract.GetStableName(type, out _hasDataContract);
@@ -1359,7 +1337,6 @@ internal override DataContractDictionary? KnownDataContracts
13591337
{
13601338

13611339
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
1362-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
13631340
get
13641341
{
13651342
if (_knownDataContracts != null)
@@ -1409,7 +1386,6 @@ internal bool IsNonAttributedType
14091386
}
14101387

14111388
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
1412-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
14131389
private void SetKeyValuePairAdapterFlags(
14141390
[DynamicallyAccessedMembers(DataContractPreserveMemberTypes)]
14151391
Type type)
@@ -1534,7 +1510,6 @@ public int Compare(Member x, Member y)
15341510
}
15351511

15361512
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
1537-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
15381513
internal ClassDataContractCriticalHelper Clone()
15391514
{
15401515
ClassDataContractCriticalHelper clonedHelper = new ClassDataContractCriticalHelper(this.UnderlyingType);
@@ -1597,7 +1572,6 @@ internal Type ObjectType
15971572
}
15981573

15991574
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
1600-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
16011575
internal ClassDataContract Clone()
16021576
{
16031577
ClassDataContract clonedDc = new ClassDataContract(this.UnderlyingType);
@@ -1612,7 +1586,6 @@ internal ClassDataContract Clone()
16121586
}
16131587

16141588
[RequiresUnreferencedCode(DataContract.SerializerTrimmerWarning)]
1615-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
16161589
internal void UpdateNamespaceAndMembers(Type type, XmlDictionaryString ns, string[] memberNames)
16171590
{
16181591
this.StableName = new XmlQualifiedName(GetStableName(type).Name, ns.Value);

src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/CodeGenerator.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ internal void BeginMethod(DynamicMethod dynamicMethod, Type delegateType, string
121121
InitILGeneration(methodName, argTypes);
122122
}
123123

124-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
125124
internal void BeginMethod(string methodName, Type delegateType, bool allowPrivateMemberAccess)
126125
{
127126
MethodInfo signature = JsonFormatWriterGenerator.GetInvokeMethod(delegateType);
@@ -133,7 +132,6 @@ internal void BeginMethod(string methodName, Type delegateType, bool allowPrivat
133132
_delegateType = delegateType;
134133
}
135134

136-
[RequiresDynamicCode(DataContract.SerializerAOTWarning)]
137135
private void BeginMethod(Type returnType, string methodName, Type[] argTypes, bool allowPrivateMemberAccess)
138136
{
139137
_dynamicMethod = new DynamicMethod(methodName, returnType, argTypes, SerializationModule, allowPrivateMemberAccess);

0 commit comments

Comments
 (0)