abstract class IdeaBugTest { static class Mapping {} } class BugTestSub extends IdeaBugTest<BugTestSub.SubMapping> { public abstract static class SubMapping extends Mapping {} } class BugTestSub1 extends IdeaBugTest { public abstract static class SubMapping extends IdeaBugTest.Mapping {} //fqn here } class AbstractSettings { interface State {} } interface SomeInterface {} class Settings extends AbstractSettings implements SomeInterface { static class MyState implements State {} } //-------------------------------------------- class Records { interface RecordCategory { } static abstract class Record extends Records {} static class ResultRecord extends Record { public enum Category implements RecordCategory { kind(); } } } //--------------------------------------------- class Parent { protected static interface NestedParent { } } class Test { public final static class Child extends Parent<Child.NestedChild> { private static interface NestedChild extends NestedParent { } } }