Class InsertNecessaryConversionsTransform
java.lang.Object
com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<Void,Void>
com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor<Void>
com.strobel.decompiler.languages.java.ast.transforms.InsertNecessaryConversionsTransform
- All Implemented Interfaces:
IAstVisitor<Void,
,Void> IAstTransform
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final JavaResolver
private final ArrayDeque
<INode> private static final INode
private static final ConvertTypeOptions
private static final INode
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
addCastForAssignment
(AstNode left, Expression right) private static TypeReference
adjustDeclaringType
(ResolveResult valueResult, TypeReference declaringType) private Expression
convertBooleanToNumeric
(Expression operand) private Expression
convertNumericToBoolean
(Expression node, TypeReference type) private void
visitAssignmentExpression
(AssignmentExpression node, Void data) visitCastExpression
(CastExpression node, Void data) visitConditionalExpression
(ConditionalExpression node, Void data) visitIfElseStatement
(IfElseStatement node, Void data) visitReturnStatement
(ReturnStatement node, Void data) visitUnaryOperatorExpression
(UnaryOperatorExpression node, Void data) visitVariableDeclaration
(VariableDeclarationStatement node, 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, 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 Details
-
NO_IMPORT_OPTIONS
-
TRUE_NODE
-
FALSE_NODE
-
_resolver
-
_stack
-
-
Constructor Details
-
InsertNecessaryConversionsTransform
-
-
Method Details
-
visitCastExpression
- Specified by:
visitCastExpression
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitCastExpression
in classDepthFirstAstVisitor<Void,
Void>
-
visitMemberReferenceExpression
- Specified by:
visitMemberReferenceExpression
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitMemberReferenceExpression
in classDepthFirstAstVisitor<Void,
Void>
-
adjustDeclaringType
private static TypeReference adjustDeclaringType(ResolveResult valueResult, TypeReference declaringType) -
visitAssignmentExpression
- Specified by:
visitAssignmentExpression
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitAssignmentExpression
in classDepthFirstAstVisitor<Void,
Void>
-
visitVariableDeclaration
- Specified by:
visitVariableDeclaration
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitVariableDeclaration
in classDepthFirstAstVisitor<Void,
Void>
-
visitReturnStatement
- Specified by:
visitReturnStatement
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitReturnStatement
in classDepthFirstAstVisitor<Void,
Void>
-
visitArrayInitializerExpression
- Specified by:
visitArrayInitializerExpression
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitArrayInitializerExpression
in classDepthFirstAstVisitor<Void,
Void>
-
addCastForAssignment
-
visitUnaryOperatorExpression
- Specified by:
visitUnaryOperatorExpression
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitUnaryOperatorExpression
in classDepthFirstAstVisitor<Void,
Void>
-
visitBinaryOperatorExpression
- Specified by:
visitBinaryOperatorExpression
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitBinaryOperatorExpression
in classDepthFirstAstVisitor<Void,
Void>
-
visitIfElseStatement
- Specified by:
visitIfElseStatement
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitIfElseStatement
in classDepthFirstAstVisitor<Void,
Void>
-
visitConditionalExpression
- Specified by:
visitConditionalExpression
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitConditionalExpression
in classDepthFirstAstVisitor<Void,
Void>
-
convertNumericToBoolean
-
convertBooleanToNumeric
-
recurse
-