From 38d85a3e8ca43fc846fbc813c51513c613773e81 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 27 Sep 2024 11:04:00 +0100 Subject: [PATCH] Update ExternalFlow.qll docs on `subtypes` column --- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index d905201fd4533..092756a060255 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -25,8 +25,12 @@ * packages in the group `` according to the `packageGrouping` * predicate. * 2. The `type` column selects a type within that package. - * 3. The `subtypes` is a boolean that indicates whether to jump to an - * arbitrary subtype of that type. + * 3. The `subtypes` column is a boolean that controls what restrictions we + * place on the receiver of a method. When it is false, we only consider + * methods where the receiver base type has the exact type specified by this + * row. When it is true receiver types which embed the specified type are + * allowed, and for interface methods, receiver types which implement the + * interface are allowed. * 4. The `name` column optionally selects a specific named member of the type. * 5. The `signature` column is always empty. * 6. The `ext` column is always empty.