mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
Swift: Add basic support for experimental using decls
Note that we cannot write tests for these at the moment. Passing ``` -enable-experimental-feature DefaultIsolationPerFile ``` to the extractor results in: ``` error: experimental feature 'DefaultIsolationPerFile' cannot be enabled in production compile ```
This commit is contained in:
@@ -241,7 +241,7 @@ MAP(swift::Decl, DeclTag)
|
||||
MAP(swift::MissingMemberDecl, MissingMemberDeclTag)
|
||||
MAP(swift::PatternBindingDecl, PatternBindingDeclTag)
|
||||
MAP(swift::EnumCaseDecl, EnumCaseDeclTag)
|
||||
MAP(swift::UsingDecl, void) // TODO: Swift 6.2
|
||||
MAP(swift::UsingDecl, UsingDeclTag)
|
||||
MAP(swift::OperatorDecl, OperatorDeclTag)
|
||||
MAP(swift::InfixOperatorDecl, InfixOperatorDeclTag)
|
||||
MAP(swift::PrefixOperatorDecl, PrefixOperatorDeclTag)
|
||||
|
||||
@@ -137,6 +137,19 @@ codeql::EnumCaseDecl DeclTranslator::translateEnumCaseDecl(const swift::EnumCase
|
||||
return entry;
|
||||
}
|
||||
|
||||
codeql::UsingDecl DeclTranslator::translateUsingDecl(const swift::UsingDecl& decl) {
|
||||
auto entry = createEntry(decl);
|
||||
switch (decl.getSpecifier()) {
|
||||
case swift::UsingSpecifier::MainActor:
|
||||
entry.is_main_actor = true;
|
||||
break;
|
||||
case swift::UsingSpecifier::Nonisolated:
|
||||
entry.is_nonisolated = true;
|
||||
break;
|
||||
}
|
||||
return entry;
|
||||
}
|
||||
|
||||
codeql::EnumElementDecl DeclTranslator::translateEnumElementDecl(
|
||||
const swift::EnumElementDecl& decl) {
|
||||
auto entry = createEntry(decl);
|
||||
|
||||
@@ -34,6 +34,7 @@ class DeclTranslator : public AstTranslatorBase<DeclTranslator> {
|
||||
codeql::EnumDecl translateEnumDecl(const swift::EnumDecl& decl);
|
||||
codeql::ProtocolDecl translateProtocolDecl(const swift::ProtocolDecl& decl);
|
||||
codeql::EnumCaseDecl translateEnumCaseDecl(const swift::EnumCaseDecl& decl);
|
||||
codeql::UsingDecl translateUsingDecl(const swift::UsingDecl& decl);
|
||||
codeql::EnumElementDecl translateEnumElementDecl(const swift::EnumElementDecl& decl);
|
||||
codeql::GenericTypeParamDecl translateGenericTypeParamDecl(
|
||||
const swift::GenericTypeParamDecl& decl);
|
||||
|
||||
Reference in New Issue
Block a user