class D implements I{ } class DT implements I{ } interface I { } class CCC extends D implements I { } abstract class CCC2 extends DT implements I { } class a extends b implements c>, d,d>> {} class b implements c> { } interface c extends d> {} interface d {} // extending final classes in bounds class C { void f() {} } class GenericExtendItself { GenericExtendItself foo; } //////////////////// abstract class ZZZZ { public abstract E getElement(); } abstract class Z extends ZZZZ {} class Z2 extends Z { public Integer getElement() { return null; } } ///////////////// class BaseC { E remove(){ return null; } } class DerivedC extends BaseC { public String remove() { String s = super.remove(); return null; } } /// raw in the multiple supers interface Int { AClass f(); } abstract class AClass implements Int { public abstract AClass f(); } class MyClass extends AClass implements Int{ public AClass f() { return null; } } class A{ A(){} A(T t){} { new A(new A()){}; } } //IDEADEV-4733: this overriding is OK class Outer { public class Inner { private final T t; public Inner(T t) { this.t = t; } public T getT() { return t; } public String toString() { return t.toString(); } } } class Other extends Outer { public class Ither extends Outer.Inner { public Ither() { super("hello"); //valid super constructor call } } } //end of //IDEADEV-4733 interface AI { } interface BI { } abstract class AbstractClass { AbstractClass(Class clazz) { } } class ConcreteClass extends AbstractClass { ConcreteClass() { super(AI.class); } class InnerClass extends AbstractClass { InnerClass() { super(BI.class); // } } } ///////////////////////