We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent ccc525a commit cd99beaCopy full SHA for cd99bea
1 file changed
go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll
@@ -303,6 +303,13 @@ module SourceSinkInterpretationInput implements
303
)
304
}
305
306
+ /**
307
+ * Gets `underlying`, where `n` if of the form `implicitDeref?(underlying.implicitFieldRead1.implicitFieldRead2...)`
308
+ *
309
+ * For Go syntax like `qualifier.method()` or `qualifier.field`, this is the type of `qualifier`, before any
310
+ * implicit dereference is interposed because `qualifier` is of pointer type, or implicit field accesses
311
+ * navigate to any embedded struct types that truly host `field`.
312
+ */
313
private DataFlow::Node getSyntacticQualifier(DataFlow::Node n) {
314
exists(DataFlow::Node n2 |
315
// look through implicit dereference, if there is one
0 commit comments