FILE: targetOnPrimaryCtorParameter.kt
    public final annotation class NoTarget : R|kotlin/Annotation| {
        public constructor(): R|NoTarget| {
            super<R|kotlin/Any|>()
        }

    }
    @R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|, R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FIELD|)) public final annotation class PropValueField : R|kotlin/Annotation| {
        public constructor(): R|PropValueField| {
            super<R|kotlin/Any|>()
        }

    }
    @R|kotlin/annotation/Target|(allowedTargets = vararg(allowedTargets = <implicitArrayOf>(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|))) public final annotation class PropertyOnly : R|kotlin/Annotation| {
        public constructor(): R|PropertyOnly| {
            super<R|kotlin/Any|>()
        }

    }
    @R|kotlin/annotation/Target|(allowedTargets = vararg(allowedTargets = <implicitArrayOf>(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|))) public final annotation class ParameterOnly : R|kotlin/Annotation| {
        public constructor(): R|ParameterOnly| {
            super<R|kotlin/Any|>()
        }

    }
    @R|kotlin/annotation/Target|(allowedTargets = vararg(allowedTargets = *<implicitArrayOf>(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FIELD|))) public final annotation class FieldOnly : R|kotlin/Annotation| {
        public constructor(): R|FieldOnly| {
            super<R|kotlin/Any|>()
        }

    }
    @R|kotlin/annotation/Target|(allowedTargets = vararg(*<implicitArrayOf>(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|))) public final annotation class PropertyOnly2 : R|kotlin/Annotation| {
        public constructor(): R|PropertyOnly2| {
            super<R|kotlin/Any|>()
        }

    }
    public final class Foo : R|kotlin/Any| {
        public constructor(@R|NoTarget|() @R|PropValueField|() @R|ParameterOnly|() param: R|kotlin/Int|): R|Foo| {
            super<R|kotlin/Any|>()
        }

        @R|PropertyOnly|() @R|PropertyOnly2|() field:@R|FieldOnly|() public final var param: R|kotlin/Int| = R|<local>/param|
            public get(): R|kotlin/Int|
            public set(value: R|kotlin/Int|): R|kotlin/Unit|

    }
    public final fun box(): R|kotlin/String| {
        lval clazz: R|kotlin/reflect/KClass<Foo>| = <getClass>(Q|Foo|)
        lval parameterAnnotations: R|kotlin/collections/Set<kotlin/String>| = R|<local>/clazz|.R|SubstitutionOverride<kotlin/reflect/KClass.constructors: R|kotlin/collections/Collection<kotlin/reflect/KFunction<Foo>>|>|.R|kotlin/collections/single|<R|kotlin/reflect/KFunction<Foo>|>().R|SubstitutionOverride<kotlin/reflect/KFunction.parameters: R|kotlin/collections/List<kotlin/reflect/KParameter>|>|.R|kotlin/collections/single|<R|kotlin/reflect/KParameter|>().R|kotlin/reflect/KAnnotatedElement.annotations|.R|kotlin/collections/map|<R|kotlin/Annotation|, R|kotlin/String|>(<L> = map@fun <anonymous>(it: R|kotlin/Annotation|): R|kotlin/String| <inline=Inline, kind=UNKNOWN>  {
            ^ R|<local>/it|.R|kotlin/jvm/annotationClass|<R|kotlin/Annotation|>.R|SubstitutionOverride<kotlin/reflect/KClass.simpleName: R|kotlin/String?|>| ?: String()
        }
        ).R|kotlin/collections/toSet|<R|kotlin/String|>()
        lval propertyAnnotations: R|kotlin/collections/Set<kotlin/String>| = R|<local>/clazz|.R|kotlin/reflect/full/declaredMemberProperties|<R|Foo|>.R|kotlin/collections/single|<R|kotlin/reflect/KProperty1<Foo, *>|>().R|kotlin/reflect/KAnnotatedElement.annotations|.R|kotlin/collections/map|<R|kotlin/Annotation|, R|kotlin/String|>(<L> = map@fun <anonymous>(it: R|kotlin/Annotation|): R|kotlin/String| <inline=Inline, kind=UNKNOWN>  {
            ^ R|<local>/it|.R|kotlin/jvm/annotationClass|<R|kotlin/Annotation|>.R|SubstitutionOverride<kotlin/reflect/KClass.simpleName: R|kotlin/String?|>| ?: String()
        }
        ).R|kotlin/collections/toSet|<R|kotlin/String|>()
        lval fieldAnnotations: R|kotlin/collections/Set<kotlin/String>| = <getClass>(Q|Foo|).R|kotlin/jvm/java|<R|Foo|>.R|SubstitutionOverride<java/lang/Class.getDeclaredField: R|java/lang/reflect/Field!|>|(String(param)).R|java/lang/reflect/AccessibleObject.annotations|.R|kotlin/collections/map|<R|kotlin/Annotation!|, R|kotlin/String|>(<L> = map@fun <anonymous>(it: R|kotlin/Annotation!|): R|kotlin/String| <inline=Inline, kind=UNKNOWN>  {
            ^ R|<local>/it|.R|kotlin/jvm/annotationClass|<R|kotlin/Annotation!|>.R|SubstitutionOverride<kotlin/reflect/KClass.simpleName: R|kotlin/String?|>| ?: String()
        }
        ).R|kotlin/collections/toSet|<R|kotlin/String|>()
        when () {
            !=(R|<local>/parameterAnnotations|, R|kotlin/collections/setOf|<R|kotlin/String|>(vararg(String(NoTarget), String(PropValueField), String(ParameterOnly)))) ->  {
                ^box String(Parameters:).R|kotlin/String.plus|(R|<local>/parameterAnnotations|.R|kotlin/collections/joinToString|<R|kotlin/String|>())
            }
        }

        when () {
            !=(R|<local>/propertyAnnotations|, R|kotlin/collections/setOf|<R|kotlin/String|>(vararg(String(PropertyOnly), String(PropertyOnly2)))) ->  {
                ^box String(Property:).R|kotlin/String.plus|(R|<local>/propertyAnnotations|.R|kotlin/collections/joinToString|<R|kotlin/String|>())
            }
        }

        when () {
            !=(R|<local>/fieldAnnotations|, R|kotlin/collections/setOf|<R|kotlin/String|>(String(FieldOnly))) ->  {
                ^box String(Field:).R|kotlin/String.plus|(R|<local>/fieldAnnotations|.R|kotlin/collections/joinToString|<R|kotlin/String|>())
            }
        }

        ^box String(OK)
    }
