Skip to content

Commit 8508703

Browse files
authored
Add nullability to CreateInstance in TypeDescriptor/TypeDescriptionProvider to match Activator.CreateInstance (#79776)
1 parent 15fcb99 commit 8508703

File tree

5 files changed

+9
-9
lines changed

5 files changed

+9
-9
lines changed

src/libraries/System.ComponentModel.TypeConverter/ref/System.ComponentModel.TypeConverter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1382,7 +1382,7 @@ public abstract partial class TypeDescriptionProvider
13821382
{
13831383
protected TypeDescriptionProvider() { }
13841384
protected TypeDescriptionProvider(System.ComponentModel.TypeDescriptionProvider parent) { }
1385-
public virtual object? CreateInstance(System.IServiceProvider? provider, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type objectType, System.Type[]? argTypes, object[]? args) { throw null; }
1385+
public virtual object? CreateInstance(System.IServiceProvider? provider, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type objectType, System.Type[]? argTypes, object?[]? args) { throw null; }
13861386
public virtual System.Collections.IDictionary? GetCache(object instance) { throw null; }
13871387
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("The Type of instance cannot be statically discovered.")]
13881388
public virtual System.ComponentModel.ICustomTypeDescriptor GetExtendedTypeDescriptor(object instance) { throw null; }
@@ -1434,7 +1434,7 @@ public static void CreateAssociation(object primary, object secondary) { }
14341434
public static System.ComponentModel.Design.IDesigner? CreateDesigner(System.ComponentModel.IComponent component, System.Type designerBaseType) { throw null; }
14351435
public static System.ComponentModel.EventDescriptor CreateEvent([System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)] System.Type componentType, System.ComponentModel.EventDescriptor oldEventDescriptor, params System.Attribute[] attributes) { throw null; }
14361436
public static System.ComponentModel.EventDescriptor CreateEvent([System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)] System.Type componentType, string name, System.Type type, params System.Attribute[] attributes) { throw null; }
1437-
public static object? CreateInstance(System.IServiceProvider? provider, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type objectType, System.Type[]? argTypes, object[]? args) { throw null; }
1437+
public static object? CreateInstance(System.IServiceProvider? provider, [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] System.Type objectType, System.Type[]? argTypes, object?[]? args) { throw null; }
14381438
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("PropertyDescriptor's PropertyType cannot be statically discovered.")]
14391439
public static System.ComponentModel.PropertyDescriptor CreateProperty([System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)] System.Type componentType, System.ComponentModel.PropertyDescriptor oldPropertyDescriptor, params System.Attribute[] attributes) { throw null; }
14401440
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("PropertyDescriptor's PropertyType cannot be statically discovered.")]

src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/DelegatingTypeDescriptionProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ internal DelegatingTypeDescriptionProvider(Type type)
3636
IServiceProvider? provider,
3737
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type objectType,
3838
Type[]? argTypes,
39-
object[]? args)
39+
object?[]? args)
4040
{
4141
return Provider.CreateInstance(provider, objectType, argTypes, args);
4242
}

src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectTypeDescriptionProvider.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ internal static void AddEditorTable(Type editorBaseType, Hashtable table)
260260
IServiceProvider? provider,
261261
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type objectType,
262262
Type[]? argTypes,
263-
object[]? args)
263+
object?[]? args)
264264
{
265265
Debug.Assert(objectType != null, "Should have arg-checked before coming in here");
266266

@@ -277,9 +277,9 @@ internal static void AddEditorTable(Type editorBaseType, Hashtable table)
277277
argTypes = new Type[args.Length];
278278
for (int idx = 0; idx < args.Length; idx++)
279279
{
280-
if (args[idx] != null)
280+
if (args[idx] is object arg)
281281
{
282-
argTypes[idx] = args[idx].GetType();
282+
argTypes[idx] = arg.GetType();
283283
}
284284
else
285285
{

src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/TypeDescriptionProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ protected TypeDescriptionProvider(TypeDescriptionProvider parent)
5454
IServiceProvider? provider,
5555
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type objectType,
5656
Type[]? argTypes,
57-
object[]? args)
57+
object?[]? args)
5858
{
5959
if (_parent != null)
6060
{

src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/TypeDescriptor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ public static EventDescriptor CreateEvent(
395395
IServiceProvider? provider,
396396
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type objectType,
397397
Type[]? argTypes,
398-
object[]? args)
398+
object?[]? args)
399399
{
400400
ArgumentNullException.ThrowIfNull(objectType);
401401

@@ -3015,7 +3015,7 @@ internal TypeDescriptionNode(TypeDescriptionProvider provider)
30153015
IServiceProvider? provider,
30163016
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type objectType,
30173017
Type[]? argTypes,
3018-
object[]? args)
3018+
object?[]? args)
30193019
{
30203020
ArgumentNullException.ThrowIfNull(objectType);
30213021

0 commit comments

Comments
 (0)