From 00fd0bdcfda16b9155c60e73dcfd929820d30669 Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Thu, 30 Jun 2011 12:00:53 -0700 Subject: [PATCH] 7060926: Attr.PostAttrAnalyzer misses a case Reviewed-by: mcimadamore --- .../com/sun/tools/javac/comp/Attr.java | 7 +++++++ .../test/tools/javac/failover/FailOver15.java | 19 +++++++++++++++++++ .../test/tools/javac/failover/FailOver15.out | 4 ++++ 3 files changed, 30 insertions(+) create mode 100644 langtools/test/tools/javac/failover/FailOver15.java create mode 100644 langtools/test/tools/javac/failover/FailOver15.out diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java index 9e329f33d1d..a7a991b1901 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java @@ -3387,6 +3387,13 @@ public class Attr extends JCTree.Visitor { super.visitNewClass(that); } + @Override + public void visitAssignop(JCAssignOp that) { + if (that.operator == null) + that.operator = new OperatorSymbol(names.empty, syms.unknownType, -1, syms.noSymbol); + super.visitAssignop(that); + } + @Override public void visitBinary(JCBinary that) { if (that.operator == null) diff --git a/langtools/test/tools/javac/failover/FailOver15.java b/langtools/test/tools/javac/failover/FailOver15.java new file mode 100644 index 00000000000..e3c7e1ea3bf --- /dev/null +++ b/langtools/test/tools/javac/failover/FailOver15.java @@ -0,0 +1,19 @@ +/* + * @test /nodynamiccopyright/ + * @bug 6970584 7060926 + * @summary Attr.PostAttrAnalyzer misses a case + * + * @compile/fail/ref=FailOver15.out -XDrawDiagnostics -XDshouldStopPolicy=FLOW -XDdev FailOver15.java + */ + +class Test { + void m() { + new UnknownClass() { + public String getString() { + String s = ""; + s += "more"; + return s; + } + } + } +} diff --git a/langtools/test/tools/javac/failover/FailOver15.out b/langtools/test/tools/javac/failover/FailOver15.out new file mode 100644 index 00000000000..bb6831c6c4e --- /dev/null +++ b/langtools/test/tools/javac/failover/FailOver15.out @@ -0,0 +1,4 @@ +FailOver15.java:17:10: compiler.err.expected: ';' +FailOver15.java:11:13: compiler.err.cant.resolve.location: kindname.class, UnknownClass, , , (compiler.misc.location: kindname.class, Test, null) +2 errors +