# HG changeset patch # User lana # Date 1318903646 25200 # Node ID 371ba3560eafd79f2e1c4ea1880bbbe7a9f14c4a # Parent 37f8c495e1a59f6fb18ba19bceedef8ae25959e7# Parent 886497594ad7b9f1006ff14284f961a1d9f093e7 Merge diff -r 37f8c495e1a5 -r 371ba3560eaf langtools/src/share/classes/com/sun/tools/javac/comp/Check.java --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Thu Oct 13 10:35:50 2011 -0700 +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Mon Oct 17 19:07:26 2011 -0700 @@ -1169,12 +1169,17 @@ if (lint.isEnabled(LintCategory.RAW) && tree.type.tag == CLASS && !TreeInfo.isDiamond(tree) && - !env.enclClass.name.isEmpty() && //anonymous or intersection + !withinAnonConstr(env) && tree.type.isRaw()) { log.warning(LintCategory.RAW, tree.pos(), "raw.class.use", tree.type, tree.type.tsym.type); } } + + boolean withinAnonConstr(Env env) { + return env.enclClass.name.isEmpty() && + env.enclMethod != null && env.enclMethod.name == names.init; + } } /* ************************************************************************* diff -r 37f8c495e1a5 -r 371ba3560eaf langtools/test/tools/javac/warnings/7090499/T7090499.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/warnings/7090499/T7090499.java Mon Oct 17 19:07:26 2011 -0700 @@ -0,0 +1,37 @@ +/** + * @test /nodynamiccopyright/ + * @bug 7094099 + * @summary -Xlint:rawtypes + * @compile/fail/ref=T7090499.out -XDrawDiagnostics -Xlint:rawtypes T7090499.java + */ + + +class T7090499 { + + static class B {} + + class A { + class X {} + class Z {} + } + + T7090499 t = new T7090499() { //raw warning (2) + + A.X x1;//raw warning + A.Z z1;//raw warning + + T7090499.B b1;//ok + T7090499.B b2;//raw warning + + A.X x2;//ok + A.Z z2;//ok + A.Z> z3;//raw warning (2) + + void test(Object arg1, B arg2) {//raw warning + boolean b = arg1 instanceof A;//ok + Object a = (A)arg1;//ok + A a2 = new A() {};//raw warning (2) + a2.new Z() {};//raw warning + } + }; +} diff -r 37f8c495e1a5 -r 371ba3560eaf langtools/test/tools/javac/warnings/7090499/T7090499.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/warnings/7090499/T7090499.out Mon Oct 17 19:07:26 2011 -0700 @@ -0,0 +1,17 @@ +T7090499.java:18:5: compiler.warn.raw.class.use: T7090499, T7090499 +T7090499.java:18:22: compiler.warn.raw.class.use: T7090499, T7090499 +T7090499.java:20:10: compiler.warn.raw.class.use: T7090499.A.X, T7090499.A.X +T7090499.java:21:10: compiler.warn.raw.class.use: T7090499.A.Z, T7090499.A.Z +T7090499.java:24:17: compiler.warn.raw.class.use: T7090499.B, T7090499.B +T7090499.java:26:10: compiler.err.improperly.formed.type.inner.raw.param +T7090499.java:27:10: compiler.err.improperly.formed.type.inner.raw.param +T7090499.java:28:18: compiler.warn.raw.class.use: T7090499.B, T7090499.B +T7090499.java:28:17: compiler.err.improperly.formed.type.inner.raw.param +T7090499.java:28:11: compiler.warn.raw.class.use: T7090499.B, T7090499.B +T7090499.java:28:10: compiler.err.improperly.formed.type.inner.raw.param +T7090499.java:30:32: compiler.warn.raw.class.use: T7090499.B, T7090499.B +T7090499.java:33:13: compiler.warn.raw.class.use: T7090499.A, T7090499.A +T7090499.java:33:24: compiler.warn.raw.class.use: T7090499.A, T7090499.A +T7090499.java:34:20: compiler.warn.raw.class.use: T7090499.A.Z, T7090499.A.Z +4 errors +11 warnings