Module: a
FILE: module_a_classWithAllPropertiesConstructor.kt
    public final class A : R|kotlin/Any| {
        public constructor(s: R|kotlin/String|): R|A| {
            super<R|kotlin/Any|>()
        }

        public final val s: R|kotlin/String| = R|<local>/s|
            public get(): R|kotlin/String|

    }
    public final class B : R|kotlin/Any| {
        public constructor(s: R|kotlin/String|): R|B| {
            super<R|kotlin/Any|>()
        }

        public final val s: R|kotlin/String| = R|<local>/s|
            public get(): R|kotlin/String|

    }
    public final class C : R|kotlin/Any| {
        public constructor(s: R|kotlin/String|): R|C| {
            super<R|kotlin/Any|>()
        }

        public final val s: R|kotlin/String| = R|<local>/s|
            public get(): R|kotlin/String|

    }
    @R|org/jetbrains/kotlin/fir/plugin/AllPropertiesConstructor|() public open class Base : R|kotlin/Any| {
        public constructor(): R|Base| {
            super<R|kotlin/Any|>()
        }

        public final val a: R|A| = R|/A.A|(String(a))
            public get(): R|A|

        public final val b: R|B| = R|/B.B|(String(b))
            public get(): R|B|

    }
Module: b
FILE: Derived.kt
    @R|org/jetbrains/kotlin/fir/plugin/AllPropertiesConstructor|() public final class Derived : R|Base| {
        public constructor(): R|Derived| {
            super<R|Base|>()
        }

        public final val c: R|C| = R|/C.C|(String(c))
            public get(): R|C|

    }
FILE: main.kt
    public final fun box(): R|kotlin/String| {
        lval constructor: R|java/lang/reflect/Constructor<Derived>| = <getClass>(Q|Derived|).R|SubstitutionOverride<kotlin/reflect/KClass.constructors: R|kotlin/collections/Collection<kotlin/reflect/KFunction<Derived>>|>|.R|kotlin/collections/first|<R|kotlin/reflect/KFunction<Derived>|>(<L> = first@fun <anonymous>(it: R|kotlin/reflect/KFunction<Derived>|): R|kotlin/Boolean| <inline=Inline, kind=UNKNOWN>  {
            ^ ==(R|<local>/it|.R|kotlin/reflect/full/valueParameters|.R|SubstitutionOverride<kotlin/collections/List.size: R|kotlin/Int|>|, Int(3))
        }
        ).R|kotlin/reflect/jvm/javaConstructor|<R|Derived|>!!
        lval derived: R|Derived!| = R|<local>/constructor|.R|SubstitutionOverride<java/lang/reflect/Constructor.newInstance: R|Derived!|>|(vararg(R|/A.A|(String(a)), R|/B.B|(String(b)), R|/C.C|(String(c))))
        ^box when () {
            !=(R|<local>/derived|, Null(null)) ->  {
                String(OK)
            }
            else ->  {
                String(Error)
            }
        }

    }
