mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Swift: QL generation script
Also added code generation to the swift checks.
This commit is contained in:
25
.github/workflows/swift-qltest.yml
vendored
25
.github/workflows/swift-qltest.yml
vendored
@@ -12,6 +12,17 @@ defaults:
|
||||
working-directory: swift
|
||||
|
||||
jobs:
|
||||
codegen:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/fetch-codeql
|
||||
- uses: bazelbuild/setup-bazelisk@v2
|
||||
- name: Check code generation
|
||||
run: |
|
||||
bazel run //swift/codegen
|
||||
git add .
|
||||
git diff --exit-code --stat HEAD
|
||||
qlformat:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -28,18 +39,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./.github/actions/fetch-codeql
|
||||
- name: Install bazelisk - Linux
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y wget
|
||||
wget https://github.com/bazelbuild/bazelisk/releases/download/v1.11.0/bazelisk-linux-amd64
|
||||
mv bazelisk-linux-amd64 /usr/local/bin/bazel
|
||||
chmod +x /usr/local/bin/bazel
|
||||
- name: Install bazelisk - macOS
|
||||
if: runner.os == 'MacOS'
|
||||
run: |
|
||||
brew install bazelisk
|
||||
- uses: bazelbuild/setup-bazelisk@v2
|
||||
- name: Build Swift extractor
|
||||
run: |
|
||||
bazel run //swift:create-extractor-pack
|
||||
@@ -48,4 +48,3 @@ jobs:
|
||||
codeql test run --threads=0 --ram 5000 --search-path "${{ github.workspace }}/swift/extractor-pack" --check-databases --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition ql/test
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ repos:
|
||||
|
||||
- id: swift-codegen
|
||||
name: Run Swift checked in code generation
|
||||
files: ^swift/(codegen/|.*/generated/|ql/lib/swift\.dbscheme$)
|
||||
files: ^swift/(codegen/|.*/generated/|ql/lib/(swift\.dbscheme$|codeql/swift/elements))
|
||||
language: system
|
||||
entry: bazel run //swift/codegen
|
||||
pass_filenames: false
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
from lib import generator
|
||||
import dbschemegen
|
||||
import qlgen
|
||||
|
||||
if __name__ == "__main__":
|
||||
generator.run(dbschemegen.generate)
|
||||
generator.run(dbschemegen.generate, qlgen.generate)
|
||||
|
||||
@@ -23,7 +23,5 @@ def run(*generators, tags=None):
|
||||
`generators` should be callables taking as input an option namespace and a `render.Renderer` instance
|
||||
"""
|
||||
opts = _parse(tags)
|
||||
renderer = render.Renderer(dryrun=opts.check)
|
||||
for g in generators:
|
||||
g(opts, renderer)
|
||||
sys.exit(1 if opts.check and renderer.done_something else 0)
|
||||
g(opts, render.Renderer())
|
||||
|
||||
@@ -9,10 +9,12 @@ from . import paths
|
||||
|
||||
|
||||
def _init_options():
|
||||
Option("--check", "-c", action="store_true")
|
||||
Option("--verbose", "-v", action="store_true")
|
||||
Option("--schema", tags=["schema"], type=pathlib.Path, default=paths.swift_dir / "codegen/schema.yml")
|
||||
Option("--dbscheme", tags=["dbscheme"], type=pathlib.Path, default=paths.swift_dir / "ql/lib/swift.dbscheme")
|
||||
Option("--ql-output", tags=["ql"], type=pathlib.Path, default=paths.swift_dir / "ql/lib/codeql/swift/generated")
|
||||
Option("--ql-stub-output", tags=["ql"], type=pathlib.Path, default=paths.swift_dir / "ql/lib/codeql/swift/elements")
|
||||
Option("--codeql-binary", tags=["ql"], default="codeql")
|
||||
|
||||
|
||||
_options = collections.defaultdict(list)
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
https://mustache.github.io/
|
||||
"""
|
||||
|
||||
import hashlib
|
||||
import logging
|
||||
import pathlib
|
||||
|
||||
@@ -16,29 +15,13 @@ from . import paths
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def _md5(data):
|
||||
return hashlib.md5(data).digest()
|
||||
|
||||
|
||||
class Renderer:
|
||||
""" Template renderer using mustache templates in the `templates` directory """
|
||||
|
||||
def __init__(self, dryrun=False):
|
||||
""" Construct the renderer, which will not write anything if `dryrun` is `True` """
|
||||
def __init__(self):
|
||||
self.r = pystache.Renderer(search_dirs=str(paths.lib_dir / "templates"), escape=lambda u: u)
|
||||
self.generator = paths.exe_file.relative_to(paths.swift_dir)
|
||||
self.dryrun = dryrun
|
||||
self.written = set()
|
||||
self.skipped = set()
|
||||
self.erased = set()
|
||||
|
||||
@property
|
||||
def done_something(self):
|
||||
return bool(self.written or self.erased)
|
||||
|
||||
@property
|
||||
def rendered(self):
|
||||
return self.written | self.skipped
|
||||
|
||||
def render(self, data, output: pathlib.Path):
|
||||
""" Render `data` to `output`.
|
||||
@@ -50,27 +33,14 @@ class Renderer:
|
||||
mnemonic = type(data).__name__
|
||||
output.parent.mkdir(parents=True, exist_ok=True)
|
||||
data = self.r.render_name(data.template, data, generator=self.generator)
|
||||
if output.is_file():
|
||||
with open(output, "rb") as file:
|
||||
if _md5(data.encode()) == _md5(file.read()):
|
||||
log.debug(f"skipped {output.name}")
|
||||
self.skipped.add(output)
|
||||
return
|
||||
if self.dryrun:
|
||||
log.error(f"would have generated {mnemonic} {output.name}")
|
||||
else:
|
||||
with open(output, "w") as out:
|
||||
out.write(data)
|
||||
log.info(f"generated {mnemonic} {output.name}")
|
||||
with open(output, "w") as out:
|
||||
out.write(data)
|
||||
log.debug(f"generated {mnemonic} {output.name}")
|
||||
self.written.add(output)
|
||||
|
||||
def cleanup(self, existing):
|
||||
""" Remove files in `existing` for which no `render` has been called """
|
||||
for f in existing - self.written - self.skipped:
|
||||
for f in existing - self.written:
|
||||
if f.is_file():
|
||||
if self.dryrun:
|
||||
log.error(f"would have removed {f.name}")
|
||||
else:
|
||||
f.unlink()
|
||||
log.info(f"removed {f.name}")
|
||||
self.erased.add(f)
|
||||
f.unlink()
|
||||
log.info(f"removed {f.name}")
|
||||
|
||||
47
swift/codegen/lib/templates/ql_class.mustache
Normal file
47
swift/codegen/lib/templates/ql_class.mustache
Normal file
@@ -0,0 +1,47 @@
|
||||
// generated by {{generator}}
|
||||
{{#imports}}
|
||||
import {{.}}
|
||||
{{/imports}}
|
||||
|
||||
class {{name}}Base extends {{db_id}}{{#bases}}, {{.}}{{/bases}} {
|
||||
{{#root}}
|
||||
string toString() { none() } // overridden by subclasses
|
||||
|
||||
{{name}}Base getResolveStep() { none() } // overridden by subclasses
|
||||
|
||||
{{name}}Base resolve() {
|
||||
not exists(getResolveStep()) and result = this
|
||||
or
|
||||
result = getResolveStep().resolve()
|
||||
}
|
||||
{{/root}}
|
||||
{{#final}}
|
||||
override string toString() { result = "{{name}}" }
|
||||
{{/final}}
|
||||
{{#properties}}
|
||||
|
||||
{{#type_is_class}}
|
||||
{{type}} get{{singular}}({{#params}}{{^first}}, {{/first}}{{type}} {{param}}{{/params}}) {
|
||||
exists({{type}} {{local_var}} |
|
||||
{{tablename}}({{#tableparams}}{{^first}}, {{/first}}{{param}}{{/tableparams}})
|
||||
and
|
||||
result = {{local_var}}.resolve())
|
||||
}
|
||||
{{/type_is_class}}
|
||||
{{^type_is_class}}
|
||||
{{type}} get{{singular}}({{#params}}{{^first}}, {{/first}}{{type}} {{param}}{{/params}}) {
|
||||
{{tablename}}({{#tableparams}}{{^first}}, {{/first}}{{param}}{{/tableparams}})
|
||||
}
|
||||
{{/type_is_class}}
|
||||
{{#indefinite_article}}
|
||||
|
||||
{{type}} get{{.}}{{singular}}() {
|
||||
result = get{{singular}}({{#params}}{{^first}}, {{/first}}_{{/params}})
|
||||
}
|
||||
|
||||
int getNumberOf{{plural}}() {
|
||||
result = count(get{{.}}{{singular}}())
|
||||
}
|
||||
{{/indefinite_article}}
|
||||
{{/properties}}
|
||||
}
|
||||
4
swift/codegen/lib/templates/ql_imports.mustache
Normal file
4
swift/codegen/lib/templates/ql_imports.mustache
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by {{generator}}
|
||||
{{#imports}}
|
||||
import {{.}}
|
||||
{{/imports}}
|
||||
4
swift/codegen/lib/templates/ql_stub.mustache
Normal file
4
swift/codegen/lib/templates/ql_stub.mustache
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by {{generator}}, remove this comment if you wish to edit this file
|
||||
private import {{base_import}}
|
||||
|
||||
class {{name}} extends {{name}}Base { }
|
||||
@@ -7,4 +7,4 @@ sourceLocationPrefix(
|
||||
|
||||
answer_to_life_the_universe_and_everything(
|
||||
int answer: int ref
|
||||
)
|
||||
);
|
||||
|
||||
202
swift/codegen/qlgen.py
Executable file
202
swift/codegen/qlgen.py
Executable file
@@ -0,0 +1,202 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import logging
|
||||
import pathlib
|
||||
import subprocess
|
||||
from dataclasses import dataclass, field
|
||||
from typing import List, ClassVar
|
||||
|
||||
import inflection
|
||||
|
||||
from lib import schema, paths, generator
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@dataclass
|
||||
class QlParam:
|
||||
param: str
|
||||
type: str = None
|
||||
first: bool = False
|
||||
|
||||
|
||||
@dataclass
|
||||
class QlProperty:
|
||||
singular: str
|
||||
type: str
|
||||
tablename: str
|
||||
tableparams: List[QlParam]
|
||||
plural: str = None
|
||||
params: List[QlParam] = field(default_factory=list)
|
||||
first: bool = False
|
||||
local_var: str = "x"
|
||||
|
||||
def __post_init__(self):
|
||||
if self.params:
|
||||
self.params[0].first = True
|
||||
while self.local_var in (p.param for p in self.params):
|
||||
self.local_var += "_"
|
||||
assert self.tableparams
|
||||
if self.type_is_class:
|
||||
self.tableparams = [x if x != "result" else self.local_var for x in self.tableparams]
|
||||
self.tableparams = [QlParam(x) for x in self.tableparams]
|
||||
self.tableparams[0].first = True
|
||||
|
||||
@property
|
||||
def indefinite_article(self):
|
||||
if self.plural:
|
||||
return "An" if self.singular[0] in "AEIO" else "A"
|
||||
|
||||
@property
|
||||
def type_is_class(self):
|
||||
return self.type[0].isupper()
|
||||
|
||||
|
||||
@dataclass
|
||||
class QlClass:
|
||||
template: ClassVar = 'ql_class'
|
||||
|
||||
name: str
|
||||
bases: List[str]
|
||||
final: bool
|
||||
properties: List[QlProperty]
|
||||
dir: pathlib.Path
|
||||
imports: List[str] = field(default_factory=list)
|
||||
|
||||
def __post_init__(self):
|
||||
self.bases = sorted(self.bases)
|
||||
if self.properties:
|
||||
self.properties[0].first = True
|
||||
|
||||
@property
|
||||
def db_id(self):
|
||||
return "@" + inflection.underscore(self.name)
|
||||
|
||||
@property
|
||||
def root(self):
|
||||
return not self.bases
|
||||
|
||||
@property
|
||||
def path(self):
|
||||
return self.dir / self.name
|
||||
|
||||
|
||||
@dataclass
|
||||
class QlStub:
|
||||
template: ClassVar = 'ql_stub'
|
||||
|
||||
name: str
|
||||
base_import: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class QlImportList:
|
||||
template: ClassVar = 'ql_imports'
|
||||
|
||||
imports: List[str] = field(default_factory=list)
|
||||
|
||||
|
||||
def get_ql_property(cls: schema.Class, prop: schema.Property):
|
||||
if prop.is_single:
|
||||
return QlProperty(
|
||||
singular=inflection.camelize(prop.name),
|
||||
type=prop.type,
|
||||
tablename=inflection.tableize(cls.name),
|
||||
tableparams=["this"] + ["result" if p is prop else "_" for p in cls.properties if p.is_single],
|
||||
)
|
||||
elif prop.is_optional:
|
||||
return QlProperty(
|
||||
singular=inflection.camelize(prop.name),
|
||||
type=prop.type,
|
||||
tablename=inflection.tableize(f"{cls.name}_{prop.name}"),
|
||||
tableparams=["this", "result"],
|
||||
)
|
||||
elif prop.is_repeated:
|
||||
return QlProperty(
|
||||
singular=inflection.singularize(inflection.camelize(prop.name)),
|
||||
plural=inflection.pluralize(inflection.camelize(prop.name)),
|
||||
type=prop.type,
|
||||
tablename=inflection.tableize(f"{cls.name}_{prop.name}"),
|
||||
tableparams=["this", "index", "result"],
|
||||
params=[QlParam("index", type="int")],
|
||||
)
|
||||
|
||||
|
||||
def get_ql_class(cls: schema.Class):
|
||||
return QlClass(
|
||||
name=cls.name,
|
||||
bases=cls.bases,
|
||||
final=not cls.derived,
|
||||
properties=[get_ql_property(cls, p) for p in cls.properties],
|
||||
dir=cls.dir,
|
||||
)
|
||||
|
||||
|
||||
def get_import(file):
|
||||
stem = file.relative_to(paths.swift_dir / "ql/lib").with_suffix("")
|
||||
return str(stem).replace("/", ".")
|
||||
|
||||
|
||||
def get_types_used_by(cls: QlClass):
|
||||
for b in cls.bases:
|
||||
yield b
|
||||
for p in cls.properties:
|
||||
yield p.type
|
||||
for param in p.params:
|
||||
yield param.type
|
||||
|
||||
|
||||
def get_classes_used_by(cls: QlClass):
|
||||
return sorted(set(t for t in get_types_used_by(cls) if t[0].isupper()))
|
||||
|
||||
|
||||
def is_generated(file):
|
||||
with open(file) as contents:
|
||||
return next(contents).startswith("// generated")
|
||||
|
||||
|
||||
def format(codeql, files):
|
||||
format_cmd = [codeql, "query", "format", "--in-place", "--"]
|
||||
format_cmd.extend(str(f) for f in files)
|
||||
res = subprocess.run(format_cmd, check=True, stderr=subprocess.PIPE, text=True)
|
||||
for line in res.stderr.splitlines():
|
||||
log.debug(line.strip())
|
||||
|
||||
|
||||
def generate(opts, renderer):
|
||||
input = opts.schema.resolve()
|
||||
out = opts.ql_output.resolve()
|
||||
stub_out = opts.ql_stub_output.resolve()
|
||||
existing = {q for q in out.rglob("*.qll")}
|
||||
existing |= {q for q in stub_out.rglob("*.qll") if is_generated(q)}
|
||||
|
||||
with open(input) as src:
|
||||
data = schema.load(src)
|
||||
|
||||
classes = [get_ql_class(cls) for cls in data.classes.values()]
|
||||
imports = {}
|
||||
|
||||
for c in classes:
|
||||
imports[c.name] = get_import(stub_out / c.path)
|
||||
|
||||
for c in classes:
|
||||
assert not c.final or c.bases, c.name
|
||||
qll = (out / c.path).with_suffix(".qll")
|
||||
c.imports = [imports[t] for t in get_classes_used_by(c)]
|
||||
renderer.render(c, qll)
|
||||
stub_file = (stub_out / c.path).with_suffix(".qll")
|
||||
if not stub_file.is_file() or is_generated(stub_file):
|
||||
stub = QlStub(name=c.name, base_import=get_import(qll))
|
||||
renderer.render(stub, stub_file)
|
||||
|
||||
# for example path/to/syntax/generated -> path/to/syntax.qll
|
||||
include_file = stub_out.with_suffix(".qll")
|
||||
all_imports = QlImportList(v for _, v in sorted(imports.items()))
|
||||
renderer.render(all_imports, include_file)
|
||||
|
||||
renderer.cleanup(existing)
|
||||
format(opts.codeql_binary, renderer.written)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
generator.run(generate, tags=["schema", "ql"])
|
||||
283
swift/ql/lib/codeql/swift/elements.qll
Normal file
283
swift/ql/lib/codeql/swift/elements.qll
Normal file
@@ -0,0 +1,283 @@
|
||||
// generated by codegen/codegen.py
|
||||
import codeql.swift.elements.expr.AbstractClosureExpr
|
||||
import codeql.swift.elements.decl.AbstractFunctionDecl
|
||||
import codeql.swift.elements.decl.AbstractStorageDecl
|
||||
import codeql.swift.elements.decl.AbstractTypeParamDecl
|
||||
import codeql.swift.elements.decl.AccessorDecl
|
||||
import codeql.swift.elements.type.AnyBuiltinIntegerType
|
||||
import codeql.swift.elements.type.AnyFunctionType
|
||||
import codeql.swift.elements.type.AnyGenericType
|
||||
import codeql.swift.elements.expr.AnyHashableErasureExpr
|
||||
import codeql.swift.elements.type.AnyMetatypeType
|
||||
import codeql.swift.elements.pattern.AnyPattern
|
||||
import codeql.swift.elements.expr.AnyTryExpr
|
||||
import codeql.swift.elements.expr.AppliedPropertyWrapperExpr
|
||||
import codeql.swift.elements.expr.ApplyExpr
|
||||
import codeql.swift.elements.expr.ArchetypeToSuperExpr
|
||||
import codeql.swift.elements.type.ArchetypeType
|
||||
import codeql.swift.elements.expr.Argument
|
||||
import codeql.swift.elements.expr.ArrayExpr
|
||||
import codeql.swift.elements.type.ArraySliceType
|
||||
import codeql.swift.elements.expr.ArrayToPointerExpr
|
||||
import codeql.swift.elements.expr.ArrowExpr
|
||||
import codeql.swift.elements.expr.AssignExpr
|
||||
import codeql.swift.elements.decl.AssociatedTypeDecl
|
||||
import codeql.swift.elements.AstNode
|
||||
import codeql.swift.elements.expr.AutoClosureExpr
|
||||
import codeql.swift.elements.expr.AwaitExpr
|
||||
import codeql.swift.elements.expr.BinaryExpr
|
||||
import codeql.swift.elements.expr.BindOptionalExpr
|
||||
import codeql.swift.elements.pattern.BindingPattern
|
||||
import codeql.swift.elements.pattern.BoolPattern
|
||||
import codeql.swift.elements.expr.BooleanLiteralExpr
|
||||
import codeql.swift.elements.type.BoundGenericClassType
|
||||
import codeql.swift.elements.type.BoundGenericEnumType
|
||||
import codeql.swift.elements.type.BoundGenericStructType
|
||||
import codeql.swift.elements.type.BoundGenericType
|
||||
import codeql.swift.elements.stmt.BraceStmt
|
||||
import codeql.swift.elements.stmt.BreakStmt
|
||||
import codeql.swift.elements.expr.BridgeFromObjCExpr
|
||||
import codeql.swift.elements.expr.BridgeToObjCExpr
|
||||
import codeql.swift.elements.type.BuiltinBridgeObjectType
|
||||
import codeql.swift.elements.type.BuiltinDefaultActorStorageType
|
||||
import codeql.swift.elements.type.BuiltinExecutorType
|
||||
import codeql.swift.elements.type.BuiltinFloatType
|
||||
import codeql.swift.elements.type.BuiltinIntegerLiteralType
|
||||
import codeql.swift.elements.type.BuiltinIntegerType
|
||||
import codeql.swift.elements.type.BuiltinJobType
|
||||
import codeql.swift.elements.expr.BuiltinLiteralExpr
|
||||
import codeql.swift.elements.type.BuiltinNativeObjectType
|
||||
import codeql.swift.elements.type.BuiltinRawPointerType
|
||||
import codeql.swift.elements.type.BuiltinRawUnsafeContinuationType
|
||||
import codeql.swift.elements.type.BuiltinType
|
||||
import codeql.swift.elements.type.BuiltinUnsafeValueBufferType
|
||||
import codeql.swift.elements.type.BuiltinVectorType
|
||||
import codeql.swift.elements.expr.CallExpr
|
||||
import codeql.swift.elements.expr.CaptureListExpr
|
||||
import codeql.swift.elements.stmt.CaseLabelItem
|
||||
import codeql.swift.elements.stmt.CaseStmt
|
||||
import codeql.swift.elements.expr.CheckedCastExpr
|
||||
import codeql.swift.elements.decl.ClassDecl
|
||||
import codeql.swift.elements.expr.ClassMetatypeToObjectExpr
|
||||
import codeql.swift.elements.type.ClassType
|
||||
import codeql.swift.elements.expr.ClosureExpr
|
||||
import codeql.swift.elements.expr.CodeCompletionExpr
|
||||
import codeql.swift.elements.expr.CoerceExpr
|
||||
import codeql.swift.elements.expr.CollectionExpr
|
||||
import codeql.swift.elements.expr.CollectionUpcastConversionExpr
|
||||
import codeql.swift.elements.decl.ConcreteFuncDecl
|
||||
import codeql.swift.elements.decl.ConcreteVarDecl
|
||||
import codeql.swift.elements.stmt.ConditionElement
|
||||
import codeql.swift.elements.expr.ConditionalBridgeFromObjCExpr
|
||||
import codeql.swift.elements.expr.ConditionalCheckedCastExpr
|
||||
import codeql.swift.elements.decl.ConstructorDecl
|
||||
import codeql.swift.elements.expr.ConstructorRefCallExpr
|
||||
import codeql.swift.elements.stmt.ContinueStmt
|
||||
import codeql.swift.elements.expr.CovariantFunctionConversionExpr
|
||||
import codeql.swift.elements.expr.CovariantReturnConversionExpr
|
||||
import codeql.swift.elements.decl.Decl
|
||||
import codeql.swift.elements.expr.DeclRefExpr
|
||||
import codeql.swift.elements.expr.DefaultArgumentExpr
|
||||
import codeql.swift.elements.stmt.DeferStmt
|
||||
import codeql.swift.elements.type.DependentMemberType
|
||||
import codeql.swift.elements.expr.DerivedToBaseExpr
|
||||
import codeql.swift.elements.decl.DestructorDecl
|
||||
import codeql.swift.elements.expr.DestructureTupleExpr
|
||||
import codeql.swift.elements.expr.DictionaryExpr
|
||||
import codeql.swift.elements.type.DictionaryType
|
||||
import codeql.swift.elements.expr.DifferentiableFunctionExpr
|
||||
import codeql.swift.elements.expr.DifferentiableFunctionExtractOriginalExpr
|
||||
import codeql.swift.elements.expr.DiscardAssignmentExpr
|
||||
import codeql.swift.elements.stmt.DoCatchStmt
|
||||
import codeql.swift.elements.stmt.DoStmt
|
||||
import codeql.swift.elements.expr.DotSelfExpr
|
||||
import codeql.swift.elements.expr.DotSyntaxBaseIgnoredExpr
|
||||
import codeql.swift.elements.expr.DotSyntaxCallExpr
|
||||
import codeql.swift.elements.expr.DynamicLookupExpr
|
||||
import codeql.swift.elements.expr.DynamicMemberRefExpr
|
||||
import codeql.swift.elements.type.DynamicSelfType
|
||||
import codeql.swift.elements.expr.DynamicSubscriptExpr
|
||||
import codeql.swift.elements.expr.DynamicTypeExpr
|
||||
import codeql.swift.elements.expr.EditorPlaceholderExpr
|
||||
import codeql.swift.elements.Element
|
||||
import codeql.swift.elements.decl.EnumCaseDecl
|
||||
import codeql.swift.elements.decl.EnumDecl
|
||||
import codeql.swift.elements.decl.EnumElementDecl
|
||||
import codeql.swift.elements.pattern.EnumElementPattern
|
||||
import codeql.swift.elements.expr.EnumIsCaseExpr
|
||||
import codeql.swift.elements.type.EnumType
|
||||
import codeql.swift.elements.expr.ErasureExpr
|
||||
import codeql.swift.elements.expr.ErrorExpr
|
||||
import codeql.swift.elements.type.ErrorType
|
||||
import codeql.swift.elements.expr.ExistentialMetatypeToObjectExpr
|
||||
import codeql.swift.elements.type.ExistentialMetatypeType
|
||||
import codeql.swift.elements.type.ExistentialType
|
||||
import codeql.swift.elements.expr.ExplicitCastExpr
|
||||
import codeql.swift.elements.expr.Expr
|
||||
import codeql.swift.elements.pattern.ExprPattern
|
||||
import codeql.swift.elements.decl.ExtensionDecl
|
||||
import codeql.swift.elements.stmt.FailStmt
|
||||
import codeql.swift.elements.stmt.FallthroughStmt
|
||||
import codeql.swift.elements.File
|
||||
import codeql.swift.elements.expr.FloatLiteralExpr
|
||||
import codeql.swift.elements.stmt.ForEachStmt
|
||||
import codeql.swift.elements.expr.ForceTryExpr
|
||||
import codeql.swift.elements.expr.ForceValueExpr
|
||||
import codeql.swift.elements.expr.ForcedCheckedCastExpr
|
||||
import codeql.swift.elements.expr.ForeignObjectConversionExpr
|
||||
import codeql.swift.elements.decl.FuncDecl
|
||||
import codeql.swift.elements.expr.FunctionConversionExpr
|
||||
import codeql.swift.elements.type.FunctionType
|
||||
import codeql.swift.elements.decl.GenericContext
|
||||
import codeql.swift.elements.type.GenericFunctionType
|
||||
import codeql.swift.elements.decl.GenericTypeDecl
|
||||
import codeql.swift.elements.decl.GenericTypeParamDecl
|
||||
import codeql.swift.elements.type.GenericTypeParamType
|
||||
import codeql.swift.elements.stmt.GuardStmt
|
||||
import codeql.swift.elements.expr.IdentityExpr
|
||||
import codeql.swift.elements.decl.IfConfigDecl
|
||||
import codeql.swift.elements.expr.IfExpr
|
||||
import codeql.swift.elements.stmt.IfStmt
|
||||
import codeql.swift.elements.expr.ImplicitConversionExpr
|
||||
import codeql.swift.elements.decl.ImportDecl
|
||||
import codeql.swift.elements.expr.InOutExpr
|
||||
import codeql.swift.elements.expr.InOutToPointerExpr
|
||||
import codeql.swift.elements.type.InOutType
|
||||
import codeql.swift.elements.decl.InfixOperatorDecl
|
||||
import codeql.swift.elements.expr.InjectIntoOptionalExpr
|
||||
import codeql.swift.elements.expr.IntegerLiteralExpr
|
||||
import codeql.swift.elements.expr.InterpolatedStringLiteralExpr
|
||||
import codeql.swift.elements.expr.IsExpr
|
||||
import codeql.swift.elements.pattern.IsPattern
|
||||
import codeql.swift.elements.decl.IterableDeclContext
|
||||
import codeql.swift.elements.expr.KeyPathApplicationExpr
|
||||
import codeql.swift.elements.expr.KeyPathDotExpr
|
||||
import codeql.swift.elements.expr.KeyPathExpr
|
||||
import codeql.swift.elements.type.LValueType
|
||||
import codeql.swift.elements.stmt.LabeledConditionalStmt
|
||||
import codeql.swift.elements.stmt.LabeledStmt
|
||||
import codeql.swift.elements.expr.LazyInitializerExpr
|
||||
import codeql.swift.elements.expr.LinearFunctionExpr
|
||||
import codeql.swift.elements.expr.LinearFunctionExtractOriginalExpr
|
||||
import codeql.swift.elements.expr.LinearToDifferentiableFunctionExpr
|
||||
import codeql.swift.elements.expr.LiteralExpr
|
||||
import codeql.swift.elements.expr.LoadExpr
|
||||
import codeql.swift.elements.Locatable
|
||||
import codeql.swift.elements.Location
|
||||
import codeql.swift.elements.expr.LookupExpr
|
||||
import codeql.swift.elements.expr.MagicIdentifierLiteralExpr
|
||||
import codeql.swift.elements.expr.MakeTemporarilyEscapableExpr
|
||||
import codeql.swift.elements.expr.MemberRefExpr
|
||||
import codeql.swift.elements.expr.MetatypeConversionExpr
|
||||
import codeql.swift.elements.type.MetatypeType
|
||||
import codeql.swift.elements.decl.MissingMemberDecl
|
||||
import codeql.swift.elements.decl.ModuleDecl
|
||||
import codeql.swift.elements.type.ModuleType
|
||||
import codeql.swift.elements.pattern.NamedPattern
|
||||
import codeql.swift.elements.type.NestedArchetypeType
|
||||
import codeql.swift.elements.expr.NilLiteralExpr
|
||||
import codeql.swift.elements.type.NominalOrBoundGenericNominalType
|
||||
import codeql.swift.elements.type.NominalType
|
||||
import codeql.swift.elements.decl.NominalTypeDecl
|
||||
import codeql.swift.elements.expr.NumberLiteralExpr
|
||||
import codeql.swift.elements.expr.ObjCSelectorExpr
|
||||
import codeql.swift.elements.expr.ObjectLiteralExpr
|
||||
import codeql.swift.elements.expr.OneWayExpr
|
||||
import codeql.swift.elements.type.OpaqueTypeArchetypeType
|
||||
import codeql.swift.elements.decl.OpaqueTypeDecl
|
||||
import codeql.swift.elements.expr.OpaqueValueExpr
|
||||
import codeql.swift.elements.expr.OpenExistentialExpr
|
||||
import codeql.swift.elements.type.OpenedArchetypeType
|
||||
import codeql.swift.elements.decl.OperatorDecl
|
||||
import codeql.swift.elements.expr.OptionalEvaluationExpr
|
||||
import codeql.swift.elements.pattern.OptionalSomePattern
|
||||
import codeql.swift.elements.expr.OptionalTryExpr
|
||||
import codeql.swift.elements.type.OptionalType
|
||||
import codeql.swift.elements.expr.OtherConstructorDeclRefExpr
|
||||
import codeql.swift.elements.expr.OverloadSetRefExpr
|
||||
import codeql.swift.elements.expr.OverloadedDeclRefExpr
|
||||
import codeql.swift.elements.decl.ParamDecl
|
||||
import codeql.swift.elements.expr.ParenExpr
|
||||
import codeql.swift.elements.pattern.ParenPattern
|
||||
import codeql.swift.elements.type.ParenType
|
||||
import codeql.swift.elements.pattern.Pattern
|
||||
import codeql.swift.elements.decl.PatternBindingDecl
|
||||
import codeql.swift.elements.type.PlaceholderType
|
||||
import codeql.swift.elements.expr.PointerToPointerExpr
|
||||
import codeql.swift.elements.decl.PostfixOperatorDecl
|
||||
import codeql.swift.elements.expr.PostfixUnaryExpr
|
||||
import codeql.swift.elements.stmt.PoundAssertStmt
|
||||
import codeql.swift.elements.decl.PoundDiagnosticDecl
|
||||
import codeql.swift.elements.decl.PrecedenceGroupDecl
|
||||
import codeql.swift.elements.decl.PrefixOperatorDecl
|
||||
import codeql.swift.elements.expr.PrefixUnaryExpr
|
||||
import codeql.swift.elements.type.PrimaryArchetypeType
|
||||
import codeql.swift.elements.expr.PropertyWrapperValuePlaceholderExpr
|
||||
import codeql.swift.elements.type.ProtocolCompositionType
|
||||
import codeql.swift.elements.decl.ProtocolDecl
|
||||
import codeql.swift.elements.expr.ProtocolMetatypeToObjectExpr
|
||||
import codeql.swift.elements.type.ProtocolType
|
||||
import codeql.swift.elements.expr.RebindSelfInConstructorExpr
|
||||
import codeql.swift.elements.type.ReferenceStorageType
|
||||
import codeql.swift.elements.expr.RegexLiteralExpr
|
||||
import codeql.swift.elements.stmt.RepeatWhileStmt
|
||||
import codeql.swift.elements.stmt.ReturnStmt
|
||||
import codeql.swift.elements.expr.SelfApplyExpr
|
||||
import codeql.swift.elements.type.SequenceArchetypeType
|
||||
import codeql.swift.elements.expr.SequenceExpr
|
||||
import codeql.swift.elements.type.SilBlockStorageType
|
||||
import codeql.swift.elements.type.SilBoxType
|
||||
import codeql.swift.elements.type.SilFunctionType
|
||||
import codeql.swift.elements.type.SilTokenType
|
||||
import codeql.swift.elements.stmt.Stmt
|
||||
import codeql.swift.elements.stmt.StmtCondition
|
||||
import codeql.swift.elements.expr.StringLiteralExpr
|
||||
import codeql.swift.elements.expr.StringToPointerExpr
|
||||
import codeql.swift.elements.decl.StructDecl
|
||||
import codeql.swift.elements.type.StructType
|
||||
import codeql.swift.elements.decl.SubscriptDecl
|
||||
import codeql.swift.elements.expr.SubscriptExpr
|
||||
import codeql.swift.elements.type.SubstitutableType
|
||||
import codeql.swift.elements.type.SugarType
|
||||
import codeql.swift.elements.expr.SuperRefExpr
|
||||
import codeql.swift.elements.stmt.SwitchStmt
|
||||
import codeql.swift.elements.type.SyntaxSugarType
|
||||
import codeql.swift.elements.expr.TapExpr
|
||||
import codeql.swift.elements.stmt.ThrowStmt
|
||||
import codeql.swift.elements.decl.TopLevelCodeDecl
|
||||
import codeql.swift.elements.expr.TryExpr
|
||||
import codeql.swift.elements.expr.TupleElementExpr
|
||||
import codeql.swift.elements.expr.TupleExpr
|
||||
import codeql.swift.elements.pattern.TuplePattern
|
||||
import codeql.swift.elements.type.TupleType
|
||||
import codeql.swift.elements.type.Type
|
||||
import codeql.swift.elements.decl.TypeAliasDecl
|
||||
import codeql.swift.elements.type.TypeAliasType
|
||||
import codeql.swift.elements.decl.TypeDecl
|
||||
import codeql.swift.elements.expr.TypeExpr
|
||||
import codeql.swift.elements.typerepr.TypeRepr
|
||||
import codeql.swift.elements.type.TypeVariableType
|
||||
import codeql.swift.elements.pattern.TypedPattern
|
||||
import codeql.swift.elements.type.UnarySyntaxSugarType
|
||||
import codeql.swift.elements.type.UnboundGenericType
|
||||
import codeql.swift.elements.expr.UnderlyingToOpaqueExpr
|
||||
import codeql.swift.elements.expr.UnevaluatedInstanceExpr
|
||||
import codeql.swift.elements.UnknownAstNode
|
||||
import codeql.swift.elements.type.UnknownType
|
||||
import codeql.swift.elements.type.UnmanagedStorageType
|
||||
import codeql.swift.elements.type.UnownedStorageType
|
||||
import codeql.swift.elements.expr.UnresolvedDeclRefExpr
|
||||
import codeql.swift.elements.expr.UnresolvedDotExpr
|
||||
import codeql.swift.elements.expr.UnresolvedMemberChainResultExpr
|
||||
import codeql.swift.elements.expr.UnresolvedMemberExpr
|
||||
import codeql.swift.elements.expr.UnresolvedPatternExpr
|
||||
import codeql.swift.elements.expr.UnresolvedSpecializeExpr
|
||||
import codeql.swift.elements.type.UnresolvedType
|
||||
import codeql.swift.elements.expr.UnresolvedTypeConversionExpr
|
||||
import codeql.swift.elements.decl.ValueDecl
|
||||
import codeql.swift.elements.decl.VarDecl
|
||||
import codeql.swift.elements.expr.VarargExpansionExpr
|
||||
import codeql.swift.elements.type.VariadicSequenceType
|
||||
import codeql.swift.elements.type.WeakStorageType
|
||||
import codeql.swift.elements.stmt.WhileStmt
|
||||
import codeql.swift.elements.stmt.YieldStmt
|
||||
4
swift/ql/lib/codeql/swift/elements/AstNode.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/AstNode.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.AstNode
|
||||
|
||||
class AstNode extends AstNodeBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/Element.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/Element.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.Element
|
||||
|
||||
class Element extends ElementBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/File.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/File.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.File
|
||||
|
||||
class File extends FileBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/Locatable.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/Locatable.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.Locatable
|
||||
|
||||
class Locatable extends LocatableBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/Location.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/Location.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.Location
|
||||
|
||||
class Location extends LocationBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/UnknownAstNode.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/UnknownAstNode.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.UnknownAstNode
|
||||
|
||||
class UnknownAstNode extends UnknownAstNodeBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.AbstractFunctionDecl
|
||||
|
||||
class AbstractFunctionDecl extends AbstractFunctionDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.AbstractStorageDecl
|
||||
|
||||
class AbstractStorageDecl extends AbstractStorageDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.AbstractTypeParamDecl
|
||||
|
||||
class AbstractTypeParamDecl extends AbstractTypeParamDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/AccessorDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/AccessorDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.AccessorDecl
|
||||
|
||||
class AccessorDecl extends AccessorDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.AssociatedTypeDecl
|
||||
|
||||
class AssociatedTypeDecl extends AssociatedTypeDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/ClassDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/ClassDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.ClassDecl
|
||||
|
||||
class ClassDecl extends ClassDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.ConcreteFuncDecl
|
||||
|
||||
class ConcreteFuncDecl extends ConcreteFuncDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.ConcreteVarDecl
|
||||
|
||||
class ConcreteVarDecl extends ConcreteVarDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.ConstructorDecl
|
||||
|
||||
class ConstructorDecl extends ConstructorDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/Decl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/Decl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.Decl
|
||||
|
||||
class Decl extends DeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.DestructorDecl
|
||||
|
||||
class DestructorDecl extends DestructorDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/EnumCaseDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/EnumCaseDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.EnumCaseDecl
|
||||
|
||||
class EnumCaseDecl extends EnumCaseDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/EnumDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/EnumDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.EnumDecl
|
||||
|
||||
class EnumDecl extends EnumDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.EnumElementDecl
|
||||
|
||||
class EnumElementDecl extends EnumElementDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.ExtensionDecl
|
||||
|
||||
class ExtensionDecl extends ExtensionDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/FuncDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/FuncDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.FuncDecl
|
||||
|
||||
class FuncDecl extends FuncDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.GenericContext
|
||||
|
||||
class GenericContext extends GenericContextBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.GenericTypeDecl
|
||||
|
||||
class GenericTypeDecl extends GenericTypeDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.GenericTypeParamDecl
|
||||
|
||||
class GenericTypeParamDecl extends GenericTypeParamDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/IfConfigDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/IfConfigDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.IfConfigDecl
|
||||
|
||||
class IfConfigDecl extends IfConfigDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/ImportDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/ImportDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.ImportDecl
|
||||
|
||||
class ImportDecl extends ImportDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.InfixOperatorDecl
|
||||
|
||||
class InfixOperatorDecl extends InfixOperatorDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.IterableDeclContext
|
||||
|
||||
class IterableDeclContext extends IterableDeclContextBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.MissingMemberDecl
|
||||
|
||||
class MissingMemberDecl extends MissingMemberDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/ModuleDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/ModuleDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.ModuleDecl
|
||||
|
||||
class ModuleDecl extends ModuleDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.NominalTypeDecl
|
||||
|
||||
class NominalTypeDecl extends NominalTypeDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.OpaqueTypeDecl
|
||||
|
||||
class OpaqueTypeDecl extends OpaqueTypeDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/OperatorDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/OperatorDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.OperatorDecl
|
||||
|
||||
class OperatorDecl extends OperatorDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/ParamDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/ParamDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.ParamDecl
|
||||
|
||||
class ParamDecl extends ParamDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.PatternBindingDecl
|
||||
|
||||
class PatternBindingDecl extends PatternBindingDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.PostfixOperatorDecl
|
||||
|
||||
class PostfixOperatorDecl extends PostfixOperatorDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.PoundDiagnosticDecl
|
||||
|
||||
class PoundDiagnosticDecl extends PoundDiagnosticDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.PrecedenceGroupDecl
|
||||
|
||||
class PrecedenceGroupDecl extends PrecedenceGroupDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.PrefixOperatorDecl
|
||||
|
||||
class PrefixOperatorDecl extends PrefixOperatorDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/ProtocolDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/ProtocolDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.ProtocolDecl
|
||||
|
||||
class ProtocolDecl extends ProtocolDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/StructDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/StructDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.StructDecl
|
||||
|
||||
class StructDecl extends StructDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.SubscriptDecl
|
||||
|
||||
class SubscriptDecl extends SubscriptDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.TopLevelCodeDecl
|
||||
|
||||
class TopLevelCodeDecl extends TopLevelCodeDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.TypeAliasDecl
|
||||
|
||||
class TypeAliasDecl extends TypeAliasDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/TypeDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.TypeDecl
|
||||
|
||||
class TypeDecl extends TypeDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/ValueDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/ValueDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.ValueDecl
|
||||
|
||||
class ValueDecl extends ValueDeclBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/decl/VarDecl.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/decl/VarDecl.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.decl.VarDecl
|
||||
|
||||
class VarDecl extends VarDeclBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.AbstractClosureExpr
|
||||
|
||||
class AbstractClosureExpr extends AbstractClosureExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.AnyHashableErasureExpr
|
||||
|
||||
class AnyHashableErasureExpr extends AnyHashableErasureExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/AnyTryExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/AnyTryExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.AnyTryExpr
|
||||
|
||||
class AnyTryExpr extends AnyTryExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.AppliedPropertyWrapperExpr
|
||||
|
||||
class AppliedPropertyWrapperExpr extends AppliedPropertyWrapperExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/ApplyExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/ApplyExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.ApplyExpr
|
||||
|
||||
class ApplyExpr extends ApplyExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.ArchetypeToSuperExpr
|
||||
|
||||
class ArchetypeToSuperExpr extends ArchetypeToSuperExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/Argument.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/Argument.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.Argument
|
||||
|
||||
class Argument extends ArgumentBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/ArrayExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/ArrayExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.ArrayExpr
|
||||
|
||||
class ArrayExpr extends ArrayExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.ArrayToPointerExpr
|
||||
|
||||
class ArrayToPointerExpr extends ArrayToPointerExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/ArrowExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/ArrowExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.ArrowExpr
|
||||
|
||||
class ArrowExpr extends ArrowExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/AssignExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/AssignExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.AssignExpr
|
||||
|
||||
class AssignExpr extends AssignExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.AutoClosureExpr
|
||||
|
||||
class AutoClosureExpr extends AutoClosureExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/AwaitExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/AwaitExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.AwaitExpr
|
||||
|
||||
class AwaitExpr extends AwaitExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/BinaryExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/BinaryExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.BinaryExpr
|
||||
|
||||
class BinaryExpr extends BinaryExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.BindOptionalExpr
|
||||
|
||||
class BindOptionalExpr extends BindOptionalExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.BooleanLiteralExpr
|
||||
|
||||
class BooleanLiteralExpr extends BooleanLiteralExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.BridgeFromObjCExpr
|
||||
|
||||
class BridgeFromObjCExpr extends BridgeFromObjCExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.BridgeToObjCExpr
|
||||
|
||||
class BridgeToObjCExpr extends BridgeToObjCExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.BuiltinLiteralExpr
|
||||
|
||||
class BuiltinLiteralExpr extends BuiltinLiteralExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/CallExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/CallExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.CallExpr
|
||||
|
||||
class CallExpr extends CallExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.CaptureListExpr
|
||||
|
||||
class CaptureListExpr extends CaptureListExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.CheckedCastExpr
|
||||
|
||||
class CheckedCastExpr extends CheckedCastExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.ClassMetatypeToObjectExpr
|
||||
|
||||
class ClassMetatypeToObjectExpr extends ClassMetatypeToObjectExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/ClosureExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/ClosureExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.ClosureExpr
|
||||
|
||||
class ClosureExpr extends ClosureExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.CodeCompletionExpr
|
||||
|
||||
class CodeCompletionExpr extends CodeCompletionExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/CoerceExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/CoerceExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.CoerceExpr
|
||||
|
||||
class CoerceExpr extends CoerceExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.CollectionExpr
|
||||
|
||||
class CollectionExpr extends CollectionExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.CollectionUpcastConversionExpr
|
||||
|
||||
class CollectionUpcastConversionExpr extends CollectionUpcastConversionExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.ConditionalBridgeFromObjCExpr
|
||||
|
||||
class ConditionalBridgeFromObjCExpr extends ConditionalBridgeFromObjCExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.ConditionalCheckedCastExpr
|
||||
|
||||
class ConditionalCheckedCastExpr extends ConditionalCheckedCastExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.ConstructorRefCallExpr
|
||||
|
||||
class ConstructorRefCallExpr extends ConstructorRefCallExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.CovariantFunctionConversionExpr
|
||||
|
||||
class CovariantFunctionConversionExpr extends CovariantFunctionConversionExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.CovariantReturnConversionExpr
|
||||
|
||||
class CovariantReturnConversionExpr extends CovariantReturnConversionExprBase { }
|
||||
4
swift/ql/lib/codeql/swift/elements/expr/DeclRefExpr.qll
Normal file
4
swift/ql/lib/codeql/swift/elements/expr/DeclRefExpr.qll
Normal file
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.DeclRefExpr
|
||||
|
||||
class DeclRefExpr extends DeclRefExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.DefaultArgumentExpr
|
||||
|
||||
class DefaultArgumentExpr extends DefaultArgumentExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.DerivedToBaseExpr
|
||||
|
||||
class DerivedToBaseExpr extends DerivedToBaseExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.DestructureTupleExpr
|
||||
|
||||
class DestructureTupleExpr extends DestructureTupleExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.DictionaryExpr
|
||||
|
||||
class DictionaryExpr extends DictionaryExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
// generated by codegen/codegen.py, remove this comment if you wish to edit this file
|
||||
private import codeql.swift.generated.expr.DifferentiableFunctionExpr
|
||||
|
||||
class DifferentiableFunctionExpr extends DifferentiableFunctionExprBase { }
|
||||
@@ -0,0 +1,4 @@
|
||||
private import codeql.swift.generated.expr.DifferentiableFunctionExtractOriginalExpr
|
||||
|
||||
class DifferentiableFunctionExtractOriginalExpr extends DifferentiableFunctionExtractOriginalExprBase {
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user