// !LANGUAGE: -NonStrictOnlyInputTypesChecks // !WITH_NEW_INFERENCE // See also KT-10386 interface A class B : A fun foo1(list: List, arg: B?): Boolean { // Type mismatch return arg in list // resolved to extension } fun foo2(list: List, arg: B?): Boolean { // FAKE: no cast needed return arg as A? in list } fun foo3(list: List, arg: B?): Boolean { // No warning but KNPE risk return arg!! in list } // But fun foo4(list: List, arg: B): Boolean { // Ok return arg in list }