Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Nullable feature into master#23633

Merged
safern merged 48 commits intomasterfrom
NullableFeature
Apr 5, 2019
Merged

Nullable feature into master#23633
safern merged 48 commits intomasterfrom
NullableFeature

Conversation

@danmoseley
Copy link
Copy Markdown
Member

Rolling PR to check for bugs introduced in the nullable annotations work.

As new changes merge into the nullable branch, this will re-run tests automatically.

We have not yet determined when to do the merge, so this is no-merge.

safern and others added 16 commits March 27, 2019 22:34
* calendar

* nullable: all calendars

* fix likely corert error
* Nullable: Exception, SystemException, Argument*Exception

* Add Debug.Assert rather than comment
* Nullable: NumberFormatInfo, CultureInfo

* fix build

* fix windows

* fix APPX issue

* another appx failure

* get rid of line split

* mark retVal as nullable
…nfo, TextElementEnumerator, TimeSpanFormat, TimeSpanParse (#23486)

* nullable: DateTimeFormat, DateTimeFormatInfoScanner, SortKey, StringInfo, TextElementEnumerator, TimeSpanFormat, TimeSpanParse

* prefix workaround comment with TODO-NULLABLE

* add TODO-NULLABLE
* Nullable: Internal.Console, System.ValueType

* Making ToString() nullable
Merge remote-tracking branch 'dotnet/master' into NullableFeature
Nullable: System.Runtime.Intrinsics
* Unix interop

* More interop

* Fix

* fix
@danmoseley danmoseley added the * NO MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) label Apr 1, 2019
@danmoseley
Copy link
Copy Markdown
Member Author

danmoseley and others added 7 commits April 1, 2019 13:53
* Nullable annotations for Delegate/MulticastDelegate

* Dead string

* Remove TODO's

* Review

* Review2

* More

* More

* Unnecessary ?

* Update src/System.Private.CoreLib/src/System/MulticastDelegate.cs

Co-Authored-By: danmosemsft <danmose@microsoft.com>

* Santi feedback

* Jan feedback

* No assert msg
* Nullable: Annotate remaining System.*Exception

* PR feedback
@danmoseley
Copy link
Copy Markdown
Member Author

@stephentoub build break:

shared/System/Threading/CancellationTokenSource.cs(685,45): error CS8600: Converting null literal or possible null value to non-nullable type. [/mnt/j/workspace/dotnet_coreclr/master/arm_cross_checked_ubuntu_crossgen_comparison_prtest/src/System.Private.CoreLib/System.Private.CoreLib.csproj]

https://ci.dot.net/job/dotnet_coreclr/job/master/job/arm_cross_checked_ubuntu_crossgen_comparison_prtest/6961/consoleFull#705971828a82fefab-f698-416f-8fca-58544c94cd4e

@stephentoub
Copy link
Copy Markdown
Member

I'm amazed they don't happen more often with all these concurrent PRs. Will fix.

@danmoseley
Copy link
Copy Markdown
Member Author

@safern is going to add build -linuxmscorlib -arm to the branch CI.

stephentoub and others added 9 commits April 2, 2019 14:15
* Nullable: Overlapped and friends

* Address PR feedback
Also fixing the class? annotation on public LazyInitializer methods.
Finishes off annotation of the System.Threading namespace, not including subnamespaces.
* Nullable: ReaderWriterLockSlim

* Address PR feedback

* Audit System.Threading for unannotated statics
* Nullable: All remaining exceptions

* Fix build break and PR Feedback
* Nullable: System.Threading.Tasks

* Address PR feedback
* Nullable: shared/System/Security

* fix windows

* address feedback

* IIIIdentity.Identity?

* apply feedback
@danmoseley
Copy link
Copy Markdown
Member Author

shared\System\IO\FileStream.Windows.cs(317,30): error CS8604: Possible null reference argument for parameter 'tasks' in 'Task Task.WhenAll(params Task[] tasks)'. [D:\j\workspace\x64_checked_w---43686a05\src\System.Private.CoreLib\System.Private.CoreLib.csproj]
22:59:05 shared\System\IO\Stream.cs(259,52): error CS8600: Converting null literal or possible null value to non-nullable type. [D:\j\workspace\x64_checked_w---43686a05\src\System.Private.CoreLib\System.Private.CoreLib.csproj]
22:59:05 shared\System\IO\Stream.cs(259,52): error CS8602: Possible dereference of a null reference. [D:\j\workspace\x64_checked_w---43686a05\src\System.Private.CoreLib\System.Private.CoreLib.csproj]
22:59:05 shared\System\IO\Stream.cs(515,31): error CS8600: Converting null literal or possible null value to non-nullable type. [D:\j\workspace\x64_checked_w---43686a05\src\System.Private.CoreLib\System.Private.CoreLib.csproj]
22:59:05 shared\System\IO\Stream.cs(516,34): error CS8602: Possible dereference of a null reference. [D:\j\workspace\x64_checked_w---43686a05\src\System.Private.CoreLib\System.Private.CoreLib.csproj]
22:59:05 shared\System\IO\FileStream.Windows.cs(1592,31): error CS8600: Converting null literal or possible null value to non-nullable type. [D:\j\workspace\x64_checked_w---43686a05\src\System.Private.CoreLib\System.Private.CoreLib.csproj]
22:59:05 shared\System\IO\FileStream.Windows.cs(1592,31): error CS8602: Possible dereference of a null reference. [D:\j\workspace\x64_checked_w---43686a05\src\System.Private.CoreLib\System.Private.CoreLib.csproj]
22:59:05

@stephentoub

@danmoseley
Copy link
Copy Markdown
Member Author

I would have expected to see a merge conflict with the move of delegate. #23552

@safern safern marked this pull request as ready for review April 4, 2019 20:23
@safern safern removed the * NO MERGE * The PR is not ready for merge yet (see discussion for detailed reasons) label Apr 4, 2019
@safern safern changed the title Nullable feature [DO NOT MERGE] Nullable feature into master Apr 4, 2019
@safern
Copy link
Copy Markdown
Member

safern commented Apr 4, 2019

@stephentoub @jkotas -- let's merge this as is if we get a green build into master so that we can get annotations in reference assemblies for preview5 so we can start collecting feedback -- also this way we could catch any perf regression and fix it in the next preview.

We have 1 things to follow that are fixed on the next preview:

Does that sound good?

@jkotas
Copy link
Copy Markdown
Member

jkotas commented Apr 4, 2019

Fine with me

@stephentoub
Copy link
Copy Markdown
Member

I'm ok with it, too. I don't believe the first issue you call out is actually an issue. And the second one is just something we'll want to address prior to actually shipping but shouldn't block work making it to master.

@safern
Copy link
Copy Markdown
Member

safern commented Apr 4, 2019

I don't believe the first issue you call out is actually an issue

Yeah I thought it was an issue, but I just spoke with @tannergooding and he confirmed it is not an issue. I'll update my comment.

@tannergooding
Copy link
Copy Markdown
Member

Is it that much infrastructure work to instead ship a SxS preview with nullable annotations (similar to what the compiler team did for their initial nullable previews - CC. @jaredpar).

My concern is that we are still working on annotating the framework and it will take some time and churn before it is complete. By shipping the framework as annotated by default, we are going to be forcing all users who are annotating their libraries to deal with our own churn and partial annotations, while simultaneously dealing with their own.

I think that shipping a SxS feature branch would be an overall better solution as it would let users opt-in to this dual-churn scenario or to decide to only deal with it after we have decided our own annotations are stable.

I believe the infrastructure work would largely resolve down to creating a NullableFeature branch in CoreFX and CoreSetup and then publishing those bits to a well-known location for people to pull down.

@stephentoub
Copy link
Copy Markdown
Member

I don't believe merging into master affects that one way or the other; public consumption of these annotations only happens via reference assemblies, which are not directly impacted by any changes in corelib.

We could have a separate conversation about your question, but this PR doesn't seem like the right place for it.

@safern
Copy link
Copy Markdown
Member

safern commented Apr 5, 2019

@dotnet-bot test Ubuntu x64 Checked CoreFX Tests

@safern
Copy link
Copy Markdown
Member

safern commented Apr 5, 2019

Failures seem to be happening in all other PRs. I will merge to avoid potential merge conflicts and so that we can merged approved PRs into the feature branch.

@safern safern merged commit de68c9d into master Apr 5, 2019
@safern
Copy link
Copy Markdown
Member

safern commented Apr 5, 2019

I'll open a new draft PR once we merge a new change into the nullable branch.

picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants