public class Test {

  interface Functional {
    int f();
  }

  class Concrete implements Functional {
    public int f() { return 0; }
  }

  interface FunctionalWithDefaults {
    int f();

    default int g() { return 1; }
  }

  interface NotFunctional {
    default int g() { return 1; }
  }

  interface FunctionalWithObjectMethods {
    int f();

    String toString();

    int hashCode();
  }

}

@@ -357,43 +357,430 @@
     
-String toString();%0A%0A    int hashCod
+// Not actually abstract; implementation comes from Object%0A    boolean equals(Object obj);%0A    int hashCode();%0A    String toString();%0A  %7D%0A%0A  interface NotFunctionalWithObjectMethods %7B%0A    int f();%0A%0A    // Increases their visibility from %60protected%60 to %60public%60; this requires subclasses to implement them%0A    // See also JLS section %22Functional Interfaces%22 which explicitly covers this%0A    Object clone();%0A    void finaliz
 e();

Extend functional interfaces test