import codeql.ruby.AST query predicate variableAccess(VariableAccess access, Variable variable, Scope scope) { variable = access.getVariable() and scope = variable.getDeclaringScope() } query predicate explicitWrite(VariableWriteAccess write, AstNode assignment) { write.isExplicitWrite(assignment) } query predicate implicitWrite(VariableWriteAccess write) { write.isImplicitWrite() } query predicate readAccess(VariableReadAccess read) { any() } query predicate captureAccess(LocalVariableAccess access) { access.isCapturedAccess() }