8016610: javac, add new internal symbols to make operator resolution faster

Reviewed-by: jjg
This commit is contained in:
Maurizio Cimadamore 2013-06-19 22:07:05 +01:00 committed by Vicente Romero
parent 01cde5204c
commit 53f06da300
2 changed files with 16 additions and 10 deletions

View File

@ -570,15 +570,18 @@ public class Symtab {
arrayClass.members().enter(arrayCloneMethod);
// Enter operators.
enterUnop("+", doubleType, doubleType, nop);
enterUnop("+", floatType, floatType, nop);
enterUnop("+", longType, longType, nop);
enterUnop("+", intType, intType, nop);
/* Internally we use +++, --- for unary +, - to reduce +, - operators
* overloading
*/
enterUnop("+++", doubleType, doubleType, nop);
enterUnop("+++", floatType, floatType, nop);
enterUnop("+++", longType, longType, nop);
enterUnop("+++", intType, intType, nop);
enterUnop("-", doubleType, doubleType, dneg);
enterUnop("-", floatType, floatType, fneg);
enterUnop("-", longType, longType, lneg);
enterUnop("-", intType, intType, ineg);
enterUnop("---", doubleType, doubleType, dneg);
enterUnop("---", floatType, floatType, fneg);
enterUnop("---", longType, longType, lneg);
enterUnop("---", intType, intType, ineg);
enterUnop("~", longType, longType, lxor);
enterUnop("~", intType, intType, ixor);

View File

@ -74,8 +74,11 @@ public class TreeInfo {
context.put(treeInfoKey, this);
Names names = Names.instance(context);
setOpname(POS, "+", names);
setOpname(NEG, names.hyphen);
/* Internally we use +++, --- for unary +, - to reduce +, - operators
* overloading
*/
setOpname(POS, "+++", names);
setOpname(NEG, "---", names);
setOpname(NOT, "!", names);
setOpname(COMPL, "~", names);
setOpname(PREINC, "++", names);