@@ -30,6 +30,8 @@ class Decl extends @decl, ExprParent, StmtParent {
3030 */
3131class BadDecl extends @baddecl, Decl {
3232 override string toString ( ) { result = "bad declaration" }
33+
34+ override string describeQlClass ( ) { result = "BadDecl" }
3335}
3436
3537/**
@@ -46,34 +48,44 @@ class GenDecl extends @gendecl, Decl, Documentable {
4648 int getNumSpec ( ) { result = count ( getASpec ( ) ) }
4749
4850 override predicate mayHaveSideEffects ( ) { getASpec ( ) .mayHaveSideEffects ( ) }
51+
52+ override string describeQlClass ( ) { result = "GenDecl" }
4953}
5054
5155/**
5256 * An import declaration.
5357 */
5458class ImportDecl extends @importdecl, GenDecl {
5559 override string toString ( ) { result = "import declaration" }
60+
61+ override string describeQlClass ( ) { result = "ImportDecl" }
5662}
5763
5864/**
5965 * A constant declaration.
6066 */
6167class ConstDecl extends @constdecl, GenDecl {
6268 override string toString ( ) { result = "constant declaration" }
69+
70+ override string describeQlClass ( ) { result = "ConstDecl" }
6371}
6472
6573/**
6674 * A type declaration.
6775 */
6876class TypeDecl extends @typedecl, GenDecl {
6977 override string toString ( ) { result = "type declaration" }
78+
79+ override string describeQlClass ( ) { result = "TypeDecl" }
7080}
7181
7282/**
7383 * A variable declaration.
7484 */
7585class VarDecl extends @vardecl, GenDecl {
7686 override string toString ( ) { result = "variable declaration" }
87+
88+ override string describeQlClass ( ) { result = "VarDecl" }
7789}
7890
7991/**
@@ -133,6 +145,8 @@ class FuncDef extends @funcdef, StmtParent, ExprParent {
133145 * Gets a call to this function.
134146 */
135147 DataFlow:: CallNode getACall ( ) { result .getACallee ( ) = this }
148+
149+ override string describeQlClass ( ) { result = "FuncDef" }
136150}
137151
138152/**
@@ -155,6 +169,8 @@ class FuncDecl extends @funcdecl, Decl, Documentable, FuncDef {
155169 DeclaredFunction getFunction ( ) { this = result .getFuncDecl ( ) }
156170
157171 override string toString ( ) { result = "function declaration" }
172+
173+ override string describeQlClass ( ) { result = "FuncDecl" }
158174}
159175
160176/**
@@ -219,6 +235,8 @@ class MethodDecl extends FuncDecl {
219235 * is the variable `p`.
220236 */
221237 ReceiverVariable getReceiver ( ) { result .getFunction ( ) = this }
238+
239+ override string describeQlClass ( ) { result = "MethodDecl" }
222240}
223241
224242/**
@@ -243,6 +261,8 @@ class Spec extends @spec, ExprParent, Documentable {
243261 * Memory allocation is not considered an observable side effect.
244262 */
245263 predicate mayHaveSideEffects ( ) { none ( ) }
264+
265+ override string describeQlClass ( ) { result = "Spec" }
246266}
247267
248268/**
@@ -262,6 +282,8 @@ class ImportSpec extends @importspec, Spec {
262282 string getPath ( ) { result = getPathExpr ( ) .getValue ( ) }
263283
264284 override string toString ( ) { result = "import specifier" }
285+
286+ override string describeQlClass ( ) { result = "ImportSpec" }
265287}
266288
267289/**
@@ -344,6 +366,8 @@ class ValueSpec extends @valuespec, Spec {
344366 override predicate mayHaveSideEffects ( ) { getAnInit ( ) .mayHaveSideEffects ( ) }
345367
346368 override string toString ( ) { result = "value declaration specifier" }
369+
370+ override string describeQlClass ( ) { result = "ValueSpec" }
347371}
348372
349373/**
@@ -360,6 +384,8 @@ class TypeSpec extends @typespec, Spec {
360384 Expr getTypeExpr ( ) { result = getChildExpr ( 1 ) }
361385
362386 override string toString ( ) { result = "type declaration specifier" }
387+
388+ override string describeQlClass ( ) { result = "TypeSpec" }
363389}
364390
365391/**
@@ -397,13 +423,17 @@ class FieldDecl extends @field, Documentable, ExprParent {
397423 StructType getDeclaringType ( ) { result = getDeclaringStructTypeExpr ( ) .getType ( ) }
398424
399425 override string toString ( ) { result = "field declaration" }
426+
427+ override string describeQlClass ( ) { result = "FieldDecl" }
400428}
401429
402430/**
403431 * An embedded field declaration in a struct.
404432 */
405433class EmbeddedFieldDecl extends FieldDecl {
406434 EmbeddedFieldDecl ( ) { not exists ( this .getNameExpr ( _) ) }
435+
436+ override string describeQlClass ( ) { result = "EmbeddedFieldDecl" }
407437}
408438
409439/**
@@ -453,6 +483,8 @@ class ParameterDecl extends @field, Documentable, ExprParent {
453483 }
454484
455485 override string toString ( ) { result = "parameter declaration" }
486+
487+ override string describeQlClass ( ) { result = "ParameterDecl" }
456488}
457489
458490/**
@@ -482,6 +514,8 @@ class ReceiverDecl extends @field, Documentable, ExprParent {
482514 Expr getNameExpr ( ) { result = getChildExpr ( 1 ) }
483515
484516 override string toString ( ) { result = "receiver declaration" }
517+
518+ override string describeQlClass ( ) { result = "ReceiverDecl" }
485519}
486520
487521/**
@@ -531,6 +565,8 @@ class ResultVariableDecl extends @field, Documentable, ExprParent {
531565 int getIndex ( ) { fields ( this , _, - ( result + 1 ) ) }
532566
533567 override string toString ( ) { result = "result variable declaration" }
568+
569+ override string describeQlClass ( ) { result = "ResultVariableDecl" }
534570}
535571
536572/**
@@ -579,6 +615,8 @@ class MethodSpec extends InterfaceMemberSpec {
579615 Expr getNameExpr ( ) { result = name }
580616
581617 override string toString ( ) { result = "method declaration" }
618+
619+ override string describeQlClass ( ) { result = "MethodSpec" }
582620}
583621
584622/**
@@ -588,4 +626,6 @@ class EmbeddingSpec extends InterfaceMemberSpec {
588626 EmbeddingSpec ( ) { not exists ( getChildExpr ( 1 ) ) }
589627
590628 override string toString ( ) { result = "interface embedding" }
629+
630+ override string describeQlClass ( ) { result = "EmbeddingSpec" }
591631}
0 commit comments