Class AstMethodBodyBuilder
java.lang.Object
com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
private static final class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AstBuilder
private final DecompilerContext
private final MethodDefinition
private final MetadataParser
private static final INode
private static final INode
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
AstMethodBodyBuilder
(AstBuilder astBuilder, MethodDefinition method, DecompilerContext context) -
Method Summary
Modifier and TypeMethodDescriptionprivate List
<Expression> adjustArgumentsForMethodCall
(MethodReference method, List<Expression> arguments) private List
<Expression> adjustArgumentsForMethodCallCore
(List<ParameterDefinition> parameters, List<Expression> arguments) convertTypeArguments
(MethodReference methodReference) private static BlockStatement
createErrorBlock
(AstBuilder astBuilder, DecompilerContext context, MethodDefinition method, Throwable t) static BlockStatement
createMethodBody
(AstBuilder astBuilder, MethodDefinition method, DecompilerContext context, Iterable<ParameterDeclaration> parameters) private BlockStatement
createMethodBody
(Iterable<ParameterDeclaration> parameters) private void
declareVariables
(AstMethodBodyBuilder.VariableInfo<?> vi, BlockStatement astBlock) private static Expression
inlineAssembly
(Expression byteCode, List<Expression> arguments) private boolean
isCastRequired
(TypeReference targetType, TypeReference sourceType, boolean exactMatch) private void
nameVariables
(Block body, AstMethodBodyBuilder.VariableInfo<?> vi, Set<String> reservedNames) private void
private <T> void
populateVariables0
(AstMethodBodyBuilder.VariableInfo<T> vi, Block body) private BlockStatement
transformBlock
(Block block) private AstNode
transformByteCode
(Expression byteCode, boolean isTopLevel) private Expression
transformCall
(boolean isVirtual, Expression byteCode, List<Expression> arguments) private AstNode
transformExpression
(Expression e, boolean isTopLevel) private Statement
transformNode
(Node node, Node next) private SynchronizedStatement
transformSynchronized
(Expression expression, TryCatchBlock tryCatch) private void
updateParameterDeclarations
(AstMethodBodyBuilder.VariableInfo<?> vi, Iterable<ParameterDeclaration> parameterDeclarations)
-
Field Details
-
_astBuilder
-
_method
-
_parser
-
_context
-
_localVariablesToDefine
-
LAMBDA_BODY_PATTERN
-
EMPTY_LAMBDA_BODY_PATTERN
-
-
Constructor Details
-
AstMethodBodyBuilder
private AstMethodBodyBuilder(AstBuilder astBuilder, MethodDefinition method, DecompilerContext context)
-
-
Method Details
-
createMethodBody
public static BlockStatement createMethodBody(AstBuilder astBuilder, MethodDefinition method, DecompilerContext context, Iterable<ParameterDeclaration> parameters) -
createErrorBlock
private static BlockStatement createErrorBlock(AstBuilder astBuilder, DecompilerContext context, MethodDefinition method, Throwable t) -
createMethodBody
-
updateParameterDeclarations
private void updateParameterDeclarations(AstMethodBodyBuilder.VariableInfo<?> vi, Iterable<ParameterDeclaration> parameterDeclarations) -
declareVariables
-
transformBlock
-
transformNode
-
transformSynchronized
-
transformExpression
-
transformByteCode
-
transformCall
private Expression transformCall(boolean isVirtual, Expression byteCode, List<Expression> arguments) -
convertTypeArguments
-
adjustArgumentsForMethodCall
private List<Expression> adjustArgumentsForMethodCall(MethodReference method, List<Expression> arguments) -
adjustArgumentsForMethodCallCore
private List<Expression> adjustArgumentsForMethodCallCore(List<ParameterDefinition> parameters, List<Expression> arguments) -
isCastRequired
private boolean isCastRequired(TypeReference targetType, TypeReference sourceType, boolean exactMatch) -
inlineAssembly
-
populateVariables
-
populateVariables0
-
nameVariables
private void nameVariables(Block body, AstMethodBodyBuilder.VariableInfo<?> vi, Set<String> reservedNames)
-