Uses of Class
com.strobel.decompiler.ast.Expression
Packages that use Expression
-
Uses of Expression in com.strobel.decompiler.ast
Fields in com.strobel.decompiler.ast declared as ExpressionModifier and TypeFieldDescriptionprivate Expression
Condition._condition
private Expression
Loop._condition
private Expression
Switch._condition
private Expression
Block._entryGoto
(package private) Expression
TypeAnalysis.ExpressionToInfer.expression
final Expression
LockInfo.lockAcquire
final Expression
LockInfo.lockInit
final Expression
LockInfo.lockStore
final Expression
LockInfo.lockStoreCopy
Fields in com.strobel.decompiler.ast with type parameters of type ExpressionModifier and TypeFieldDescriptionprivate final SmartList
<Expression> Expression._arguments
private final Stack
<Expression> TypeAnalysis._stack
(package private) final StrongBox
<Expression> Inlining._tempExpression
protected final StrongBox
<Expression> AstOptimizer.AbstractBranchBlockOptimization.expression
(package private) final Map
<Variable, List<Expression>> Inlining.loads
static final Key
<Expression> AstKeys.PARENT_LAMBDA_BINDING
Methods in com.strobel.decompiler.ast that return ExpressionModifier and TypeMethodDescriptionfinal Expression
Expression.clone()
final Expression
Condition.getCondition()
final Expression
Loop.getCondition()
final Expression
Switch.getCondition()
final Expression
Block.getEntryGoto()
private Expression
AstOptimizer.IntroducePostIncrementOptimization.introducePostIncrementForInstanceFields
(Expression e, Node previous) (package private) static Expression
AstOptimizer.makeLeftAssociativeShortCircuit
(AstCode code, Expression left, Expression right) private static Expression
AstOptimizer.SimplifyTernaryOperatorRoundTwoOptimization.simplify
(Expression head, BooleanBox modified) (package private) static Expression
AstOptimizer.simplifyLogicalNot
(Expression expression) (package private) static Expression
AstOptimizer.simplifyLogicalNot
(Expression expression, BooleanBox modified) private static Expression
AstOptimizer.SimplifyTernaryOperatorRoundTwoOptimization.simplifyTernaryDirect
(Expression head) Methods in com.strobel.decompiler.ast that return types with arguments of type ExpressionModifier and TypeMethodDescriptionfinal List
<Expression> Expression.getArguments()
private static Iterable
<Expression> Inlining.getParents
(Expression scope, Map<Expression, Expression> parentLookup, Expression node) Methods in com.strobel.decompiler.ast with parameters of type ExpressionModifier and TypeMethodDescription(package private) static boolean
Inlining.canBeExpressionStatement
(Expression expression) private boolean
LoopsAndConditions.canBeSelfContainedLoop
(BasicBlock node, Expression branch, Label target) (package private) final boolean
Inlining.canPerformCopyPropagation
(Expression expr, Variable copyVariable) private static boolean
AstOptimizer.canSimplifyLogicalNotArgument
(Expression e) private static boolean
AstOptimizer.containsMatch
(Node node, Expression pattern) private int
LoopsAndConditions.countJumps
(Set<ControlFlowNode> nodes, Label target, Expression ignore) private TypeReference
TypeAnalysis.doInferTypeForExpression
(Expression expression, TypeReference expectedType, boolean forceInferChildren, int flags) (package private) final Boolean
Inlining.findLoadInNext
(Expression expression, Variable variable, Expression expressionBeingMoved, StrongBox<Expression> parent, MutableInteger position) private void
TypeAnalysis.findNestedAssignments
(Expression expression, TypeAnalysis.ExpressionToInfer parent) private AstCode
AstOptimizer.IntroducePostIncrementOptimization.getIncrementCode
(Expression add, StrongBox<Number> incrementAmount) private static Iterable
<Expression> Inlining.getParents
(Expression scope, Map<Expression, Expression> parentLookup, Expression node) (package private) static boolean
Inlining.hasNoSideEffect
(Expression expression) private TypeReference
TypeAnalysis.inferBinaryArguments
(Expression left, Expression right, TypeReference expectedType, boolean forceInferChildren, TypeReference leftPreferred, TypeReference rightPreferred, int operandFlags) private TypeReference
TypeAnalysis.inferCall
(Expression expression, TypeReference expectedType, boolean forceInferChildren) private TypeReference
TypeAnalysis.inferDynamicCall
(Expression expression, TypeReference expectedType, boolean forceInferChildren) private TypeReference
TypeAnalysis.inferInitObject
(Expression expression, TypeReference expectedType, boolean forceInferChildren, MethodReference operand, List<Expression> arguments) private TypeReference
TypeAnalysis.inferTypeForExpression
(Expression expression, TypeReference expectedType) private TypeReference
TypeAnalysis.inferTypeForExpression
(Expression expression, TypeReference expectedType, boolean forceInferChildren) private TypeReference
TypeAnalysis.inferTypeForExpression
(Expression expression, TypeReference expectedType, boolean forceInferChildren, int flags) private TypeReference
TypeAnalysis.inferTypeForExpression
(Expression expression, TypeReference expectedType, int flags) (package private) final boolean
Inlining.inlineIfPossible
(Variable variable, Expression inlinedExpression, Node next, boolean aggressive) private Expression
AstOptimizer.IntroducePostIncrementOptimization.introducePostIncrementForInstanceFields
(Expression e, Node previous) private boolean
AstOptimizer.IntroducePostIncrementOptimization.introducePostIncrementForVariables
(List<Node> body, Expression e, int position) private void
TypeAnalysis.invalidateDependentExpressions
(Expression expression, Variable variable) boolean
Expression.isEquivalentTo
(Expression e) (package private) static boolean
Inlining.isSafeForInlineOver
(Expression expression, Expression expressionBeingMoved) (package private) static Expression
AstOptimizer.makeLeftAssociativeShortCircuit
(AstCode code, Expression left, Expression right) private static boolean
AstOptimizer.negate
(Expression e) private boolean
Inlining.nonAggressiveInlineInto
(Expression next, Expression parent, Expression inlinedExpression) private static void
AstOptimizer.reduceComparisonInstructionSet
(Expression expression) protected abstract boolean
AstOptimizer.AbstractBranchBlockOptimization.run
(List<Node> body, BasicBlock branchBlock, Expression branchCondition, Label thenLabel, Label elseLabel, boolean negate) boolean
AstOptimizer.ExpressionOptimization.run
(List<Node> body, Expression head, int position) boolean
AstOptimizer.InlineLambdasOptimization.run
(List<Node> body, Expression head, int position) boolean
AstOptimizer.IntroducePostIncrementOptimization.run
(List<Node> body, Expression head, int position) protected boolean
AstOptimizer.JoinBranchConditionsOptimization.run
(List<Node> body, BasicBlock branchBlock, Expression branchCondition, Label thenLabel, Label elseLabel, boolean negate) boolean
AstOptimizer.MakeAssignmentExpressionsOptimization.run
(List<Node> body, Expression head, int position) boolean
AstOptimizer.RemoveInnerClassAccessNullChecksOptimization.run
(List<Node> body, Expression head, int position) final boolean
AstOptimizer.SimplifyLogicalNotOptimization.run
(List<Node> body, Expression head, int position) boolean
AstOptimizer.SimplifyTernaryOperatorRoundTwoOptimization.run
(List<Node> body, Expression head, int position) boolean
AstOptimizer.TransformArrayInitializersOptimization.run
(List<Node> body, Expression head, int position) boolean
AstOptimizer.TransformObjectInitializersOptimization.run
(List<Node> body, Expression head, int position) private boolean
AstOptimizer.JoinBranchConditionsOptimization.runCore
(List<Node> body, BasicBlock branchBlock, Expression branchCondition, Label thenLabel, Label elseLabel, Expression elseCondition, boolean negateFirst, Label elseThenLabel, Label elseElseLabel, boolean negateSecond) private void
TypeAnalysis.runInference
(Expression expression) private void
TypeAnalysis.runInference
(Expression expression, int flags) final void
Condition.setCondition
(Expression condition) final void
Loop.setCondition
(Expression condition) final void
Switch.setCondition
(Expression condition) final void
Block.setEntryGoto
(Expression entryGoto) private static Expression
AstOptimizer.SimplifyTernaryOperatorRoundTwoOptimization.simplify
(Expression head, BooleanBox modified) (package private) static Expression
AstOptimizer.simplifyLogicalNot
(Expression expression) (package private) static Expression
AstOptimizer.simplifyLogicalNot
(Expression expression, BooleanBox modified) (package private) static boolean
AstOptimizer.simplifyLogicalNotArgument
(Expression e) private static Expression
AstOptimizer.SimplifyTernaryOperatorRoundTwoOptimization.simplifyTernaryDirect
(Expression head) private Lambda
AstOptimizer.InlineLambdasOptimization.tryInlineLambda
(Expression site, DynamicCallSite callSite) private boolean
GotoRemoval.tryInlineReturn
(Expression gotoExpression, Node target, AstCode code) private boolean
AstOptimizer.TransformArrayInitializersOptimization.tryRefineArrayInitialization
(List<Node> body, Expression head, int position) private boolean
GotoRemoval.trySimplifyGoto
(Expression gotoExpression) Method parameters in com.strobel.decompiler.ast with type arguments of type ExpressionModifier and TypeMethodDescription(package private) final Boolean
Inlining.findLoadInNext
(Expression expression, Variable variable, Expression expressionBeingMoved, StrongBox<Expression> parent, MutableInteger position) private static Iterable
<Expression> Inlining.getParents
(Expression scope, Map<Expression, Expression> parentLookup, Expression node) private static Iterable
<Expression> Inlining.getParents
(Expression scope, Map<Expression, Expression> parentLookup, Expression node) private TypeReference
TypeAnalysis.inferBinaryExpression
(AstCode code, List<Expression> arguments, int flags) private TypeReference
TypeAnalysis.inferInitObject
(Expression expression, TypeReference expectedType, boolean forceInferChildren, MethodReference operand, List<Expression> arguments) static boolean
PatternMatching.matchAssignment
(Node node, StrongBox<Expression> assignedValue) static boolean
PatternMatching.matchAssignment
(Node node, StrongBox<Expression> assignedValue, StrongBox<Expression> equivalentLoad) static boolean
PatternMatching.matchAssignmentAndConditionalBreak
(BasicBlock block, StrongBox<Expression> assignedValue, StrongBox<Expression> condition, StrongBox<Label> trueLabel, StrongBox<Label> falseLabel, StrongBox<Expression> equivalentLoad) static boolean
PatternMatching.matchBooleanComparison
(Node node, StrongBox<Expression> argument, StrongBox<Boolean> comparand) static boolean
PatternMatching.matchComparison
(Node node, StrongBox<Expression> left, StrongBox<Expression> right) private static boolean
PatternMatching.matchElementAssignment
(Node node, StrongBox<Expression> assignedValue, StrongBox<Expression> equivalentLoad) static boolean
PatternMatching.matchGetArgument
(Node node, AstCode code, StrongBox<Expression> argument) static <T> boolean
PatternMatching.matchGetArguments
(Node node, AstCode code, StrongBox<? super T> operand, List<Expression> arguments) static boolean
PatternMatching.matchGetArguments
(Node node, AstCode code, List<Expression> arguments) static boolean
PatternMatching.matchLoad
(Node node, Variable expectedVariable, StrongBox<Expression> argument) static boolean
PatternMatching.matchStore
(Node node, StrongBox<Variable> variable, List<Expression> argument) static boolean
PatternMatching.matchStore
(Node node, Variable expectedVariable, StrongBox<Expression> value) Constructors in com.strobel.decompiler.ast with parameters of type ExpressionModifierConstructorDescriptionExpression
(AstCode code, Object operand, int offset, Expression... arguments) (package private)
LockInfo
(Label leadingLabel, Expression lockAcquire) (package private)
LockInfo
(Label leadingLabel, Expression lockInit, Expression lockStore, Expression lockStoreCopy, Expression lockAcquire) Constructor parameters in com.strobel.decompiler.ast with type arguments of type ExpressionModifierConstructorDescriptionExpression
(AstCode code, Object operand, int offset, List<Expression> arguments) -
Uses of Expression in com.strobel.decompiler.languages.java.ast
Methods in com.strobel.decompiler.languages.java.ast with parameters of type ExpressionModifier and TypeMethodDescriptionprivate static String
NameVariables.getNameForArgument
(Expression parent, int i) private static String
NameVariables.getNameFromExpression
(Expression e) private static Expression
AstMethodBodyBuilder.inlineAssembly
(Expression byteCode, List<Expression> arguments) private AstNode
AstMethodBodyBuilder.transformByteCode
(Expression byteCode, boolean isTopLevel) private Expression
AstMethodBodyBuilder.transformCall
(boolean isVirtual, Expression byteCode, List<Expression> arguments) private AstNode
AstMethodBodyBuilder.transformExpression
(Expression e, boolean isTopLevel) private SynchronizedStatement
AstMethodBodyBuilder.transformSynchronized
(Expression expression, TryCatchBlock tryCatch)