Wed, 19 Jun 2013 22:07:05 +0100
8016610: javac, add new internal symbols to make operator resolution faster
Reviewed-by: jjg
Contributed-by: maurizio.cimadamore@oracle.com
1.1 --- a/src/share/classes/com/sun/tools/javac/code/Symtab.java Wed Jun 19 13:00:00 2013 +0100 1.2 +++ b/src/share/classes/com/sun/tools/javac/code/Symtab.java Wed Jun 19 22:07:05 2013 +0100 1.3 @@ -570,15 +570,18 @@ 1.4 arrayClass.members().enter(arrayCloneMethod); 1.5 1.6 // Enter operators. 1.7 - enterUnop("+", doubleType, doubleType, nop); 1.8 - enterUnop("+", floatType, floatType, nop); 1.9 - enterUnop("+", longType, longType, nop); 1.10 - enterUnop("+", intType, intType, nop); 1.11 + /* Internally we use +++, --- for unary +, - to reduce +, - operators 1.12 + * overloading 1.13 + */ 1.14 + enterUnop("+++", doubleType, doubleType, nop); 1.15 + enterUnop("+++", floatType, floatType, nop); 1.16 + enterUnop("+++", longType, longType, nop); 1.17 + enterUnop("+++", intType, intType, nop); 1.18 1.19 - enterUnop("-", doubleType, doubleType, dneg); 1.20 - enterUnop("-", floatType, floatType, fneg); 1.21 - enterUnop("-", longType, longType, lneg); 1.22 - enterUnop("-", intType, intType, ineg); 1.23 + enterUnop("---", doubleType, doubleType, dneg); 1.24 + enterUnop("---", floatType, floatType, fneg); 1.25 + enterUnop("---", longType, longType, lneg); 1.26 + enterUnop("---", intType, intType, ineg); 1.27 1.28 enterUnop("~", longType, longType, lxor); 1.29 enterUnop("~", intType, intType, ixor);
2.1 --- a/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Wed Jun 19 13:00:00 2013 +0100 2.2 +++ b/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Wed Jun 19 22:07:05 2013 +0100 2.3 @@ -74,8 +74,11 @@ 2.4 context.put(treeInfoKey, this); 2.5 2.6 Names names = Names.instance(context); 2.7 - setOpname(POS, "+", names); 2.8 - setOpname(NEG, names.hyphen); 2.9 + /* Internally we use +++, --- for unary +, - to reduce +, - operators 2.10 + * overloading 2.11 + */ 2.12 + setOpname(POS, "+++", names); 2.13 + setOpname(NEG, "---", names); 2.14 setOpname(NOT, "!", names); 2.15 setOpname(COMPL, "~", names); 2.16 setOpname(PREINC, "++", names);