FILE: RedundantVisibilityModifierChecker.kt
    public final class C : R|kotlin/Any| {
        public constructor(): R|C| {
            super<R|kotlin/Any|>()
        }

        public final val foo: R|kotlin/Int| = Int(0)
            public get(): R|kotlin/Int|

        public final fun bar(): R|kotlin/Unit| {
        }

    }
    public open class D : R|kotlin/Any| {
        public constructor(): R|D| {
            super<R|kotlin/Any|>()
        }

        protected open fun willRemainProtected(): R|kotlin/Unit| {
        }

        protected open fun willBecomePublic(): R|kotlin/Unit| {
        }

    }
    public final class E : R|D| {
        public constructor(): R|E| {
            super<R|D|>()
        }

        protected final override fun willRemainProtected(): R|kotlin/Unit| {
        }

        public final override fun willBecomePublic(): R|kotlin/Unit| {
        }

    }
    public final enum class F : R|kotlin/Enum<F>| {
        private constructor(x: R|kotlin/Int|): R|F| {
            super<R|kotlin/Enum<F>|>()
        }

        public final val x: R|kotlin/Int| = R|<local>/x|
            public get(): R|kotlin/Int|

        public final static enum entry FIRST: R|F| = object : R|F| {
            private[local] constructor(): R|<anonymous>| {
                super<R|F|>(Int(42))
            }

        }

        public final static fun values(): R|kotlin/Array<F>| {
        }

        public final static fun valueOf(value: R|kotlin/String|): R|F| {
        }

    }
    public sealed class G : R|kotlin/Any| {
        private constructor(y: R|kotlin/Int|): R|G| {
            super<R|kotlin/Any|>()
        }

        public final val y: R|kotlin/Int| = R|<local>/y|
            public get(): R|kotlin/Int|

        private constructor(): R|G| {
            this<R|G|>(Int(42))
        }

        public final object H : R|G| {
            private constructor(): R|G.H| {
                super<R|G|>()
            }

        }

    }
    public abstract interface I : R|kotlin/Any| {
        public abstract fun bar(): R|kotlin/Unit|

    }
    public final fun f(): R|kotlin/Unit| {
        lval i: R|<anonymous>| = object : R|I| {
            private[local] constructor(): R|<anonymous>| {
                super<R|kotlin/Any|>()
            }

            internal[local] final var foo: R|kotlin/Int| = Int(0)
                internal get(): R|kotlin/Int|
                internal set(value: R|kotlin/Int|): R|kotlin/Unit|

            public[local] final override fun bar(): R|kotlin/Unit| {
            }

        }

        R|<local>/i|.R|/<anonymous>.foo| = Int(1)
        local final class LocalClass : R|kotlin/Any| {
            public[local] constructor(): R|LocalClass| {
                super<R|kotlin/Any|>()
            }

            internal[local] final var foo: R|kotlin/Int| = Int(0)
                internal get(): R|kotlin/Int|
                internal set(value: R|kotlin/Int|): R|kotlin/Unit|

        }

        R|/LocalClass.LocalClass|().R|/LocalClass.foo| = Int(1)
        lvar baz: R|kotlin/Int| = Int(0)
    }
    public final var baz: R|kotlin/Int| = Int(0)
        public get(): R|kotlin/Int|
        public set(value: R|kotlin/Int|): R|kotlin/Unit|
