Sat, 29 Sep 2012 09:00:58 -0700
7198582: (java) Minor refactor of JavacParser
Reviewed-by: jjg, ksrini
Contributed-by: jan.lahoda@oracle.com
1.1 --- a/src/share/classes/com/sun/tools/javac/comp/Resolve.java Fri Sep 28 14:57:31 2012 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Resolve.java Sat Sep 29 09:00:58 2012 -0700 1.3 @@ -251,7 +251,7 @@ 1.4 /** An environment is "static" if its static level is greater than 1.5 * the one of its outer environment 1.6 */ 1.7 - static boolean isStatic(Env<AttrContext> env) { 1.8 + protected static boolean isStatic(Env<AttrContext> env) { 1.9 return env.info.staticLevel > env.outer.info.staticLevel; 1.10 } 1.11
2.1 --- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Fri Sep 28 14:57:31 2012 -0700 2.2 +++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java Sat Sep 29 09:00:58 2012 -0700 2.3 @@ -2165,27 +2165,10 @@ 2.4 while (true) { 2.5 int pos = token.pos; 2.6 switch (token.kind) { 2.7 - case CASE: { 2.8 - nextToken(); 2.9 - JCExpression pat = parseExpression(); 2.10 - accept(COLON); 2.11 - List<JCStatement> stats = blockStatements(); 2.12 - JCCase c = F.at(pos).Case(pat, stats); 2.13 - if (stats.isEmpty()) 2.14 - storeEnd(c, S.prevToken().endPos); 2.15 - cases.append(c); 2.16 + case CASE: 2.17 + case DEFAULT: 2.18 + cases.append(switchBlockStatementGroup()); 2.19 break; 2.20 - } 2.21 - case DEFAULT: { 2.22 - nextToken(); 2.23 - accept(COLON); 2.24 - List<JCStatement> stats = blockStatements(); 2.25 - JCCase c = F.at(pos).Case(null, stats); 2.26 - if (stats.isEmpty()) 2.27 - storeEnd(c, S.prevToken().endPos); 2.28 - cases.append(c); 2.29 - break; 2.30 - } 2.31 case RBRACE: case EOF: 2.32 return cases.toList(); 2.33 default: 2.34 @@ -2196,6 +2179,32 @@ 2.35 } 2.36 } 2.37 2.38 + protected JCCase switchBlockStatementGroup() { 2.39 + int pos = token.pos; 2.40 + List<JCStatement> stats; 2.41 + JCCase c; 2.42 + switch (token.kind) { 2.43 + case CASE: 2.44 + nextToken(); 2.45 + JCExpression pat = parseExpression(); 2.46 + accept(COLON); 2.47 + stats = blockStatements(); 2.48 + c = F.at(pos).Case(pat, stats); 2.49 + if (stats.isEmpty()) 2.50 + storeEnd(c, S.prevToken().endPos); 2.51 + return c; 2.52 + case DEFAULT: 2.53 + nextToken(); 2.54 + accept(COLON); 2.55 + stats = blockStatements(); 2.56 + c = F.at(pos).Case(null, stats); 2.57 + if (stats.isEmpty()) 2.58 + storeEnd(c, S.prevToken().endPos); 2.59 + return c; 2.60 + } 2.61 + throw new AssertionError("should not reach here"); 2.62 + } 2.63 + 2.64 /** MoreStatementExpressions = { COMMA StatementExpression } 2.65 */ 2.66 <T extends ListBuffer<? super JCExpressionStatement>> T moreStatementExpressions(int pos,
3.1 --- a/src/share/classes/com/sun/tools/javap/CodeWriter.java Fri Sep 28 14:57:31 2012 -0700 3.2 +++ b/src/share/classes/com/sun/tools/javap/CodeWriter.java Sat Sep 29 09:00:58 2012 -0700 3.3 @@ -1,5 +1,5 @@ 3.4 /* 3.5 - * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. 3.6 + * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved. 3.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3.8 * 3.9 * This code is free software; you can redistribute it and/or modify it 3.10 @@ -45,8 +45,8 @@ 3.11 * This code and its internal interfaces are subject to change or 3.12 * deletion without notice.</b> 3.13 */ 3.14 -class CodeWriter extends BasicWriter { 3.15 - static CodeWriter instance(Context context) { 3.16 +public class CodeWriter extends BasicWriter { 3.17 + public static CodeWriter instance(Context context) { 3.18 CodeWriter instance = context.get(CodeWriter.class); 3.19 if (instance == null) 3.20 instance = new CodeWriter(context);