diff -r 905e151a185a -r d57378c34fdb src/share/classes/com/sun/tools/javac/parser/JavacParser.java --- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Tue Jan 13 13:27:14 2009 +0000 +++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Tue Jan 13 13:28:20 2009 +0000 @@ -864,6 +864,12 @@ t = F.at(pos1).TypeApply(t, args.toList()); checkGenerics(); t = bracketsOpt(toP(t)); + while (S.token() == DOT) { + S.nextToken(); + mode = TYPE; + t = toP(F.at(S.pos()).Select(t, ident())); + t = typeArgumentsOpt(t); + } } else if ((mode & EXPR) != 0) { mode = EXPR; t = F.at(pos1).Binary(op, t, term2Rest(t1, TreeInfo.shiftPrec)); @@ -871,7 +877,8 @@ } else { accept(GT); } - } else { + } + else { t = termRest(term1Rest(term2Rest(t, TreeInfo.orPrec))); } accept(RPAREN);