--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Wed Sep 04 14:44:05 2013 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Thu Sep 05 11:27:27 2013 +0200
@@ -72,7 +72,7 @@
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
-public class ClassReader implements Completer {
+public class ClassReader {
/** The context key for the class reader. */
protected static final Context.Key<ClassReader> classReaderKey =
new Context.Key<ClassReader>();
@@ -234,6 +234,17 @@
*/
Set<Name> warnedAttrs = new HashSet<Name>();
+ /**
+ * Completer that delegates to the complete-method of this class.
+ */
+ private final Completer thisCompleter = new Completer() {
+ @Override
+ public void complete(Symbol sym) throws CompletionFailure {
+ ClassReader.this.complete(sym);
+ }
+ };
+
+
/** Get the ClassReader instance for this invocation. */
public static ClassReader instance(Context context) {
ClassReader instance = context.get(classReaderKey);
@@ -264,8 +275,8 @@
}
packages.put(names.empty, syms.rootPackage);
- syms.rootPackage.completer = this;
- syms.unnamedPackage.completer = this;
+ syms.rootPackage.completer = thisCompleter;
+ syms.unnamedPackage.completer = thisCompleter;
}
/** Construct a new class reader, optionally treated as the
@@ -2319,7 +2330,7 @@
ClassSymbol c = new ClassSymbol(0, name, owner);
if (owner.kind == PCK)
Assert.checkNull(classes.get(c.flatname), c);
- c.completer = this;
+ c.completer = thisCompleter;
return c;
}
@@ -2389,7 +2400,7 @@
/** Completion for classes to be loaded. Before a class is loaded
* we make sure its enclosing class (if any) is loaded.
*/
- public void complete(Symbol sym) throws CompletionFailure {
+ private void complete(Symbol sym) throws CompletionFailure {
if (sym.kind == TYP) {
ClassSymbol c = (ClassSymbol)sym;
c.members_field = new Scope.ErrorScope(c); // make sure it's always defined
@@ -2610,7 +2621,7 @@
p = new PackageSymbol(
Convert.shortName(fullname),
enterPackage(Convert.packagePart(fullname)));
- p.completer = this;
+ p.completer = thisCompleter;
packages.put(fullname, p);
}
return p;