langtools/test/tools/javac/OverrideChecks/T4721069.java
author hseigel
Wed, 02 Mar 2016 23:48:41 +0000
changeset 36397 c487ced7231c
parent 24797 850ebd4d80a7
child 37636 6c6e6e25189d
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     1
/*
24797
850ebd4d80a7 8044072: Group 2: create .out files for OverrideChecks tests in tools/javac dir
sogoel
parents: 5520
diff changeset
     2
 * @test    /nodynamiccopyright/
850ebd4d80a7 8044072: Group 2: create .out files for OverrideChecks tests in tools/javac dir
sogoel
parents: 5520
diff changeset
     3
 * @bug     4721069
850ebd4d80a7 8044072: Group 2: create .out files for OverrideChecks tests in tools/javac dir
sogoel
parents: 5520
diff changeset
     4
 * @summary javac allows an interface to override a final method in Object
850ebd4d80a7 8044072: Group 2: create .out files for OverrideChecks tests in tools/javac dir
sogoel
parents: 5520
diff changeset
     5
 * @author  gafter
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     6
 *
24797
850ebd4d80a7 8044072: Group 2: create .out files for OverrideChecks tests in tools/javac dir
sogoel
parents: 5520
diff changeset
     7
 * @compile/fail/ref=T4721069.out -XDrawDiagnostics  T4721069.java
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     8
 */
06bc494ca11e Initial load
duke
parents:
diff changeset
     9
06bc494ca11e Initial load
duke
parents:
diff changeset
    10
interface I {
06bc494ca11e Initial load
duke
parents:
diff changeset
    11
    Class getClass(); // error: cannot overide final from Object
06bc494ca11e Initial load
duke
parents:
diff changeset
    12
    static class T {
06bc494ca11e Initial load
duke
parents:
diff changeset
    13
        static void f(I i) {
06bc494ca11e Initial load
duke
parents:
diff changeset
    14
            if (i == null) {
06bc494ca11e Initial load
duke
parents:
diff changeset
    15
                Integer x = new Integer(2);
06bc494ca11e Initial load
duke
parents:
diff changeset
    16
            } else {
06bc494ca11e Initial load
duke
parents:
diff changeset
    17
                I x = i;
06bc494ca11e Initial load
duke
parents:
diff changeset
    18
                x.getClass();
06bc494ca11e Initial load
duke
parents:
diff changeset
    19
            }
06bc494ca11e Initial load
duke
parents:
diff changeset
    20
        }
06bc494ca11e Initial load
duke
parents:
diff changeset
    21
        public static void main(String[] args) {
06bc494ca11e Initial load
duke
parents:
diff changeset
    22
            f(null);
06bc494ca11e Initial load
duke
parents:
diff changeset
    23
        }
06bc494ca11e Initial load
duke
parents:
diff changeset
    24
    }
06bc494ca11e Initial load
duke
parents:
diff changeset
    25
}