diff --git a/csharp/ql/lib/Linq/Helpers.qll b/csharp/ql/lib/Linq/Helpers.qll index d490868f4532..912b12b9457b 100644 --- a/csharp/ql/lib/Linq/Helpers.qll +++ b/csharp/ql/lib/Linq/Helpers.qll @@ -77,7 +77,7 @@ predicate missedAllOpportunity(ForeachStmtGenericEnumerable fes) { // The then case of the if assigns false to something and breaks out of the loop. exists(Assignment a, BoolLiteral bl | a = is.getThen().getAChild*() and - bl = a.getRValue() and + bl = a.getRightOperand() and bl.toString() = "false" ) and is.getThen().getAChild*() instanceof BreakStmt diff --git a/csharp/ql/lib/change-notes/2026-04-01-getlrvalue.md b/csharp/ql/lib/change-notes/2026-04-01-getlrvalue.md new file mode 100644 index 000000000000..da1a3d621481 --- /dev/null +++ b/csharp/ql/lib/change-notes/2026-04-01-getlrvalue.md @@ -0,0 +1,4 @@ +--- +category: deprecated +--- +* The predicates `get[L|R]Value` in the class `Assignment` have been deprecated. Use `get[Left|Right]Operand` instead. diff --git a/csharp/ql/lib/definitions.qll b/csharp/ql/lib/definitions.qll index 4feaf20629c9..d4f2540bbef5 100644 --- a/csharp/ql/lib/definitions.qll +++ b/csharp/ql/lib/definitions.qll @@ -96,7 +96,7 @@ private class MethodUse extends Use, QualifiableExpr { private class AccessUse extends Access, Use { AccessUse() { not this.getTarget().(Parameter).getCallable() instanceof Accessor and - not this = any(LocalVariableDeclAndInitExpr d).getLValue() and + not this = any(LocalVariableDeclAndInitExpr d).getLeftOperand() and not this.isImplicit() and not this instanceof MethodAccess and // handled by `MethodUse` not this instanceof TypeAccess and // handled by `TypeMentionUse` diff --git a/csharp/ql/lib/semmle/code/csharp/Assignable.qll b/csharp/ql/lib/semmle/code/csharp/Assignable.qll index a0e575218adc..7075626aa3bd 100644 --- a/csharp/ql/lib/semmle/code/csharp/Assignable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Assignable.qll @@ -235,7 +235,7 @@ private class RefArg extends AssignableAccess { module AssignableInternal { private predicate tupleAssignmentDefinition(AssignExpr ae, Expr leaf) { exists(TupleExpr te | - ae.getLValue() = te and + ae.getLeftOperand() = te and te.getAnArgument+() = leaf and // `leaf` is either an assignable access or a local variable declaration not leaf instanceof TupleExpr @@ -249,8 +249,8 @@ module AssignableInternal { */ private predicate tupleAssignmentPair(AssignExpr ae, Expr left, Expr right) { tupleAssignmentDefinition(ae, _) and - left = ae.getLValue() and - right = ae.getRValue() + left = ae.getLeftOperand() and + right = ae.getRightOperand() or exists(TupleExpr l, TupleExpr r, int i | tupleAssignmentPair(ae, l, r) | left = l.getArgument(i) and @@ -291,7 +291,7 @@ module AssignableInternal { cached newtype TAssignableDefinition = TAssignmentDefinition(Assignment a) { - not a.getLValue() instanceof TupleExpr and + not a.getLeftOperand() instanceof TupleExpr and not a instanceof AssignCallOperation and not a instanceof AssignCoalesceExpr } or @@ -358,7 +358,7 @@ module AssignableInternal { // Not defined by dispatch in order to avoid too conservative negative recursion error cached AssignableAccess getTargetAccess(AssignableDefinition def) { - def = TAssignmentDefinition(any(Assignment a | a.getLValue() = result)) + def = TAssignmentDefinition(any(Assignment a | a.getLeftOperand() = result)) or def = TTupleAssignmentDefinition(_, result) or @@ -381,8 +381,8 @@ module AssignableInternal { tupleAssignmentPair(ae, ac, result) ) or - exists(Assignment ass | ac = ass.getLValue() | - result = ass.getRValue() and + exists(Assignment ass | ac = ass.getLeftOperand() | + result = ass.getRightOperand() and not ass instanceof AssignOperation ) or @@ -527,7 +527,7 @@ module AssignableDefinitions { Assignment getAssignment() { result = a } override Expr getSource() { - result = a.getRValue() and + result = a.getRightOperand() and not a instanceof AddOrRemoveEventExpr } diff --git a/csharp/ql/lib/semmle/code/csharp/PrintAst.qll b/csharp/ql/lib/semmle/code/csharp/PrintAst.qll index 1ac96c85e788..1fab6b0f8c45 100644 --- a/csharp/ql/lib/semmle/code/csharp/PrintAst.qll +++ b/csharp/ql/lib/semmle/code/csharp/PrintAst.qll @@ -343,10 +343,10 @@ final class AssignmentNode extends ControlFlowElementNode { result.(TypeMentionNode).getTarget() = controlFlowElement or childIndex = 0 and - result.(ElementNode).getElement() = assignment.getLValue() + result.(ElementNode).getElement() = assignment.getLeftOperand() or childIndex = 1 and - result.(ElementNode).getElement() = assignment.getRValue() + result.(ElementNode).getElement() = assignment.getRightOperand() } } diff --git a/csharp/ql/lib/semmle/code/csharp/Property.qll b/csharp/ql/lib/semmle/code/csharp/Property.qll index bbd4fdd9d8ec..c9a338d0359f 100644 --- a/csharp/ql/lib/semmle/code/csharp/Property.qll +++ b/csharp/ql/lib/semmle/code/csharp/Property.qll @@ -535,8 +535,8 @@ class Setter extends Accessor, @setter { exists(AssignExpr assign | this.getStatementBody().getNumberOfStmts() = 1 and assign.getParent() = this.getStatementBody().getAChild() and - assign.getLValue() = result.getAnAccess() and - assign.getRValue() = accessToValue() + assign.getLeftOperand() = result.getAnAccess() and + assign.getRightOperand() = accessToValue() ) } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 03a5aa7e2b74..6c1eb8c06eb9 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -136,7 +136,7 @@ private module GuardsInput implements IdExpr() { this instanceof AssignExpr or this instanceof CastExpr } Expr getEqualChildExpr() { - result = this.(AssignExpr).getRValue() + result = this.(AssignExpr).getRightOperand() or result = this.(CastExpr).getExpr() } @@ -836,7 +836,7 @@ module Internal { /** Holds if expression `e2` is a `null` value whenever `e1` is. */ predicate nullValueImpliedUnary(Expr e1, Expr e2) { - e1 = e2.(AssignExpr).getRValue() + e1 = e2.(AssignExpr).getRightOperand() or e1 = e2.(Cast).getExpr() or @@ -923,7 +923,7 @@ module Internal { /** Holds if expression `e2` is a non-`null` value whenever `e1` is. */ predicate nonNullValueImpliedUnary(Expr e1, Expr e2) { e1 = e2.(CastExpr).getExpr() or - e1 = e2.(AssignExpr).getRValue() or + e1 = e2.(AssignExpr).getRightOperand() or e1 = e2.(NullCoalescingOperation).getAnOperand() } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index e29e92d26eba..dc2c7477a35a 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -521,7 +521,7 @@ module Expressions { // ``` // need special treatment, because the accesses `[0]`, `[1]`, and `[2]` // have no qualifier. - this = any(MemberInitializer mi).getLValue() + this = any(MemberInitializer mi).getLeftOperand() ) and not exists(AssignableDefinitions::OutRefDefinition def | def.getTargetAccess() = this) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll index a82779eaa5d7..3d690ee1ac46 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll @@ -31,7 +31,7 @@ private Expr maybeNullExpr(Expr reason) { or result instanceof AsExpr and reason = result or - result.(AssignExpr).getRValue() = maybeNullExpr(reason) + result.(AssignExpr).getRightOperand() = maybeNullExpr(reason) or result.(CastExpr).getExpr() = maybeNullExpr(reason) or diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index 109c27de67be..5554b8cdbd79 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -528,7 +528,7 @@ module LocalFlow { e2 = any(AssignExpr ae | ae.getParent() = any(ControlFlowElement cfe | not cfe instanceof ExprStmt) and - e1 = ae.getRValue() + e1 = ae.getRightOperand() ) or e1 = e2.(ObjectCreation).getInitializer() @@ -554,7 +554,7 @@ module LocalFlow { e2 = we ) or - exists(AssignExpr ae | ae.getLValue().(TupleExpr) = e2 and ae.getRValue() = e1) + exists(AssignExpr ae | ae.getLeftOperand().(TupleExpr) = e2 and ae.getRightOperand() = e1) or exists(ControlFlowElement cfe | cfe = e2.(TupleExpr).(PatternExpr).getPatternMatch() | cfe.(IsExpr).getExpr() = e1 @@ -795,7 +795,7 @@ private predicate fieldOrPropertyStore(ContentSet c, Expr src, Expr q, boolean p q = we and mi = we.getInitializer().getAMemberInitializer() and f = mi.getInitializedMember() and - src = mi.getRValue() and + src = mi.getRightOperand() and postUpdate = false ) or @@ -804,7 +804,7 @@ private predicate fieldOrPropertyStore(ContentSet c, Expr src, Expr q, boolean p mi = q.(ObjectInitializer).getAMemberInitializer() and q.getParent() instanceof ObjectCreation and f = mi.getInitializedMember() and - src = mi.getRValue() and + src = mi.getRightOperand() and postUpdate = false ) or @@ -879,8 +879,8 @@ private predicate arrayStore(Expr src, Expr a, boolean postUpdate) { // Member initializer, `new C { Array = { [i] = src } }` exists(MemberInitializer mi | mi = a.(ObjectInitializer).getAMemberInitializer() and - mi.getLValue() instanceof ArrayAccess and - mi.getRValue() = src and + mi.getLeftOperand() instanceof ArrayAccess and + mi.getRightOperand() = src and postUpdate = false ) } @@ -2582,7 +2582,7 @@ module PostUpdateNodes { call.getExpr() = init.(CollectionInitializer).getAnElementInitializer() or // E.g. `new Dictionary() { [0] = "a", [1] = "b" }` - call.getExpr() = init.(ObjectInitializer).getAMemberInitializer().getLValue() + call.getExpr() = init.(ObjectInitializer).getAMemberInitializer().getLeftOperand() ) } @@ -2795,7 +2795,7 @@ predicate additionalLambdaFlowStep(Node nodeFrom, Node nodeTo, boolean preserves preservesValue = true or exists(AddEventExpr aee | - nodeFrom.asExpr() = aee.getRValue() and + nodeFrom.asExpr() = aee.getRightOperand() and nodeTo.asExpr().(EventRead).getTarget() = aee.getTarget() and preservesValue = false ) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll index 2809f8187b91..83593a5df36b 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -337,7 +337,7 @@ private module CallGraph { pred = succ.(DelegateCreation).getArgument() or exists(AddEventExpr ae | succ.(EventAccess).getTarget() = ae.getTarget() | - pred = ae.getRValue() + pred = ae.getRightOperand() ) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll index 46153f18dae2..171f2d2f59e4 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll @@ -21,7 +21,7 @@ private module Impl { /** Holds if SSA definition `def` equals `e + delta`. */ predicate ssaUpdateStep(ExplicitDefinition def, ExprNode e, int delta) { exists(ControlFlow::Node cfn | cfn = def.getControlFlowNode() | - e = cfn.(ExprNode::Assignment).getRValue() and + e = cfn.(ExprNode::Assignment).getRightOperand() and delta = 0 and not cfn instanceof ExprNode::AssignOperation or @@ -39,7 +39,7 @@ private module Impl { /** Holds if `e1 + delta` equals `e2`. */ predicate valueFlowStep(ExprNode e2, ExprNode e1, int delta) { - e2.(ExprNode::AssignExpr).getRValue() = e1 and delta = 0 + e2.(ExprNode::AssignExpr).getRightOperand() = e1 and delta = 0 or e2.(ExprNode::UnaryPlusExpr).getOperand() = e1 and delta = 0 or @@ -207,13 +207,13 @@ module ExprNode { override CS::Assignment e; /** Gets the left operand of this assignment. */ - ExprNode getLValue() { - result = unique(ExprNode res | hasChild(e, e.getLValue(), this, res) | res) + ExprNode getLeftOperand() { + result = unique(ExprNode res | hasChild(e, e.getLeftOperand(), this, res) | res) } /** Gets the right operand of this assignment. */ - ExprNode getRValue() { - result = unique(ExprNode res | hasChild(e, e.getRValue(), this, res) | res) + ExprNode getRightOperand() { + result = unique(ExprNode res | hasChild(e, e.getRightOperand(), this, res) | res) } } @@ -225,6 +225,10 @@ module ExprNode { /** A compound assignment operation. */ class AssignOperation extends Assignment, BinaryOperation { override CS::AssignOperation e; + + override ExprNode getLeftOperand() { result = Assignment.super.getLeftOperand() } + + override ExprNode getRightOperand() { result = Assignment.super.getRightOperand() } } /** A unary operation. */ diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll index d59d7958765a..f64eceda1347 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll @@ -168,7 +168,7 @@ private module Impl { /** Returned an expression that is assigned to `f`. */ ExprNode getAssignedValueToField(Field f) { result.getExpr() in [ - f.getAnAssignedValue(), any(AssignOperation a | a.getLValue() = f.getAnAccess()) + f.getAnAssignedValue(), any(AssignOperation a | a.getLeftOperand() = f.getAnAccess()) ] } @@ -231,7 +231,7 @@ private module Impl { /** Returns a sub expression of `e` for expression types where the sign depends on the child. */ ExprNode getASubExprWithSameSign(ExprNode e) { exists(Expr e_, Expr child | hasChild(e_, child, e, result) | - child = e_.(AssignExpr).getRValue() or + child = e_.(AssignExpr).getRightOperand() or child = e_.(UnaryPlusExpr).getOperand() or child = e_.(PostIncrExpr).getOperand() or child = e_.(PostDecrExpr).getOperand() or diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll index 89117d90ba79..cf4b44239e92 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll @@ -55,5 +55,5 @@ ExprNode ssaRead(Definition v, int delta) { or v.(ExplicitDefinition).getControlFlowNode().(ExprNode::Assignment) = result and delta = 0 or - result.(ExprNode::AssignExpr).getRValue() = ssaRead(v, delta) + result.(ExprNode::AssignExpr).getRightOperand() = ssaRead(v, delta) } diff --git a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll index f7f6c7a50be4..770fab65f545 100644 --- a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll @@ -1348,7 +1348,7 @@ private module Internal { any(DynamicMemberAccess dma | this = TDispatchDynamicEventAccess(_, dma, _)).getQualifier() } - override Expr getArgument(int i) { i = 0 and result = this.getCall().getRValue() } + override Expr getArgument(int i) { i = 0 and result = this.getCall().getRightOperand() } } /** A call to a constructor using dynamic types. */ diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll index 84375bc70130..d9fb16f0974b 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll @@ -112,7 +112,7 @@ class BaseAccess extends Access, @base_access_expr { class MemberAccess extends Access, QualifiableExpr, @member_access_expr { override predicate hasImplicitThisQualifier() { QualifiableExpr.super.hasImplicitThisQualifier() and - not exists(MemberInitializer mi | mi.getLValue() = this) + not exists(MemberInitializer mi | mi.getLeftOperand() = this) } override Member getQualifiedDeclaration() { result = this.getTarget() } diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Assignment.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Assignment.qll index 467149011d2c..8c7dd80da243 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Assignment.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Assignment.qll @@ -20,14 +20,22 @@ class Assignment extends BinaryOperation, @assign_expr { expr_parent(_, 1, this) } - /** Gets the left operand of this assignment. */ - Expr getLValue() { result = this.getLeftOperand() } + /** + * DEPRECATED: Use `getLeftOperand` instead. + * + * Gets the left operand of this assignment. + */ + deprecated Expr getLValue() { result = this.getLeftOperand() } - /** Gets the right operand of this assignment. */ - Expr getRValue() { result = this.getRightOperand() } + /** + * DEPRECATED: Use `getRightOperand` instead. + * + * Gets the right operand of this assignment. + */ + deprecated Expr getRValue() { result = this.getRightOperand() } /** Gets the variable being assigned to, if any. */ - Variable getTargetVariable() { result.getAnAccess() = this.getLValue() } + Variable getTargetVariable() { result.getAnAccess() = this.getLeftOperand() } override string getOperator() { none() } } @@ -40,7 +48,12 @@ class LocalVariableDeclAndInitExpr extends LocalVariableDeclExpr, Assignment { override LocalVariable getTargetVariable() { result = this.getVariable() } - override LocalVariableAccess getLValue() { result = Assignment.super.getLValue() } + /** + * DEPRECATED: Use `getLeftOperand` instead. + */ + deprecated override LocalVariableAccess getLValue() { result = this.getLeftOperand() } + + override LocalVariableAccess getLeftOperand() { result = Assignment.super.getLeftOperand() } override string toString() { result = LocalVariableDeclExpr.super.toString() + " = ..." } @@ -223,9 +236,12 @@ deprecated class AssignUnsighedRightShiftExpr = AssignUnsignedRightShiftExpr; */ class AddOrRemoveEventExpr extends AssignOperation, @assign_event_expr { /** Gets the event targeted by this event assignment. */ - Event getTarget() { result = this.getLValue().getTarget() } + Event getTarget() { result = this.getLeftOperand().getTarget() } - override EventAccess getLValue() { result = this.getChild(0) } + /** + * DEPRECATED: Use `getLeftOperand` instead. + */ + deprecated override EventAccess getLValue() { result = this.getLeftOperand() } override EventAccess getLeftOperand() { result = this.getChild(0) } } diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll index 0d9e414a5c44..272a8e0caae9 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll @@ -773,7 +773,7 @@ class EventCall extends AccessorCall, EventAccessExpr { override EventAccessor getTarget() { exists(Event e, AddOrRemoveEventExpr aoree | e = this.getEvent() and - aoree.getLValue() = this + aoree.getLeftOperand() = this | aoree instanceof AddEventExpr and result = e.getAddEventAccessor() or @@ -784,8 +784,8 @@ class EventCall extends AccessorCall, EventAccessExpr { override Expr getArgument(int i) { i = 0 and exists(AddOrRemoveEventExpr aoree | - aoree.getLValue() = this and - result = aoree.getRValue() + aoree.getLeftOperand() = this and + result = aoree.getRightOperand() ) } diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Creation.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Creation.qll index 0e16e0da9c3c..19ff9fac53b2 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Creation.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Creation.qll @@ -95,7 +95,7 @@ class MemberInitializer extends AssignExpr { MemberInitializer() { this.getParent() instanceof ObjectInitializer } /** Gets the initialized member. */ - Member getInitializedMember() { result.getAnAccess() = this.getLValue() } + Member getInitializedMember() { result.getAnAccess() = this.getLeftOperand() } override string getAPrimaryQlClass() { result = "MemberInitializer" } } diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll index 66764d06479d..36eda82531c5 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll @@ -1099,7 +1099,7 @@ class QualifiableExpr extends Expr, @qualifiable_expr { } private Expr getAnAssignOrForeachChild() { - result = any(AssignExpr e).getLValue() + result = any(AssignExpr e).getLeftOperand() or result = any(ForeachStmt fs).getVariableDeclTuple() or diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/Moq.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/Moq.qll index 9ab9a026fd29..0beec9a84b28 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/Moq.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/Moq.qll @@ -41,6 +41,6 @@ class ReturnedByMockObject extends ObjectCreation { * Gets a value used to initialize a member of this object creation. */ Expr getAMemberInitializationValue() { - result = this.getInitializer().(ObjectInitializer).getAMemberInitializer().getRValue() + result = this.getInitializer().(ObjectInitializer).getAMemberInitializer().getRightOperand() } } diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll index 6b1eb7b67fb7..58d6d68bf0ea 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll @@ -17,14 +17,14 @@ abstract class SqlExpr extends Expr { class CommandTextAssignmentSqlExpr extends SqlExpr, AssignExpr { CommandTextAssignmentSqlExpr() { exists(Property p, SystemDataIDbCommandInterface i, Property text | - p = this.getLValue().(PropertyAccess).getTarget() and + p = this.getLeftOperand().(PropertyAccess).getTarget() and text = i.getCommandTextProperty() | p.overridesOrImplementsOrEquals(text) ) } - override Expr getSql() { result = this.getRValue() } + override Expr getSql() { result = this.getRightOperand() } } /** A construction of an unknown `IDbCommand` object. */ diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/SecureCookies.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/SecureCookies.qll index 56b6294949b8..e7cb6d8e3081 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/SecureCookies.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/SecureCookies.qll @@ -100,20 +100,20 @@ Expr getAValueForCookiePolicyProp(string prop) { Expr getAValueForProp(ObjectCreation create, Assignment a, string prop) { // values set in object init exists(MemberInitializer init, Expr src, PropertyAccess pa | - a.getLValue() = pa and + a.getLeftOperand() = pa and pa.getTarget().hasName(prop) and init = create.getInitializer().(ObjectInitializer).getAMemberInitializer() and - init.getLValue() = pa and - DataFlow::localExprFlow(src, init.getRValue()) and + init.getLeftOperand() = pa and + DataFlow::localExprFlow(src, init.getRightOperand()) and result = src ) or // values set on var that create is assigned to exists(Expr src, PropertyAccess pa | - a.getLValue() = pa and + a.getLeftOperand() = pa and pa.getTarget().hasName(prop) and DataFlow::localExprFlow(create, pa.getQualifier()) and - DataFlow::localExprFlow(src, a.getRValue()) and + DataFlow::localExprFlow(src, a.getRightOperand()) and result = src ) } @@ -138,15 +138,15 @@ private module OnAppendCookieTrackingConfig impl exists(PropertyWrite pw, Assignment delegateAssign, Callable c | pw.getProperty().getName() = "OnAppendCookie" and pw.getProperty().getDeclaringType() instanceof MicrosoftAspNetCoreBuilderCookiePolicyOptions and - delegateAssign.getLValue() = pw and + delegateAssign.getLeftOperand() = pw and ( exists(LambdaExpr lambda | - delegateAssign.getRValue() = lambda and + delegateAssign.getRightOperand() = lambda and lambda = c ) or exists(DelegateCreation delegate | - delegateAssign.getRValue() = delegate and + delegateAssign.getRightOperand() = delegate and delegate.getArgument().(CallableAccess).getTarget() = c ) ) and @@ -159,9 +159,9 @@ private module OnAppendCookieTrackingConfig impl exists(PropertyWrite pw, Assignment a | pw.getProperty().getDeclaringType() instanceof MicrosoftAspNetCoreHttpCookieOptions and pw.getProperty().getName() = getPropertyName() and - a.getLValue() = pw and + a.getLeftOperand() = pw and exists(Expr val | - DataFlow::localExprFlow(val, a.getRValue()) and + DataFlow::localExprFlow(val, a.getRightOperand()) and val.getValue() = "true" ) and sink.asExpr() = pw.getQualifier() diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll index 5b2bd407a5ce..3c8911ef8074 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll @@ -126,16 +126,16 @@ private module TypeNameTrackingConfig implements DataFlow::ConfigSig { or node1.getType() instanceof TypeNameHandlingEnum and exists(PropertyWrite pw, Property p, Assignment a | - a.getLValue() = pw and + a.getLeftOperand() = pw and pw.getProperty() = p and p.getDeclaringType() instanceof JsonSerializerSettingsClass and p.hasName("TypeNameHandling") and ( - node1.asExpr() = a.getRValue() and + node1.asExpr() = a.getRightOperand() and node2.asExpr() = pw.getQualifier() or exists(ObjectInitializer oi | - node1.asExpr() = oi.getAMemberInitializer().getRValue() and + node1.asExpr() = oi.getAMemberInitializer().getRightOperand() and node2.asExpr() = oi ) ) diff --git a/csharp/ql/lib/semmle/code/csharp/security/xml/InsecureXMLQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/xml/InsecureXMLQuery.qll index 1abeaf797b00..765dc2adf54a 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/xml/InsecureXMLQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/xml/InsecureXMLQuery.qll @@ -84,15 +84,15 @@ private Expr getAValueForProp(ObjectCreation create, string prop) { // values set in object init exists(MemberInitializer init | init = create.getInitializer().(ObjectInitializer).getAMemberInitializer() and - init.getLValue().(PropertyAccess).getTarget().hasName(prop) and - result = init.getRValue() + init.getLeftOperand().(PropertyAccess).getTarget().hasName(prop) and + result = init.getRightOperand() ) or // values set on var that create is assigned to exists(Assignment propAssign | - DataFlow::localExprFlow(create, propAssign.getLValue().(PropertyAccess).getQualifier()) and - propAssign.getLValue().(PropertyAccess).getTarget().hasName(prop) and - result = propAssign.getRValue() + DataFlow::localExprFlow(create, propAssign.getLeftOperand().(PropertyAccess).getQualifier()) and + propAssign.getLeftOperand().(PropertyAccess).getTarget().hasName(prop) and + result = propAssign.getRightOperand() ) } diff --git a/csharp/ql/src/Dead Code/NonAssignedFields.ql b/csharp/ql/src/Dead Code/NonAssignedFields.ql index 83aa889b77c7..b9e868097493 100644 --- a/csharp/ql/src/Dead Code/NonAssignedFields.ql +++ b/csharp/ql/src/Dead Code/NonAssignedFields.ql @@ -84,9 +84,9 @@ where not f.getDeclaringType() instanceof Enum and not f.getType() instanceof Struct and not exists(Assignment ae, Field g | - ae.getLValue().(FieldAccess).getTarget() = g and + ae.getLeftOperand().(FieldAccess).getTarget() = g and g.getUnboundDeclaration() = f and - not ae.getRValue() instanceof NullLiteral + not ae.getRightOperand() instanceof NullLiteral ) and not exists(MethodCall mc, int i, Field g | exists(Parameter p | mc.getTarget().getParameter(i) = p | p.isOut() or p.isRef()) and @@ -101,7 +101,7 @@ where not init instanceof NullLiteral ) and not exists(AssignOperation ua, Field g | - ua.getLValue().(FieldAccess).getTarget() = g and + ua.getLeftOperand().(FieldAccess).getTarget() = g and g.getUnboundDeclaration() = f ) and not exists(MutatorOperation op | diff --git a/csharp/ql/src/Language Abuse/ForeachCapture.ql b/csharp/ql/src/Language Abuse/ForeachCapture.ql index 03f1f99a044c..2ed24b42eba9 100644 --- a/csharp/ql/src/Language Abuse/ForeachCapture.ql +++ b/csharp/ql/src/Language Abuse/ForeachCapture.ql @@ -60,16 +60,16 @@ module LambdaDataFlow { } Element getAssignmentTarget(Expr e) { - exists(Assignment a | a.getRValue() = e | - result = a.getLValue().(PropertyAccess).getTarget() or - result = a.getLValue().(FieldAccess).getTarget() or - result = a.getLValue().(LocalVariableAccess).getTarget() or - result = a.getLValue().(EventAccess).getTarget() + exists(Assignment a | a.getRightOperand() = e | + result = a.getLeftOperand().(PropertyAccess).getTarget() or + result = a.getLeftOperand().(FieldAccess).getTarget() or + result = a.getLeftOperand().(LocalVariableAccess).getTarget() or + result = a.getLeftOperand().(EventAccess).getTarget() ) or exists(AddEventExpr aee | - e = aee.getRValue() and - result = aee.getLValue().getTarget() + e = aee.getRightOperand() and + result = aee.getLeftOperand().getTarget() ) or result = getCollectionAssignmentTarget(e) @@ -97,8 +97,8 @@ Element getCollectionAssignmentTarget(Expr e) { // Store values using indexer exists(IndexerAccess ia, AssignExpr ae | ia.getQualifier() = result.(Variable).getAnAccess() and - ia = ae.getLValue() and - e = ae.getRValue() + ia = ae.getLeftOperand() and + e = ae.getRightOperand() ) } diff --git a/csharp/ql/src/Language Abuse/MissedTernaryOpportunity.ql b/csharp/ql/src/Language Abuse/MissedTernaryOpportunity.ql index bd7492b8583e..01d6baa95732 100644 --- a/csharp/ql/src/Language Abuse/MissedTernaryOpportunity.ql +++ b/csharp/ql/src/Language Abuse/MissedTernaryOpportunity.ql @@ -15,7 +15,7 @@ import csharp import semmle.code.csharp.commons.StructuralComparison private Expr getAssignedExpr(Stmt stmt) { - result = stmt.stripSingletonBlocks().(ExprStmt).getExpr().(AssignExpr).getLValue() + result = stmt.stripSingletonBlocks().(ExprStmt).getExpr().(AssignExpr).getLeftOperand() } from IfStmt is, string what diff --git a/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql b/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql index 5fcb140e6791..046099213cc6 100644 --- a/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql +++ b/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql @@ -23,9 +23,10 @@ where ) and forex(Access a | a = v.getAnAccess() | a = any(ModifierMethodCall m).getQualifier() or - a = any(AssignExpr ass | ass.getRValue() instanceof ObjectCreation).getLValue() or + a = any(AssignExpr ass | ass.getRightOperand() instanceof ObjectCreation).getLeftOperand() or a = - any(LocalVariableDeclAndInitExpr ass | ass.getRValue() instanceof ObjectCreation).getLValue() + any(LocalVariableDeclAndInitExpr ass | ass.getRightOperand() instanceof ObjectCreation) + .getLeftOperand() ) and not v = any(ForeachStmt fs).getVariable() and not v = any(BindingPatternExpr vpe).getVariableDeclExpr().getVariable() and diff --git a/csharp/ql/src/Likely Bugs/SelfAssignment.ql b/csharp/ql/src/Likely Bugs/SelfAssignment.ql index f01a1378242e..6e51b87a779f 100644 --- a/csharp/ql/src/Likely Bugs/SelfAssignment.ql +++ b/csharp/ql/src/Likely Bugs/SelfAssignment.ql @@ -19,7 +19,7 @@ private predicate candidate(AssignExpr ae) { not ae instanceof MemberInitializer and // Enum field initializers are never self assignments. `enum E { A = 42 }` not ae.getParent().(Field).getDeclaringType() instanceof Enum and - forall(Expr e | e = ae.getLValue().getAChildExpr*() | + forall(Expr e | e = ae.getLeftOperand().getAChildExpr*() | // Non-trivial property accesses may have side-effects, // so these are not considered e instanceof PropertyAccess implies e instanceof TrivialPropertyAccess @@ -28,7 +28,7 @@ private predicate candidate(AssignExpr ae) { private predicate selfAssignExpr(AssignExpr ae) { candidate(ae) and - sameGvn(ae.getLValue(), ae.getRValue()) + sameGvn(ae.getLeftOperand(), ae.getRightOperand()) } private Declaration getDeclaration(Expr e) { @@ -40,5 +40,5 @@ private Declaration getDeclaration(Expr e) { } from AssignExpr ae, Declaration target -where selfAssignExpr(ae) and target = getDeclaration(ae.getLValue()) +where selfAssignExpr(ae) and target = getDeclaration(ae.getLeftOperand()) select ae, "This assignment assigns $@ to itself.", target, target.getName() diff --git a/csharp/ql/src/Linq/BadMultipleIteration.ql b/csharp/ql/src/Linq/BadMultipleIteration.ql index 8146bbf167d8..0f9e335e2251 100644 --- a/csharp/ql/src/Linq/BadMultipleIteration.ql +++ b/csharp/ql/src/Linq/BadMultipleIteration.ql @@ -50,7 +50,7 @@ predicate potentiallyConsumingAccess(VariableAccess va) { Expr sequenceSource(IEnumerableSequence seq) { result = seq.getInitializer() or - exists(Assignment a | a.getLValue() = seq.getAnAccess() and result = a.getRValue()) + exists(Assignment a | a.getLeftOperand() = seq.getAnAccess() and result = a.getRightOperand()) } from IEnumerableSequence seq, VariableAccess va diff --git a/csharp/ql/src/Performance/StringConcatenationInLoop.ql b/csharp/ql/src/Performance/StringConcatenationInLoop.ql index 3b3228588a4b..d27b99e7bdd0 100644 --- a/csharp/ql/src/Performance/StringConcatenationInLoop.ql +++ b/csharp/ql/src/Performance/StringConcatenationInLoop.ql @@ -24,7 +24,7 @@ class StringCat extends AddExpr { */ predicate isSelfConcatAssignExpr(AssignExpr e, Variable v) { exists(VariableAccess use | - stringCatContains(e.getRValue(), use) and + stringCatContains(e.getRightOperand(), use) and use.getTarget() = e.getTargetVariable() and v = use.getTarget() ) @@ -41,7 +41,7 @@ predicate stringCatContains(StringCat expr, Expr child) { * where `v` is a simple variable (and not, for example, a property). */ predicate isConcatExpr(AssignAddExpr e, Variable v) { - e.getLValue().getType() instanceof StringType and + e.getLeftOperand().getType() instanceof StringType and v = e.getTargetVariable() } diff --git a/csharp/ql/src/Security Features/CWE-1004/CookieWithoutHttpOnly.ql b/csharp/ql/src/Security Features/CWE-1004/CookieWithoutHttpOnly.ql index dcc520540bb0..f72de01b5db2 100644 --- a/csharp/ql/src/Security Features/CWE-1004/CookieWithoutHttpOnly.ql +++ b/csharp/ql/src/Security Features/CWE-1004/CookieWithoutHttpOnly.ql @@ -27,8 +27,8 @@ predicate cookieAppendHttpOnlyByDefault() { predicate httpOnlyFalse(ObjectCreation oc) { exists(Assignment a | - getAValueForProp(oc, a, "HttpOnly") = a.getRValue() and - a.getRValue().getValue() = "false" + getAValueForProp(oc, a, "HttpOnly") = a.getRightOperand() and + a.getRightOperand().getValue() = "false" ) } @@ -100,8 +100,8 @@ predicate nonHttpOnlyCookieBuilderAssignment(Assignment a, Expr val) { MicrosoftAspNetCoreAuthenticationCookiesCookieAuthenticationOptions ) and pw.getProperty().getName() = "HttpOnly" and - a.getLValue() = pw and - DataFlow::localExprFlow(val, a.getRValue()) + a.getLeftOperand() = pw and + DataFlow::localExprFlow(val, a.getRightOperand()) ) } @@ -111,7 +111,7 @@ where nonHttpOnlyCookieCall(httpOnlySink) or exists(Assignment a | - httpOnlySink = a.getRValue() and + httpOnlySink = a.getRightOperand() and nonHttpOnlyCookieBuilderAssignment(a, _) ) ) diff --git a/csharp/ql/src/Security Features/CWE-327/InsecureSQLConnection.ql b/csharp/ql/src/Security Features/CWE-327/InsecureSQLConnection.ql index 330ad1c1c329..a1dd249fabac 100644 --- a/csharp/ql/src/Security Features/CWE-327/InsecureSQLConnection.ql +++ b/csharp/ql/src/Security Features/CWE-327/InsecureSQLConnection.ql @@ -35,8 +35,8 @@ module InsecureSqlConnectionConfig implements DataFlow::ConfigSig { ) and not exists(MemberInitializer mi | mi = oc.getInitializer().(ObjectInitializer).getAMemberInitializer() and - mi.getLValue().(PropertyAccess).getTarget().getName() = "Encrypt" and - mi.getRValue().(BoolLiteral).getValue() = "true" + mi.getLeftOperand().(PropertyAccess).getTarget().getName() = "Encrypt" and + mi.getRightOperand().(BoolLiteral).getValue() = "true" ) ) } diff --git a/csharp/ql/src/Security Features/CWE-614/CookieWithoutSecure.ql b/csharp/ql/src/Security Features/CWE-614/CookieWithoutSecure.ql index ce1f75d627c7..1149b4bcad24 100644 --- a/csharp/ql/src/Security Features/CWE-614/CookieWithoutSecure.ql +++ b/csharp/ql/src/Security Features/CWE-614/CookieWithoutSecure.ql @@ -31,8 +31,8 @@ predicate cookieAppendSecureByDefault() { predicate secureFalse(ObjectCreation oc) { exists(Assignment a | - getAValueForProp(oc, a, "Secure") = a.getRValue() and - a.getRValue().getValue() = "false" + getAValueForProp(oc, a, "Secure") = a.getRightOperand() and + a.getRightOperand().getValue() = "false" ) } @@ -96,8 +96,8 @@ predicate insecureSecurePolicyAssignment(Assignment a, Expr val) { MicrosoftAspNetCoreAuthenticationCookiesCookieAuthenticationOptions ) and pw.getProperty().getName() = "SecurePolicy" and - a.getLValue() = pw and - DataFlow::localExprFlow(val, a.getRValue()) and + a.getLeftOperand() = pw and + DataFlow::localExprFlow(val, a.getRightOperand()) and val.getValue() = "2" // None ) } @@ -107,7 +107,7 @@ where insecureCookieCall(secureSink) or exists(Assignment a | - secureSink = a.getRValue() and + secureSink = a.getRightOperand() and insecureSecurePolicyAssignment(a, _) ) select secureSink, "Cookie attribute 'Secure' is not set to true." diff --git a/csharp/ql/src/Security Features/CookieWithOverlyBroadDomain.ql b/csharp/ql/src/Security Features/CookieWithOverlyBroadDomain.ql index 9c6e69351860..59a6340104a9 100644 --- a/csharp/ql/src/Security Features/CookieWithOverlyBroadDomain.ql +++ b/csharp/ql/src/Security Features/CookieWithOverlyBroadDomain.ql @@ -14,11 +14,11 @@ import csharp from Assignment a, PropertyAccess pa where - a.getLValue() = pa and + a.getLeftOperand() = pa and pa.getTarget().hasName("Domain") and pa.getTarget().getDeclaringType().hasFullyQualifiedName("System.Web", "HttpCookie") and ( - a.getRValue().getValue().regexpReplaceAll("[^.]", "").length() < 2 or - a.getRValue().getValue().matches(".%") + a.getRightOperand().getValue().regexpReplaceAll("[^.]", "").length() < 2 or + a.getRightOperand().getValue().matches(".%") ) select a, "Overly broad domain for cookie." diff --git a/csharp/ql/src/Security Features/CookieWithOverlyBroadPath.ql b/csharp/ql/src/Security Features/CookieWithOverlyBroadPath.ql index 6690cac47d26..d659f7c8dc56 100644 --- a/csharp/ql/src/Security Features/CookieWithOverlyBroadPath.ql +++ b/csharp/ql/src/Security Features/CookieWithOverlyBroadPath.ql @@ -14,8 +14,8 @@ import csharp from Assignment a, PropertyAccess pa where - a.getLValue() = pa and + a.getLeftOperand() = pa and pa.getTarget().hasName("Path") and pa.getTarget().getDeclaringType().hasFullyQualifiedName("System.Web", "HttpCookie") and - a.getRValue().getValue() = "/" + a.getRightOperand().getValue() = "/" select a, "Overly broad path for cookie." diff --git a/csharp/ql/src/Security Features/HeaderCheckingDisabled.ql b/csharp/ql/src/Security Features/HeaderCheckingDisabled.ql index 7a3a5fdc4f20..bc9bf289c2dd 100644 --- a/csharp/ql/src/Security Features/HeaderCheckingDisabled.ql +++ b/csharp/ql/src/Security Features/HeaderCheckingDisabled.ql @@ -17,12 +17,12 @@ from Element l where // header checking is disabled programmatically in the code exists(Assignment a, PropertyAccess pa | - a.getLValue() = pa and + a.getLeftOperand() = pa and pa.getTarget().hasName("EnableHeaderChecking") and pa.getTarget() .getDeclaringType() .hasFullyQualifiedName("System.Web.Configuration", "HttpRuntimeSection") and - a.getRValue().getValue() = "false" and + a.getRightOperand().getValue() = "false" and a = l ) or diff --git a/csharp/ql/src/Security Features/InsecureRandomness.ql b/csharp/ql/src/Security Features/InsecureRandomness.ql index 8237afdff130..649969a27782 100644 --- a/csharp/ql/src/Security Features/InsecureRandomness.ql +++ b/csharp/ql/src/Security Features/InsecureRandomness.ql @@ -89,10 +89,10 @@ module Random { e = any(SensitiveLibraryParameter v).getAnAssignedArgument() or // Assignment operation, e.g. += or similar - exists(AssignOperation ao | ao.getRValue() = e | - ao.getLValue() = any(SensitiveVariable v).getAnAccess() or - ao.getLValue() = any(SensitiveProperty v).getAnAccess() or - ao.getLValue() = any(SensitiveLibraryParameter v).getAnAccess() + exists(AssignOperation ao | ao.getRightOperand() = e | + ao.getLeftOperand() = any(SensitiveVariable v).getAnAccess() or + ao.getLeftOperand() = any(SensitiveProperty v).getAnAccess() or + ao.getLeftOperand() = any(SensitiveLibraryParameter v).getAnAccess() ) ) } diff --git a/csharp/ql/src/Security Features/InsufficientKeySize.ql b/csharp/ql/src/Security Features/InsufficientKeySize.ql index 94ae6b9286f2..02be9125835b 100644 --- a/csharp/ql/src/Security Features/InsufficientKeySize.ql +++ b/csharp/ql/src/Security Features/InsufficientKeySize.ql @@ -20,7 +20,7 @@ predicate incorrectUseOfRC2(Assignment e, string msg) { .getDeclaringType() .hasFullyQualifiedName("System.Security.Cryptography", "RC2CryptoServiceProvider") ) and - e.getRValue().getValue().toInt() < 128 and + e.getRightOperand().getValue().toInt() < 128 and msg = "Key size should be at least 128 bits for RC2 encryption." } diff --git a/csharp/ql/src/Security Features/PersistentCookie.ql b/csharp/ql/src/Security Features/PersistentCookie.ql index 7f9861213fc1..edc97b464e5c 100644 --- a/csharp/ql/src/Security Features/PersistentCookie.ql +++ b/csharp/ql/src/Security Features/PersistentCookie.ql @@ -52,8 +52,8 @@ class FutureDateExpr extends MethodCall { from Assignment a, PropertyAccess pa, FutureDateExpr fde where - a.getLValue() = pa and - a.getRValue() = fde and + a.getLeftOperand() = pa and + a.getRightOperand() = fde and pa.getTarget().hasName("Expires") and pa.getTarget().getDeclaringType().hasFullyQualifiedName("System.Web", "HttpCookie") and (fde.timeIsNotClear() or fde.getTimeInSecond() > 300) // 5 minutes max diff --git a/csharp/ql/src/Telemetry/DatabaseQuality.qll b/csharp/ql/src/Telemetry/DatabaseQuality.qll index ca2ab3e7e165..ad7ac682bf5c 100644 --- a/csharp/ql/src/Telemetry/DatabaseQuality.qll +++ b/csharp/ql/src/Telemetry/DatabaseQuality.qll @@ -27,7 +27,7 @@ module CallTargetStats implements StatsSig { p = c.getProperty() and not p.getAnAccessor() instanceof Setter and assign = c.getParent() and - assign.getLValue() = c and + assign.getLeftOperand() = c and assign.getParent() instanceof Property ) } @@ -36,7 +36,7 @@ module CallTargetStats implements StatsSig { exists(Property p, AssignExpr assign | p = c.getProperty() and assign = c.getParent() and - assign.getLValue() = c and + assign.getLeftOperand() = c and assign.getParent() instanceof ObjectInitializer and assign.getParent().getParent() instanceof AnonymousObjectCreation ) @@ -46,8 +46,8 @@ module CallTargetStats implements StatsSig { exists(Property p, AssignExpr assign | p = c.getProperty() and assign = c.getParent() and - assign.getLValue() = c and - assign.getRValue() instanceof ObjectOrCollectionInitializer + assign.getLeftOperand() = c and + assign.getRightOperand() instanceof ObjectOrCollectionInitializer ) } diff --git a/csharp/ql/src/experimental/Security Features/CWE-759/HashWithoutSalt.ql b/csharp/ql/src/experimental/Security Features/CWE-759/HashWithoutSalt.ql index d43050c2deb4..0dc8fc362d61 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-759/HashWithoutSalt.ql +++ b/csharp/ql/src/experimental/Security Features/CWE-759/HashWithoutSalt.ql @@ -187,10 +187,10 @@ module HashWithoutSaltConfig implements DataFlow::ConfigSig { or // a salt or key is included in subclasses of `KeyedHashAlgorithm` exists(MethodCall mc, Assignment a, ObjectCreation oc | - a.getRValue() = oc and + a.getRightOperand() = oc and oc.getObjectType().getABaseType+() instanceof KeyedHashAlgorithm and mc.getTarget() instanceof HashMethod and - a.getLValue() = mc.getQualifier().(VariableAccess).getTarget().getAnAccess() and + a.getLeftOperand() = mc.getQualifier().(VariableAccess).getTarget().getAnAccess() and mc.getArgument(0) = node.asExpr() ) } diff --git a/csharp/ql/test/library-tests/assignments/AssignOperation.ql b/csharp/ql/test/library-tests/assignments/AssignOperation.ql index 2ca3b11a8313..2fa23ed0a9f3 100644 --- a/csharp/ql/test/library-tests/assignments/AssignOperation.ql +++ b/csharp/ql/test/library-tests/assignments/AssignOperation.ql @@ -1,4 +1,4 @@ import csharp from AssignOperation ao -select ao, ao.getLValue(), ao.getRValue() +select ao, ao.getLeftOperand(), ao.getRightOperand() diff --git a/csharp/ql/test/library-tests/conversion/pointer/Pointer.ql b/csharp/ql/test/library-tests/conversion/pointer/Pointer.ql index 69e7db8c1cf1..450ed9940a8c 100644 --- a/csharp/ql/test/library-tests/conversion/pointer/Pointer.ql +++ b/csharp/ql/test/library-tests/conversion/pointer/Pointer.ql @@ -1,5 +1,5 @@ import csharp from Assignment a -select a.getLocation(), a.getLValue().getType().toString(), a.getRValue().getType().toString(), - a.getRValue().toString() +select a.getLocation(), a.getLeftOperand().getType().toString(), + a.getRightOperand().getType().toString(), a.getRightOperand().toString() diff --git a/csharp/ql/test/library-tests/csharp10/lambda.ql b/csharp/ql/test/library-tests/csharp10/lambda.ql index 3cfec302b525..55c7faac0495 100644 --- a/csharp/ql/test/library-tests/csharp10/lambda.ql +++ b/csharp/ql/test/library-tests/csharp10/lambda.ql @@ -3,7 +3,7 @@ import csharp private predicate getLambda( LocalVariableDeclAndInitExpr e, string type, LocalVariable v, LambdaExpr lexp ) { - lexp = e.getRValue() and + lexp = e.getRightOperand() and v = e.getTargetVariable() and type = e.getType().toStringWithTypes() } diff --git a/csharp/ql/test/library-tests/csharp11/operators.ql b/csharp/ql/test/library-tests/csharp11/operators.ql index 607efac0c26c..f1543e2d744a 100644 --- a/csharp/ql/test/library-tests/csharp11/operators.ql +++ b/csharp/ql/test/library-tests/csharp11/operators.ql @@ -14,8 +14,8 @@ query predicate assignbitwise( AssignBitwiseOperation op, Expr left, Expr right, string name, string qlclass ) { op.getFile().getStem() = "Operators" and - left = op.getLValue() and - right = op.getRValue() and + left = op.getLeftOperand() and + right = op.getRightOperand() and name = op.getOperator() and qlclass = op.getAPrimaryQlClass() } diff --git a/csharp/ql/test/library-tests/csharp6/MemberInitializer.ql b/csharp/ql/test/library-tests/csharp6/MemberInitializer.ql index f3ef63fe2257..1895792f07c1 100644 --- a/csharp/ql/test/library-tests/csharp6/MemberInitializer.ql +++ b/csharp/ql/test/library-tests/csharp6/MemberInitializer.ql @@ -12,7 +12,7 @@ query predicate indexerCalls(IndexerCall indexer, int arg, Expr value) { query predicate elementAssignments( ElementWrite write, Assignment assignment, int index, Expr indexer ) { - write = assignment.getLValue() and indexer = write.getIndex(index) + write = assignment.getLeftOperand() and indexer = write.getIndex(index) } query predicate arrayQualifiers(ElementAccess access, Expr qualifier) { diff --git a/csharp/ql/test/library-tests/enums/Enums11.ql b/csharp/ql/test/library-tests/enums/Enums11.ql index 36b2c005a213..f6133517f7d6 100644 --- a/csharp/ql/test/library-tests/enums/Enums11.ql +++ b/csharp/ql/test/library-tests/enums/Enums11.ql @@ -6,7 +6,7 @@ import csharp from Expr e where - exists(Assignment a | a.getRValue() = e | + exists(Assignment a | a.getRightOperand() = e | a.getParent().(Field).getDeclaringType() instanceof Enum ) select e, e.getValue() diff --git a/csharp/ql/test/library-tests/expressions/AddEventExpr1.ql b/csharp/ql/test/library-tests/expressions/AddEventExpr1.ql index 48f6b41e19d2..e3c1530fb1a0 100644 --- a/csharp/ql/test/library-tests/expressions/AddEventExpr1.ql +++ b/csharp/ql/test/library-tests/expressions/AddEventExpr1.ql @@ -9,5 +9,5 @@ where c.hasName("LoginDialog") and e.getEnclosingCallable() = c and e.getTarget().hasName("Click") and - e.getLValue().getQualifier().(FieldAccess).getTarget().hasName("OkButton") + e.getLeftOperand().getQualifier().(FieldAccess).getTarget().hasName("OkButton") select c, e diff --git a/csharp/ql/test/library-tests/expressions/AnonymousMethod1.ql b/csharp/ql/test/library-tests/expressions/AnonymousMethod1.ql index 2c8268e87e19..74e9d3cb1ffe 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousMethod1.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousMethod1.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, AnonymousMethodExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f7") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f7") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getParameter(0).getType() instanceof IntType and diff --git a/csharp/ql/test/library-tests/expressions/AnonymousMethod2.ql b/csharp/ql/test/library-tests/expressions/AnonymousMethod2.ql index e9fbbf01a10b..8f0390b0f825 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousMethod2.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousMethod2.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, AnonymousMethodExpr e, Parameter p, ParameterAccess pa where - assign.getLValue().(VariableAccess).getTarget().hasName("f7") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f7") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and p = e.getParameter(0) and diff --git a/csharp/ql/test/library-tests/expressions/AnonymousMethod3.ql b/csharp/ql/test/library-tests/expressions/AnonymousMethod3.ql index e4c2e9ae9ba9..46d8907319d5 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousMethod3.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousMethod3.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, AnonymousMethodExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f7") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f7") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getType().(DelegateType).getReturnType() instanceof IntType diff --git a/csharp/ql/test/library-tests/expressions/AnonymousMethod4.ql b/csharp/ql/test/library-tests/expressions/AnonymousMethod4.ql index 4d424b65b84a..cca81c6b04e9 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousMethod4.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousMethod4.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, AnonymousMethodExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f8") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f8") and e.getParent+() = assign and e.hasNoParameters() select e, e diff --git a/csharp/ql/test/library-tests/expressions/AnonymousMethod5.ql b/csharp/ql/test/library-tests/expressions/AnonymousMethod5.ql index cbc6ac82ca7e..577d810dfad3 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousMethod5.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousMethod5.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, AnonymousMethodExpr e, LocalVariableAccess va where - assign.getLValue().(VariableAccess).getTarget().hasName("f8") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f8") and e.getParent+() = assign and e.hasNoParameters() and va.getEnclosingStmt().getParent+() = e.getBody() and diff --git a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation1.ql b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation1.ql index 74d8cd27a948..c717aa260e07 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation1.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation1.ql @@ -6,11 +6,11 @@ import csharp from Assignment assign, AnonymousObjectCreation o, Assignment a, Property p where - assign.getLValue().(VariableAccess).getTarget().hasName("list2") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("list2") and o.getParent+() = assign and o.getInitializer().getMemberInitializer(0) = a and - a.getRValue().getValue() = "2" and - p = a.getLValue().(PropertyAccess).getTarget() and + a.getRightOperand().getValue() = "2" and + p = a.getLeftOperand().(PropertyAccess).getTarget() and p.hasName("i") and p.getDeclaringType() = o.getObjectType() select o diff --git a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation2.ql b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation2.ql index 5f9e16564b42..d55bf89d606b 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation2.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation2.ql @@ -6,11 +6,11 @@ import csharp from Assignment assign, AnonymousObjectCreation o, Assignment a, Property p where - assign.getLValue().(VariableAccess).getTarget().hasName("contacts2") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("contacts2") and o.getParent+() = assign and o.getInitializer().getMemberInitializer(0) = a and - a.getRValue().getValue() = "Chris Smith" and - p = a.getLValue().(PropertyAccess).getTarget() and + a.getRightOperand().getValue() = "Chris Smith" and + p = a.getLeftOperand().(PropertyAccess).getTarget() and p.hasName("Name") and p.getDeclaringType() = o.getObjectType() select o, p.getType().toString() diff --git a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation3.ql b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation3.ql index afa9ca0d3b29..6033bfed38ad 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation3.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation3.ql @@ -6,11 +6,11 @@ import csharp from Assignment assign, AnonymousObjectCreation o, Assignment a, Property p where - assign.getLValue().(VariableAccess).getTarget().hasName("contacts2") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("contacts2") and o.getParent+() = assign and o.getInitializer().getMemberInitializer(1) = a and - a.getRValue() instanceof ArrayCreation and - p = a.getLValue().(PropertyAccess).getTarget() and + a.getRightOperand() instanceof ArrayCreation and + p = a.getLeftOperand().(PropertyAccess).getTarget() and p.hasName("PhoneNumbers") and p.getDeclaringType() = o.getObjectType() select o, p.getType().getName() diff --git a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation4.ql b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation4.ql index b6354d1f4931..a52278839f2e 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation4.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation4.ql @@ -8,7 +8,7 @@ from Assignment assign, AnonymousObjectCreation o, Assignment a, AnonymousObjectCreation p, Assignment b where - assign.getLValue().(VariableAccess).getTarget().hasName("contacts2") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("contacts2") and o.getParent+() = assign and o.getInitializer().getMemberInitializer(1) = a and p.getParent+() = assign and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation1.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation1.ql index fba7a4036156..6f728347bff1 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation1.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation1.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e, ArrayInitializer i where - a.getLValue().(VariableAccess).getTarget().hasName("is1") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is1") and + e = a.getRightOperand() and not e.isImplicitlyTyped() and i = e.getInitializer() and e.isImplicitlySized() and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation10.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation10.ql index d8a1df128671..951ca22c0c2f 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation10.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation10.ql @@ -6,9 +6,9 @@ import csharp from Assignment a, ArrayCreation e, CastExpr cast where - a.getLValue().(VariableAccess).getTarget().hasName("os") and + a.getLeftOperand().(VariableAccess).getTarget().hasName("os") and e.getEnclosingCallable().hasName("MainElementAccess") and - e = a.getRValue() and + e = a.getRightOperand() and not e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation2.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation2.ql index ae56d5798396..88ce79bc91e5 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation2.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation2.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e, ArrayInitializer i where - a.getLValue().(VariableAccess).getTarget().hasName("is2") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is2") and + e = a.getRightOperand() and not e.isImplicitlyTyped() and i = e.getInitializer() and e.getNumberOfLengthArguments() = 2 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation3.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation3.ql index efe626dab088..0da55f864798 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation3.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation3.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("is3") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is3") and + e = a.getRightOperand() and not e.isImplicitlyTyped() and not e.hasInitializer() and e.getNumberOfLengthArguments() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation4.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation4.ql index 2a0dd5312833..b79ec3f7bd6d 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation4.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation4.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("is4") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is4") and + e = a.getRightOperand() and not e.isImplicitlyTyped() and not e.hasInitializer() and e.getNumberOfLengthArguments() = 2 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation5.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation5.ql index 04c29cafba8c..88df5bef175c 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation5.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation5.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e, int i where - a.getLValue().(VariableAccess).getTarget().hasName("is5") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is5") and + e = a.getRightOperand() and e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation6.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation6.ql index 7ca6bbe9668f..237900bbe7c9 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation6.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation6.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("is6") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is6") and + e = a.getRightOperand() and e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation7.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation7.ql index e34253a4f02b..a466195a0b1e 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation7.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation7.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("is7") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is7") and + e = a.getRightOperand() and e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation8.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation8.ql index cc1fd366db13..8eb810247c0a 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation8.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation8.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("contacts2") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("contacts2") and + e = a.getRightOperand() and e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation9.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation9.ql index fc4b561c170f..55ba1d1edb11 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation9.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation9.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("t") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("t") and + e = a.getRightOperand() and e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/Lambda1.ql b/csharp/ql/test/library-tests/expressions/Lambda1.ql index f4787c584f32..4e4d17b9d244 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda1.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda1.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f1") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f1") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getParameter(0).getType() instanceof ShortType and diff --git a/csharp/ql/test/library-tests/expressions/Lambda2.ql b/csharp/ql/test/library-tests/expressions/Lambda2.ql index 5fff4bd2cf62..ff5c06ec6704 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda2.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda2.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f2") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f2") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getParameter(0).getType() instanceof IntType and diff --git a/csharp/ql/test/library-tests/expressions/Lambda3.ql b/csharp/ql/test/library-tests/expressions/Lambda3.ql index 32aa919cd205..46d3a411b36f 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda3.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda3.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f3") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f3") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getParameter(0).getType() instanceof IntType and diff --git a/csharp/ql/test/library-tests/expressions/Lambda4.ql b/csharp/ql/test/library-tests/expressions/Lambda4.ql index ca7eb7a4207b..69ac40ad932f 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda4.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda4.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f4") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f4") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getParameter(0).getType() instanceof IntType and diff --git a/csharp/ql/test/library-tests/expressions/Lambda5.ql b/csharp/ql/test/library-tests/expressions/Lambda5.ql index cc577aa85cb7..3836ca4effd0 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda5.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda5.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f5") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f5") and e.getParent+() = assign and e.getNumberOfParameters() = 2 and e.getParameter(0).getType() instanceof IntType and diff --git a/csharp/ql/test/library-tests/expressions/Lambda6.ql b/csharp/ql/test/library-tests/expressions/Lambda6.ql index c584e4f6c093..4a6ee3128346 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda6.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda6.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f6") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f6") and e.getParent+() = assign and e.getNumberOfParameters() = 0 and e.getType().(DelegateType).hasName("Unit") and diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation10.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation10.ql index abd4a9d6ec6b..971654a95b3a 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation10.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation10.ql @@ -6,7 +6,7 @@ import csharp from Assignment a, CollectionInitializer i where - a.getLValue().(VariableAccess).getTarget().hasName("list1") and + a.getLeftOperand().(VariableAccess).getTarget().hasName("list1") and i.getParent+() = a and i.getElementInitializer(0).getArgument(0) instanceof AssignExpr select i.getAChild+() diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation11.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation11.ql index c874735c3000..0265579ff677 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation11.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation11.ql @@ -6,7 +6,7 @@ import csharp from Assignment a, CollectionInitializer i, AnonymousObjectCreation o where - a.getLValue().(VariableAccess).getTarget().hasName("list2") and + a.getLeftOperand().(VariableAccess).getTarget().hasName("list2") and i.getParent+() = a and i.getElementInitializer(0).getArgument(0) = o select i, o diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation4.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation4.ql index 5812397b11b6..6ec3e2ec327b 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation4.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation4.ql @@ -15,9 +15,9 @@ where cc.hasName("Point") and i = e.getInitializer() and a = i.getMemberInitializer(0) and - a.getLValue().(PropertyAccess).getTarget().hasName("X") and - a.getRValue().getValue() = "0" and + a.getLeftOperand().(PropertyAccess).getTarget().hasName("X") and + a.getRightOperand().getValue() = "0" and b = i.getMemberInitializer(1) and - b.getLValue().(PropertyAccess).getTarget().hasName("Y") and - b.getRValue().getValue() = "1" + b.getLeftOperand().(PropertyAccess).getTarget().hasName("Y") and + b.getRightOperand().getValue() = "1" select e, i, a, b diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation5.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation5.ql index cf31f518ec73..e130da484d74 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation5.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation5.ql @@ -15,10 +15,10 @@ where cc.hasName("Point") and i = e.getInitializer() and a = i.getMemberInitializer(0) and - a.getLValue().(PropertyAccess).getTarget().hasName("X") and - a.getRValue().getValue() = "2" and + a.getLeftOperand().(PropertyAccess).getTarget().hasName("X") and + a.getRightOperand().getValue() = "2" and b = i.getMemberInitializer(1) and - b.getLValue().(PropertyAccess).getTarget().hasName("Y") and - b.getRValue().getValue() = "3" and + b.getLeftOperand().(PropertyAccess).getTarget().hasName("Y") and + b.getRightOperand().getValue() = "3" and i.getNumberOfMemberInitializers() = 2 select i, a, b diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation6.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation6.ql index 11e771890ca2..529607c8d4ba 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation6.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation6.ql @@ -15,10 +15,10 @@ where cc.hasName("Rectangle") and i = e.getInitializer() and a = i.getMemberInitializer(0) and - a.getLValue().(PropertyAccess).getTarget().hasName("P1") and - a.getRValue() instanceof ObjectCreation and + a.getLeftOperand().(PropertyAccess).getTarget().hasName("P1") and + a.getRightOperand() instanceof ObjectCreation and b = i.getMemberInitializer(1) and - b.getLValue().(PropertyAccess).getTarget().hasName("P2") and - b.getRValue() instanceof ObjectCreation and + b.getLeftOperand().(PropertyAccess).getTarget().hasName("P2") and + b.getRightOperand() instanceof ObjectCreation and i.getNumberOfMemberInitializers() = 2 select i, a, b diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation7.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation7.ql index ccb17515525e..404011f18968 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation7.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation7.ql @@ -15,10 +15,10 @@ where cc.hasName("Rectangle2") and i = e.getInitializer() and a = i.getMemberInitializer(0) and - a.getLValue().(PropertyAccess).getTarget().hasName("P1") and - a.getRValue() instanceof ObjectInitializer and + a.getLeftOperand().(PropertyAccess).getTarget().hasName("P1") and + a.getRightOperand() instanceof ObjectInitializer and b = i.getMemberInitializer(1) and - b.getLValue().(PropertyAccess).getTarget().hasName("P2") and - b.getRValue() instanceof ObjectInitializer and + b.getLeftOperand().(PropertyAccess).getTarget().hasName("P2") and + b.getRightOperand() instanceof ObjectInitializer and i.getNumberOfMemberInitializers() = 2 select m, e diff --git a/csharp/ql/test/library-tests/expressions/RemoveEventExpr1.ql b/csharp/ql/test/library-tests/expressions/RemoveEventExpr1.ql index 95b223ed6f4d..991fdd6e492c 100644 --- a/csharp/ql/test/library-tests/expressions/RemoveEventExpr1.ql +++ b/csharp/ql/test/library-tests/expressions/RemoveEventExpr1.ql @@ -9,5 +9,5 @@ where c.hasName("LoginDialog") and e.getEnclosingCallable() = c and e.getTarget().hasName("Click") and - e.getLValue().getQualifier().(FieldAccess).getTarget().hasName("CancelButton") + e.getLeftOperand().getQualifier().(FieldAccess).getTarget().hasName("CancelButton") select c, e