Totally get where @Michael%20Troy is coming from. TypeScript is aware of 
logical elements as part of ancestry for the current expression, and 
provides some helpful warnings in cases where the expression can still be 
visited with incompatible predicates.

@axel, it my feel counter-intuitive, but a possible runtime panic converted 
to a compiler error is an increase in how robust the code is. The weird 
part, at least, why it might feel weird, is that you might never encounter 
the issue as a runtime panic, but as a compiler error, it will hit you 
every time. This will make exploring and experimenting with unfamiliar 
imports, features, and patterns more complicated, but it is the entire 
point, to my mind, of having a type-system.

P.S. Bug in the snippet given by OP? I expected to see "x != nil" instead 
of "x == nil", or else change comments around.


On Wednesday, March 23, 2022 at 4:15:13 PM UTC-5 axel.wa...@googlemail.com 
wrote:

> Personally, I think this leads to very unreadable code, for no real 
> benefit.
> If a nil-pointer dereference happens unexpectedly, that's always a bug. A 
> panic is the correct signal to tell me about that bug, so I can go ahead 
> and fix it. So, making my code less readable to get less robust code seems 
> like a lose-lose proposition to me.
>
> Of course, people can always choose to write/use whatever static checker 
> they want. I'm not opposed to this existing. I just don't think it should 
> be in the compiler or in `go vet`.
>
> On Wed, Mar 23, 2022 at 10:01 PM 'Michael Toy' via golang-nuts <
> golan...@googlegroups.com> wrote:
>
>> I barely understand Go, so this is likely a stupid idea. Since Go uses 
>> nil for a lot of things, lots of things can be nil.
>>
>> I am not a huge fan of the null safe accessor. ( 
>> https://github.com/golang/go/issues/42847 )
>>
>> I am a huge fan of the compiler telling me the places where I have not 
>> checked for nil ... It took me a while to get used to languages which do 
>> this, but now I can't imagine living without it.
>>
>> Is it crazy to wish for ...
>>
>> if x == nil {
>>   // this does not produce an error because x is known not to be nil
>>   x.interfaceFunc()
>> }
>> // this DOES produce an error/warning if y is possibly nil
>> y.interfaceFunc()
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/5a700cd9-9274-4756-80a6-9d322232afebn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/golang-nuts/5a700cd9-9274-4756-80a6-9d322232afebn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/14f6ade8-fe5b-4876-b692-ed98764eaa55n%40googlegroups.com.

Reply via email to