From 1ada9feda7f1291182bfebaaf1561a0b469f267e Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 18 Dec 2020 13:00:28 +0100 Subject: [PATCH] Make VariableAccess "abstract" --- ql/src/codeql_ruby/ast/Variable.qll | 4 +--- ql/src/codeql_ruby/ast/internal/Variable.qll | 18 ++++++++---------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/ql/src/codeql_ruby/ast/Variable.qll b/ql/src/codeql_ruby/ast/Variable.qll index 73b4e2a0593..275a699db63 100644 --- a/ql/src/codeql_ruby/ast/Variable.qll +++ b/ql/src/codeql_ruby/ast/Variable.qll @@ -60,15 +60,13 @@ class LocalVariable extends Variable { } /** An access to a variable. */ -class VariableAccess extends Expr, @token_identifier { +class VariableAccess extends Expr { override VariableAccess::Range range; /** Gets the variable this identifier refers to. */ Variable getVariable() { result = range.getVariable() } final override string toString() { result = this.getVariable().getName() } - // TODO uncomment this and fix the params test - //override string getAPrimaryQlClass() { result = "VariableAccess" } } /** An access to a local variable. */ diff --git a/ql/src/codeql_ruby/ast/internal/Variable.qll b/ql/src/codeql_ruby/ast/internal/Variable.qll index a1fd920231a..f827924d883 100644 --- a/ql/src/codeql_ruby/ast/internal/Variable.qll +++ b/ql/src/codeql_ruby/ast/internal/Variable.qll @@ -227,20 +227,18 @@ module LocalVariable { } module VariableAccess { - class Range extends Expr::Range, @token_identifier { - override Generated::Identifier generated; - Variable variable; - - Range() { access(this, variable) } - - Variable getVariable() { result = variable } + abstract class Range extends Expr::Range { + abstract Variable getVariable(); } } module LocalVariableAccess { - class Range extends VariableAccess::Range { - override LocalVariable variable; + class Range extends VariableAccess::Range, @token_identifier { + override Generated::Identifier generated; + LocalVariable variable; - override LocalVariable getVariable() { result = variable } + Range() { access(this, variable) } + + final override LocalVariable getVariable() { result = variable } } }