Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable nullable reference types for System.Windows.Forms.Design #8342

Open
elachlan opened this issue Dec 7, 2022 · 6 comments
Open

Enable nullable reference types for System.Windows.Forms.Design #8342

elachlan opened this issue Dec 7, 2022 · 6 comments
Labels
area-NRT enhancement Product code improvement that does NOT require public API changes/additions help wanted Good issue for external contributors
Milestone

Comments

@elachlan
Copy link
Contributor

elachlan commented Dec 7, 2022

Is your feature request related to a problem? Please describe

System.Windows.Forms.Design does not have <Nullable>enable</Nullable> in its project file and the individual files aren't marked to enable/disable NRTs.

I am creating this issue to help track the progress

I suggest the following plan which has been implemented previously with other projects:

  1. Enable Nullable in the project file and marking each file with #nullable disable where needed.
  2. Community/team PRs to slowly enable nullability in the code base.

Related: #1107

List of files which need annotating ordered by line count ascending:

\src\System\Drawing\Design\IToolboxItemProvider.cs	11
\src\System\Windows\Forms\Design\ServiceProviderExtensions.cs	12
\src\System\ComponentModel\Design\DesignerActionTextItem.cs	13
\src\System\Windows\Forms\Design\IContainsThemedScrollbarWindows.cs	15
\src\System\ComponentModel\Design\DesignerActionHeaderItem.cs	16
\src\System\ComponentModel\Design\DesignerCommandSet.cs	16
\src\System\ComponentModel\Design\ProjectTargetFrameworkAttribute.cs	16
\src\System\ComponentModel\Design\IMultitargetHelperService.cs	17
\src\System\Drawing\Design\MetafileEditor.cs	18
\src\System\Drawing\Design\BitmapEditor.cs	19
\src\System\Windows\Forms\Design\Behavior\BehaviorDragDropEventArgs.cs	19
\src\System\ComponentModel\Design\HostDesigntimeLicenseContext.cs	20
\src\System\ComponentModel\Design\Serialization\MemberCodeDomSerializer.cs	21
\src\System\Windows\Forms\Design\ContextMenuStripGroup.cs	21
\src\System\ComponentModel\Design\DesignerActionItemCollection.cs	22
\src\System\ComponentModel\Design\DesignerActionPanel.DesignerActionPanelHeaderItem.cs	22
\src\System\ComponentModel\Design\DesignerActionPropertyItem.cs	22
\src\System\ComponentModel\Design\ExceptionCollection.cs	22
\src\System\ComponentModel\Design\ObjectSelectorEditor.SelectorNode.cs	22
\src\System\Drawing\Design\ColorEditor.SystemColorComparer.cs	22
\src\System\Drawing\Design\IToolboxUser.cs	22
\src\System\Runtime\InteropServices\UCOMITypeLib.cs	24
\src\System\ComponentModel\Design\Serialization\ICodeDomDesignerReload.cs	25
\src\System\Windows\Forms\Design\DataMemberFieldConverter.cs	26
\src\System\Drawing\Design\ToolboxComponentsCreatedEventArgs.cs	27
\src\System\Drawing\Design\ToolboxComponentsCreatingEventArgs.cs	27
\src\System\Windows\Forms\Design\ControlDesigner.CanResetSizePropertyDescriptor.cs	27
\src\System\Windows\Forms\Design\RadioButtonDesigner.cs	27
\src\System\ComponentModel\Design\ActiveDesignSurfaceChangedEventArgs.cs	29
\src\System\ComponentModel\Design\DesignerActionUIStateChangeEventArgs.cs	29
\src\System\ComponentModel\Design\DesignSurfaceEvent.cs	29
\src\System\Windows\Forms\Design\ListControlStringCollectionEditor.cs	29
\src\System\ComponentModel\Design\LoadedEventArgs.cs	30
\src\System\Windows\Forms\Design\AnchorEditor.cs	32
\src\System\Windows\Forms\Design\TextBoxActionList.cs	32
\src\System\Windows\Forms\Design\WindowsFormsDesignerOptionService.cs	32
\src\System\ComponentModel\Design\DateTimeEditor.cs	33
\src\System\ComponentModel\Design\DesignerActionItem.cs	33
\src\System\Windows\Forms\Design\DockEditor.cs	33
\src\System\ComponentModel\Design\Serialization\RootContext.cs	35
\src\System\Drawing\Design\ContentAlignmentEditor.cs	35
\src\System\Drawing\Design\CursorEditor.cs	36
\src\System\Windows\Forms\Design\BorderSidesEditor.cs	36
\src\System\Windows\Forms\Design\TabPageCollectionEditor.cs	36
\src\System\ComponentModel\Design\MultilineStringEditor.cs	37
\src\System\Resources\Tools\ITargetAwareCodeDomProvider.cs	38
\src\System\Windows\Forms\Design\ToolStripCodeDomSerializer.cs	38
\src\System\ComponentModel\Design\Serialization\CodeDomSerializerException.cs	39
\src\System\Windows\Forms\Design\FolderNameEditor.cs	39
\src\System\Windows\Forms\Design\PictureBoxActionList.cs	39
\src\System\Windows\Forms\Design\TreeViewActionList.cs	39
\src\System\ComponentModel\Design\DesignerActionPanel.TypeDescriptorContext.cs	40
\src\System\ComponentModel\Design\Serialization\ExpressionTable.cs	41
\src\System\Windows\Forms\Design\ShortcutKeysEditor.cs	42
\src\System\ComponentModel\Design\CollectionEditor.PropertyGridSite.cs	44
\src\System\Windows\Forms\Design\DataGridViewCellStyleEditor.cs	44
\src\System\Windows\Forms\Design\DesignBindingValueUIHandler.LocalUIItem.cs	44
\src\System\Windows\Forms\Design\ListViewItemCollectionEditor.cs	44
\src\System\ComponentModel\Design\DesignerActionListsChangedEventArgs.cs	45
\src\System\Windows\Forms\Design\ContextMenuStripGroupCollection.cs	45
\src\System\Windows\Forms\Design\Behavior\BehaviorService.MenuCommandHandler.cs	46
\src\System\Windows\Forms\Design\StringArrayEditor.cs	46
\src\System\Drawing\Design\ColorEditor.ColorPalette.ColorPaletteAccessibleObject.cs	47
\src\System\Windows\Forms\Design\ImageListImage.cs	47
\src\System\ComponentModel\Design\Serialization\SerializeAbsoluteContext.cs	48
\src\System\ComponentModel\Design\DesignSurfaceServiceContainer.cs	48
\src\System\Windows\Forms\Design\Behavior\BehaviorServiceAdornerCollectionEnumerator.cs	48
\src\System\Windows\Forms\Design\MaskedTextBoxTextEditor.cs	49
\src\System\ComponentModel\Design\Serialization\CodeDomLocalizationProvider.LanguageCultureInfoConverter.cs	50
\src\System\ComponentModel\Design\DesignerActionListCollection.cs	50
\src\System\Drawing\Design\ColorEditor.cs	50
\src\System\Windows\Forms\Design\DesignerExtenders.cs	50
\src\System\Windows\Forms\Design\DesignerExtenders.NameInheritedExtenderProvider.cs	50
\src\System\Windows\Forms\Design\DataGridViewComponentPropertyGridSite.cs	51
\src\System\Windows\Forms\Design\DataGridViewRowCollectionCodeDomSerializer.cs	51
\src\System\Windows\Forms\Design\FileNameEditor.cs	51
\src\System\Windows\Forms\Design\ToolStripMenuItemCodeDomSerializer.cs	52
\src\System\ComponentModel\Design\ExtenderProviderService.cs	53
\src\System\Drawing\Design\FontEditor.cs	53
\src\System\Windows\Forms\Design\Behavior\DesignerActionKeyboardBehavior.cs	53
\src\System\ComponentModel\Design\DesignerActionMethodItem.cs	54
\src\System\ComponentModel\Design\ArrayEditor.cs	55
\src\System\Drawing\Design\ColorEditor.StandardColorComparer.cs	55
\src\System\ComponentModel\Design\Serialization\PrimitiveCodeDomSerializer.cs	56
\src\System\Windows\Forms\Design\LinkAreaEditor.cs	57
\src\System\Windows\Forms\Design\ParentControlDesigner.EscapeHandler.cs	57
\src\System\Windows\Forms\Design\ControlDesigner.DesignerControlCollection.cs	58
\src\System\Windows\Forms\Design\SelectionUIService.HitTestInfo.cs	58
\src\System\ComponentModel\Design\DesignerActionPanel.CheckBoxPropertyLine.cs	59
\src\System\Windows\Forms\Design\ItemTypeToolStripMenuItem.cs	59
\src\System\Windows\Forms\Design\MaskedTextBoxDesignerActionList.cs	59
\src\System\Windows\Forms\Design\Behavior\Glyph.cs	60
\src\System\Windows\Forms\Design\ControlDesigner.DockingActionList.cs	61
\src\System\Windows\Forms\Design\ListViewGroupCollectionEditor.cs	61
\src\System\Drawing\Design\ToolboxItemCollection.cs	62
\src\System\Windows\Forms\Design\ToolStripItemGlyph.cs	62
\src\System\ComponentModel\Design\DesignerActionPanel.Line.cs	63
\src\System\Windows\Forms\Design\UpDownBaseDesigner.cs	63
\src\System\Windows\Forms\Design\ColumnHeaderCollectionEditor.cs	64
\src\System\Windows\Forms\Design\ScrollableControlDesigner.cs	64
\src\System\Windows\Forms\Design\DesignerToolStripControlHost.cs	65
\src\System\ComponentModel\Design\Serialization\ExpressionContext.cs	66
\src\System\Windows\Forms\Design\DesignBindingValueUIHandler.cs	66
\src\System\Windows\Forms\Design\UserControlDocumentDesigner.cs	66
\src\System\Windows\Forms\Design\ControlDesigner.ChildSubClass.cs	67
\src\System\ComponentModel\Design\ObjectSelectorEditor.cs	70
\src\System\Windows\Forms\Design\ControlDesigner.DesignerWindowTarget.cs	70
\src\System\ComponentModel\Design\DesignerActionPanel.TextLine.cs	71
\src\System\Windows\Forms\Design\NewItemsContextMenuStrip.cs	71
\src\System\ComponentModel\Design\Serialization\ComponentTypeCodeDomSerializer.cs	72
\src\System\ComponentModel\Design\ComponentDesigner.ShadowPropertyCollection.cs	72
\src\System\Windows\Forms\Design\TableLayoutPanelCodeDomSerializer.cs	73
\src\System\Windows\Forms\Design\TreeViewDesigner.cs	73
\src\System\Drawing\Design\FontNameEditor.cs	74
\src\System\Windows\Forms\Design\SelectionUIService.ContainerSelectionUIItem.cs	74
\src\System\Windows\Forms\Design\GroupedContextMenuStrip.cs	75
\src\System\Windows\Forms\Design\ImageCollectionCodeDomSerializer.cs	75
\src\System\Windows\Forms\Design\MaskDescriptorComparer.cs	75
\src\System\Windows\Forms\Design\MaskPropertyEditor.cs	75
\src\System\ComponentModel\Design\Serialization\ContainerCodeDomSerializer.cs	77
\src\System\Windows\Forms\Design\FormatStringEditor.cs	77
\src\System\ComponentModel\Design\Serialization\EventMemberCodeDomSerializer.cs	80
\src\System\ComponentModel\Design\TypeDescriptorFilterService.cs	80
\src\System\Windows\Forms\Design\ControlDesigner.TransparentBehavior.cs	80
\src\System\Windows\Forms\Design\MaskedTextBoxTextEditorDropDown.cs	80
\src\System\Windows\Forms\Design\Behavior\Adorner.cs	81
\src\System\ComponentModel\Design\DesignSurfaceCollection.cs	83
\src\System\ComponentModel\Design\DateTimeEditor.DateTimeUI.cs	85
\src\System\Windows\Forms\Design\DocumentDesigner.DocumentInheritanceService.cs	87
\src\System\Windows\Forms\Design\TableLayoutControlCollectionCodeDomSerializer.cs	88
\src\System\Windows\Forms\Design\TextBoxDesigner.cs	88
\src\System\Windows\Forms\Design\ControlDesigner.ControlDesignerAccessibleObject.cs	90
\src\System\Windows\Forms\Design\ListViewActionList.cs	91
\src\System\Windows\Forms\Design\EventHandlerService.cs	92
\src\System\Windows\Forms\Design\ListViewSubItemCollectionEditor.cs	92
\src\System\ComponentModel\Design\DesignerActionList.cs	94
\src\System\Windows\Forms\Design\DesignerExtenders.NameExtenderProvider.cs	95
\src\System\ComponentModel\Design\Serialization\EnumCodeDomSerializer.cs	96
\src\System\Drawing\Design\CursorEditor.CursorUI.cs	96
\src\System\ComponentModel\Design\CollectionEditor.FilterListBox.cs	97
\src\System\Windows\Forms\Design\AxImporter.cs	97
\src\System\ComponentModel\Design\DesignerActionUIService.cs	98
\src\System\Windows\Forms\Design\FolderNameEditor.FolderBrowser.cs	98
\src\System\Windows\Forms\Design\RichTextBoxDesigner.cs	99
\src\System\Windows\Forms\Design\ContextMenuStripActionList.cs	100
\src\System\Windows\Forms\Design\PictureBoxDesigner.cs	101
\src\System\Windows\Forms\Design\InheritanceUI.cs	103
\src\System\Windows\Forms\Design\ImageListImageEditor.cs	107
\src\System\Windows\Forms\Design\StandardCommandToolStripMenuItem.cs	107
\src\System\ComponentModel\Design\DesignerActionPanel.MethodLine.cs	109
\src\System\Windows\Forms\Design\Behavior\GlyphCollection.cs	109
\src\System\Windows\Forms\Design\MenuCommands.cs	110
\src\System\Drawing\Design\IconEditor.cs	111
\src\System\Windows\Forms\Design\StatusCommandUI.cs	112
\src\System\Windows\Forms\Design\ImageCollectionEditor.cs	113
\src\System\ComponentModel\Design\BinaryEditor.cs	117
\src\System\ComponentModel\Design\DesignerActionPanel.PanelHeaderLine.cs	121
\src\System\ComponentModel\Design\Serialization\ResourcePropertyMemberCodeDomSerializer.cs	123
\src\System\ComponentModel\Design\MultilineStringEditor.OleCallback.cs	124
\src\System\Windows\Forms\Design\GroupBoxDesigner.cs	124
\src\System\ComponentModel\Design\DesignerActionPanel.PropertyLine.cs	125
\src\System\Drawing\Design\SelectionPanelBase.cs	125
\src\System\Windows\Forms\Design\CompositionDesigner.cs	125
\src\System\Windows\Forms\Design\ToolStripEditorManager.cs	127
\src\System\ComponentModel\Design\Serialization\CodeDomSerializationProvider.cs	128
\src\System\Windows\Forms\Design\ComboBoxDesigner.cs	128
\src\System\Windows\Forms\Design\LinkAreaEditor.LinkAreaUI.cs	132
\src\System\ComponentModel\Design\Serialization\CodeDomDesignerLoader.ModifiersInheritedExtenderProvider.cs	134
\src\System\Drawing\Design\ColorEditor.CustomColorDialog.cs	134
\src\System\Windows\Forms\Design\ChangeToolStripParentVerb.cs	138
\src\System\Windows\Forms\Design\Behavior\DesignerActionBehavior.cs	139
\src\System\Windows\Forms\Design\TemplateNodeCustomMenuItemCollection.cs	139
\src\System\ComponentModel\Design\SiteNestedContainer.cs	140
\src\System\ComponentModel\Design\Serialization\CodeDomDesignerLoader.ModifierConverter.cs	141
\src\System\Drawing\Design\IToolboxService.cs	142
\src\System\Windows\Forms\Design\MaskDescriptor.cs	142
\src\System\Windows\Forms\Design\LabelDesigner.cs	146
\src\System\Windows\Forms\Design\TextBoxBaseDesigner.cs	148
\src\System\ComponentModel\Design\Serialization\LocalizationCodeDomSerializer.cs	149
\src\System\Windows\Forms\Design\EditorServiceContext.cs	158
\src\System\Drawing\Design\ImageEditor.cs	159
\src\System\Windows\Forms\Design\ToolStripActionList.cs	161
\src\System\Windows\Forms\Design\ImageIndexEditor.cs	162
\src\System\Windows\Forms\Design\OleDragDropHandler.CfCodeToolboxItem.cs	162
\src\System\ComponentModel\Design\CollectionEditor.CollectionForm.cs	163
\src\System\Windows\Forms\Design\PbrsForward.cs	164
\src\System\ComponentModel\Design\Serialization\CodeMethodMap.cs	175
\src\System\Windows\Forms\Design\CollectionEditVerbManager.cs	175
\src\System\Windows\Forms\Design\ListViewDesigner.cs	180
\src\System\ComponentModel\Design\Serialization\CodeDomDesignerLoader.ModifiersExtenderProvider.cs	186
\src\System\Windows\Forms\Design\Behavior\BehaviorService.AdornerWindow.MouseHook.cs	190
\src\System\Windows\Forms\Design\StringCollectionEditor.StringCollectionForm.cs	191
\src\System\ComponentModel\Design\ObjectSelectorEditor.Selector.cs	195
\src\System\ComponentModel\Design\Serialization\CodeDomLocalizationProvider.cs	203
\src\System\Windows\Forms\Design\ListBoxDesigner.cs	211
\src\System\Windows\Forms\Design\ButtonBaseDesigner.cs	218
\src\System\Windows\Forms\Design\Behavior\AdornerCollection.cs	221
\src\System\ComponentModel\Design\Serialization\StatementContext.cs	224
\src\System\ComponentModel\Design\Serialization\CodeDomLocalizationProvider.LanguageExtenders.cs	230
\src\System\Windows\Forms\Design\Behavior\ContainerSelectorBehavior.cs	230
\src\System\Windows\Forms\Design\ToolStripInSituService.cs	234
\src\System\Drawing\BitmapSelector.cs	235
\src\System\ComponentModel\Design\EventBindingService.cs	239
\src\System\Windows\Forms\Design\FormatStringDialog.cs	249
\src\System\Windows\Forms\Design\ToolStripAdornerWindowService.cs	256
\src\System\Windows\Forms\Design\MaskedTextBoxDesigner.cs	268
\src\System\ComponentModel\Design\CollectionEditor.SplitButton.cs	269
\src\System\ComponentModel\Design\BinaryEditor.BinaryUI.cs	271
\src\System\ComponentModel\Design\InheritanceService.cs	274
\src\System\Windows\Forms\Design\BaseContextMenuStrip.cs	290
\src\System\ComponentModel\Design\Serialization\ComponentCache.cs	298
\src\System\Windows\Forms\Design\MaskDescriptorTemplate.cs	299
\src\System\Windows\Forms\Design\OleDragDropHandler.ComponentDataObject.cs	302
\src\System\Windows\Forms\Design\AnchorEditor.AnchorUI.cs	304
\src\System\ComponentModel\Design\InheritedPropertyDescriptor.cs	308
\src\System\Windows\Forms\Design\DataGridViewCellStyleBuilder.cs	326
\src\System\Windows\Forms\Design\ShortcutKeysEditor.ShortcutKeysUI.cs	326
\src\System\ComponentModel\Design\DesignerActionPanel.TextBoxPropertyLine.cs	327
\src\System\ComponentModel\Design\CodeMarkers.cs	329
\src\System\Windows\Forms\Design\Behavior\ToolboxItemSnapLineBehavior.cs	338
\src\System\Windows\Forms\Design\DocumentDesigner.AxToolboxItem.cs	338
\src\System\ComponentModel\Design\DesignerActionService.cs	341
\src\System\ComponentModel\Design\DesignerActionUI.DesignerActionToolStripDropDown.cs	342
\src\System\ComponentModel\Design\ReferenceService.cs	343
\src\System\ComponentModel\Design\CollectionEditor.cs	347
\src\System\ComponentModel\Design\MultilineStringEditor.MultilineStringEditorUI.cs	362
\src\System\Drawing\Design\ColorEditor.ColorUI.cs	365
\src\System\Windows\Forms\Design\Behavior\BehaviorService.AdornerWindow.cs	374
\src\System\ComponentModel\Design\DesignerEventService.cs	379
\src\System\ComponentModel\Design\Serialization\CodeDomSerializer.cs	381
\src\System\Windows\Forms\Design\ControlCodeDomSerializer.cs	385
\src\System\ComponentModel\Design\EventBindingService.EventPropertyDescriptor.cs	395
\src\System\Drawing\Design\ColorEditor.ColorPalette.cs	398
\src\System\Windows\Forms\Design\BorderSidesEditor.BorderSidesEditorUI.cs	403
\src\System\ComponentModel\Design\DesignSurfaceManager.cs	410
\src\System\ComponentModel\Design\Serialization\PropertyMemberCodeDomSerializer.cs	411
\src\System\ComponentModel\Design\Serialization\ResourceCodeDomSerializer.cs	421
\src\System\Windows\Forms\Design\FormDocumentDesigner.cs	432
\src\System\ComponentModel\Design\SelectionService.cs	446
\src\System\Windows\Forms\Design\Behavior\SelectionManager.cs	458
\src\System\Windows\Forms\Design\StandardMenuStripVerb.cs	470
\src\System\Windows\Forms\Design\SelectionUIService.SelectionUIItem.cs	488
\src\System\ComponentModel\Design\DesignSurface.cs	491
\src\System\ComponentModel\Design\Serialization\ComponentCodeDomSerializer.cs	513
\src\System\ComponentModel\Design\MenuCommandService.cs	517
\src\System\ComponentModel\Design\Serialization\TypeCodeDomSerializer.cs	541
\src\System\Windows\Forms\Design\DesignerFrame.cs	576
\src\System\Windows\Forms\Design\ToolStripDesignerUtils.cs	584
\src\System\Windows\Forms\Design\SelectionUIHandler.cs	585
\src\System\Windows\Forms\Design\ToolStripItemCustomMenuItemCollection.cs	607
\src\System\ComponentModel\Design\ComponentDesigner.cs	629
\src\System\Windows\Forms\Design\MaskDesignerDialog.cs	632
\src\System\ComponentModel\Design\Serialization\CollectionCodeDomSerializer.cs	648
\src\System\ComponentModel\Design\DesignerActionUI.cs	672
\src\System\Windows\Forms\Design\ToolStripDropDownDesigner.cs	677
\src\System\ComponentModel\Design\ByteViewer.cs	678
\src\System\ComponentModel\Design\DesignerActionPanel.EditorPropertyLine.cs	720
\src\System\ComponentModel\Design\Serialization\ResourceCodeDomSerializer.SerializationResourceManager.cs	733
\src\System\Windows\Forms\Design\Behavior\BehaviorService.cs	765
\src\System\Windows\Forms\Design\DesignerUtils.cs	816
\src\System\Windows\Forms\Design\Behavior\ResizeBehavior.cs	819
\src\System\Resources\Tools\StronglyTypedResourceBuilder.cs	834
\src\System\ComponentModel\Design\Serialization\BasicDesignerLoader.cs	857
\src\System\Drawing\Design\ToolboxItem.cs	894
\src\System\ComponentModel\Design\Serialization\DesignerSerializationManager.cs	896
\src\System\ComponentModel\Design\DesignerActionPanel.cs	899
\src\System\Windows\Forms\Design\ToolStripItemBehavior.cs	905
\src\System\Windows\Forms\Design\Behavior\DropSourceBehavior.cs	1029
\src\System\Windows\Forms\Design\OleDragDropHandler.cs	1045
\src\System\Windows\Forms\Design\Behavior\DragAssistanceManager.cs	1077
\src\System\Windows\Forms\Design\FormatControl.cs	1130
\src\System\ComponentModel\Design\Serialization\CodeDomDesignerLoader.cs	1160
\src\System\Windows\Forms\Design\ToolStripItemDesigner.cs	1177
\src\System\Windows\Forms\Design\SelectionUIService.cs	1197
\src\System\ComponentModel\Design\CollectionEditor.CollectionEditorCollectionForm.cs	1223
\src\System\ComponentModel\Design\UndoEngine.cs	1229
\src\System\Windows\Forms\Design\DocumentDesigner.cs	1346
\src\System\ComponentModel\Design\Serialization\CodeDomComponentSerializationService.cs	1471
\src\System\Windows\Forms\Design\ControlCommandSet.cs	1580
\src\System\ComponentModel\Design\DesignerHost.cs	1615
\src\System\Windows\Forms\Design\ToolStripTemplateNode.cs	1794
\src\System\Windows\Forms\Design\ToolStripKeyboardHandlingService.cs	1891
\src\System\Windows\Forms\Design\ControlDesigner.cs	2205
\src\System\Windows\Forms\Design\ToolStripDesigner.cs	2260
\src\System\Windows\Forms\Design\ParentControlDesigner.cs	2378
\src\System\Windows\Forms\Design\ToolStripMenuItemDesigner.cs	2527
\src\System\Windows\Forms\Design\ComponentTray.cs	2611
\src\System\ComponentModel\Design\Serialization\CodeDomSerializerBase.cs	3020
\src\System\Windows\Forms\Design\CommandSet.cs	3625

Describe the solution you'd like and alternatives you've considered

N/A

Will this feature affect UI controls?

N/A

@elachlan elachlan added api-suggestion (1) Early API idea and discussion, it is NOT ready for implementation untriaged The team needs to look at this issue in the next triage labels Dec 7, 2022
@lonitra lonitra added enhancement Product code improvement that does NOT require public API changes/additions help wanted Good issue for external contributors area: NRT and removed api-suggestion (1) Early API idea and discussion, it is NOT ready for implementation untriaged The team needs to look at this issue in the next triage labels Dec 7, 2022
@ghost ghost added this to the Help wanted milestone Dec 7, 2022
@ghost
Copy link

ghost commented Dec 7, 2022

This issue is now marked as "help wanted", and we’re looking for a community volunteer to work on this issue. If we receive no interest in 180 days, we will close the issue. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!

@elachlan
Copy link
Contributor Author

elachlan commented Dec 9, 2022

I have started work on this. I immediately ran into interfaces in runtime which aren't annotated. Should interfaces be annotated with NRTs?

@halgab
Copy link
Contributor

halgab commented Mar 13, 2023

I think we're going to have issues with all CodeDom related code. Apparently the upstream System.CodeDom dll is not annotated: dotnet/runtime#41720, dotnet/runtime#78036.

@Tanya-Solyanik Tanya-Solyanik added the untriaged The team needs to look at this issue in the next triage label Oct 17, 2023
@lonitra
Copy link
Member

lonitra commented Oct 18, 2023

The team has decided to prioritize nullability changes to files in System.Windows.Forms as there are a greater number of users and we have much fuller test coverage here. Current PRs that are open that change nullability in System.Windows.Forms.Design space will be taken to completion, however we will not be prioritizing any new nullability changes in the System.Windows.Forms.Design area. Thank you so much for the amazing work community has done in this space! The team will revisit enabling nullability for files in System.Windows.Forms.Design once enabling nullability is complete in System.Windows.Forms.

FYI @halgab , @gpetrou

@lonitra lonitra removed the untriaged The team needs to look at this issue in the next triage label Oct 18, 2023
@lonitra lonitra pinned this issue Oct 18, 2023
@halgab
Copy link
Contributor

halgab commented Oct 19, 2023

That's very understandable. We're not far off for System.Windows.Forms anyway. I see only 17 files that are not fully annotated in this project, without taking into account currently opened PRs

@lonitra
Copy link
Member

lonitra commented Jan 30, 2024

Thank you for your patience on this! We've revisited this and decided we will start taking a look at new nullability changes in System.Windows.Forms.Design area again. However, when enabling nullability for classes that reside in System.Windows.Forms.Design, test coverage for public methods on the class should be added if it is lacking coverage. These tests should pass before and after nullability changes here to ensure that unintentional behavior changes are not made.

FYI @halgab , @gpetrou

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-NRT enhancement Product code improvement that does NOT require public API changes/additions help wanted Good issue for external contributors
Projects
None yet
Development

No branches or pull requests

5 participants