Class RemoveImplicitBoxingTransform
- java.lang.Object
-
- com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<java.lang.Void,TResult>
-
- com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor<java.lang.Void>
-
- com.strobel.decompiler.languages.java.ast.transforms.RemoveImplicitBoxingTransform
-
- All Implemented Interfaces:
IAstVisitor<java.lang.Void,java.lang.Void>
,IAstTransform
public class RemoveImplicitBoxingTransform extends ContextTrackingVisitor<java.lang.Void>
-
-
Field Summary
Fields Modifier and Type Field Description private JavaResolver
_resolver
private static java.util.Set<java.lang.String>
BOX_METHODS
private static java.util.Set<java.lang.String>
UNBOX_METHODS
-
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
-
Constructor Summary
Constructors Constructor Description RemoveImplicitBoxingTransform(DecompilerContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
isUnboxingExpression(AstNode node)
private boolean
isValidPrimitiveParent(InvocationExpression node, AstNode parent)
private boolean
performUnboxingRemoval(InvocationExpression e, MemberReferenceExpression target)
private void
removeBoxing(InvocationExpression node)
private void
removeUnboxing(InvocationExpression e)
java.lang.Void
visitInvocationExpression(InvocationExpression node, java.lang.Void data)
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
inConstructor, inMethod, inStaticInitializer, makeType, makeType, resolver, run, visitConstructorDeclaration, visitMethodDeclaration, visitMethodDeclarationOverride, visitTypeDeclaration, visitTypeDeclarationOverride
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor
shouldContinue, visitAnnotation, visitAnonymousObjectCreationExpression, visitArrayCreationExpression, visitArrayInitializerExpression, visitArraySpecifier, visitAssertStatement, visitAssignmentExpression, visitBinaryOperatorExpression, visitBlockStatement, visitBreakStatement, visitBytecodeConstant, visitCaseLabel, visitCastExpression, visitCatchClause, visitChildren, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitConditionalExpression, visitContinueStatement, visitDoWhileStatement, visitEmptyStatement, visitEnumValueDeclaration, visitExpressionStatement, visitFieldDeclaration, visitForEachStatement, visitForStatement, visitGotoStatement, visitIdentifier, visitIdentifierExpression, visitIfElseStatement, visitImportDeclaration, visitIndexerExpression, visitInitializerBlock, visitInlinedBytecode, visitInstanceOfExpression, visitIntersectionType, visitJavaTokenNode, visitLabeledStatement, visitLabelStatement, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMemberReferenceExpression, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitObjectCreationExpression, visitPackageDeclaration, visitParameterDeclaration, visitParenthesizedExpression, visitPatternPlaceholder, visitPrimitiveExpression, visitReturnStatement, visitSimpleType, visitSuperReferenceExpression, visitSwitchExpression, visitSwitchExpressionArm, visitSwitchSection, visitSwitchStatement, visitSynchronizedStatement, visitText, visitThisReferenceExpression, visitThrowStatement, visitTryCatchStatement, visitTypeParameterDeclaration, visitTypeReference, visitUnaryOperatorExpression, visitUnionType, visitVariableDeclaration, visitVariableInitializer, visitWhileStatement, visitWildcardType
-
-
-
-
Field Detail
-
BOX_METHODS
private static final java.util.Set<java.lang.String> BOX_METHODS
-
UNBOX_METHODS
private static final java.util.Set<java.lang.String> UNBOX_METHODS
-
_resolver
private final JavaResolver _resolver
-
-
Constructor Detail
-
RemoveImplicitBoxingTransform
public RemoveImplicitBoxingTransform(DecompilerContext context)
-
-
Method Detail
-
visitInvocationExpression
public java.lang.Void visitInvocationExpression(InvocationExpression node, java.lang.Void data)
- Specified by:
visitInvocationExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitInvocationExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
isValidPrimitiveParent
private boolean isValidPrimitiveParent(InvocationExpression node, AstNode parent)
-
isUnboxingExpression
private boolean isUnboxingExpression(AstNode node)
-
removeUnboxing
private void removeUnboxing(InvocationExpression e)
-
performUnboxingRemoval
private boolean performUnboxingRemoval(InvocationExpression e, MemberReferenceExpression target)
-
removeBoxing
private void removeBoxing(InvocationExpression node)
-
-