mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Swift: print unextracted entities
This commit is contained in:
2
.github/workflows/swift.yml
vendored
2
.github/workflows/swift.yml
vendored
@@ -51,12 +51,14 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: ./swift/actions/create-extractor-pack
|
||||
- uses: ./swift/actions/run-quick-tests
|
||||
- uses: ./swift/actions/print-unextracted
|
||||
build-and-test-linux:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: ./swift/actions/create-extractor-pack
|
||||
- uses: ./swift/actions/run-quick-tests
|
||||
- uses: ./swift/actions/print-unextracted
|
||||
qltests-linux:
|
||||
needs: build-and-test-linux
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
9
swift/actions/print-unextracted/action.yml
Normal file
9
swift/actions/print-unextracted/action.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
name: Print unextracted entities
|
||||
description: Prints all AST and Type entities that we do not extract yet. Must be run after `setup-env`
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Print unextracted entities
|
||||
shell: bash
|
||||
run: |
|
||||
bazel run //swift/extractor/print_unextracted
|
||||
7
swift/extractor/print_unextracted/BUILD.bazel
Normal file
7
swift/extractor/print_unextracted/BUILD.bazel
Normal file
@@ -0,0 +1,7 @@
|
||||
load("//swift:rules.bzl", "swift_cc_binary")
|
||||
|
||||
swift_cc_binary(
|
||||
name = "print_unextracted",
|
||||
srcs = glob(["*.cpp"]),
|
||||
deps = ["//swift/extractor/translators"],
|
||||
)
|
||||
44
swift/extractor/print_unextracted/main.cpp
Normal file
44
swift/extractor/print_unextracted/main.cpp
Normal file
@@ -0,0 +1,44 @@
|
||||
#include <iostream>
|
||||
|
||||
#include "swift/extractor/translators/DeclTranslator.h"
|
||||
#include "swift/extractor/translators/ExprTranslator.h"
|
||||
#include "swift/extractor/translators/StmtTranslator.h"
|
||||
#include "swift/extractor/translators/TypeTranslator.h"
|
||||
#include "swift/extractor/translators/PatternTranslator.h"
|
||||
|
||||
using namespace codeql;
|
||||
|
||||
#define CHECK_CLASS(KIND, CLASS, PARENT) \
|
||||
if (!detail::HasTranslate##CLASS##KIND<KIND##Translator>::value && \
|
||||
!detail::HasTranslate##PARENT<KIND##Translator>::value) { \
|
||||
std::cout << " " #CLASS #KIND "\n"; \
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::cout << "Unextracted Decls:\n";
|
||||
|
||||
#define DECL(CLASS, PARENT) CHECK_CLASS(Decl, CLASS, PARENT)
|
||||
#include "swift/AST/DeclNodes.def"
|
||||
|
||||
std::cout << "\nUnextracted Stmts:\n";
|
||||
|
||||
#define STMT(CLASS, PARENT) CHECK_CLASS(Stmt, CLASS, PARENT)
|
||||
#include "swift/AST/StmtNodes.def"
|
||||
|
||||
std::cout << "\nUnextracted Exprs:\n";
|
||||
|
||||
#define EXPR(CLASS, PARENT) CHECK_CLASS(Expr, CLASS, PARENT)
|
||||
#include "swift/AST/ExprNodes.def"
|
||||
|
||||
std::cout << "\nUnextracted Patterns:\n";
|
||||
|
||||
#define PATTERN(CLASS, PARENT) CHECK_CLASS(Pattern, CLASS, PARENT)
|
||||
#include "swift/AST/PatternNodes.def"
|
||||
|
||||
std::cout << "\nUnextracted Types:\n";
|
||||
|
||||
#define TYPE(CLASS, PARENT) CHECK_CLASS(Type, CLASS, PARENT)
|
||||
#include "swift/AST/TypeNodes.def"
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user