diff -r e57b27703e8b -r b49b0d72c071 src/share/classes/com/sun/tools/javac/parser/JavacParser.java --- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Tue Jul 13 19:20:48 2010 -0700 +++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Thu Jul 15 16:31:02 2010 +0100 @@ -1151,8 +1151,12 @@ t = toP(F.at(pos).Select(t, ident())); break; case ELLIPSIS: - assert this.permitTypeAnnotationsPushBack; - typeAnnotationsPushedBack = annos; + if (this.permitTypeAnnotationsPushBack) { + this.typeAnnotationsPushedBack = annos; + } else if (annos.nonEmpty()) { + // Don't return here -- error recovery attempt + illegal(annos.head.pos); + } break loop; default: break loop;