[ 
https://issues.apache.org/jira/browse/THRIFT-5511?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jens Geyer updated THRIFT-5511:
-------------------------------
    Description: 
This is sort of an follow-up to THRIFT-5479.

The initially chosen solution was to [add an {{<autogenerate>}} tag 
|https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references#nullable-contexts]to
 each generated C# source file, because otherwise the analysis would drop a 
whole lot of messages onto the user. One major reason behind this design was 
that it does not break compatibility.

It turned out that that actually may do more harm than good, because of [this 
issue|https://github.com/dotnet/roslyn/issues/44063], which has a really great 
potential to lead the developer into a false security, believing what the IDE 
tells, that values in some cases are not null - but what it really should say 
is "{_}I did not analyze this code so I cannot safely tell anything{_}".

Hence, we should have better support for it.

  was:
This is sort of an follow-up to THRIFT-5479.

The initially chosen solution was to [add an {{<autogenerate>}} tag 
|https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references#nullable-contexts]to
 each generated C# source file, because otherwise the analysis would drop a 
whole lot of messages onto the user. One major reason behind this design was 
that it does not break compatibility.

It turned out that that actually may do more harm than good, because of [this 
issue|https://github.com/dotnet/roslyn/issues/44063], which has a really great 
potential to lead the developer into a false security, believing the IDE that 
values in some cases are not null - what it really should say is "I did not 
analyze this code so I cannot tell".

Hence, we should have better support for it.


> Full support for the new net6 "nullability" semantics 
> ------------------------------------------------------
>
>                 Key: THRIFT-5511
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5511
>             Project: Thrift
>          Issue Type: Improvement
>          Components: netstd - Compiler
>    Affects Versions: 0.16.0
>         Environment: [net6 / C# 10|https://stackoverflow.com/a/247623/499466]
>            Reporter: Jens Geyer
>            Assignee: Jens Geyer
>            Priority: Major
>
> This is sort of an follow-up to THRIFT-5479.
> The initially chosen solution was to [add an {{<autogenerate>}} tag 
> |https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references#nullable-contexts]to
>  each generated C# source file, because otherwise the analysis would drop a 
> whole lot of messages onto the user. One major reason behind this design was 
> that it does not break compatibility.
> It turned out that that actually may do more harm than good, because of [this 
> issue|https://github.com/dotnet/roslyn/issues/44063], which has a really 
> great potential to lead the developer into a false security, believing what 
> the IDE tells, that values in some cases are not null - but what it really 
> should say is "{_}I did not analyze this code so I cannot safely tell 
> anything{_}".
> Hence, we should have better support for it.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to