### Restify::FormatterSetup::getAFormatterHandler Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/frameworks/Restify.qll/predicate.Restify%24Restify%24FormatterSetup%24getAFormatterHandler.0.html Gets the formatter handler installed by this setup. ```APIDOC ## Restify::FormatterSetup::getAFormatterHandler ### Description Gets the formatter handler installed by this setup. ### Signature `FunctionNode getAFormatterHandler()` ``` -------------------------------- ### Example Package Name Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/Expr.qll/type.Expr%24PackageName.html Demonstrates a simple package name. ```Go fmt ``` -------------------------------- ### Routing::getRouteSetupNode Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/Routing.qll/predicate.Routing%24Routing%24getRouteSetupNode.1.html Gets the routing node corresponding to the route installed at the given route setup. This is not generally the same as `getNode(call)`, since the route setup method can return a value that does not correspond to the route that was just installed. Typically this occurs when the route setup method is chainable and returns the router itself. ```APIDOC ## Predicate: getRouteSetupNode ### Description Gets the routing node corresponding to the route installed at the given route setup. This is not generally the same as `getNode(call)`, since the route setup method can return a value that does not correspond to the route that was just installed. Typically this occurs when the route setup method is chainable and returns the router itself. ### Import path `import javascript` ### Signature `Node getRouteSetupNode(Node call)` ``` -------------------------------- ### File Instance Example Source: https://codeql.github.com/codeql-standard-libraries/ruby/codeql/ruby/frameworks/Files.qll/type.Files%24File%24FileInstance.html Demonstrates the creation and usage of a File instance. This example highlights typical operations like opening a file and reading its content. ```ruby f = File.new("foo.txt") puts f.read() ``` -------------------------------- ### Afero Initialization Example Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/frameworks/Afero.qll/type.Afero%24Afero%24AdditionalTaintStep.html Illustrates initializing an Afero instance with a safe filesystem type, such as `osFS` wrapped by `NewBasePathFs`. This is a common scenario where `Afero::AdditionalTaintStep` is relevant. ```go n2 := &afero.Afero{Fs: afero.NewBasePathFs(osFS, "./")} ``` -------------------------------- ### TypedefType::stripTopLevelSpecifiers Source: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/TypedefType.qll/predicate.TypedefType%24TypedefType%24stripTopLevelSpecifiers.0.html Gets this type after any top-level specifiers and typedefs have been stripped. For example, starting with `const i64* const`, this predicate will return `const i64*`. ```APIDOC ## TypedefType::stripTopLevelSpecifiers ### Description Gets this type after any top-level specifiers and typedefs have been stripped. For example, starting with `const i64* const`, this predicate will return `const i64*`. ### Signature `Type stripTopLevelSpecifiers()` ``` -------------------------------- ### NetHttpRequest Examples Source: https://codeql.github.com/codeql-standard-libraries/ruby/codeql/ruby/frameworks/http_clients/NetHttp.qll/type.NetHttp%24NetHttpRequest.html Demonstrates common ways to initiate HTTP requests using Net::HTTP, including one-off requests and connection reuse. ```ruby # one-off request Net::HTTP.get("http://example.com/") Net::HTTP.post("http://example.com/", "some_data") req = Net::HTTP.new("example.com") response = req.get("/") # connection re-use Net::HTTP.start("http://example.com") do |http| http.get("/") end ``` -------------------------------- ### TypeofType::stripTopLevelSpecifiers Source: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/predicate.Type%24TypeofType%24stripTopLevelSpecifiers.0.html Gets this type after any top-level specifiers and typedefs have been stripped. For example, starting with `const i64* const`, this predicate will return `const i64*`. ```APIDOC ## Predicate: TypeofType::stripTopLevelSpecifiers ### Description Gets this type after any top-level specifiers and typedefs have been stripped. ### Example Starting with `const i64* const`, this predicate will return `const i64*`. ### Signature `Type stripTopLevelSpecifiers()` ``` -------------------------------- ### Type::stripTopLevelSpecifiers Source: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/predicate.Type%24Type%24stripTopLevelSpecifiers.0.html Gets this type after any top-level specifiers and typedefs have been stripped. For example, starting with `const i64* const`, this predicate will return `const i64*`. ```APIDOC ## Type::stripTopLevelSpecifiers ### Description Gets this type after any top-level specifiers and typedefs have been stripped. For example, starting with `const i64* const`, this predicate will return `const i64*`. ### Signature `Type stripTopLevelSpecifiers()` ``` -------------------------------- ### Generic Function Instantiation Examples Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/Expr.qll/type.Expr%24GenericFunctionInstantiationExpr.html Illustrates the syntax for instantiating generic functions with single or multiple type arguments. ```go genericfunction[type] genericfunction[type1, type2] ``` -------------------------------- ### IntrinsicTransformedType::stripTopLevelSpecifiers Source: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/predicate.Type%24IntrinsicTransformedType%24stripTopLevelSpecifiers.0.html Gets this type after any top-level specifiers and typedefs have been stripped. For example, starting with `const i64* const`, this predicate will return `const i64*`. ```APIDOC ## Type stripTopLevelSpecifiers() ### Description Gets this type after any top-level specifiers and typedefs have been stripped. For example, starting with `const i64* const`, this predicate will return `const i64*`. ### Signature `Type stripTopLevelSpecifiers()` ``` -------------------------------- ### Basic Function Call Examples Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/Expr.qll/type.Expr%24CallExpr.html Illustrates simple function calls with and without arguments, including variadic arguments. ```go f(x) ``` ```go g(a, b...) ``` -------------------------------- ### Decltype::stripTopLevelSpecifiers Source: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Type.qll/predicate.Type%24Decltype%24stripTopLevelSpecifiers.0.html Gets this type after any top-level specifiers and typedefs have been stripped. For example, starting with `const i64* const`, this predicate will return `const i64*`. ```APIDOC ## Member predicate Decltype::stripTopLevelSpecifiers ### Description Gets this type after any top-level specifiers and typedefs have been stripped. For example, starting with `const i64* const`, this predicate will return `const i64*`. ### Signature `Type stripTopLevelSpecifiers()` ``` -------------------------------- ### Threat Model Configuration Example Source: https://codeql.github.com/codeql-standard-libraries/javascript/codeql/threatmodels/ThreatModels.qll/predicate.ThreatModels%24threatModelConfiguration.3.html This example demonstrates how to configure threat models. It first enables all threat models, then disables the 'remote' group, and finally re-enables the 'environment' threat model. Lower priority values are applied first. ```ql { kind: "all", enable: true, priority: 0 } ``` ```ql { kind: "remote", enable: false, priority: 1 } ``` ```ql { kind: "environment", enable: true, priority: 2 } ``` -------------------------------- ### Using Afero with NewBasePathFs Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/frameworks/Afero.qll/predicate.Afero%24Afero%24aferoSanitizer.1.html Demonstrates how to create a base path file system using `afero.NewBasePathFs` and then use it with `afero.ReadFile`. This pattern is recognized by the `aferoSanitizer` predicate. ```go basePathFs := afero.NewBasePathFs(osFS, "tmp") afero.ReadFile(basePathFs, filepath) ``` -------------------------------- ### Get Arguments to underscore.extend Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/ApiGraphs.qll/type.ApiGraphs%24API%24Node.html This example demonstrates a simplified way to retrieve arguments passed to the `extend` function from the `underscore` library. It starts by importing the module, accessing the `extend` member, and then targeting the first parameter. ```javascript API::moduleImport("underscore").getMember("extend").getParameter(0).asSink() ``` -------------------------------- ### Example Goto Statement Source: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/stmts/Stmt.qll/type.Stmt%24GotoStmt.html Illustrates a basic 'goto' statement and its corresponding label. This is useful for understanding how 'goto' statements are represented and analyzed. ```cpp goto someLabel; ... somelabel: ``` -------------------------------- ### MacroAccess::getLocation Source: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/Macro.qll/predicate.Macro%24MacroAccess%24getLocation.0.html Gets the location of the outermost macro access that triggered this macro access. This is equivalent to calling `this.getOutermostMacroAccess().getActualLocation()`. For example, the location of the invocation of `C` in `P(C)` will be the whole source range starting with `P` and ending with `)`. ```APIDOC ## MacroAccess::getLocation ### Description Gets the location of the outermost macro access that triggered this macro access. This is equivalent to calling `this.getOutermostMacroAccess().getActualLocation()`. ### Example For example, the location of the invocation of `C` in `P(C)` will be the whole source range starting with `P` and ending with `)`. ### Signature `Location getLocation()` ``` -------------------------------- ### Find all functions starting with 'get' Source: https://codeql.github.com/docs/codeql-language-guides/functions-in-python Use `Function.getName().matches("get%")` to list all functions whose names start with 'get'. This query may return a large number of results, including non-methods. ```python import python from Function f where f.getName().matches("get%") select f, "This is a function called get..." ``` -------------------------------- ### Generic Type Instantiation Examples Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/Expr.qll/type.Expr%24GenericTypeInstantiationExpr.html Illustrates the syntax for instantiating generic types with one or more type arguments. ```go generictype[type] generictype[type1, type2] ``` -------------------------------- ### Start Line Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/frameworks/Angular2.qll/type.Angular2%24Angular2%24ComponentClass.html Gets the start line of this data flow node. ```APIDOC ## getStartLine ### Description Gets the start line of this data flow node. ### Method `getStartLine()` ### Returns The start line of this data flow node. ``` -------------------------------- ### OpenURI Request Examples Source: https://codeql.github.com/codeql-standard-libraries/ruby/codeql/ruby/frameworks/http_clients/OpenURI.qll/type.OpenURI%24OpenUriRequest.html Demonstrates how to make HTTP requests using OpenURI. These examples show common ways to open URLs and read their content. ```ruby URI.open("http://example.com").readlines URI.parse("http://example.com").open.read ``` -------------------------------- ### Start Column Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/frameworks/Angular2.qll/type.Angular2%24Angular2%24ComponentClass.html Gets the start column of this data flow node. ```APIDOC ## getStartColumn ### Description Gets the start column of this data flow node. ### Method `getStartColumn()` ### Returns The start column of this data flow node. ``` -------------------------------- ### Create a Go CodeQL Database with Custom Build Script Source: https://codeql.github.com/docs/codeql-cli/creating-codeql-databases Create a CodeQL database for a Go project by specifying a custom build script using the --command option. ```bash codeql database create go-database --language=go --command='./scripts/build.sh' ``` -------------------------------- ### Find all methods starting with 'get' Source: https://codeql.github.com/docs/codeql-language-guides/functions-in-python Refine the previous query by adding `Function.isMethod()` to find only methods whose names start with 'get'. This helps filter out standalone functions. ```python import python from Function f where f.getName().matches("get%") and f.isMethod() select f, "This is a method called get..." ``` -------------------------------- ### Initialize a CodeQL Database Source: https://codeql.github.com/docs/codeql-cli/manual/database-init Use this command to create a new CodeQL database. Specify the source root directory and the target database path. You can optionally specify languages, authentication for GitHub, and extractor options. ```shell codeql database init --source-root= [--language=[,...]] [--github-auth-stdin] [--github-url=] [--extractor-option=] ... -- ``` ```shell codeql database init --source-root= [--language=[,...]] [--github-auth-stdin] [--github-url=] [--extractor-option=] ... -- ``` -------------------------------- ### Open3 Pipeline Command Examples Source: https://codeql.github.com/codeql-standard-libraries/ruby/codeql/ruby/frameworks/stdlib/Open3.qll/type.Open3%24Open3%24Open3PipelineCall.html Demonstrates different ways to construct a pipeline of system commands using `Open3.pipeline`. Commands can be specified as strings or arrays, and can include shell-interpreted arguments or nested command structures. ```ruby Open3.pipeline("cat foo.txt", "tail") ``` ```ruby Open3.pipeline(["cat", "foo.txt"], "tail") ``` ```ruby Open3.pipeline([{}, "cat", "foo.txt"], "tail") ``` ```ruby Open3.pipeline([["cat", "cat"], "foo.txt"], "tail") ``` -------------------------------- ### ErbDirective::getAChildStmt Source: https://codeql.github.com/codeql-standard-libraries/ruby/codeql/ruby/ast/Erb.qll/predicate.Erb%24ErbDirective%24getAChildStmt.0.html Gets a statement that starts in directive that is not a child of any other statement starting in this directive. ```APIDOC ## Predicate: ErbDirective::getAChildStmt ### Description Gets a statement that starts in directive that is not a child of any other statement starting in this directive. ### Signature `Stmt getAChildStmt()` ``` -------------------------------- ### Get Start Line Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/GlobalAccessPaths.qll/type.GlobalAccessPaths%24AccessPath%24Root.html Retrieves the start line of the current data flow node. ```APIDOC ## getStartLine ### Description Gets the start line of this data flow node. ### Predicate Signature `Node.getStartLine() returns int` ``` -------------------------------- ### Bitwise Expression Examples Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/Expr.qll/type.Expr%24BitwiseExpr.html Illustrates the basic syntax for bitwise expressions in Go using XOR and OR operators. ```go x ^ y ``` ```go a | b ``` -------------------------------- ### Get Start Column Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/GlobalAccessPaths.qll/type.GlobalAccessPaths%24AccessPath%24Root.html Retrieves the start column of the current data flow node. ```APIDOC ## getStartColumn ### Description Gets the start column of this data flow node. ### Predicate Signature `Node.getStartColumn() returns int` ``` -------------------------------- ### Example of a ReturnSuccessor Source: https://codeql.github.com/codeql-standard-libraries/actions/codeql/controlflow/SuccessorType.qll/type.SuccessorType%24ReturnSuccessor.html This example demonstrates a simple function M with a return statement. The callable exit node of M is a return successor of the return; statement. ```ql void M() { return; } ``` -------------------------------- ### Basic CodeQL Database Creation Source: https://codeql.github.com/docs/codeql-cli/creating-codeql-databases Use this command to create a new CodeQL database for a specified language. The database directory will be created if it doesn't exist. ```bash codeql database create --language= ``` -------------------------------- ### LocalFunction::getTarget Source: https://codeql.github.com/codeql-standard-libraries/csharp/semmle/code/csharp/exprs/Call.qll/predicate.Call%24LocalFunctionCall%24getTarget.0.html Gets the static (compile-time) target of this call. For example, the static target of `x.M()` on line 9 is `A.M` in the provided example. Use `getARuntimeTarget()` instead to get a potential run-time target. ```APIDOC ## LocalFunction::getTarget ### Description Gets the static (compile-time) target of this call. ### Method Signature `LocalFunction getTarget()` ### Example ```csharp class A { virtual void M() { } } class B : A { override void M() { } static void CallM(A x) { x.M(); // The static target of this call is A.M } } ``` ### Related Predicates - `getARuntimeTarget()`: Use this to get a potential run-time target, which would include `B.M` in the example above. ``` -------------------------------- ### TestPattern::getValue Source: https://codeql.github.com/codeql-standard-libraries/ruby/codeql/ruby/ast/Control.qll/predicate.Control%24TestPattern%24getValue.0.html Gets the expression being compared. For example, `foo` in the following example: `foo in Point{ x:, y: }`. ```APIDOC ## Member predicate TestPattern::getValue ### Description Gets the expression being compared. For example, `foo` in the following example. ``` foo in Point{ x:, y: } ``` ### Signature `Expr getValue()` ``` -------------------------------- ### Basic Index Expression Examples Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/Expr.qll/type.Expr%24IndexExpr.html These examples demonstrate the syntax for accessing elements in arrays, pointers to arrays, slices, and maps. ```go array[i] ``` ```go arrayptr[i] ``` ```go slice[i] ``` ```go map[key] ``` -------------------------------- ### Example Usage of IO::IOInstance Source: https://codeql.github.com/codeql-standard-libraries/ruby/codeql/ruby/frameworks/core/IO.qll/type.IO%24IO%24IOInstance.html Demonstrates how to create an IO instance for reading from a file and reading data from it. This example highlights the creation of an IO object using `IO.new` and subsequent data retrieval with `read`. ```ruby rand = IO.new(IO.sysopen("/dev/random", "r"), "r") rand_data = rand.read(32) ``` -------------------------------- ### CallSignatureType::getRestParameterType Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/TypeScript.qll/predicate.TypeScript%24CallSignatureType%24getRestParameterType.0.html Gets the type of the rest parameter, if any. For example, for the signature `(...y: string[])`, this gets the type `string`. ```APIDOC ## Member predicate CallSignatureType::getRestParameterType ### Description Gets the type of the rest parameter, if any. For example, for the signature `(...y: string[])`, this gets the type `string`. ### Signature `Type getRestParameterType()` ``` -------------------------------- ### Documentable Examples Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/Comments.qll/type.Comments%24Documentable.html Illustrates different types of program elements that can be documented, such as function declarations, constants with specifiers, and comments associated with them. ```go // function documentation func double(x int) int { return 2 * x } ``` ```go // generic declaration documentation const ( // specifier documentation size int64 = 1024 eof = -1 // not specifier documentation ) ``` -------------------------------- ### StmtContainer::getStartBB Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/AST.qll/predicate.AST%24StmtContainer%24getStartBB.0.html Gets the start basic block of this function, that is, the basic block containing the start node of its CFG. ```APIDOC ## Method: StmtContainer::getStartBB ### Description Gets the start basic block of this function, that is, the basic block containing the start node of its CFG. ### Signature `BasicBlock getStartBB()` ### Returns - `BasicBlock`: The basic block representing the start of the function's control flow graph. ``` -------------------------------- ### PragmaChecksumDirective::getGuid Source: https://codeql.github.com/codeql-standard-libraries/csharp/semmle/code/csharp/Preprocessor.qll/predicate.Preprocessor%24PragmaChecksumDirective%24getGuid.0.html Gets the GUID of this directive. ```APIDOC ## Member predicate PragmaChecksumDirective::getGuid Gets the GUID of this directive. ### Signature `string getGuid()` ### Returns A string representing the GUID of the `#pragma checksum` directive. ``` -------------------------------- ### Example Instruction Output Source: https://codeql.github.com/codeql-standard-libraries/cpp/semmle/code/cpp/ir/implementation/aliased_ssa/Instruction.qll/predicate.Instruction%24Instruction%24getDumpString.0.html This example shows the expected output format for the getDumpString predicate, illustrating how an instruction like 'Store r0_26, r0_27' would be represented. ```text mu0_28(int) = Store r0_26, r0_27 ``` -------------------------------- ### Create a Go CodeQL Database with Build Tracing Source: https://codeql.github.com/docs/codeql-cli/creating-codeql-databases Create a Go CodeQL database by setting the environment variable CODEQL_EXTRACTOR_GO_BUILD_TRACING to 'on'. This forces CodeQL to limit extraction to files compiled by your build script. ```bash CODEQL_EXTRACTOR_GO_BUILD_TRACING=on codeql database create go-database --language=go ``` -------------------------------- ### JavaScript Duplicate Switch Case Example Source: https://codeql.github.com/codeql-query-help/javascript/js-duplicate-switch-case This example demonstrates a switch statement with two identical 'start' case labels. The second 'start' case will never be reached at runtime, indicating a potential logic error or copy-paste mistake. ```javascript function controller(msg) { switch (msg) { case 'start': start(); break; case 'start': stop(); break; default: throw new Error("Message not understood."); } } ``` -------------------------------- ### DataFlow::PropWrite::getInstalledAccessor Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/dataflow/DataFlow.qll/predicate.DataFlow%24DataFlow%24PropWrite%24getInstalledAccessor.1.html If this installs an accessor on an object, as opposed to a regular property, gets the body of the accessor. `isSetter` is true if installing a setter, and false is installing a getter. ```APIDOC ## DataFlow::PropWrite::getInstalledAccessor ### Description If this installs an accessor on an object, as opposed to a regular property, gets the body of the accessor. `isSetter` is true if installing a setter, and false is installing a getter. ### Signature `FunctionNode getInstalledAccessor(boolean isSetter)` ``` -------------------------------- ### Binary Operations Examples Source: https://codeql.github.com/docs/ql-language-reference/expressions Shows examples of binary operations including arithmetic operators and string concatenation. ```ql 5 % 2 ``` ```ql (9 + 1) / (-2) ``` ```ql "Q" + "L" ``` ```ql 2 * min(float f | f in [-3 .. 3]) ``` -------------------------------- ### Initialize CodeQL Database with Indirect Tracing Source: https://codeql.github.com/docs/codeql-cli/creating-codeql-databases Use this command to initialize a CodeQL database with indirect build tracing. This is useful when autobuilders don't work or you can't wrap build commands. Ensure you specify the database path and the begin-tracing option. ```bash codeql database init ... --begin-tracing ``` -------------------------------- ### prefixLength(State start, State state) Source: https://codeql.github.com/codeql-standard-libraries/java/codeql/regex/nfa/NfaUtils.qll/predicate.NfaUtils%24Make%24PrefixConstruction%24prefixLength.2.html Gets the minimum number of transitions it takes to reach `state` from the `start` state. ```APIDOC ## Method signature `int prefixLength(State start, State state)` ### Description Gets the minimum number of transitions it takes to reach `state` from the `start` state. ### Parameters * **start** (State) - The starting state of the NFA. * **state** (State) - The target state to reach. ### Returns * **int** - The minimum number of transitions. ``` -------------------------------- ### Slice Literal Examples Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/Expr.qll/type.Expr%24SliceLit.html Demonstrates the syntax for creating slice literals with integer and string elements. ```go []int{1, 2, 3, 5} ``` ```go []string{"Sat", "Sun"} ``` -------------------------------- ### SharedPreferencesEditorMethodCall::getAStore Source: https://codeql.github.com/codeql-standard-libraries/java/semmle/code/java/security/CleartextStorageSharedPrefsQuery.qll/predicate.CleartextStorageSharedPrefsQuery%24SharedPreferencesEditorMethodCall%24getAStore.0.html Gets a store, for example `editor.commit();`. ```APIDOC ## Method `SharedPreferencesEditorMethodCall::getAStore` ### Description Gets a store, for example `editor.commit();`. ### Signature `Expr getAStore()` ``` -------------------------------- ### RegExpTerm::getStart Source: https://codeql.github.com/codeql-standard-libraries/ruby/codeql/ruby/regexp/RegExpTreeView.qll/predicate.RegExpTreeView%24Impl%24RegExpTerm%24getStart.0.html Gets the offset at which this term starts. ```APIDOC ## RegExpTerm::getStart ### Description Gets the offset at which this term starts. ### Signature `int getStart()` ``` -------------------------------- ### QuoAssignStmt Example Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/Stmt.qll/type.Stmt%24QuoAssignStmt.html This snippet shows a basic example of a divide-assign statement. ```Go a /= 2 ``` -------------------------------- ### CallSignatureType::getRestParameterArrayType Source: https://codeql.github.com/codeql-standard-libraries/javascript/semmle/javascript/TypeScript.qll/predicate.TypeScript%24CallSignatureType%24getRestParameterArrayType.0.html Gets the type of the rest parameter as an array, if it exists. For example, for the signature `(...y: string[])`, this gets the type `string[]`. ```APIDOC ## Predicate: CallSignatureType::getRestParameterArrayType ### Description Gets the type of the rest parameter as an array, if it exists. For example, for the signature `(...y: string[])`, this gets the type `string[]`. ### Signature `PlainArrayType getRestParameterArrayType()` ``` -------------------------------- ### Go Variable Declaration Example Source: https://codeql.github.com/codeql-standard-libraries/go/semmle/go/Stmt.qll/type.Stmt%24DefineStmt.html Demonstrates a simple variable declaration and initialization in Go, which is represented by a DefineStmt in CodeQL. ```go x := 1 ```