mirror of
https://github.com/github/codeql.git
synced 2026-02-26 20:03:51 +01:00
65 lines
1.3 KiB
Plaintext
65 lines
1.3 KiB
Plaintext
import csharp
|
|
|
|
class TypeRef extends @typeref
|
|
{
|
|
string toString() {
|
|
hasName(result)
|
|
}
|
|
|
|
predicate hasName(string name) {
|
|
typerefs(this, name)
|
|
}
|
|
|
|
Type getType() {
|
|
typeref_type(this, result)
|
|
}
|
|
}
|
|
|
|
class MissingType extends TypeRef
|
|
{
|
|
MissingType() {
|
|
not exists(getType())
|
|
}
|
|
}
|
|
|
|
from
|
|
Class class1,
|
|
MissingType class2,
|
|
MissingType class3,
|
|
MissingType class4,
|
|
MissingType class5,
|
|
MissingType del2,
|
|
Field a,
|
|
Method b,
|
|
Method c,
|
|
Method d,
|
|
Method e,
|
|
Method f,
|
|
Method g
|
|
where
|
|
class1.hasQualifiedName("Assembly1.Class1") and
|
|
class2.hasName("Class2") and
|
|
class3.hasName("Class3") and
|
|
class4.hasName("Class4") and
|
|
class5.hasName("Class5") and
|
|
del2.hasName("del2") and
|
|
a.hasName("a") and
|
|
b.hasName("b") and
|
|
c.hasName("c") and
|
|
d.hasName("d") and
|
|
e.hasName("e") and
|
|
f.hasName("f") and
|
|
g.hasName("g") and
|
|
a.getDeclaringType()=class1 and
|
|
a.getDeclaringType()=class1 and
|
|
b.getDeclaringType()=class1 and
|
|
c.getDeclaringType()=class1 and
|
|
not exists(c.getParameter(0).getType()) and
|
|
not exists(a.getType()) and
|
|
not exists(b.getReturnType()) and
|
|
not exists(c.getReturnType()) and
|
|
not exists(e.getReturnType()) and
|
|
not exists(g.getReturnType()) and
|
|
not exists(g.getParameter(0).getType())
|
|
select "Test passed"
|