@@ -38,30 +38,33 @@ public void visit(Statements statements) {
3838
3939 if (res .getExpression ().getClass () == ClassFileLocalVariableReferenceExpression .class ) {
4040 ClassFileLocalVariableReferenceExpression lvr1 = (ClassFileLocalVariableReferenceExpression )res .getExpression ();
41- Statement statement = (Statement )statements .get (statements .size ()-2 );
4241
43- if (statement . getClass () == ExpressionStatement . class ) {
44- ExpressionStatement es = (ExpressionStatement ) statement ;
42+ if (lvr1 . getName () == null ) {
43+ Statement statement = (Statement ) statements . get ( statements . size ()- 2 ) ;
4544
46- if (es .getExpression ().getClass () == BinaryOperatorExpression .class ) {
47- BinaryOperatorExpression boe = (BinaryOperatorExpression )es .getExpression ();
48- Expression leftExpression = boe .getLeftExpression ();
45+ if (statement .getClass () == ExpressionStatement .class ) {
46+ ExpressionStatement es = (ExpressionStatement )statement ;
4947
50- if (leftExpression .getClass () == ClassFileLocalVariableReferenceExpression .class ) {
51- ClassFileLocalVariableReferenceExpression lvr2 = (ClassFileLocalVariableReferenceExpression )leftExpression ;
48+ if (es .getExpression ().getClass () == BinaryOperatorExpression .class ) {
49+ BinaryOperatorExpression boe = (BinaryOperatorExpression )es .getExpression ();
50+ Expression leftExpression = boe .getLeftExpression ();
5251
53- if ((lvr1 .getLocalVariable () == lvr2 .getLocalVariable ()) && (lvr1 .getLocalVariable ().getReferences ().size () == 2 )) {
54- // Remove synthetic assignment statement
55- statements .remove (statements .size ()-2 );
56- // Replace synthetic local variable with expression
57- res .setExpression (boe .getRightExpression ());
58- // Check line number
59- int expressionLineNumber = boe .getRightExpression ().getLineNumber ();
60- if (res .getLineNumber () > expressionLineNumber ) {
61- res .setLineNumber (expressionLineNumber );
52+ if (leftExpression .getClass () == ClassFileLocalVariableReferenceExpression .class ) {
53+ ClassFileLocalVariableReferenceExpression lvr2 = (ClassFileLocalVariableReferenceExpression ) leftExpression ;
54+
55+ if ((lvr1 .getLocalVariable () == lvr2 .getLocalVariable ()) && (lvr1 .getLocalVariable ().getReferences ().size () == 2 )) {
56+ // Remove synthetic assignment statement
57+ statements .remove (statements .size () - 2 );
58+ // Replace synthetic local variable with expression
59+ res .setExpression (boe .getRightExpression ());
60+ // Check line number
61+ int expressionLineNumber = boe .getRightExpression ().getLineNumber ();
62+ if (res .getLineNumber () > expressionLineNumber ) {
63+ res .setLineNumber (expressionLineNumber );
64+ }
65+ // Remove synthetic local variable
66+ localVariableMaker .removeLocalVariable (lvr1 .getLocalVariable ());
6267 }
63- // Remove synthetic local variable
64- localVariableMaker .removeLocalVariable (lvr1 .getLocalVariable ());
6568 }
6669 }
6770 }
0 commit comments