package com.puppycrawl.tools.checkstyle.checks.coding; public class InputClone {/* class body */ public InputClone() throws CloneNotSupportedException { //constructor body super.equals(new String()); super.clone(); } public Object clone() throws CloneNotSupportedException { return super.clone(); } public void method() throws CloneNotSupportedException { super.clone(); } { super.clone(); } } class NoSuperClone { public Object clone() { return null; } } class InnerClone { public Object clone() { class Inner { public Object clone() throws CloneNotSupportedException { return super.clone(); } } return null; } } // This could not pass as valid semantically but tests that // type arguments are ignored when checking super calls class CloneWithTypeArguments extends CloneWithTypeArgumentsAndNoSuper { public CloneWithTypeArguments clone() throws CloneNotSupportedException { return (CloneWithTypeArguments) super.clone(); } } class CloneWithTypeArgumentsAndNoSuper { public CloneWithTypeArgumentsAndNoSuper clone() throws CloneNotSupportedException { return null; } } //Check that super keword isn't snagged here class MyClassWithGenericSuperMethod { void someMethod(java.util.List> l) { } /** * Not a valid clone override. Should not get flagged. * @param o some object * @return a cloned Object? */ public static Object clone(Object o) { return null; } } class AnotherClass { /** * Not a valid clone override. Should not get flagged. * @param t some type * @param a type * @return a cloned type? */ public T clone(T t) { return null; } } class NativeTest { public native Object clone(); }