Class InsertNecessaryConversionsTransform
- 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.InsertNecessaryConversionsTransform
-
- All Implemented Interfaces:
IAstVisitor<java.lang.Void,java.lang.Void>,IAstTransform
public class InsertNecessaryConversionsTransform extends ContextTrackingVisitor<java.lang.Void>
-
-
Field Summary
Fields Modifier and Type Field Description private JavaResolver_resolverprivate java.util.ArrayDeque<INode>_stackprivate static INodeFALSE_NODEprivate static ConvertTypeOptionsNO_IMPORT_OPTIONSprivate static INodeTRUE_NODE-
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
-
Constructor Summary
Constructors Constructor Description InsertNecessaryConversionsTransform(DecompilerContext context)
-
Method Summary
-
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, visitArraySpecifier, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitBytecodeConstant, visitCaseLabel, visitCatchClause, visitChildren, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitContinueStatement, visitDoWhileStatement, visitEmptyStatement, visitEnumValueDeclaration, visitExpressionStatement, visitFieldDeclaration, visitForEachStatement, visitForStatement, visitGotoStatement, visitIdentifier, visitIdentifierExpression, visitImportDeclaration, visitIndexerExpression, visitInitializerBlock, visitInlinedBytecode, visitInstanceOfExpression, visitIntersectionType, visitInvocationExpression, visitJavaTokenNode, visitLabeledStatement, visitLabelStatement, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitObjectCreationExpression, visitPackageDeclaration, visitParameterDeclaration, visitParenthesizedExpression, visitPatternPlaceholder, visitPrimitiveExpression, visitSimpleType, visitSuperReferenceExpression, visitSwitchExpression, visitSwitchExpressionArm, visitSwitchSection, visitSwitchStatement, visitSynchronizedStatement, visitText, visitThisReferenceExpression, visitThrowStatement, visitTryCatchStatement, visitTypeParameterDeclaration, visitTypeReference, visitUnionType, visitVariableInitializer, visitWhileStatement, visitWildcardType
-
-
-
-
Field Detail
-
NO_IMPORT_OPTIONS
private static final ConvertTypeOptions NO_IMPORT_OPTIONS
-
TRUE_NODE
private static final INode TRUE_NODE
-
FALSE_NODE
private static final INode FALSE_NODE
-
_resolver
private final JavaResolver _resolver
-
_stack
private final java.util.ArrayDeque<INode> _stack
-
-
Constructor Detail
-
InsertNecessaryConversionsTransform
public InsertNecessaryConversionsTransform(DecompilerContext context)
-
-
Method Detail
-
visitCastExpression
public java.lang.Void visitCastExpression(CastExpression node, java.lang.Void data)
- Specified by:
visitCastExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitCastExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitMemberReferenceExpression
public java.lang.Void visitMemberReferenceExpression(MemberReferenceExpression node, java.lang.Void data)
- Specified by:
visitMemberReferenceExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitMemberReferenceExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
adjustDeclaringType
private static TypeReference adjustDeclaringType(ResolveResult valueResult, TypeReference declaringType)
-
visitAssignmentExpression
public java.lang.Void visitAssignmentExpression(AssignmentExpression node, java.lang.Void data)
- Specified by:
visitAssignmentExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitAssignmentExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitVariableDeclaration
public java.lang.Void visitVariableDeclaration(VariableDeclarationStatement node, java.lang.Void data)
- Specified by:
visitVariableDeclarationin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitVariableDeclarationin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitReturnStatement
public java.lang.Void visitReturnStatement(ReturnStatement node, java.lang.Void data)
- Specified by:
visitReturnStatementin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitReturnStatementin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitArrayInitializerExpression
public java.lang.Void visitArrayInitializerExpression(ArrayInitializerExpression node, java.lang.Void data)
- Specified by:
visitArrayInitializerExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitArrayInitializerExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
addCastForAssignment
private boolean addCastForAssignment(AstNode left, Expression right)
-
visitUnaryOperatorExpression
public java.lang.Void visitUnaryOperatorExpression(UnaryOperatorExpression node, java.lang.Void data)
- Specified by:
visitUnaryOperatorExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitUnaryOperatorExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitBinaryOperatorExpression
public java.lang.Void visitBinaryOperatorExpression(BinaryOperatorExpression node, java.lang.Void data)
- Specified by:
visitBinaryOperatorExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitBinaryOperatorExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitIfElseStatement
public java.lang.Void visitIfElseStatement(IfElseStatement node, java.lang.Void data)
- Specified by:
visitIfElseStatementin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitIfElseStatementin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitConditionalExpression
public java.lang.Void visitConditionalExpression(ConditionalExpression node, java.lang.Void data)
- Specified by:
visitConditionalExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitConditionalExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
convertNumericToBoolean
private Expression convertNumericToBoolean(Expression node, TypeReference type)
-
convertBooleanToNumeric
private Expression convertBooleanToNumeric(Expression operand)
-
recurse
private void recurse(AstNode replacement)
-
-