CodeQL library for Ruby
codeql/ruby-all 0.8.15-dev (changelog, source)
Search

Module Pattern

Import path

import codeql.ruby.ast.Pattern

Classes

AlternativePattern

A composite pattern matching one of the given sub-patterns, for example: rb in 1 | 2 | 3

ArrayPattern

An array pattern, for example: rb in [] in ["first", Integer => x, "last"] in ["a", Integer => x, *] in ["a", Integer => x, ] in [1, 2, *x, 7, 8] in [*init, 7, 8] in List["a", Integer => x, *tail]

AsPattern

A pattern match that binds to the specified local variable, for example Integer => a in the following: rb case 1 in Integer => a then puts "#{a} is an integer value" end

CasePattern

A pattern used in a case-in expression. For example rb case expr in [ x ] then ... in Point(a:, b:) then ... in Integer => x then ... end

FindPattern

A find pattern, for example: rb in [*, "a", Integer => x, *] in List[*init, "a", Integer => x, *tail] in List[*, "a", Integer => x, *]

HashPattern

A hash pattern, for example: rb in {} in { a: 1 } in { a: 1, **rest } in { a: 1, **nil } in Node{ label: , children: [] }

ParenthesizedPattern

A parenthesized pattern: rb in (1 ..) in (0 | "" | [] | {})

ReferencePattern

A variable or value reference in a pattern, i.e. ^x, and ^(2 * x) in the following example: rb x = 10 case expr in ^x then puts "ok" in ^(2 * x) then puts "ok" end