From 3ca261a18e558a6d8bb88d9e7bc9e88d35b876f3 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 1 Sep 2026 13:58:36 +0200 Subject: [PATCH] Unified: Move `extension` workaround into static name binding library --- .../ql/lib/codeql/unified/internal/AnalysisQuality.qll | 6 ------ .../lib/codeql/unified/internal/LocalNameBinding.qll | 3 +++ .../lib/codeql/unified/internal/StaticNameBinding.qll | 1 - .../test/library-tests/static-name-binding/test.swift | 10 +++++++++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/unified/ql/lib/codeql/unified/internal/AnalysisQuality.qll b/unified/ql/lib/codeql/unified/internal/AnalysisQuality.qll index d894e02e2c7e..6f899bba4283 100644 --- a/unified/ql/lib/codeql/unified/internal/AnalysisQuality.qll +++ b/unified/ql/lib/codeql/unified/internal/AnalysisQuality.qll @@ -53,12 +53,6 @@ module StaticNameResolutionStats implements EntityStatsSig { or result.isModuleScopeNode(_) and result.(NamespaceNode).ref().isIdentifier(this) - ) and - // Do not consider a type extension to be a valid target - // TODO: Fix in the AST mapping: type extensions should reference their type, not declare it - not exists(ClassLikeDeclaration cls | - cls.hasModifier("extension") and - result.isIdentifier(cls.getName()) ) } diff --git a/unified/ql/lib/codeql/unified/internal/LocalNameBinding.qll b/unified/ql/lib/codeql/unified/internal/LocalNameBinding.qll index e9ffcd8a29af..5a44080464cc 100644 --- a/unified/ql/lib/codeql/unified/internal/LocalNameBinding.qll +++ b/unified/ql/lib/codeql/unified/internal/LocalNameBinding.qll @@ -231,6 +231,7 @@ private module LocalNameBindingInput implements LocalNameBindingInputSig