// RUN_PIPELINE_TILL: FRONTEND
// LANGUAGE: +ImproveReportingDiagnosticsOnProtectedMembersOfBaseClass

// FILE: abc/Foo.java
package abc;

public class Foo {
    public String getBar() { return ""; }
    protected void setBar(String x) {  }
    public String getFoo() { return ""; }
    private void setFoo(String x) {  }
}

// FILE: main.kt

import abc.Foo

class Data(var x: Foo)

class B : Foo() {
    fun baz(a: Foo, t: Foo, d: Data) {
        a.<!INVISIBLE_SETTER!>bar<!> = t.bar
        <!VAL_REASSIGNMENT!>a.foo<!> = t.foo

        if (d.x is B) {
            d.x.<!INVISIBLE_SETTER!>bar<!> = d.x.bar + ""
            d.x.foo = d.x.foo + ""
        }
    }
}

/* GENERATED_FIR_TAGS: additiveExpression, assignment, classDeclaration, flexibleType, functionDeclaration, ifExpression,
isExpression, javaProperty, javaType, primaryConstructor, propertyDeclaration, smartcast, stringLiteral */
