Merge jdk8-b10

Mon, 17 Oct 2011 19:07:26 -0700

author
lana
date
Mon, 17 Oct 2011 19:07:26 -0700
changeset 1105
f6c783e18bdf
parent 1102
510d09ddc861
parent 1104
5010ffc61eda
child 1106
4bf01f1c4e34

Merge

     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/Check.java	Thu Oct 13 10:35:50 2011 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Check.java	Mon Oct 17 19:07:26 2011 -0700
     1.3 @@ -1169,12 +1169,17 @@
     1.4              if (lint.isEnabled(LintCategory.RAW) &&
     1.5                  tree.type.tag == CLASS &&
     1.6                  !TreeInfo.isDiamond(tree) &&
     1.7 -                !env.enclClass.name.isEmpty() &&  //anonymous or intersection
     1.8 +                !withinAnonConstr(env) &&
     1.9                  tree.type.isRaw()) {
    1.10                  log.warning(LintCategory.RAW,
    1.11                          tree.pos(), "raw.class.use", tree.type, tree.type.tsym.type);
    1.12              }
    1.13          }
    1.14 +
    1.15 +        boolean withinAnonConstr(Env<AttrContext> env) {
    1.16 +            return env.enclClass.name.isEmpty() &&
    1.17 +                    env.enclMethod != null && env.enclMethod.name == names.init;
    1.18 +        }
    1.19      }
    1.20  
    1.21  /* *************************************************************************
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/test/tools/javac/warnings/7090499/T7090499.java	Mon Oct 17 19:07:26 2011 -0700
     2.3 @@ -0,0 +1,37 @@
     2.4 +/**
     2.5 + * @test /nodynamiccopyright/
     2.6 + * @bug 7094099
     2.7 + * @summary -Xlint:rawtypes
     2.8 + * @compile/fail/ref=T7090499.out -XDrawDiagnostics -Xlint:rawtypes T7090499.java
     2.9 + */
    2.10 +
    2.11 +
    2.12 +class T7090499<E> {
    2.13 +
    2.14 +    static class B<X> {}
    2.15 +
    2.16 +    class A<X> {
    2.17 +        class X {}
    2.18 +        class Z<Y> {}
    2.19 +    }
    2.20 +
    2.21 +    T7090499 t = new T7090499() { //raw warning (2)
    2.22 +
    2.23 +        A.X x1;//raw warning
    2.24 +        A.Z z1;//raw warning
    2.25 +
    2.26 +        T7090499.B<Integer> b1;//ok
    2.27 +        T7090499.B b2;//raw warning
    2.28 +
    2.29 +        A<String>.X x2;//ok
    2.30 +        A<String>.Z<Integer> z2;//ok
    2.31 +        A<B>.Z<A<B>> z3;//raw warning (2)
    2.32 +
    2.33 +        void test(Object arg1, B arg2) {//raw warning
    2.34 +            boolean b = arg1 instanceof A;//ok
    2.35 +            Object a = (A)arg1;//ok
    2.36 +            A a2 = new A() {};//raw warning (2)
    2.37 +            a2.new Z() {};//raw warning
    2.38 +        }
    2.39 +    };
    2.40 +}
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/test/tools/javac/warnings/7090499/T7090499.out	Mon Oct 17 19:07:26 2011 -0700
     3.3 @@ -0,0 +1,17 @@
     3.4 +T7090499.java:18:5: compiler.warn.raw.class.use: T7090499, T7090499<E>
     3.5 +T7090499.java:18:22: compiler.warn.raw.class.use: T7090499, T7090499<E>
     3.6 +T7090499.java:20:10: compiler.warn.raw.class.use: T7090499.A.X, T7090499<E>.A<X>.X
     3.7 +T7090499.java:21:10: compiler.warn.raw.class.use: T7090499.A.Z, T7090499<E>.A<X>.Z<Y>
     3.8 +T7090499.java:24:17: compiler.warn.raw.class.use: T7090499.B, T7090499.B<X>
     3.9 +T7090499.java:26:10: compiler.err.improperly.formed.type.inner.raw.param
    3.10 +T7090499.java:27:10: compiler.err.improperly.formed.type.inner.raw.param
    3.11 +T7090499.java:28:18: compiler.warn.raw.class.use: T7090499.B, T7090499.B<X>
    3.12 +T7090499.java:28:17: compiler.err.improperly.formed.type.inner.raw.param
    3.13 +T7090499.java:28:11: compiler.warn.raw.class.use: T7090499.B, T7090499.B<X>
    3.14 +T7090499.java:28:10: compiler.err.improperly.formed.type.inner.raw.param
    3.15 +T7090499.java:30:32: compiler.warn.raw.class.use: T7090499.B, T7090499.B<X>
    3.16 +T7090499.java:33:13: compiler.warn.raw.class.use: T7090499.A, T7090499<E>.A<X>
    3.17 +T7090499.java:33:24: compiler.warn.raw.class.use: T7090499.A, T7090499<E>.A<X>
    3.18 +T7090499.java:34:20: compiler.warn.raw.class.use: T7090499.A.Z, T7090499<E>.A<X>.Z<Y>
    3.19 +4 errors
    3.20 +11 warnings

mercurial