mirror of
https://github.com/github/codeql.git
synced 2026-02-20 00:43:44 +01:00
Add qldoc comment and isOptional predicate to KeywordParameter
This commit is contained in:
@@ -108,7 +108,15 @@ class HashSplatParameter extends @hash_splat_parameter, NamedParameter {
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* A keyword parameter, including a default value if the parameter is optional.
|
||||
* For example, in the following example, `foo` is a keyword parameter with a
|
||||
* default value of `0`, and `bar` is a mandatory keyword parameter with no
|
||||
* default value mandatory parameter).
|
||||
* ```rb
|
||||
* def f(foo: 0, bar:)
|
||||
* foo * 10 + bar
|
||||
* end
|
||||
* ```
|
||||
*/
|
||||
class KeywordParameter extends @keyword_parameter, NamedParameter {
|
||||
override Generated::KeywordParameter generated;
|
||||
@@ -127,6 +135,12 @@ class KeywordParameter extends @keyword_parameter, NamedParameter {
|
||||
*/
|
||||
AstNode getDefaultValue() { result = generated.getValue() }
|
||||
|
||||
/**
|
||||
* Holds if the parameter is optional. That is, there is a default value that
|
||||
* is used when the caller omits this parameter.
|
||||
*/
|
||||
predicate isOptional() { exists(this.getDefaultValue()) }
|
||||
|
||||
override string toString() { result = this.getName() }
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ query predicate hashSplatParams(HashSplatParameter hsp, string name) { name = hs
|
||||
|
||||
query predicate keywordParams(KeywordParameter kp, string name, string defaultValueStr) {
|
||||
name = kp.getName() and
|
||||
if exists(kp.getDefaultValue())
|
||||
if kp.isOptional()
|
||||
then defaultValueStr = kp.getDefaultValue().toString()
|
||||
else defaultValueStr = "(none)"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user