- The
BarrierGuard
class has been deprecated. Such barriers and sanitizers can now instead be created using the newBarrierGuard
parameterized module.
- Go 1.18 generics are now extracted and can be explored using the new CodeQL classes
TypeParamDecl
,GenericFunctionInstantiationExpr
,GenericTypeInstantiationExpr
,TypeSetTerm
, andTypeSetLiteralType
, as well as using new predicates defined on the existingInterfaceType
. Class- and predicate-level documentation can be found in the Go CodeQL library reference.
- The method predicate
getACalleeIncludingExternals
onDataFlow::CallNode
and the functionviableCallable
inDataFlowDispatch
now also work for calls to functions via a variable, where the function can be determined using local flow.
- Fixed a bug where dataflow steps were ignored if both ends were inside the initialiser routine of a file-level variable.
- The
codeql/go-upgrades
CodeQL pack has been removed. All database upgrade scripts have been merged into thecodeql/go-all
CodeQL pack.
Function
's predicategetACall
now returns more results in some situations. It now always returns callers that may call a method indirectly via an interface method that it implements. Previously this only happened if the method was in the source code being analysed.