**Describe the bug** Incorrect coverage detection (branching) for chains ``` class B{ val c =1 } class A{ val b = B() } ``` ``` val a : A? ... val c1 = a?.b?.c?: -1 // <- detected as yellow (not all branches covered) val c2 = a?.let{ it.b.c } ?: -1 // fine ``` assume it thinks ``` a?.b?.c? ``` == ``` if(a!=null){ if(a.b!=null){ //always true if(a.b.c !=null) a.b.c // always true else null // not covered, unreachable } else null // not covered, unreachable } else null ```   destination & name is not-nullable properties