[NI] Fix exception: callable reference is used with an unresolved LHS

#KT-32187 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2019-06-24 14:39:49 +03:00
parent bc0773b219
commit a26cf86af7
8 changed files with 65 additions and 2 deletions
@@ -0,0 +1,13 @@
// !LANGUAGE: +NewInference
interface Inv
class Impl : Inv
class Scope<InterfaceT, ImplementationT : InterfaceT>(private val implClass: <!UNRESOLVED_REFERENCE!>j<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>Class<!><ImplementationT>) {
fun foo(c: Collection<InterfaceT>) {
val <!UNUSED_VARIABLE!>hm<!> = c.asSequence()
.filter(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>implClass<!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>isInstance<!>)
.<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>map<!>(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>implClass<!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>cast<!>)
.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>toSet<!>()
}
}
@@ -0,0 +1,23 @@
package
public final class Impl : Inv {
public constructor Impl()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface Inv {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Scope</*0*/ InterfaceT, /*1*/ ImplementationT : InterfaceT> {
public constructor Scope</*0*/ InterfaceT, /*1*/ ImplementationT : InterfaceT>(/*0*/ implClass: [ERROR : j.Class<ImplementationT>]<ImplementationT>)
private final val implClass: [ERROR : j.Class<ImplementationT>]<ImplementationT>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ c: kotlin.collections.Collection<InterfaceT>): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}