FILE: receiverInjection.kt
    public abstract interface Algebra<T> : R|kotlin/Any| {
        public abstract operator fun R|T|.plus(other: R|T|): R|T|

    }
    public abstract interface A : R|kotlin/Any| {
    }
    public abstract interface B : R|kotlin/Any| {
    }
    public final fun <T> injectAlgebra(): R|kotlin/Unit| {
    }
    public final fun test_1(a1: R|A|, a2: R|A|, b1: R|B|, b2: R|B|): R|kotlin/Unit| {
        R|<local>/a1|.<Unresolved name: plus>#(R|<local>/a2|)
        R|<local>/b1|.<Unresolved name: plus>#(R|<local>/b2|)
        R|/injectAlgebra|<R|A|>()
        (this@R|/test_1|, R|<local>/a1|).R|SubstitutionOverride</Algebra.plus: R|A|>|(R|<local>/a2|)
        (this@R|/test_1|, R|<local>/b1|).<None of the following candidates is applicable because of receiver type mismatch: [/Algebra.plus]>#(R|<local>/b2|)
        R|/injectAlgebra|<R|B|>()
        (this@R|/test_1|, R|<local>/a1|).R|SubstitutionOverride</Algebra.plus: R|A|>|(R|<local>/a2|)
        (this@R|/test_1|, R|<local>/b1|).R|SubstitutionOverride</Algebra.plus: R|B|>|(R|<local>/b2|)
    }
    public final fun test_2(a1: R|A|, a2: R|A|, cond: R|kotlin/Boolean|): R|kotlin/Unit| {
        R|<local>/a1|.<Unresolved name: plus>#(R|<local>/a2|)
        when () {
            R|<local>/cond| ->  {
                R|/injectAlgebra|<R|A|>()
                (this@R|/test_2|, R|<local>/a1|).R|SubstitutionOverride</Algebra.plus: R|A|>|(R|<local>/a2|)
            }
        }

        R|<local>/a1|.<Unresolved name: plus>#(R|<local>/a2|)
    }
