FILE: inferenceFromExpectedType.kt
    public final fun foo(x: R|(kotlin/String) -> kotlin/Int|): R|kotlin/Unit| {
    }
    public final fun foo2(x: R|(A, kotlin/String) -> kotlin/Int|): R|kotlin/Unit| {
    }
    public final class A : R|kotlin/Any| {
        public constructor(): R|A| {
            super<R|kotlin/Any|>()
        }

        public final fun <T, E> baz(x: R|T|): R|E| {
            ^baz Null(null)!!
        }

    }
    public final fun <T, E> bar(x: R|T|): R|E| {
        ^bar Null(null)!!
    }
    public final fun main(): R|kotlin/Unit| {
        R|/foo|(::R|/bar<kotlin/String, kotlin/Int>|)
        R|/foo|(R|/A.A|()::R|/A.baz<kotlin/String, kotlin/Int>|)
        R|/foo2|(Q|A|::R|/A.baz<kotlin/String, kotlin/Int>|)
    }
