{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/27807","repository_url":"https://api.github.com/repos/dotnet/roslyn","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/27807/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/27807/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/27807/events","html_url":"https://github.com/dotnet/roslyn/pull/27807","id":332195579,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk0NzM5MDIw","number":27807,"title":"Use [NonNullTypes] to interpret unannotated types in source","user":{"login":"jcouv","id":12466233,"node_id":"MDQ6VXNlcjEyNDY2MjMz","avatar_url":"https://avatars2.githubusercontent.com/u/12466233?v=4","gravatar_id":"","url":"https://api.github.com/users/jcouv","html_url":"https://github.com/jcouv","followers_url":"https://api.github.com/users/jcouv/followers","following_url":"https://api.github.com/users/jcouv/following{/other_user}","gists_url":"https://api.github.com/users/jcouv/gists{/gist_id}","starred_url":"https://api.github.com/users/jcouv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcouv/subscriptions","organizations_url":"https://api.github.com/users/jcouv/orgs","repos_url":"https://api.github.com/users/jcouv/repos","events_url":"https://api.github.com/users/jcouv/events{/privacy}","received_events_url":"https://api.github.com/users/jcouv/received_events","type":"User","site_admin":false},"labels":[{"id":166673288,"node_id":"MDU6TGFiZWwxNjY2NzMyODg=","url":"https://api.github.com/repos/dotnet/roslyn/labels/Area-Compilers","name":"Area-Compilers","color":"5319e7","default":false},{"id":344899605,"node_id":"MDU6TGFiZWwzNDQ4OTk2MDU=","url":"https://api.github.com/repos/dotnet/roslyn/labels/New%20Language%20Feature%20-%20Nullable%20Reference%20Types","name":"New Language Feature - Nullable Reference Types","color":"bfd4f2","default":false}],"state":"open","locked":false,"assignee":{"login":"jcouv","id":12466233,"node_id":"MDQ6VXNlcjEyNDY2MjMz","avatar_url":"https://avatars2.githubusercontent.com/u/12466233?v=4","gravatar_id":"","url":"https://api.github.com/users/jcouv","html_url":"https://github.com/jcouv","followers_url":"https://api.github.com/users/jcouv/followers","following_url":"https://api.github.com/users/jcouv/following{/other_user}","gists_url":"https://api.github.com/users/jcouv/gists{/gist_id}","starred_url":"https://api.github.com/users/jcouv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcouv/subscriptions","organizations_url":"https://api.github.com/users/jcouv/orgs","repos_url":"https://api.github.com/users/jcouv/repos","events_url":"https://api.github.com/users/jcouv/events{/privacy}","received_events_url":"https://api.github.com/users/jcouv/received_events","type":"User","site_admin":false},"assignees":[{"login":"jcouv","id":12466233,"node_id":"MDQ6VXNlcjEyNDY2MjMz","avatar_url":"https://avatars2.githubusercontent.com/u/12466233?v=4","gravatar_id":"","url":"https://api.github.com/users/jcouv","html_url":"https://github.com/jcouv","followers_url":"https://api.github.com/users/jcouv/followers","following_url":"https://api.github.com/users/jcouv/following{/other_user}","gists_url":"https://api.github.com/users/jcouv/gists{/gist_id}","starred_url":"https://api.github.com/users/jcouv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcouv/subscriptions","organizations_url":"https://api.github.com/users/jcouv/orgs","repos_url":"https://api.github.com/users/jcouv/repos","events_url":"https://api.github.com/users/jcouv/events{/privacy}","received_events_url":"https://api.github.com/users/jcouv/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/dotnet/roslyn/milestones/18","html_url":"https://github.com/dotnet/roslyn/milestone/18","labels_url":"https://api.github.com/repos/dotnet/roslyn/milestones/18/labels","id":1675130,"node_id":"MDk6TWlsZXN0b25lMTY3NTEzMA==","number":18,"title":"16.0","description":"The version *after* the next major version.","creator":{"login":"gafter","id":3804346,"node_id":"MDQ6VXNlcjM4MDQzNDY=","avatar_url":"https://avatars3.githubusercontent.com/u/3804346?v=4","gravatar_id":"","url":"https://api.github.com/users/gafter","html_url":"https://github.com/gafter","followers_url":"https://api.github.com/users/gafter/followers","following_url":"https://api.github.com/users/gafter/following{/other_user}","gists_url":"https://api.github.com/users/gafter/gists{/gist_id}","starred_url":"https://api.github.com/users/gafter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gafter/subscriptions","organizations_url":"https://api.github.com/users/gafter/orgs","repos_url":"https://api.github.com/users/gafter/repos","events_url":"https://api.github.com/users/gafter/events{/privacy}","received_events_url":"https://api.github.com/users/gafter/received_events","type":"User","site_admin":false},"open_issues":955,"closed_issues":306,"state":"open","created_at":"2016-03-31T00:06:25Z","updated_at":"2018-06-26T18:00:49Z","due_on":null,"closed_at":null},"comments":17,"created_at":"2018-06-13T23:04:04Z","updated_at":"2018-06-26T18:46:45Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/dotnet/roslyn/pulls/27807","html_url":"https://github.com/dotnet/roslyn/pull/27807","diff_url":"https://github.com/dotnet/roslyn/pull/27807.diff","patch_url":"https://github.com/dotnet/roslyn/pull/27807.patch"},"body":"In a context where `NonNullTypes` is `true`, an unannotated type is interpreted as non-null. But in a context where it is `false`, then such type is interpreted as null-oblivious.\r\nAnnotated types (ie. with `?`) are unaffected.\r\n\r\nThe main parts of this change\r\n- revive a property on `Symbol` to indicate the presence of the attribute (on symbol or containing symbol, with module symbols terminating the chain)\r\n- add a similar property in `Binder` (generally look for the containing symbol's context, except if a binding flag was set to break cycles)\r\n- the logic to copy modifiers by re-applying transforms now takes the `NonNullTypes` context into account\r\n\r\nWhat is not yet done:\r\n- [ ] `[NonNullTypes]` targeting a return value or a parameter (will be a follow-up PR)\r\n- [x] add more verification of symbols\r\n- [ ] add more verification of emitted metadata (for those transformed)\r\n- [ ] I intend to unskip some more existing tests related to this attribute (will be a follow-up PR)\r\n- there's one difficult cycle to break in `SourceNamedTypeSymbol.MakeOneDeclaredBases` which I will investigate and fix in a separate PR\r\n- this PR focuses on the `NonNullTypes` attribute in source. The handling of this attribute in metadata will be a follow-up PR\r\n"},"comment":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/comments/400422273","html_url":"https://github.com/dotnet/roslyn/pull/27807#issuecomment-400422273","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/27807","id":400422273,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMDQyMjI3Mw==","user":{"login":"cston","id":10732005,"node_id":"MDQ6VXNlcjEwNzMyMDA1","avatar_url":"https://avatars2.githubusercontent.com/u/10732005?v=4","gravatar_id":"","url":"https://api.github.com/users/cston","html_url":"https://github.com/cston","followers_url":"https://api.github.com/users/cston/followers","following_url":"https://api.github.com/users/cston/following{/other_user}","gists_url":"https://api.github.com/users/cston/gists{/gist_id}","starred_url":"https://api.github.com/users/cston/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cston/subscriptions","organizations_url":"https://api.github.com/users/cston/orgs","repos_url":"https://api.github.com/users/cston/repos","events_url":"https://api.github.com/users/cston/events{/privacy}","received_events_url":"https://api.github.com/users/cston/received_events","type":"User","site_admin":false},"created_at":"2018-06-26T18:46:45Z","updated_at":"2018-06-26T18:46:45Z","author_association":"CONTRIBUTOR","body":">         [Fact(Skip = \"[NonNullTypes(true)] is disabled\")]\r\n\r\n`[NullableOptOutForAssembly]` here and test below.\r\n\r\n---\r\nRefers to: src/Compilers/CSharp/Test/Semantic/Semantics/StaticNullChecking.cs:23646 in 31429cd. [](commit_id = 31429cd88ba99d331ca9c3b96119f33e26461979, deletion_comment = False)"}}
{"actor":{"display_login":"cston"}}