Skip to content

Commit

Permalink
Cleaned up expression constant value setting.
Browse files Browse the repository at this point in the history
	Change on 2017/01/03 by tball <tball@google.com>

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=143450599
  • Loading branch information
tomball committed Jan 6, 2017
1 parent 42e63a7 commit 50d29da
Showing 1 changed file with 13 additions and 28 deletions.
Expand Up @@ -189,6 +189,9 @@ private TreeNode convert(Object obj) {
JCTree node = (JCTree) obj;
TreeNode newNode = convertInner(node)
.setPosition(getPosition(node));
if (newNode instanceof Expression) {
copyConstantValue(node, (Expression) newNode);
}
newNode.validate();
return newNode;
}
Expand Down Expand Up @@ -478,7 +481,6 @@ private TreeNode convertAssert(JCTree.JCAssert node) {

private TreeNode convertAssignment(JCTree.JCAssign node) {
Assignment newNode = new Assignment();
convertExpression(node, newNode);
return newNode
.setOperator(Assignment.Operator.ASSIGN)
.setLeftHandSide((Expression) convert(node.getVariable()))
Expand All @@ -487,7 +489,6 @@ private TreeNode convertAssignment(JCTree.JCAssign node) {

private TreeNode convertAssignOp(JCTree.JCAssignOp node) {
Assignment newNode = new Assignment();
convertExpression(node, newNode);
String operatorName = node.getOperator().getSimpleName().toString() + "=";
return newNode
.setOperator(Assignment.Operator.fromJdtOperatorName(operatorName))
Expand All @@ -497,7 +498,6 @@ private TreeNode convertAssignOp(JCTree.JCAssignOp node) {

private TreeNode convertBinary(JCTree.JCBinary node) {
InfixExpression newNode = new InfixExpression();
convertExpression(node, newNode);
newNode
.setTypeMirror(node.type)
.setOperator(InfixExpression.Operator.parse(node.operator.name.toString()));
Expand Down Expand Up @@ -551,8 +551,7 @@ private TreeNode convertBodyDeclaration(JCTree node, JCTree.JCModifiers modifier
}

private TreeNode convertBooleanLiteral(JCTree.JCLiteral node) {
BooleanLiteral newNode = new BooleanLiteral((Boolean) node.getValue(), node.type);
return convertExpression(node, newNode);
return new BooleanLiteral((Boolean) node.getValue(), node.type);
}

private TreeNode convertBreakStatement(JCTree.JCBreak node) {
Expand Down Expand Up @@ -583,8 +582,7 @@ private TreeNode convertCatch(JCTree.JCCatch node) {
}

private TreeNode convertCharLiteral(JCTree.JCLiteral node) {
return new CharacterLiteral((Character) node.getValue(), node.type)
.setConstantValue(node.getValue());
return new CharacterLiteral((Character) node.getValue(), node.type);
}

private TreeNode convertClassDeclaration(JCTree.JCClassDecl node) {
Expand Down Expand Up @@ -681,15 +679,13 @@ private TreeNode convertEnum(JCTree.JCClassDecl node) {
return newNode;
}

private TreeNode convertExpression(
JCTree.JCExpression node, Expression newNode) {
private TreeNode copyConstantValue(JCTree node, Expression newNode) {
Object value = node.type.constValue();
// Convert boolean values of 1/0 as true/false.
if (TypeUtil.isBoolean(node.type.baseType()) && value instanceof Integer) {
value = ((Integer) value).intValue() == 1;
}
return newNode
.setConstantValue(value);
return newNode.setConstantValue(value);
}

private TreeNode convertExpressionStatement(JCTree.JCExpressionStatement node) {
Expand Down Expand Up @@ -738,15 +734,12 @@ private TreeNode convertFieldAccess(JCTree.JCFieldAccess node) {
return new QualifiedName()
.setName(convertSimpleName(node.sym, node.type, pos))
.setQualifier((Name) convert(selected))
.setElement(node.sym)
.setConstantValue(((VariableElement) node.sym).getConstantValue());
.setElement(node.sym);
}
FieldAccess newNode = new FieldAccess()
return new FieldAccess()
.setVariableElement((VariableElement) node.sym)
.setExpression((Expression) convert(selected))
.setName(convertSimpleName(node.sym, node.type, pos).setTypeMirror(node.type));
convertExpression(node, newNode);
return newNode;
}

private TreeNode convertForLoop(JCTree.JCForLoop node) {
Expand Down Expand Up @@ -778,7 +771,6 @@ private TreeNode convertForLoop(JCTree.JCForLoop node) {

private TreeNode convertFunctionalExpression(JCTree.JCFunctionalExpression node,
FunctionalExpression newNode) {
convertExpression(node, newNode);
for (TypeMirror type : node.targets) {
newNode.addTargetType(type);
}
Expand All @@ -790,9 +782,7 @@ private TreeNode convertIdent(JCTree.JCIdent node) {
if (text.equals("this")) {
return new ThisExpression().setTypeMirror(node.type);
}
SimpleName newNode = new SimpleName(node.sym, node.type);
convertExpression(node, newNode);
return newNode;
return new SimpleName(node.sym, node.type);
}

private TreeNode convertIf(JCTree.JCIf node) {
Expand Down Expand Up @@ -977,7 +967,6 @@ private Name convertName(Symbol symbol, SourcePosition pos) {

private TreeNode convertNewArray(JCTree.JCNewArray node) {
ArrayCreation newNode = new ArrayCreation();
convertExpression(node, newNode);
List<Expression> dimensions = new ArrayList<>();
for (JCTree.JCExpression dimension : node.getDimensions()) {
dimensions.add((Expression) convert(dimension));
Expand All @@ -997,7 +986,6 @@ private TreeNode convertNewArray(JCTree.JCNewArray node) {

private TreeNode convertNewClass(JCTree.JCNewClass node) {
ClassInstanceCreation newNode = new ClassInstanceCreation();
convertExpression(node, newNode);
for (JCTree.JCExpression arg : node.getArguments()) {
newNode.addArgument((Expression) convert(arg));
}
Expand All @@ -1010,9 +998,8 @@ private TreeNode convertNewClass(JCTree.JCNewClass node) {
}

private TreeNode convertNumberLiteral(JCTree.JCLiteral node) {
NumberLiteral newNode = new NumberLiteral((Number) node.getValue(), node.type)
return new NumberLiteral((Number) node.getValue(), node.type)
.setToken(getTreeSource(node));
return convertExpression(node, newNode);
}

private PackageDeclaration convertPackage(JCTree.JCExpression node, PackageElement pkg) {
Expand Down Expand Up @@ -1056,8 +1043,7 @@ private TreeNode convertReturn(JCTree.JCReturn node) {
}

private TreeNode convertStringLiteral(JCTree.JCLiteral node) {
StringLiteral newNode = new StringLiteral((String) node.getValue(), node.type);
return convertExpression(node, newNode);
return new StringLiteral((String) node.getValue(), node.type);
}

private TreeNode convertSwitch(JCTree.JCSwitch node) {
Expand Down Expand Up @@ -1143,8 +1129,7 @@ private TreeNode convertTypeApply(JCTree.JCTypeApply node) {
}

private TreeNode convertTypeCast(JCTree.JCTypeCast node) {
Expression newNode = new CastExpression(node.type, (Expression) convert(node.getExpression()));
return convertExpression(node, newNode);
return new CastExpression(node.type, (Expression) convert(node.getExpression()));
}

private TreeNode convertVariableDeclaration(JCTree.JCVariableDecl node) {
Expand Down

0 comments on commit 50d29da

Please sign in to comment.