From c877eb46428020f6a46ad36b04a84a85d4af5a4b Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Thu, 18 Feb 2021 13:42:52 +0100 Subject: [PATCH] AST: add additional token-types to variable patterns --- ql/src/codeql_ruby/ast/Pattern.qll | 2 +- ql/src/codeql_ruby/ast/internal/Pattern.qll | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ql/src/codeql_ruby/ast/Pattern.qll b/ql/src/codeql_ruby/ast/Pattern.qll index 4be8084c198..82ed5d1ff90 100644 --- a/ql/src/codeql_ruby/ast/Pattern.qll +++ b/ql/src/codeql_ruby/ast/Pattern.qll @@ -35,7 +35,7 @@ class LhsExpr extends Pattern, Expr { } /** A simple variable pattern. */ -class VariablePattern extends Pattern { +class VariablePattern extends Pattern, VariablePattern::VariableToken { override VariablePattern::Range range; /** Gets the variable used in (or introduced by) this pattern. */ diff --git a/ql/src/codeql_ruby/ast/internal/Pattern.qll b/ql/src/codeql_ruby/ast/internal/Pattern.qll index 44ea94e2704..275e483107a 100644 --- a/ql/src/codeql_ruby/ast/internal/Pattern.qll +++ b/ql/src/codeql_ruby/ast/internal/Pattern.qll @@ -64,8 +64,11 @@ module LhsExpr { } module VariablePattern { - class Range extends LhsExpr::Range, @token_identifier { - override Generated::Identifier generated; + class VariableToken = + @token_identifier or @token_instance_variable or @token_class_variable or @token_global_variable; + + class Range extends LhsExpr::Range, VariableToken { + override Generated::Token generated; string getVariableName() { result = generated.getValue() }