8175191: dead code removal at package com.sun.tools.javac.comp
Reviewed-by: mcimadamore
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ConstFold.java Wed Mar 01 16:38:48 2017 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ConstFold.java Fri Mar 03 10:37:53 2017 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,24 +73,6 @@
private static float floatValue(Object x) { return ((Number)x).floatValue(); }
private static double doubleValue(Object x) { return ((Number)x).doubleValue(); }
- /** Fold binary or unary operation, returning constant type reflecting the
- * operations result. Return null if fold failed due to an
- * arithmetic exception.
- * @param opcode The operation's opcode instruction (usually a byte code),
- * as entered by class Symtab.
- * @param argtypes The operation's argument types (a list of length 1 or 2).
- * Argument types are assumed to have non-null constValue's.
- */
- Type fold(int opcode, List<Type> argtypes) {
- int argCount = argtypes.length();
- if (argCount == 1)
- return fold1(opcode, argtypes.head);
- else if (argCount == 2)
- return fold2(opcode, argtypes.head, argtypes.tail.head);
- else
- throw new AssertionError();
- }
-
/** Fold unary operation.
* @param opcode The operation's opcode instruction (usually a byte code),
* as entered by class Symtab.
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Env.java Wed Mar 01 16:38:48 2017 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Env.java Fri Mar 03 10:37:53 2017 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -126,10 +126,6 @@
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Env[").append(info);
-// if (enclMethod != null)
-// sb.append(",enclMethod=").append(Pretty.toSimpleString(enclMethod));
-// if (enclClass != null)
-// sb.append(",enclClass=").append(Pretty.toSimpleString(enclClass));
if (outer != null)
sb.append(",outer=").append(outer);
sb.append("]");
@@ -149,7 +145,6 @@
return current;
}
throw new NoSuchElementException();
-
}
public void remove() {
throw new UnsupportedOperationException();
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java Wed Mar 01 16:38:48 2017 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java Fri Mar 03 10:37:53 2017 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1751,23 +1751,6 @@
}
/**
- * Compute closure of a give node, by recursively walking
- * through all its dependencies (of given kinds)
- */
- protected Set<Node> closure() {
- boolean progress = true;
- Set<Node> closure = new HashSet<>();
- closure.add(this);
- while (progress) {
- progress = false;
- for (Node n1 : new HashSet<>(closure)) {
- progress = closure.addAll(n1.deps);
- }
- }
- return closure;
- }
-
- /**
* Is this node a leaf? This means either the node has no dependencies,
* or it just has self-dependencies.
*/
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java Wed Mar 01 16:38:48 2017 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java Fri Mar 03 10:37:53 2017 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -772,13 +772,6 @@
/**
* Create new synthetic variable with given flags, name, type, owner
*/
- private VarSymbol makeSyntheticVar(long flags, String name, Type type, Symbol owner) {
- return makeSyntheticVar(flags, names.fromString(name), type, owner);
- }
-
- /**
- * Create new synthetic variable with given flags, name, type, owner
- */
private VarSymbol makeSyntheticVar(long flags, Name name, Type type, Symbol owner) {
return new VarSymbol(flags | SYNTHETIC, name, type, owner);
}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java Wed Mar 01 16:38:48 2017 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java Fri Mar 03 10:37:53 2017 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -760,18 +760,6 @@
return rs.resolveInternalMethod(pos, attrEnv, qual, name, args, List.nil());
}
- /** Look up a constructor.
- */
- private MethodSymbol lookupConstructor(DiagnosticPosition pos, Type qual, List<Type> args) {
- return rs.resolveInternalConstructor(pos, attrEnv, qual, args, null);
- }
-
- /** Look up a field.
- */
- private VarSymbol lookupField(DiagnosticPosition pos, Type qual, Name name) {
- return rs.resolveInternalField(pos, attrEnv, qual, name);
- }
-
/** Anon inner classes are used as access constructor tags.
* accessConstructorTag will use an existing anon class if one is available,
* and synthethise a class (with makeEmptyClass) if one is not available.
@@ -1908,181 +1896,12 @@
return makeEmptyClass(STATIC | SYNTHETIC, clazz).sym;
}
- /** Return symbol for "class$" method. If there is no method definition
- * for class$, construct one as follows:
- *
- * class class$(String x0) {
- * try {
- * return Class.forName(x0);
- * } catch (ClassNotFoundException x1) {
- * throw new NoClassDefFoundError(x1.getMessage());
- * }
- * }
- */
- private MethodSymbol classDollarSym(DiagnosticPosition pos) {
- ClassSymbol outerCacheClass = outerCacheClass();
- MethodSymbol classDollarSym =
- (MethodSymbol)lookupSynthetic(classDollar,
- outerCacheClass.members());
- if (classDollarSym == null) {
- classDollarSym = new MethodSymbol(
- STATIC | SYNTHETIC,
- classDollar,
- new MethodType(
- List.of(syms.stringType),
- types.erasure(syms.classType),
- List.nil(),
- syms.methodClass),
- outerCacheClass);
- enterSynthetic(pos, classDollarSym, outerCacheClass.members());
-
- JCMethodDecl md = make.MethodDef(classDollarSym, null);
- try {
- md.body = classDollarSymBody(pos, md);
- } catch (CompletionFailure ex) {
- md.body = make.Block(0, List.nil());
- chk.completionError(pos, ex);
- }
- JCClassDecl outerCacheClassDef = classDef(outerCacheClass);
- outerCacheClassDef.defs = outerCacheClassDef.defs.prepend(md);
- }
- return classDollarSym;
- }
-
- /** Generate code for class$(String name). */
- JCBlock classDollarSymBody(DiagnosticPosition pos, JCMethodDecl md) {
- MethodSymbol classDollarSym = md.sym;
- ClassSymbol outerCacheClass = (ClassSymbol)classDollarSym.owner;
-
- JCBlock returnResult;
-
- // cache the current loader in cl$
- // clsym = "private static ClassLoader cl$"
- VarSymbol clsym = new VarSymbol(STATIC | SYNTHETIC,
- names.fromString("cl" + target.syntheticNameChar()),
- syms.classLoaderType,
- outerCacheClass);
- enterSynthetic(pos, clsym, outerCacheClass.members());
-
- // emit "private static ClassLoader cl$;"
- JCVariableDecl cldef = make.VarDef(clsym, null);
- JCClassDecl outerCacheClassDef = classDef(outerCacheClass);
- outerCacheClassDef.defs = outerCacheClassDef.defs.prepend(cldef);
-
- // newcache := "new cache$1[0]"
- JCNewArray newcache = make.NewArray(make.Type(outerCacheClass.type),
- List.of(make.Literal(INT, 0).setType(syms.intType)),
- null);
- newcache.type = new ArrayType(types.erasure(outerCacheClass.type),
- syms.arrayClass);
-
- // forNameSym := java.lang.Class.forName(
- // String s,boolean init,ClassLoader loader)
- Symbol forNameSym = lookupMethod(make_pos, names.forName,
- types.erasure(syms.classType),
- List.of(syms.stringType,
- syms.booleanType,
- syms.classLoaderType));
- // clvalue := "(cl$ == null) ?
- // $newcache.getClass().getComponentType().getClassLoader() : cl$"
- JCExpression clvalue =
- make.Conditional(
- makeBinary(EQ, make.Ident(clsym), makeNull()),
- make.Assign(make.Ident(clsym),
- makeCall(
- makeCall(makeCall(newcache,
- names.getClass,
- List.nil()),
- names.getComponentType,
- List.nil()),
- names.getClassLoader,
- List.nil())).setType(syms.classLoaderType),
- make.Ident(clsym)).setType(syms.classLoaderType);
-
- // returnResult := "{ return Class.forName(param1, false, cl$); }"
- List<JCExpression> args = List.of(make.Ident(md.params.head.sym),
- makeLit(syms.booleanType, 0),
- clvalue);
- returnResult = make.Block(0, List.of(make.Call(make.App(make.Ident(forNameSym), args))));
-
- // catchParam := ClassNotFoundException e1
- VarSymbol catchParam =
- new VarSymbol(SYNTHETIC, make.paramName(1),
- syms.classNotFoundExceptionType,
- classDollarSym);
-
- JCStatement rethrow;
- // rethrow = "throw new NoClassDefFoundError().initCause(e);
- JCExpression throwExpr =
- makeCall(makeNewClass(syms.noClassDefFoundErrorType,
- List.nil()),
- names.initCause,
- List.of(make.Ident(catchParam)));
- rethrow = make.Throw(throwExpr);
-
- // rethrowStmt := "( $rethrow )"
- JCBlock rethrowStmt = make.Block(0, List.of(rethrow));
-
- // catchBlock := "catch ($catchParam) $rethrowStmt"
- JCCatch catchBlock = make.Catch(make.VarDef(catchParam, null),
- rethrowStmt);
-
- // tryCatch := "try $returnResult $catchBlock"
- JCStatement tryCatch = make.Try(returnResult,
- List.of(catchBlock), null);
-
- return make.Block(0, List.of(tryCatch));
- }
- // where
- /** Create an attributed tree of the form left.name(). */
- private JCMethodInvocation makeCall(JCExpression left, Name name, List<JCExpression> args) {
- Assert.checkNonNull(left.type);
- Symbol funcsym = lookupMethod(make_pos, name, left.type,
- TreeInfo.types(args));
- return make.App(make.Select(left, funcsym), args);
- }
-
- /** The Name Of The variable to cache T.class values.
- * @param sig The signature of type T.
- */
- private Name cacheName(String sig) {
- StringBuilder buf = new StringBuilder();
- if (sig.startsWith("[")) {
- buf = buf.append("array");
- while (sig.startsWith("[")) {
- buf = buf.append(target.syntheticNameChar());
- sig = sig.substring(1);
- }
- if (sig.startsWith("L")) {
- sig = sig.substring(0, sig.length() - 1);
- }
- } else {
- buf = buf.append("class" + target.syntheticNameChar());
- }
- buf = buf.append(sig.replace('.', target.syntheticNameChar()));
- return names.fromString(buf.toString());
- }
-
- /** The variable symbol that caches T.class values.
- * If none exists yet, create a definition.
- * @param sig The signature of type T.
- * @param pos The position to report diagnostics, if any.
- */
- private VarSymbol cacheSym(DiagnosticPosition pos, String sig) {
- ClassSymbol outerCacheClass = outerCacheClass();
- Name cname = cacheName(sig);
- VarSymbol cacheSym =
- (VarSymbol)lookupSynthetic(cname, outerCacheClass.members());
- if (cacheSym == null) {
- cacheSym = new VarSymbol(
- STATIC | SYNTHETIC, cname, types.erasure(syms.classType), outerCacheClass);
- enterSynthetic(pos, cacheSym, outerCacheClass.members());
-
- JCVariableDecl cacheDef = make.VarDef(cacheSym, null);
- JCClassDecl outerCacheClassDef = classDef(outerCacheClass);
- outerCacheClassDef.defs = outerCacheClassDef.defs.prepend(cacheDef);
- }
- return cacheSym;
+ /** Create an attributed tree of the form left.name(). */
+ private JCMethodInvocation makeCall(JCExpression left, Name name, List<JCExpression> args) {
+ Assert.checkNonNull(left.type);
+ Symbol funcsym = lookupMethod(make_pos, name, left.type,
+ TreeInfo.types(args));
+ return make.App(make.Select(left, funcsym), args);
}
/** The tree simulating a T.class expression.
@@ -2319,16 +2138,6 @@
/** Visitor method: Translate list of trees.
*/
- public <T extends JCTree> List<T> translate(List<T> trees, JCExpression enclOp) {
- JCExpression prevEnclOp = this.enclOp;
- this.enclOp = enclOp;
- List<T> res = translate(trees);
- this.enclOp = prevEnclOp;
- return res;
- }
-
- /** Visitor method: Translate list of trees.
- */
public <T extends JCExpression> List<T> translate(List<T> trees, Type type) {
if (trees == null) return null;
for (List<T> l = trees; l.nonEmpty(); l = l.tail)
@@ -2949,7 +2758,6 @@
/** Visitor method for assert statements. Translate them away.
*/
public void visitAssert(JCAssert tree) {
- DiagnosticPosition detailPos = (tree.detail == null) ? tree.pos() : tree.detail.pos();
tree.cond = translate(tree.cond, syms.booleanType);
if (!tree.cond.type.isTrue()) {
JCExpression cond = assertFlagTest(tree.pos());
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Wed Mar 01 16:38:48 2017 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Fri Mar 03 10:37:53 2017 -0800
@@ -211,20 +211,11 @@
}
int depth = -1;
- private void dprintln(String msg) {
- for (int i = 0; i < depth; i++)
- System.err.print(" ");
- System.err.println(msg);
- }
public void addExtraAddModules(String... extras) {
extraAddMods.addAll(Arrays.asList(extras));
}
- public void addExtraLimitModules(String... extras) {
- extraLimitMods.addAll(Arrays.asList(extras));
- }
-
boolean inInitModules;
public void initModules(List<JCCompilationUnit> trees) {
Assert.check(!inInitModules);
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Wed Mar 01 16:38:48 2017 -0800
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Fri Mar 03 10:37:53 2017 -0800
@@ -837,14 +837,6 @@
}
};
- List<Type> dummyArgs(int length) {
- ListBuffer<Type> buf = new ListBuffer<>();
- for (int i = 0 ; i < length ; i++) {
- buf.append(Type.noType);
- }
- return buf.toList();
- }
-
/**
* Main method applicability routine. Given a list of actual types A,
* a list of formal types F, determines whether the types in A are
@@ -4702,20 +4694,6 @@
this.mtype = mtype;
}
- @Override
- public boolean equals(Object o) {
- if (o instanceof Candidate) {
- Symbol s1 = this.sym;
- Symbol s2 = ((Candidate)o).sym;
- if ((s1 != s2 &&
- (s1.overrides(s2, s1.owner.type.tsym, types, false) ||
- (s2.overrides(s1, s2.owner.type.tsym, types, false)))) ||
- ((s1.isConstructor() || s2.isConstructor()) && s1.owner != s2.owner))
- return true;
- }
- return false;
- }
-
boolean isApplicable() {
return mtype != null;
}