Files
codeql/ql/src/codeql_ruby/ast/internal/Module.qll
2021-02-02 18:00:29 +00:00

47 lines
1.3 KiB
Plaintext

private import codeql_ruby.AST
private import codeql_ruby.ast.internal.Expr
private import codeql_ruby.ast.internal.TreeSitter
module Class {
class Range extends ExprSequence::Range, @class {
final override Generated::Class generated;
final override Expr getExpr(int i) { result = generated.getChild(i) }
final string getName() {
result = generated.getName().(Generated::Token).getValue() or
result = this.getNameScopeResolution().getName()
}
final ScopeResolution getNameScopeResolution() { result = generated.getName() }
final Expr getSuperclassExpr() { result = generated.getSuperclass().getChild() }
}
}
module SingletonClass {
class Range extends ExprSequence::Range, @singleton_class {
final override Generated::SingletonClass generated;
final override Expr getExpr(int i) { result = generated.getChild(i) }
final Expr getValue() { result = generated.getValue() }
}
}
module Module {
class Range extends ExprSequence::Range, @module {
final override Generated::Module generated;
final override Expr getExpr(int n) { result = generated.getChild(n) }
final string getName() {
result = generated.getName().(Generated::Token).getValue() or
result = this.getNameScopeResolution().getName()
}
final ScopeResolution getNameScopeResolution() { result = generated.getName() }
}
}