
public class FixAssignmentsToUnboxOrCast extends JModVisitor
GenerateJavaAST. The only cases it does
not handle are ++, --, and compound assignment
operations (+=, etc.) when applied to a boxed type. This class
fixes such cases in two steps. First, an internal subclass of
CompoundAssignmentNormalizer simplifies such expressions to a simple
assignment expression. Second, this visitor replaces an assignment to an
unboxing method (unbox(x) = unbox(x) + 1) with an assignment to
the underlying box (x = box(unbox(x) + 1)).
Update: GenerateJavaAST can also leave invalid AST structures of the form
(Foo) x = foo due to the way generics are handled. This can
happen when assigning into a field of a generic type. We'll go ahead and
resolve that case here as well.
LVALUE_CONTEXT, UNMODIFIABLE_CONTEXT| Modifier and Type | Method and Description |
|---|---|
void |
endVisit(JBinaryOperation x,
Context ctx) |
static void |
exec(JProgram program) |
accept, accept, accept, acceptImmutable, acceptLvalue, acceptWithInsertRemove, acceptWithInsertRemoveImmutable, checkReplacement, didChange, getNumMods, madeChanges, traverseaccept, accept, accept, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, endVisit, translateException, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitpublic static void exec(JProgram program)
public void endVisit(JBinaryOperation x, Context ctx)
Copyright © 2018. All rights reserved.