Skip to content

Commit 81ce8dc

Browse files
committed
C#: Copy dotnet.Parameterizable implementation.
1 parent 92447dc commit 81ce8dc

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

csharp/ql/lib/semmle/code/csharp/Member.qll

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import Callable
44
import Element
55
import Modifier
66
import Variable
7-
private import dotnet
87
private import Implements
98
private import TypeRef
109
private import commons.QualifiedName
@@ -536,10 +535,24 @@ class Virtualizable extends Overridable, Member, @virtualizable {
536535
* A parameterizable declaration. Either a callable (`Callable`), a delegate
537536
* type (`DelegateType`), or an indexer (`Indexer`).
538537
*/
539-
class Parameterizable extends DotNet::Parameterizable, Declaration, @parameterizable {
540-
override Parameter getRawParameter(int i) { params(result, _, _, i, _, this, _) }
538+
class Parameterizable extends Declaration, @parameterizable {
539+
/** Gets raw parameter `i`, including the `this` parameter at index 0. */
540+
Parameter getRawParameter(int i) { params(result, _, _, i, _, this, _) }
541541

542-
override Parameter getParameter(int i) { params(result, _, _, i, _, this, _) }
542+
/** Gets the `i`th parameter, excluding the `this` parameter. */
543+
Parameter getParameter(int i) { params(result, _, _, i, _, this, _) }
544+
545+
/** Gets the number of parameters of this callable. */
546+
int getNumberOfParameters() { result = count(this.getAParameter()) }
547+
548+
/** Holds if this declaration has no parameters. */
549+
predicate hasNoParameters() { not exists(this.getAParameter()) }
550+
551+
/** Gets a parameter, if any. */
552+
Parameter getAParameter() { result = this.getParameter(_) }
553+
554+
/** Gets a raw parameter (including the qualifier), if any. */
555+
final Parameter getARawParameter() { result = this.getRawParameter(_) }
543556

544557
/**
545558
* Gets the type of the parameter, possibly prefixed

0 commit comments

Comments
 (0)