diff --git a/ql/src/codeql_ruby/ast/Operation.qll b/ql/src/codeql_ruby/ast/Operation.qll index a25b0e4df16..8f3da5ffb5c 100644 --- a/ql/src/codeql_ruby/ast/Operation.qll +++ b/ql/src/codeql_ruby/ast/Operation.qll @@ -445,7 +445,7 @@ class Assignment extends Operation { override Assignment::Range range; /** Gets the left hand side of this assignment. */ - final Expr getLeftOperand() { result = range.getLeftOperand() } + Pattern getLeftOperand() { result = range.getLeftOperand() } /** Gets the right hand side of this assignment. */ final Expr getRightOperand() { result = range.getRightOperand() } @@ -554,6 +554,8 @@ class AssignExponentExpr extends AssignArithmeticOperation, @operator_assignment */ class AssignLogicalOperation extends AssignOperation { override AssignLogicalOperation::Range range; + + final override LhsExpr getLeftOperand() { result = super.getLeftOperand() } } /** diff --git a/ql/src/codeql_ruby/ast/internal/Operation.qll b/ql/src/codeql_ruby/ast/internal/Operation.qll index b605416bce9..ee11ad805ad 100644 --- a/ql/src/codeql_ruby/ast/internal/Operation.qll +++ b/ql/src/codeql_ruby/ast/internal/Operation.qll @@ -245,7 +245,7 @@ module NoRegexMatchExpr { module Assignment { abstract class Range extends Operation::Range { - abstract Expr getLeftOperand(); + abstract Pattern getLeftOperand(); abstract Expr getRightOperand(); @@ -269,7 +269,7 @@ module AssignExpr { class Range extends Assignment::Range, @assignment { final override Generated::Assignment generated; - final override Expr getLeftOperand() { result = generated.getLeft() } + final override Pattern getLeftOperand() { result = generated.getLeft() } final override Expr getRightOperand() { result = generated.getRight() }