├── .circleci ├── README.md └── config.yml ├── .codemapignore ├── .dockerignore ├── .envrc ├── .gitattributes ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE │ └── release_pr_template.md ├── actionlint.yaml ├── pull_request_template.md ├── stale.yml └── workflows │ ├── .codemapignore │ ├── Makefile │ ├── README.md │ ├── build-test-core-x86.jsonnet │ ├── build-test-core-x86.yml │ ├── build-test-docker.jsonnet │ ├── build-test-docker.yml │ ├── build-test-manylinux-aarch64.jsonnet │ ├── build-test-manylinux-aarch64.yml │ ├── build-test-manylinux-x86.jsonnet │ ├── build-test-manylinux-x86.yml │ ├── build-test-osx-arm64.jsonnet │ ├── build-test-osx-arm64.yml │ ├── build-test-osx-x86.jsonnet │ ├── build-test-osx-x86.yml │ ├── build-test-windows-x86.jsonnet │ ├── build-test-windows-x86.yml │ ├── check-submodule.yml │ ├── libs │ ├── actions.libsonnet │ ├── docker.libsonnet │ ├── gha.libsonnet │ ├── semgrep.libsonnet │ └── util.libsonnet │ ├── lint.jsonnet │ ├── lint.yml │ ├── nightly.jsonnet │ ├── nightly.yml │ ├── pr-checklist.yaml │ ├── semgrep.jsonnet │ ├── semgrep.yml │ ├── sync-with-PRO.jsonnet │ ├── sync-with-PRO.yml │ ├── test-e2e-semgrep-ci.jsonnet │ ├── test-e2e-semgrep-ci.yml │ ├── tests.jsonnet │ ├── tests.yml │ ├── trigger-doc-update.yml │ ├── trigger-semgrep-comparison-argo.jsonnet │ └── trigger-semgrep-comparison-argo.yml ├── .gitignore ├── .gitmodules ├── .ocamlformat ├── .pre-commit-config.yaml ├── .pre-commit-hooks.yaml ├── .semgrepignore ├── .vscode ├── extensions.json ├── launch.json └── tasks.json ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── COPYRIGHT ├── Dockerfile ├── INSTALL.md ├── LICENSE ├── Makefile ├── README.md ├── SECURITY.md ├── TCB ├── Cap.ml ├── Cap.mli ├── CapRandom.ml ├── CapRandom.mli ├── CapStdlib.ml ├── CapStdlib.mli ├── CapSys.ml ├── CapSys.mli ├── CapUnix.ml ├── CapUnix.mli ├── common.libsonnet ├── dune ├── forbid_chdir.jsonnet ├── forbid_console.jsonnet ├── forbid_everything.jsonnet ├── forbid_exec.jsonnet ├── forbid_exit.jsonnet ├── forbid_fs.jsonnet ├── forbid_misc.jsonnet ├── forbid_network.jsonnet ├── forbid_process.jsonnet └── forbid_tmp.jsonnet ├── bin ├── changelog.d ├── README └── gh-1234.example ├── cli ├── LICENSE ├── MANIFEST.in ├── Makefile ├── Pipfile ├── Pipfile.lock ├── park.cfg ├── pyproject.toml ├── setup.py ├── src │ ├── semdep │ │ ├── __init__.py │ │ ├── external │ │ │ ├── __init__.py │ │ │ ├── packaging │ │ │ │ ├── LICENSE │ │ │ │ ├── LICENSE.APACHE │ │ │ │ ├── LICENSE.BSD │ │ │ │ ├── README │ │ │ │ ├── __about__.py │ │ │ │ ├── __init__.py │ │ │ │ ├── _manylinux.py │ │ │ │ ├── _musllinux.py │ │ │ │ ├── _structures.py │ │ │ │ ├── py.typed │ │ │ │ ├── specifiers.py │ │ │ │ ├── tags.py │ │ │ │ ├── utils.py │ │ │ │ └── version.py │ │ │ └── parsy │ │ │ │ ├── LICENSE │ │ │ │ ├── README.rst │ │ │ │ ├── VENDOR_README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── __init__.pyi │ │ │ │ └── version.py │ │ ├── golang_version.py │ │ ├── matchers │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── gradle.py │ │ │ └── pip_requirements.py │ │ ├── maven_version.py │ │ ├── package_restrictions.py │ │ ├── parsers │ │ │ ├── __init__.py │ │ │ ├── cargo.py │ │ │ ├── composer.py │ │ │ ├── gem.py │ │ │ ├── go_mod.py │ │ │ ├── gradle.py │ │ │ ├── mix.py │ │ │ ├── package_lock.py │ │ │ ├── packages_lock_c_sharp.py │ │ │ ├── pipfile.py │ │ │ ├── pnpm.py │ │ │ ├── poetry.py │ │ │ ├── pom_tree.py │ │ │ ├── preprocessors.py │ │ │ ├── pubspec_lock.py │ │ │ ├── requirements.py │ │ │ ├── swiftpm.py │ │ │ ├── util.py │ │ │ └── yarn.py │ │ └── subproject_matchers.py │ └── semgrep │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── app │ │ ├── __init__.py │ │ ├── auth.py │ │ ├── project_config.py │ │ ├── scans.py │ │ ├── session.py │ │ └── version.py │ │ ├── autofix.py │ │ ├── bin │ │ └── __init__.py │ │ ├── bytesize.py │ │ ├── cli.py │ │ ├── commands │ │ ├── __init__.py │ │ ├── ci.py │ │ ├── install.py │ │ ├── login.py │ │ ├── publish.py │ │ ├── scan.py │ │ └── wrapper.py │ │ ├── config_resolver.py │ │ ├── console.py │ │ ├── console_scripts │ │ ├── __init__.py │ │ ├── entrypoint.py │ │ └── pysemgrep.py │ │ ├── constants.py │ │ ├── core_output.py │ │ ├── core_runner.py │ │ ├── core_targets_plan.py │ │ ├── default_group.py │ │ ├── dependency_aware_rule.py │ │ ├── engine.py │ │ ├── env.py │ │ ├── error.py │ │ ├── error_handler.py │ │ ├── error_location.py │ │ ├── exclude_rules.py │ │ ├── external │ │ ├── __init__.py │ │ ├── git_url_parser.py │ │ └── pymmh3.py │ │ ├── formatter │ │ ├── __init__.py │ │ ├── base.py │ │ ├── emacs.py │ │ ├── gitlab_sast.py │ │ ├── gitlab_secrets.py │ │ ├── json.py │ │ ├── junit_xml.py │ │ ├── sarif.py │ │ ├── text.py │ │ └── vim.py │ │ ├── git.py │ │ ├── join_rule.py │ │ ├── main.py │ │ ├── meta.py │ │ ├── metrics.py │ │ ├── nosemgrep.py │ │ ├── notifications.py │ │ ├── output.py │ │ ├── output_extra.py │ │ ├── parsing_data.py │ │ ├── profile_manager.py │ │ ├── resolve_dependency_source.py │ │ ├── resolve_subprojects.py │ │ ├── rpc.py │ │ ├── rpc_call.py │ │ ├── rule.py │ │ ├── rule_lang.py │ │ ├── rule_match.py │ │ ├── run_scan.py │ │ ├── scan_report.py │ │ ├── semgrep_core.py │ │ ├── semgrep_types.py │ │ ├── settings.py │ │ ├── state.py │ │ ├── subproject.py │ │ ├── target_manager.py │ │ ├── target_mode.py │ │ ├── terminal.py │ │ ├── test.py │ │ ├── tracing.py │ │ ├── types.py │ │ ├── util.py │ │ └── verbose_logging.py ├── stubs │ ├── astpretty.pyi │ ├── boltons │ │ ├── __init__.pyi │ │ ├── cacheutils.pyi │ │ ├── debugutils.pyi │ │ ├── deprutils.pyi │ │ ├── dictutils.pyi │ │ ├── easterutils.pyi │ │ ├── ecoutils.pyi │ │ ├── excutils.pyi │ │ ├── fileutils.pyi │ │ ├── formatutils.pyi │ │ ├── funcutils.pyi │ │ ├── gcutils.pyi │ │ ├── ioutils.pyi │ │ ├── iterutils.pyi │ │ ├── jsonutils.pyi │ │ ├── listutils.pyi │ │ ├── mathutils.pyi │ │ ├── mboxutils.pyi │ │ ├── namedutils.pyi │ │ ├── queueutils.pyi │ │ ├── setutils.pyi │ │ ├── socketutils.pyi │ │ ├── statsutils.pyi │ │ ├── strutils.pyi │ │ ├── tableutils.pyi │ │ ├── tbutils.pyi │ │ ├── timeutils.pyi │ │ ├── typeutils.pyi │ │ └── urlutils.pyi │ ├── click_option_group │ │ ├── __init__.py │ │ └── optgroup.pyi │ ├── glom │ │ ├── __init__.pyi │ │ └── core.pyi │ ├── packaging │ │ ├── __init__.py │ │ └── version.pyi │ └── ruamel │ │ ├── __init__.py │ │ └── yaml.pyi └── tests │ ├── README.md │ ├── __init__.py │ ├── check-markers │ ├── conftest.py │ ├── default │ ├── consistency │ │ ├── __init__.py │ │ └── test_lang_consistency.py │ ├── e2e-other │ │ ├── parsers │ │ │ ├── test_gem.py │ │ │ ├── test_mix.py │ │ │ ├── test_package_lock.py │ │ │ ├── test_poetry.py │ │ │ ├── test_swiftpm.py │ │ │ └── test_yarn.py │ │ ├── readme.txt │ │ ├── rules │ │ ├── snapshots │ │ │ ├── test_ci │ │ │ │ ├── test_app_blocked_findings │ │ │ │ │ ├── mocked_complete_response0 │ │ │ │ │ │ └── output.txt │ │ │ │ │ └── mocked_complete_response1 │ │ │ │ │ │ └── output.txt │ │ │ │ ├── test_app_ignore │ │ │ │ │ ├── ignored_product0--v1 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── ignored_product0- │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── ignored_product0-_foo.py-v1 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── ignored_product0-_foo.py │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── ignored_product0-foo.py-v1 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── ignored_product0-foo.py │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── ignored_product1--v1 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── ignored_product1- │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── ignored_product1-_foo.py-v1 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── ignored_product1-_foo.py │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── ignored_product1-foo.py-v1 │ │ │ │ │ │ └── results.txt │ │ │ │ │ └── ignored_product1-foo.py │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_config_run │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── results.txt │ │ │ │ │ └── noautofix │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_dryrun │ │ │ │ │ └── None │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_existing_reachable_finding_deduplication │ │ │ │ │ └── config │ │ │ │ │ │ ├── base_output.txt │ │ │ │ │ │ └── new_output.txt │ │ │ │ ├── test_existing_supply_chain_finding │ │ │ │ │ └── config │ │ │ │ │ │ ├── base_output.txt │ │ │ │ │ │ └── new_output.txt │ │ │ │ ├── test_fail_on_historical_scan_without_secrets │ │ │ │ │ └── output.txt │ │ │ │ ├── test_full_run │ │ │ │ │ ├── autofix-azure-pipelines-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-azure-pipelines │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-bitbucket-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-bitbucket │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-buildkite-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-buildkite │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-circleci-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-circleci │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-github-enterprise │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-github-pr-semgrepconfig │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-github-pr │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-github-push-special-env-vars │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-github-push-with-app-url │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-github-push │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-gitlab-push │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-gitlab-special-env-vars │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-gitlab │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-jenkins-missing-vars │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-jenkins-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-jenkins │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-local │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-local_with_dot_url │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-self-hosted │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-travis-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-travis │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix-unparsable_url │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-azure-pipelines-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-azure-pipelines │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-bitbucket-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-bitbucket │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-buildkite-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-buildkite │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-circleci-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-circleci │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-github-enterprise │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-github-pr-semgrepconfig │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-github-pr │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-github-push-special-env-vars │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-github-push-with-app-url │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-github-push │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-gitlab-push │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-gitlab-special-env-vars │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-gitlab │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-jenkins-missing-vars │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-jenkins-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-jenkins │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-local │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-local_with_dot_url │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-self-hosted │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-travis-overwrite-autodetected-variables │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix-travis │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ │ └── noautofix-unparsable_url │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ ├── meta.json │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_generic_secrets_output │ │ │ │ │ └── generic_secrets_and_real_rule │ │ │ │ │ │ └── output.txt │ │ │ │ ├── test_github_ci_bad_base_sha │ │ │ │ │ └── results.txt │ │ │ │ ├── test_lockfile_parse_failure_reporting │ │ │ │ │ ├── complete.json │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ ├── results.txt │ │ │ │ │ └── v1 │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── findings_and_ignores.json │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_nosem │ │ │ │ │ ├── autofix---disable-nosem │ │ │ │ │ │ └── output.txt │ │ │ │ │ ├── autofix---enable-nosem │ │ │ │ │ │ └── output.txt │ │ │ │ │ ├── noautofix---disable-nosem │ │ │ │ │ │ └── output.txt │ │ │ │ │ └── noautofix---enable-nosem │ │ │ │ │ │ └── output.txt │ │ │ │ ├── test_outputs │ │ │ │ │ ├── autofix---emacs │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix---gitlab-sast │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix---gitlab-secrets │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix---json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix---sarif │ │ │ │ │ │ ├── results.out │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── autofix---vim │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix---emacs │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix---gitlab-sast │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix---gitlab-secrets │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix---json │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── noautofix---sarif │ │ │ │ │ │ ├── results.out │ │ │ │ │ │ └── results.txt │ │ │ │ │ └── noautofix---vim │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_query_dependency │ │ │ │ │ └── True-config │ │ │ │ │ │ ├── complete.json │ │ │ │ │ │ ├── dependencies.json │ │ │ │ │ │ └── output.txt │ │ │ │ ├── test_reachable_and_unreachable_diff_scan_findings │ │ │ │ │ └── config │ │ │ │ │ │ ├── base_output.txt │ │ │ │ │ │ └── new_output.txt │ │ │ │ ├── test_sarif_output_with_dataflow_traces │ │ │ │ │ └── results.txt │ │ │ │ ├── test_shallow_wrong_merge_base │ │ │ │ │ ├── bad_results.txt │ │ │ │ │ └── results.txt │ │ │ │ └── test_subdir │ │ │ │ │ ├── ..-False │ │ │ │ │ └── output.txt │ │ │ │ │ ├── ..org-False │ │ │ │ │ └── output.txt │ │ │ │ │ ├── checkout_project_nameorgexamples-False │ │ │ │ │ └── output.txt │ │ │ │ │ ├── org-True │ │ │ │ │ └── output.txt │ │ │ │ │ ├── orgexamples-True │ │ │ │ │ └── output.txt │ │ │ │ │ └── test..orgexamples-True │ │ │ │ │ └── output.txt │ │ │ ├── test_download_config │ │ │ │ └── test_new_feature_registry_config │ │ │ │ │ └── output.txt │ │ │ ├── test_join │ │ │ │ ├── test_basic │ │ │ │ │ ├── rulesjoin_rulesinlineinline-rules.yaml-join_rulesuser-input-with-unescaped-extension │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesjoin_rulesinlinetaint.yaml-join_rulesuser-input-with-unescaped-extension │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesjoin_rulesmultiple-rules.yaml-join_rulesuser-input-with-unescaped-extension │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesjoin_rulesuser-input-escaped-with-safe.yaml-join_rulesuser-input-escaped-with-safe │ │ │ │ │ │ └── results.json │ │ │ │ │ └── rulesjoin_rulesuser-input-with-unescaped-extension.yaml-join_rulesuser-input-with-unescaped-extension │ │ │ │ │ │ └── results.json │ │ │ │ └── test_recursive │ │ │ │ │ ├── rulesjoin_rulesrecursiveflask-deep-stored-xss-exampleflask-stored-xss.yaml-join_rulesrecursiveflask-deep-stored-xss-example │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesjoin_rulesrecursivejava-callgraph-examplevulnado-sqli.yaml-join_rulesrecursivejava-callgraph-examplevulnado-chain-broken │ │ │ │ │ └── results.json │ │ │ │ │ └── rulesjoin_rulesrecursivejava-callgraph-examplevulnado-sqli.yaml-join_rulesrecursivejava-callgraph-examplevulnado │ │ │ │ │ └── results.json │ │ │ ├── test_match_based_id │ │ │ │ ├── test_duplicate_matches_indexing │ │ │ │ │ └── results.json │ │ │ │ ├── test_value │ │ │ │ │ ├── rule_and_target0 │ │ │ │ │ │ └── results.json │ │ │ │ │ └── rule_and_target1 │ │ │ │ │ │ └── results.json │ │ │ │ └── test_value_osemfail │ │ │ │ │ └── rule_and_target0 │ │ │ │ │ └── results.json │ │ │ ├── test_pro_rule_skipping │ │ │ │ ├── test_pro_rule_skipping │ │ │ │ │ └── results.json │ │ │ │ └── test_pro_rule_skipping_no_parsing │ │ │ │ │ └── results.json │ │ │ ├── test_sca │ │ │ │ ├── test_sca_lockfile_only_output │ │ │ │ │ └── results.txt │ │ │ │ └── test_sca_output │ │ │ │ │ └── results.txt │ │ │ ├── test_secret │ │ │ │ └── test_cli_test_secret_rule │ │ │ │ │ └── results.txt │ │ │ ├── test_ssc │ │ │ │ ├── test_no_lockfiles │ │ │ │ │ └── results.txt │ │ │ │ ├── test_parsing │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockcommits.v1package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockcommits.v2package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockempty.v1package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockempty.v2package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockfiles.v1package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockfiles.v2package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-locknested-dependencies-dup.v1package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-locknested-dependencies-dup.v2package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-locknested-dependencies.v1package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-locknested-dependencies.v2package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockone-package-dev.v1package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockone-package-dev.v2package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockone-package.v1package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockone-package.v2package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockscoped-packages.v1package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-lockscoped-packages.v2package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-locktwo-packages.v1package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpackage-locktwo-packages.v2package-lock.json │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpipfileemptyPipfile.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpipfileno-versionPipfile.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpipfileone-package-devPipfile.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpipfileone-packagePipfile.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpipfiletwo-packages-altPipfile.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpipfiletwo-packagesPipfile.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmcommitspnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmemptypnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmexoticpnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmfilespnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmmultiple-packagespnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmmultiple-versionspnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmno-packagespnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmone-package-devpnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmone-package-v6-lockfilepnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmone-packagepnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmpeer-dependencies-advancedpnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmpeer-dependenciespnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmscoped-packages-v6-lockfilepnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmscoped-packagespnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpnpmtarballpnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpoetryemptypoetry.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpoetryone-package-with-metadatapoetry.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpoetryone-packagepoetry.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpoetrysource-gitpoetry.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpoetrysource-legacypoetry.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingpoetrytwo-packagespoetry.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingrequirementsemptyrequirements.txt │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingrequirementsfile-format-examplerequirements.txt │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingrequirementsmultiple-packages-constrainedrequirements.txt │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingrequirementsmultiple-packages-mixedrequirements.txt │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingrequirementsnon-normalized-namesrequirements.txt │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingrequirementsone-package-constrainedrequirements.txt │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingrequirementsone-package-unconstrainedrequirements.txt │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingrequirementsonly-commentsrequirements.txt │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingrequirementswith-added-supportrequirements.txt │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarncache-compressionlevel.v2yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarncommits.v1yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarncommits.v2yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnempty.v1yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnempty.v2yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnfiles.v1yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnfiles.v2yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnmetadata-only.v2yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnmultiple-constraints.v1yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnmultiple-versions.v1yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnmultiple-versions.v2yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnone-package.v1yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnone-package.v2yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnscoped-packages.v1yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnscoped-packages.v2yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarntwo-packages.v1yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarntwo-packages.v2yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnversions-with-build-strings.v1yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ ├── targetsdependency_awareosv_parsingyarnversions-with-build-strings.v2yarn.lock │ │ │ │ │ │ └── dependencies.json │ │ │ │ │ └── targetsdependency_awarepnpm-error-keypnpm-lock.yaml │ │ │ │ │ │ └── dependencies.json │ │ │ │ ├── test_sarif_sca_output │ │ │ │ │ ├── rulesdependency_awareansi-html.yaml-dependency_awareansi │ │ │ │ │ │ └── results.sarif │ │ │ │ │ ├── rulesdependency_awareno-pattern.yaml-dependency_awareyarn │ │ │ │ │ │ └── results.sarif │ │ │ │ │ └── rulesdependency_awareyarn-sass.yaml-dependency_awareyarn │ │ │ │ │ │ └── results.sarif │ │ │ │ ├── test_ssc │ │ │ │ │ ├── rulesdependency_awareansi-html.yaml-dependency_awareansi │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareawscli_vuln.yaml-dependency_awareawscli-with-manifest │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareawscli_vuln.yaml-dependency_awareawscli │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaredart-parity.yaml-dependency_awaredart │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaregeneric-sca.yaml-dependency_awaregeneric │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarego-sca.yaml-dependency_awarego │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarego-sca.yaml-dependency_awarego_multi_newline │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarego-sca.yaml-dependency_awarego_toolchain │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaregradle-guava.yaml-dependency_awaregradle-direct │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle-arbitrary-comment │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle-kts │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle-no-comment │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle_empty │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle_trailing_newline │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-pnpm-sca.yaml-dependency_awarepnpm-v6 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-pnpm-sca.yaml-dependency_awarepnpm-v9-no-snapshots-this-is-wrong-btw │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-pnpm-sca.yaml-dependency_awarepnpm-v9 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-pnpm-sca.yaml-dependency_awarepnpm-workspaces │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-pnpm-sca.yaml-dependency_awarepnpm │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-sca.yaml-dependency_awaredeeply_nested_package_lock │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-sca.yaml-dependency_awarejs │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-sca.yaml-dependency_awarenpm-empty │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-sca.yaml-dependency_awarenpm-malformed │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-sca.yaml-dependency_awarepackage-lock_resolved_false │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-yarn2-sca.yaml-dependency_awarepackage-lock-v3 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejs-yarn2-sca.yaml-dependency_awareyarn2 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarelodash-4.17.19.yaml-dependency_awarelodash │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarelog4shell.yaml-dependency_awarelog4j │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaremaven-guice.yaml-dependency_awaremaven_dep_tree_extra_field │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaremaven-guice.yaml-dependency_awaremaven_dep_tree_joined │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaremaven-guice.yaml-dependency_awaremaven_dep_tree_optional │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaremaven-guice.yaml-dependency_awaremaven_dep_tree_release_version │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaremonorepo.yaml-dependency_awaremonorepo │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaremulti-dep-rule.yaml-dependency_awaremulti-dep-rule │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarenested_package_lock.yaml-dependency_awarenested_package_lock │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareno-pattern.yaml-dependency_aware │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareno-pattern.yaml-dependency_awareyarn-v1-without-version-constraint │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareno-pattern.yaml-dependency_awareyarn │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareno-pattern.yaml-dependency_awareyarn_multi_hash │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarenuget-sca-simple.yaml-dependency_awarenuget-large │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarenuget-sca-simple.yaml-dependency_awarenuget │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarephp-sca.yaml-dependency_awarephp │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-pipfile-pyhcl-sca.yaml-dependency_awarepipfile_with_vuln_in_dev-packages │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-pipfile-sca.yaml-dependency_awarepipfile │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-pipfile-sca.yaml-dependency_awarepipfile_with_empty_dev-packages │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-pipfile-sca.yaml-dependency_awarepipfile_with_one_newline_between_sections │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-pipfile-sca.yaml-dependency_awarepipfile_with_uppercase_package_name │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-poetry-sca.yaml-dependency_awaremanifest_parse_error │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-poetry-sca.yaml-dependency_awarenuget │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-poetry-sca.yaml-dependency_awarepoetry │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-poetry-sca.yaml-dependency_awarepoetry_comments │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-poetry-sca.yaml-dependency_awarepoetry_empty_table │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-poetry-sca.yaml-dependency_awarepoetry_quoted_key │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-poetry-sca.yaml-dependency_awarepoetry_trailing_newlines │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-poetry-sca.yaml-dependency_awarepoetry_with_arbitrary_starting_comment │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-poetry-sca.yaml-dependency_awarepoetry_with_uppercase_package_name │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements3 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_pip │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_with_uppercase_package_name │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareruby-sca.yaml-dependency_awareruby-with-multiple-gem-sections │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareruby-sca.yaml-dependency_awareruby-with-multiple-remotes │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareruby-sca.yaml-dependency_awareruby │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarerust-sca.yaml-dependency_awarerust │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarerust-sca.yaml-dependency_awarerust_short_lockfile │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareswift-sca.yaml-dependency_awareswiftpm_missing_version │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareswift-sca.yaml-dependency_awareswiftpmv1 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareswift-sca.yaml-dependency_awareswiftpmv2 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareswift-sca.yaml-dependency_awareswiftpmv3 │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaretransitive_and_direct.yaml-dependency_awaretransitive_and_directdirect_reachable_transitive_unreachable │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaretransitive_and_direct.yaml-dependency_awaretransitive_and_directtransitive_not_reachable_if_direct │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awareyarn-sass.yaml-dependency_awareyarn │ │ │ │ │ │ └── results.txt │ │ │ │ │ └── rulesdependency_awareyarn-sass.yaml-dependency_awareyarn_at_in_version │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_ssc__lockfileless │ │ │ │ │ ├── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle-no-lockfile-missing-gradlew │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle-no-lockfile │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awaremaven-log4j.yaml-dependency_awaremaven-no-lockfile │ │ │ │ │ │ └── results.txt │ │ │ │ │ └── rulesdependency_awarenuget-newtonsoft-json-parity.yaml-dependency_awarenuget_no_lockfile │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_ssc__pypi_package_name_lowercase │ │ │ │ │ ├── rulesdependency_awarepython-pipfile-case-insensitive-package.yaml-dependency_awarepipfile │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-poetry-case-insensitive-package.yaml-dependency_awarepoetry │ │ │ │ │ │ └── results.txt │ │ │ │ │ └── rulesdependency_awarepython-requirements-case-insensitive-package.yaml-dependency_awarerequirements │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_ssc__requirements_lockfiles │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirement │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirement_pip │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_folder │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_folder_dep_dupes │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_folder_no_src │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_folder_similar_deps │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_multiple_lockfiles │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_multiple_lockfiles_dep_dupes │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_multiple_lockfiles_dep_dupes_no_src │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_multiple_lockfiles_no_src │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_multiple_lockfiles_similar_deps │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_nested │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_nested_dep_dupes │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_nested_folder │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_nested_folder_dep_dupes │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_nested_folder_no_src │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_nested_no_src │ │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_pip │ │ │ │ │ │ └── results.txt │ │ │ │ │ └── rulesdependency_awarepython-requirements-sca.yaml-dependency_awarerequirements_pip_folder │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_ssc__setup_py_dynamic_resolution │ │ │ │ │ └── rulesdependency_awarepython-requirements-sca.yaml-dependency_awaresetup-py-dynamic-resolution │ │ │ │ │ │ └── results.txt │ │ │ │ └── test_ssc_logged_in │ │ │ │ │ ├── rulesdependency_awareawscli_vuln.yaml-dependency_awareawscli │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle-no-lockfile │ │ │ │ │ └── results.txt │ │ │ │ │ └── rulesdependency_awarejava-gradle-sca.yaml-dependency_awaregradle_multi_project_no_lockfile │ │ │ │ │ └── results.txt │ │ │ └── test_taint_intrafile │ │ │ │ └── test_taint_intrafile │ │ │ │ └── rulestaint_intrafile.yaml-tainttaint_intrafile.py │ │ │ │ └── results.txt │ │ ├── targets │ │ ├── test_api.py │ │ ├── test_ci.py │ │ ├── test_download_config.py │ │ ├── test_golang_version.py │ │ ├── test_join.py │ │ ├── test_log_file.py │ │ ├── test_login.py │ │ ├── test_match_based_id.py │ │ ├── test_pro_rule_skipping.py │ │ ├── test_publish.py │ │ ├── test_sca.py │ │ ├── test_secret.py │ │ └── test_ssc.py │ ├── e2e-pysemgrep │ │ ├── test_performance.py │ │ └── test_utility_commands.py │ ├── e2e │ │ ├── __init__.py │ │ ├── rules │ │ │ ├── aliengrep │ │ │ │ ├── begin-end.yaml │ │ │ │ ├── dockerfile.yaml │ │ │ │ ├── html.yaml │ │ │ │ ├── httpresponse.yaml │ │ │ │ ├── long-match.yaml │ │ │ │ ├── markdown.yaml │ │ │ │ ├── metavariable-pattern.yaml │ │ │ │ ├── multi-lines.yaml │ │ │ │ ├── nosem-html.yaml │ │ │ │ └── terraform.yaml │ │ │ ├── autofix │ │ │ │ ├── add-metadata-hcl.yaml │ │ │ │ ├── autofix.yaml │ │ │ │ ├── csv-writer.yaml │ │ │ │ ├── defaulthttpclient.yaml │ │ │ │ ├── delete-partial-line.yaml │ │ │ │ ├── django-none-password-default.yaml │ │ │ │ ├── exact-collision.yaml │ │ │ │ ├── flask-use-jsonify.yaml │ │ │ │ ├── imported-entity.yaml │ │ │ │ ├── java-string-wrap.yaml │ │ │ │ ├── ocaml_paren_expr.yaml │ │ │ │ ├── order.yaml │ │ │ │ ├── overlapping-collision.yaml │ │ │ │ ├── python-assert-statement.yaml │ │ │ │ ├── python-delete-import.yaml │ │ │ │ ├── python-ranges.yaml │ │ │ │ ├── redundant.yaml │ │ │ │ ├── replace-field-yaml.yaml │ │ │ │ ├── requests-use-timeout.yaml │ │ │ │ ├── three-autofixes.yaml │ │ │ │ ├── two-autofixes.yaml │ │ │ │ └── utf-8.yaml │ │ │ ├── bad-java-rule.yaml │ │ │ ├── basic.yaml │ │ │ ├── cwe_tag.yaml │ │ │ ├── deduplication │ │ │ │ ├── duplication-different-message.yaml │ │ │ │ └── duplication-same-message.yaml │ │ │ ├── dependency_aware │ │ │ │ ├── ansi-html.yaml │ │ │ │ ├── awscli_vuln.yaml │ │ │ │ ├── dart-parity.yaml │ │ │ │ ├── generic-sca.yaml │ │ │ │ ├── go-sca.yaml │ │ │ │ ├── gradle-guava.yaml │ │ │ │ ├── java-gradle-sca.yaml │ │ │ │ ├── js-pnpm-sca.yaml │ │ │ │ ├── js-sca.yaml │ │ │ │ ├── js-yarn2-sca.yaml │ │ │ │ ├── lodash-4.17.19.yaml │ │ │ │ ├── log4shell.yaml │ │ │ │ ├── maven-guice.yaml │ │ │ │ ├── maven-log4j.yaml │ │ │ │ ├── monorepo.yaml │ │ │ │ ├── monorepo_with_first_party.yaml │ │ │ │ ├── multi-dep-rule.yaml │ │ │ │ ├── nested_package_lock.yaml │ │ │ │ ├── no-pattern.yaml │ │ │ │ ├── nuget-newtonsoft-json-parity.yaml │ │ │ │ ├── nuget-sca-simple.yaml │ │ │ │ ├── php-sca.yaml │ │ │ │ ├── python-pipfile-case-insensitive-package.yaml │ │ │ │ ├── python-pipfile-pyhcl-sca.yaml │ │ │ │ ├── python-pipfile-sca.yaml │ │ │ │ ├── python-poetry-case-insensitive-package.yaml │ │ │ │ ├── python-poetry-sca.yaml │ │ │ │ ├── python-requirements-case-insensitive-package.yaml │ │ │ │ ├── python-requirements-sca.yaml │ │ │ │ ├── python-uv-sca.yaml │ │ │ │ ├── ruby-sca.yaml │ │ │ │ ├── rust-sca.yaml │ │ │ │ ├── swift-sca.yaml │ │ │ │ ├── transitive_and_direct.yaml │ │ │ │ └── yarn-sass.yaml │ │ │ ├── duplicate-rule.yaml │ │ │ ├── eqeq-basic-c.yaml │ │ │ ├── eqeq-basic.yaml │ │ │ ├── eqeq-meta.yaml │ │ │ ├── eqeq-python.yaml │ │ │ ├── eqeq-source.yml │ │ │ ├── eqeq.yaml │ │ │ ├── experiment-rule.yaml │ │ │ ├── extra_field.yaml │ │ │ ├── filecount.yaml │ │ │ ├── fixtest │ │ │ │ ├── basic_fix.yaml │ │ │ │ ├── basic_fix_regex.yaml │ │ │ │ ├── fix_trailing_newline.yaml │ │ │ │ ├── other_fix.yaml │ │ │ │ └── other_pattern.yaml │ │ │ ├── hidden │ │ │ │ └── .hidden │ │ │ │ │ └── eqeq.yaml │ │ │ ├── inside.yaml │ │ │ ├── invalid-rules │ │ │ │ ├── additional-invalid-pattern-operator.yaml │ │ │ │ ├── invalid-metavariable-regex.yaml │ │ │ │ ├── invalid-missing-top-item.yaml │ │ │ │ ├── invalid-pattern-child.yaml │ │ │ │ ├── invalid-pattern-operator.yaml │ │ │ │ ├── invalid-pattern.yaml │ │ │ │ ├── missing-hyphen.yaml │ │ │ │ ├── missing-pattern.yaml │ │ │ │ ├── string-pattern-under-patterns.yaml │ │ │ │ └── string-pattern.yaml │ │ │ ├── inventory-rule.yaml │ │ │ ├── join_rules │ │ │ │ ├── inline │ │ │ │ │ ├── inline-rules.yaml │ │ │ │ │ └── taint.yaml │ │ │ │ ├── multiple-rules.yaml │ │ │ │ ├── recursive │ │ │ │ │ ├── flask-deep-stored-xss-example │ │ │ │ │ │ ├── flask-stored-xss.yaml │ │ │ │ │ │ └── rule-parts │ │ │ │ │ │ │ ├── callgraph.yaml │ │ │ │ │ │ │ ├── callgraph2.yaml │ │ │ │ │ │ │ ├── model-data-returned.yaml │ │ │ │ │ │ │ ├── models.yaml │ │ │ │ │ │ │ ├── param-saved-in-model.yaml │ │ │ │ │ │ │ ├── template-variables.yaml │ │ │ │ │ │ │ ├── unsafely-rendered-data.yaml │ │ │ │ │ │ │ └── unsanitized-data-sink.yaml │ │ │ │ │ └── java-callgraph-example │ │ │ │ │ │ ├── rule-parts │ │ │ │ │ │ ├── java-callgraph.yaml │ │ │ │ │ │ ├── java-spring-user-input.yaml │ │ │ │ │ │ └── method-parameter-formatted-sql.yaml │ │ │ │ │ │ └── vulnado-sqli.yaml │ │ │ │ ├── rule_parts │ │ │ │ │ ├── any-template-var.yaml │ │ │ │ │ ├── flask-user-input.yaml │ │ │ │ │ ├── java-callgraph.yaml │ │ │ │ │ ├── method-parameter-formatted-sql.yaml │ │ │ │ │ ├── render-template-input.yaml │ │ │ │ │ ├── template-var-safe.yaml │ │ │ │ │ ├── unescaped-template-extension.yaml │ │ │ │ │ └── user-input.yaml │ │ │ │ ├── user-input-escaped-with-safe.yaml │ │ │ │ └── user-input-with-unescaped-extension.yaml │ │ │ ├── jsonnet │ │ │ │ ├── example_rule.yaml │ │ │ │ ├── lib │ │ │ │ │ └── template.libsonnet │ │ │ │ ├── part_of_rule.unknown_yaml_extension │ │ │ │ └── python │ │ │ │ │ └── basic.jsonnet │ │ │ ├── language-filtering.yaml │ │ │ ├── languages.yaml │ │ │ ├── long.yaml │ │ │ ├── long_message.yaml │ │ │ ├── long_rule_id.yaml │ │ │ ├── match_based_id │ │ │ │ ├── duplicates.yaml │ │ │ │ ├── formatting.yaml │ │ │ │ ├── join.yaml │ │ │ │ └── operator.yaml │ │ │ ├── message_interpolation │ │ │ │ ├── interpolated_message.yaml │ │ │ │ ├── multi-pattern-inside.yaml │ │ │ │ ├── pattern-either.yaml │ │ │ │ ├── pattern-inside.yaml │ │ │ │ ├── pattern-not-inside.yaml │ │ │ │ └── propagated-constant.yaml │ │ │ ├── metavariable-comparison │ │ │ │ ├── metavariable-comparison-bad-content.yaml │ │ │ │ ├── metavariable-comparison-base.yaml │ │ │ │ ├── metavariable-comparison-strip.yaml │ │ │ │ └── metavariable-comparison.yaml │ │ │ ├── metavariable-pattern │ │ │ │ ├── test1.json │ │ │ │ └── test2.yaml │ │ │ ├── metavariable-regex │ │ │ │ ├── metavariable-regex-const-prop.yaml │ │ │ │ ├── metavariable-regex-multi-regex.yaml │ │ │ │ ├── metavariable-regex-multi-rule.yaml │ │ │ │ └── metavariable-regex.yaml │ │ │ ├── metavariable_propagation │ │ │ │ ├── metavariable-comparison-propagation.yaml │ │ │ │ └── metavariable-regex-propagation.yaml │ │ │ ├── metavariable_type.yaml │ │ │ ├── metrics_send │ │ │ │ ├── deep.yaml │ │ │ │ └── taint_assume_safe_numbers1.yaml │ │ │ ├── multi-focus-metavariable.yaml │ │ │ ├── multi_config_fail │ │ │ │ ├── error.yaml │ │ │ │ └── no_error.yaml │ │ │ ├── multiline.yaml │ │ │ ├── multiple-long.yaml │ │ │ ├── nested-pattern-either.yaml │ │ │ ├── nested-patterns.yaml │ │ │ ├── nosem.yaml │ │ │ ├── paths.yaml │ │ │ ├── pattern-not-regex │ │ │ │ ├── issue2465.yaml │ │ │ │ ├── regex-not-with-pattern-regex.yaml │ │ │ │ ├── regex-not.yaml │ │ │ │ └── regex-not2.yaml │ │ │ ├── pattern-regex-empty-file.yaml │ │ │ ├── patternless-sca-rule.yaml │ │ │ ├── per-rule-include.yaml │ │ │ ├── pro-rule-skipping-no-parsing.yaml │ │ │ ├── pro-rule-skipping.yaml │ │ │ ├── regex │ │ │ │ ├── numeric-regex-capture-rule.yaml │ │ │ │ ├── regex-any-language-alias-none.yaml │ │ │ │ ├── regex-any-language-invalid.yaml │ │ │ │ ├── regex-any-language-multiple-alias-none.yaml │ │ │ │ ├── regex-any-language-multiple.yaml │ │ │ │ ├── regex-any-language.yaml │ │ │ │ ├── regex-capture-groups.yaml │ │ │ │ ├── regex-child.yaml │ │ │ │ ├── regex-invalid.yaml │ │ │ │ ├── regex-nosemgrep.yaml │ │ │ │ ├── regex-top.yaml │ │ │ │ └── regex-utf8.yaml │ │ │ ├── rule-board-eqeq.yaml │ │ │ ├── rule_id │ │ │ │ ├── ; │ │ │ │ │ └── hello.yml │ │ │ │ ├── @ │ │ │ │ │ └── hello.yml │ │ │ │ └── @npm-style │ │ │ │ │ └── hello.yml │ │ │ ├── secrets.yaml │ │ │ ├── severity_critical.yaml │ │ │ ├── severity_experiment.yaml │ │ │ ├── severity_inventory.yaml │ │ │ ├── sort-findings.yaml │ │ │ ├── source_rule_url.yaml │ │ │ ├── source_url.yaml │ │ │ ├── spacegrep │ │ │ │ ├── dockerfile.yaml │ │ │ │ ├── html.yaml │ │ │ │ ├── httpresponse.yaml │ │ │ │ ├── markdown.yaml │ │ │ │ ├── multi-lines.yaml │ │ │ │ ├── nosem-html.yaml │ │ │ │ └── terraform.yaml │ │ │ ├── stuff_stmt.yaml │ │ │ ├── syntax │ │ │ │ ├── bad-three-layers.yaml │ │ │ │ ├── bad1.yaml │ │ │ │ ├── bad10.yaml │ │ │ │ ├── bad11.yaml │ │ │ │ ├── bad12.yaml │ │ │ │ ├── bad13.yaml │ │ │ │ ├── bad14.yaml │ │ │ │ ├── bad15.yaml │ │ │ │ ├── bad16.yaml │ │ │ │ ├── bad2.yaml │ │ │ │ ├── bad3.yaml │ │ │ │ ├── bad4.yaml │ │ │ │ ├── bad5.yaml │ │ │ │ ├── bad6.yaml │ │ │ │ ├── bad7.yaml │ │ │ │ ├── bad8.yaml │ │ │ │ ├── bad9.yaml │ │ │ │ ├── badlanguage.yaml │ │ │ │ ├── badpaths1.yaml │ │ │ │ ├── badpaths2.yaml │ │ │ │ ├── badpattern.yaml │ │ │ │ ├── empty.yaml │ │ │ │ ├── good.yaml │ │ │ │ ├── good_info_severity.yaml │ │ │ │ ├── good_metadata.yaml │ │ │ │ ├── good_metadata_supply_chain.yaml │ │ │ │ ├── good_new_syntax.yaml │ │ │ │ ├── good_new_syntax_taint.yaml │ │ │ │ ├── good_new_syntax_taint_no_mode.yaml │ │ │ │ ├── invalid-key-name.yml │ │ │ │ ├── invalid-metavariable-regex.yml │ │ │ │ ├── invalid-patterns-key.yml │ │ │ │ ├── invalid.yaml │ │ │ │ ├── missing-field.yaml │ │ │ │ └── missing-toplevel.yaml │ │ │ ├── taint.yaml │ │ │ ├── taint_intrafile.yaml │ │ │ ├── taint_trace.yaml │ │ │ ├── test_test │ │ │ │ ├── directory │ │ │ │ │ └── basic.yaml │ │ │ │ ├── overlapping_rules.yaml │ │ │ │ ├── rule_that_timeout.yaml │ │ │ │ ├── rule_with_paths_include_bar_xml.yaml │ │ │ │ ├── suffixes │ │ │ │ │ └── this.that.check.yaml │ │ │ │ └── yaml_language │ │ │ │ │ └── yaml_language.yaml │ │ │ ├── two_matches.yaml │ │ │ ├── two_rules │ │ │ │ ├── eqeq.yaml │ │ │ │ └── func.yaml │ │ │ ├── two_rules_same_message.yaml │ │ │ ├── version-constraints.yaml │ │ │ ├── yaml_capture.yaml │ │ │ └── yaml_key.yaml │ │ ├── snapshots │ │ │ ├── test_aliengrep │ │ │ │ ├── test_aliengrep │ │ │ │ │ ├── rulesaliengrepbegin-end.yaml-aliengrepbegin-end.log │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesaliengrepdockerfile.yaml-aliengrepdockerfile │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesaliengrephtml.yaml-aliengrephtml.mustache │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesaliengrephttpresponse.yaml-aliengrephttpresponse.txt │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesaliengreplong-match.yaml-aliengreplong-match.txt │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesaliengrepmarkdown.yaml-aliengrepmarkdown.md │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesaliengrepmetavariable-pattern.yaml-aliengrepmetavariable-pattern.conf │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesaliengrepmulti-lines.yaml-aliengrepmulti-lines.java │ │ │ │ │ │ └── results.json │ │ │ │ │ └── rulesaliengrepterraform.yaml-aliengrepterraform.tf │ │ │ │ │ │ └── results.json │ │ │ │ └── test_aliengrep_nosem │ │ │ │ │ └── rulesaliengrepnosem-html.yaml-aliengrepnosem.html │ │ │ │ │ └── results.json │ │ │ ├── test_autofix │ │ │ │ ├── test_autofix_json_output │ │ │ │ │ ├── add-metadata-hcl.yaml-add-metadata-hcl.hcl-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── add-metadata-hcl.hcl-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── add-metadata-hcl.yaml-add-metadata-hcl.hcl-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── add-metadata-hcl.hcl-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── add-metadata-hcl.yaml-add-metadata-hcl.hcl-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── add-metadata-hcl.hcl-dryrun │ │ │ │ │ ├── add-metadata-hcl.yaml-add-metadata-hcl.hcl-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── add-metadata-hcl.hcl-fixed │ │ │ │ │ ├── autofix.yaml-autofix.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── autofix.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── autofix.yaml-autofix.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── autofix.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── autofix.yaml-autofix.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── autofix.py-dryrun │ │ │ │ │ ├── autofix.yaml-autofix.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── autofix.py-fixed │ │ │ │ │ ├── csv-writer.yaml-csv-writer.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── csv-writer.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── csv-writer.yaml-csv-writer.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── csv-writer.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── csv-writer.yaml-csv-writer.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── csv-writer.py-dryrun │ │ │ │ │ ├── csv-writer.yaml-csv-writer.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── csv-writer.py-fixed │ │ │ │ │ ├── defaulthttpclient.yaml-defaulthttpclient.java-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── defaulthttpclient.java-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── defaulthttpclient.yaml-defaulthttpclient.java-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── defaulthttpclient.java-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── defaulthttpclient.yaml-defaulthttpclient.java-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── defaulthttpclient.java-dryrun │ │ │ │ │ ├── defaulthttpclient.yaml-defaulthttpclient.java-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── defaulthttpclient.java-fixed │ │ │ │ │ ├── delete-partial-line.yaml-delete-partial-line.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── delete-partial-line.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── delete-partial-line.yaml-delete-partial-line.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── delete-partial-line.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── delete-partial-line.yaml-delete-partial-line.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── delete-partial-line.py-dryrun │ │ │ │ │ ├── delete-partial-line.yaml-delete-partial-line.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── delete-partial-line.py-fixed │ │ │ │ │ ├── django-none-password-default.yaml-django-none-password-default.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── django-none-password-default.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── django-none-password-default.yaml-django-none-password-default.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── django-none-password-default.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── django-none-password-default.yaml-django-none-password-default.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── django-none-password-default.py-dryrun │ │ │ │ │ ├── django-none-password-default.yaml-django-none-password-default.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── django-none-password-default.py-fixed │ │ │ │ │ ├── exact-collision.yaml-collision.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── collision.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── exact-collision.yaml-collision.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── collision.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── exact-collision.yaml-collision.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── collision.py-dryrun │ │ │ │ │ ├── exact-collision.yaml-collision.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── collision.py-fixed │ │ │ │ │ ├── flask-use-jsonify.yaml-flask-use-jsonify.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── flask-use-jsonify.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── flask-use-jsonify.yaml-flask-use-jsonify.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── flask-use-jsonify.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── flask-use-jsonify.yaml-flask-use-jsonify.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── flask-use-jsonify.py-dryrun │ │ │ │ │ ├── flask-use-jsonify.yaml-flask-use-jsonify.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── flask-use-jsonify.py-fixed │ │ │ │ │ ├── imported-entity.yaml-imported-entity.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── imported-entity.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── imported-entity.yaml-imported-entity.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── imported-entity.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── imported-entity.yaml-imported-entity.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── imported-entity.py-dryrun │ │ │ │ │ ├── imported-entity.yaml-imported-entity.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── imported-entity.py-fixed │ │ │ │ │ ├── java-string-wrap.yaml-java-string-wrap.java-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── java-string-wrap.java-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── java-string-wrap.yaml-java-string-wrap.java-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── java-string-wrap.java-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── java-string-wrap.yaml-java-string-wrap.java-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── java-string-wrap.java-dryrun │ │ │ │ │ ├── java-string-wrap.yaml-java-string-wrap.java-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── java-string-wrap.java-fixed │ │ │ │ │ ├── ocaml_paren_expr.yaml-ocaml_paren_expr.ml-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── ocaml_paren_expr.ml-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── ocaml_paren_expr.yaml-ocaml_paren_expr.ml-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── ocaml_paren_expr.ml-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── ocaml_paren_expr.yaml-ocaml_paren_expr.ml-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── ocaml_paren_expr.ml-dryrun │ │ │ │ │ ├── ocaml_paren_expr.yaml-ocaml_paren_expr.ml-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── ocaml_paren_expr.ml-fixed │ │ │ │ │ ├── order.yaml-order.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── order.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── order.yaml-order.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── order.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── order.yaml-order.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── order.py-dryrun │ │ │ │ │ ├── order.yaml-order.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── order.py-fixed │ │ │ │ │ ├── overlapping-collision.yaml-collision.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── collision.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── overlapping-collision.yaml-collision.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── collision.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── overlapping-collision.yaml-collision.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── collision.py-dryrun │ │ │ │ │ ├── overlapping-collision.yaml-collision.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── collision.py-fixed │ │ │ │ │ ├── python-assert-statement.yaml-python-assert-statement.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── python-assert-statement.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── python-assert-statement.yaml-python-assert-statement.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── python-assert-statement.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── python-assert-statement.yaml-python-assert-statement.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── python-assert-statement.py-dryrun │ │ │ │ │ ├── python-assert-statement.yaml-python-assert-statement.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── python-assert-statement.py-fixed │ │ │ │ │ ├── python-delete-import.yaml-python-delete-import.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── python-delete-import.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── python-delete-import.yaml-python-delete-import.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── python-delete-import.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── python-delete-import.yaml-python-delete-import.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── python-delete-import.py-dryrun │ │ │ │ │ ├── python-delete-import.yaml-python-delete-import.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── python-delete-import.py-fixed │ │ │ │ │ ├── python-ranges.yaml-python-ranges.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── python-ranges.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── python-ranges.yaml-python-ranges.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── python-ranges.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── python-ranges.yaml-python-ranges.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── python-ranges.py-dryrun │ │ │ │ │ ├── python-ranges.yaml-python-ranges.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── python-ranges.py-fixed │ │ │ │ │ ├── redundant.yaml-redundant.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── redundant.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── redundant.yaml-redundant.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── redundant.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── redundant.yaml-redundant.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── redundant.py-dryrun │ │ │ │ │ ├── redundant.yaml-redundant.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── redundant.py-fixed │ │ │ │ │ ├── replace-field-yaml.yaml-replace-field-yaml.yaml-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── replace-field-yaml.yaml-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── replace-field-yaml.yaml-replace-field-yaml.yaml-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── replace-field-yaml.yaml-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── replace-field-yaml.yaml-replace-field-yaml.yaml-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── replace-field-yaml.yaml-dryrun │ │ │ │ │ ├── replace-field-yaml.yaml-replace-field-yaml.yaml-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── replace-field-yaml.yaml-fixed │ │ │ │ │ ├── requests-use-timeout.yaml-requests-use-timeout.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── requests-use-timeout.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── requests-use-timeout.yaml-requests-use-timeout.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── requests-use-timeout.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── requests-use-timeout.yaml-requests-use-timeout.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── requests-use-timeout.py-dryrun │ │ │ │ │ ├── requests-use-timeout.yaml-requests-use-timeout.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── requests-use-timeout.py-fixed │ │ │ │ │ ├── three-autofixes.yaml-three-autofixes.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── three-autofixes.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── three-autofixes.yaml-three-autofixes.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── three-autofixes.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── three-autofixes.yaml-three-autofixes.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── three-autofixes.py-dryrun │ │ │ │ │ ├── three-autofixes.yaml-three-autofixes.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── three-autofixes.py-fixed │ │ │ │ │ ├── two-autofixes.yaml-two-autofixes.txt-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── two-autofixes.txt-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── two-autofixes.yaml-two-autofixes.txt-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── two-autofixes.txt-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── two-autofixes.yaml-two-autofixes.txt-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── two-autofixes.txt-dryrun │ │ │ │ │ ├── two-autofixes.yaml-two-autofixes.txt-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── two-autofixes.txt-fixed │ │ │ │ │ ├── utf-8.yaml-utf-8.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── utf-8.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── utf-8.yaml-utf-8.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── utf-8.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── utf-8.yaml-utf-8.py-text-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ │ └── utf-8.py-dryrun │ │ │ │ │ └── utf-8.yaml-utf-8.py-text-not-dryrun │ │ │ │ │ │ └── autofix │ │ │ │ │ │ └── utf-8.py-fixed │ │ │ │ ├── test_autofix_json_output_osemfail │ │ │ │ │ ├── order.yaml-order.py-json-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ │ └── order.py-dryrun │ │ │ │ │ │ └── results.json │ │ │ │ │ └── order.yaml-order.py-json-not-dryrun │ │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── order.py-fixed │ │ │ │ │ │ └── results.json │ │ │ │ └── test_autofix_text_output │ │ │ │ │ ├── add-metadata-hcl.yaml-add-metadata-hcl.hcl-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── add-metadata-hcl.yaml-add-metadata-hcl.hcl-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── add-metadata-hcl.yaml-add-metadata-hcl.hcl-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── add-metadata-hcl.hcl-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── add-metadata-hcl.yaml-add-metadata-hcl.hcl-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── add-metadata-hcl.hcl-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── autofix.yaml-autofix.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── autofix.yaml-autofix.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── autofix.yaml-autofix.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── autofix.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── autofix.yaml-autofix.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── autofix.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── csv-writer.yaml-csv-writer.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── csv-writer.yaml-csv-writer.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── csv-writer.yaml-csv-writer.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── csv-writer.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── csv-writer.yaml-csv-writer.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── csv-writer.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── defaulthttpclient.yaml-defaulthttpclient.java-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── defaulthttpclient.yaml-defaulthttpclient.java-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── defaulthttpclient.yaml-defaulthttpclient.java-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── defaulthttpclient.java-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── defaulthttpclient.yaml-defaulthttpclient.java-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── defaulthttpclient.java-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── delete-partial-line.yaml-delete-partial-line.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── delete-partial-line.yaml-delete-partial-line.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── delete-partial-line.yaml-delete-partial-line.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── delete-partial-line.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── delete-partial-line.yaml-delete-partial-line.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── delete-partial-line.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── django-none-password-default.yaml-django-none-password-default.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── django-none-password-default.yaml-django-none-password-default.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── django-none-password-default.yaml-django-none-password-default.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── django-none-password-default.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── django-none-password-default.yaml-django-none-password-default.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── django-none-password-default.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── exact-collision.yaml-collision.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── exact-collision.yaml-collision.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── exact-collision.yaml-collision.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── collision.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── exact-collision.yaml-collision.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── collision.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── flask-use-jsonify.yaml-flask-use-jsonify.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── flask-use-jsonify.yaml-flask-use-jsonify.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── flask-use-jsonify.yaml-flask-use-jsonify.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── flask-use-jsonify.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── flask-use-jsonify.yaml-flask-use-jsonify.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── flask-use-jsonify.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── imported-entity.yaml-imported-entity.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── imported-entity.yaml-imported-entity.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── imported-entity.yaml-imported-entity.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── imported-entity.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── imported-entity.yaml-imported-entity.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── imported-entity.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── java-string-wrap.yaml-java-string-wrap.java-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── java-string-wrap.yaml-java-string-wrap.java-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── java-string-wrap.yaml-java-string-wrap.java-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── java-string-wrap.java-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── java-string-wrap.yaml-java-string-wrap.java-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── java-string-wrap.java-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── ocaml_paren_expr.yaml-ocaml_paren_expr.ml-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── ocaml_paren_expr.yaml-ocaml_paren_expr.ml-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── ocaml_paren_expr.yaml-ocaml_paren_expr.ml-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── ocaml_paren_expr.ml-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── ocaml_paren_expr.yaml-ocaml_paren_expr.ml-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── ocaml_paren_expr.ml-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── order.yaml-order.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── order.yaml-order.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── order.yaml-order.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── order.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── order.yaml-order.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── order.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── overlapping-collision.yaml-collision.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── overlapping-collision.yaml-collision.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── overlapping-collision.yaml-collision.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── collision.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── overlapping-collision.yaml-collision.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── collision.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-assert-statement.yaml-python-assert-statement.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-assert-statement.yaml-python-assert-statement.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-assert-statement.yaml-python-assert-statement.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── python-assert-statement.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-assert-statement.yaml-python-assert-statement.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── python-assert-statement.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-delete-import.yaml-python-delete-import.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-delete-import.yaml-python-delete-import.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-delete-import.yaml-python-delete-import.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── python-delete-import.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-delete-import.yaml-python-delete-import.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── python-delete-import.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-ranges.yaml-python-ranges.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-ranges.yaml-python-ranges.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-ranges.yaml-python-ranges.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── python-ranges.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── python-ranges.yaml-python-ranges.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── python-ranges.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── redundant.yaml-redundant.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── redundant.yaml-redundant.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── redundant.yaml-redundant.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── redundant.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── redundant.yaml-redundant.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── redundant.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── replace-field-yaml.yaml-replace-field-yaml.yaml-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── replace-field-yaml.yaml-replace-field-yaml.yaml-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── replace-field-yaml.yaml-replace-field-yaml.yaml-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── replace-field-yaml.yaml-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── replace-field-yaml.yaml-replace-field-yaml.yaml-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── replace-field-yaml.yaml-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── requests-use-timeout.yaml-requests-use-timeout.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── requests-use-timeout.yaml-requests-use-timeout.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── requests-use-timeout.yaml-requests-use-timeout.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── requests-use-timeout.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── requests-use-timeout.yaml-requests-use-timeout.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── requests-use-timeout.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── three-autofixes.yaml-three-autofixes.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── three-autofixes.yaml-three-autofixes.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── three-autofixes.yaml-three-autofixes.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── three-autofixes.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── three-autofixes.yaml-three-autofixes.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── three-autofixes.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── two-autofixes.yaml-two-autofixes.txt-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── two-autofixes.yaml-two-autofixes.txt-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── two-autofixes.yaml-two-autofixes.txt-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── two-autofixes.txt-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── two-autofixes.yaml-two-autofixes.txt-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── two-autofixes.txt-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── utf-8.yaml-utf-8.py-json-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── utf-8.yaml-utf-8.py-json-not-dryrun │ │ │ │ │ └── stderr.txt │ │ │ │ │ ├── utf-8.yaml-utf-8.py-text-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ │ └── utf-8.py-dryrun │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ │ │ └── utf-8.yaml-utf-8.py-text-not-dryrun │ │ │ │ │ ├── autofix │ │ │ │ │ └── utf-8.py-fixed │ │ │ │ │ ├── results.txt │ │ │ │ │ └── stderr.txt │ │ │ ├── test_baseline │ │ │ │ ├── test_all_intersect │ │ │ │ │ ├── baseline_error.txt │ │ │ │ │ ├── error.txt │ │ │ │ │ └── output.txt │ │ │ │ ├── test_crisscrossing_merges │ │ │ │ │ ├── bar-baz-v1 │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ ├── bar-baz │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ ├── bar-foo-v1 │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ ├── bar-foo │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ ├── baz-bar-v1 │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ ├── baz-bar │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ ├── baz-foo-v1 │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ ├── stderr.txt.new │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ ├── baz-foo │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ ├── foo-bar-v1 │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ ├── foo-bar │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ ├── foo-baz-v1 │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ │ └── foo-baz │ │ │ │ │ │ ├── stderr.txt │ │ │ │ │ │ └── stdout.txt │ │ │ │ ├── test_dir_changed_to_file │ │ │ │ │ ├── diff.err │ │ │ │ │ ├── diff.out │ │ │ │ │ ├── full.err │ │ │ │ │ └── full.out │ │ │ │ ├── test_dir_symlink_changed │ │ │ │ │ ├── diff.err │ │ │ │ │ ├── diff.out │ │ │ │ │ ├── full.err │ │ │ │ │ └── full.out │ │ │ │ ├── test_file_changed_to_dir │ │ │ │ │ ├── diff.err │ │ │ │ │ ├── diff.out │ │ │ │ │ ├── full.err │ │ │ │ │ └── full.out │ │ │ │ ├── test_file_changed_to_symlink │ │ │ │ │ ├── diff.err │ │ │ │ │ ├── diff.out │ │ │ │ │ ├── full.err │ │ │ │ │ └── full.out │ │ │ │ ├── test_no_findings_baseline │ │ │ │ │ ├── baseline_error.txt │ │ │ │ │ ├── baseline_output.txt │ │ │ │ │ ├── error.txt │ │ │ │ │ └── output.txt │ │ │ │ ├── test_no_findings_both │ │ │ │ │ ├── baseline_error.txt │ │ │ │ │ └── error.txt │ │ │ │ ├── test_no_findings_head │ │ │ │ │ ├── baseline_error.txt │ │ │ │ │ └── error.txt │ │ │ │ ├── test_no_intersection │ │ │ │ │ ├── baseline_error.txt │ │ │ │ │ ├── error.txt │ │ │ │ │ └── output.txt │ │ │ │ ├── test_not_git_directory │ │ │ │ │ └── error.txt │ │ │ │ ├── test_one_commit_with_baseline │ │ │ │ │ ├── baseline_error.txt │ │ │ │ │ ├── error.txt │ │ │ │ │ └── output.txt │ │ │ │ ├── test_renamed_dir │ │ │ │ │ ├── diff.err │ │ │ │ │ ├── diff.out │ │ │ │ │ ├── full.err │ │ │ │ │ └── full.out │ │ │ │ ├── test_renamed_file │ │ │ │ │ ├── case-insensitive │ │ │ │ │ │ ├── baseline_error.txt │ │ │ │ │ │ ├── baseline_output.txt │ │ │ │ │ │ ├── error.txt │ │ │ │ │ │ └── output.txt │ │ │ │ │ └── case-sensitive │ │ │ │ │ │ ├── baseline_error.txt │ │ │ │ │ │ ├── baseline_output.txt │ │ │ │ │ │ ├── error.txt │ │ │ │ │ │ └── output.txt │ │ │ │ ├── test_some_intersection │ │ │ │ │ ├── baseline_error.txt │ │ │ │ │ ├── baseline_output.txt │ │ │ │ │ ├── error.txt │ │ │ │ │ └── output.txt │ │ │ │ ├── test_staged_changes │ │ │ │ │ ├── error.txt │ │ │ │ │ └── output.txt │ │ │ │ ├── test_symlink │ │ │ │ │ ├── baseline_error.txt │ │ │ │ │ ├── error.txt │ │ │ │ │ └── output.txt │ │ │ │ ├── test_symlink_changed_to_file │ │ │ │ │ ├── diff.err │ │ │ │ │ ├── diff.out │ │ │ │ │ ├── full.err │ │ │ │ │ └── full.out │ │ │ │ ├── test_unstaged_changes │ │ │ │ │ ├── error.txt │ │ │ │ │ └── output.txt │ │ │ │ └── test_worktree_state_restored │ │ │ │ │ └── output.txt │ │ │ ├── test_exclude_include │ │ │ │ ├── test_exclude_include_file_list │ │ │ │ │ ├── x-ls-and-exclude-and-exclude0-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude-and-exclude0 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude-and-exclude1-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude-and-exclude1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude-and-include-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude-and-include │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude0-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude0 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude1-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude2-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-exclude2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include-and-exclude-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include-and-exclude │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include-and-include0-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include-and-include0 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include-and-include1-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include-and-include1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include-and-skip-unknown-extensions-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include-and-skip-unknown-extensions │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include0-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include0 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include1-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include2-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include3-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-include3 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-exclude-and-exclude0-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-exclude-and-exclude0-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-exclude-and-exclude1-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-exclude-and-exclude1-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-exclude-and-include-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-exclude-and-include-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-exclude0-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-exclude0-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-exclude1-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-exclude1-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include-and-exclude-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include-and-exclude-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include-and-include0-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include-and-include0-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include-and-include1-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include-and-include1-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include-and-skip-unknown-extensions-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include-and-skip-unknown-extensions-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include0-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include0-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include1-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include1-v2 │ │ │ │ │ │ └── files.list │ │ │ │ │ ├── x-ls-and-quiet-and-include2-v1 │ │ │ │ │ │ └── files.list │ │ │ │ │ └── x-ls-and-quiet-and-include2-v2 │ │ │ │ │ │ └── files.list │ │ │ │ ├── test_exclude_include_verbose_sorted_1 │ │ │ │ │ └── results.err │ │ │ │ └── test_exclude_include_verbose_sorted_2 │ │ │ │ │ └── results.err │ │ │ ├── test_exclude_include_formatting │ │ │ │ ├── test_exclude_include_verbose_sorted_1 │ │ │ │ │ ├── results.err │ │ │ │ │ └── v1 │ │ │ │ │ │ └── results.err │ │ │ │ └── test_exclude_include_verbose_sorted_2 │ │ │ │ │ ├── results.err │ │ │ │ │ └── v1 │ │ │ │ │ └── results.err │ │ │ ├── test_fixtest │ │ │ │ ├── test_fix_trailing_newline │ │ │ │ │ └── test-results.json │ │ │ │ ├── test_fixtest_test1_json │ │ │ │ │ └── test-results.json │ │ │ │ ├── test_fixtest_test1_no_json │ │ │ │ │ └── output.txt │ │ │ │ ├── test_fixtest_test2_json │ │ │ │ │ └── test-results.json │ │ │ │ ├── test_fixtest_test2_no_json │ │ │ │ │ └── output.txt │ │ │ │ ├── test_fixtest_test3_json │ │ │ │ │ └── test-results.json │ │ │ │ ├── test_fixtest_test3_no_json │ │ │ │ │ └── output.txt │ │ │ │ ├── test_fixtest_test4_json │ │ │ │ │ └── results.txt │ │ │ │ ├── test_fixtest_test4_no_json │ │ │ │ │ └── results.txt │ │ │ │ ├── test_fixtest_test5_json │ │ │ │ │ └── test-results.json │ │ │ │ ├── test_fixtest_test5_no_json │ │ │ │ │ └── output.txt │ │ │ │ └── test_missing_fixtest_fix_regex │ │ │ │ │ └── test-results.json │ │ │ ├── test_help │ │ │ │ └── test_help_text │ │ │ │ │ ├── --help │ │ │ │ │ └── help.txt │ │ │ │ │ └── -h │ │ │ │ │ └── help.txt │ │ │ ├── test_ignores │ │ │ │ ├── test_default_semgrepignore │ │ │ │ │ └── results.json │ │ │ │ ├── test_file_not_relative_to_base_path │ │ │ │ │ └── results.txt │ │ │ │ ├── test_internal_explicit_semgrepignore │ │ │ │ │ └── results.json │ │ │ │ └── test_semgrepignore │ │ │ │ │ └── results.json │ │ │ ├── test_max_target_bytes │ │ │ │ ├── test_max_target_bytes_output │ │ │ │ │ ├── 1.3R │ │ │ │ │ │ └── error.txt │ │ │ │ │ └── 1MB │ │ │ │ │ │ └── error.txt │ │ │ │ ├── test_max_target_bytes_output_pysemfail │ │ │ │ │ ├── 100B │ │ │ │ │ │ └── error.txt │ │ │ │ │ └── 1B │ │ │ │ │ │ └── error.txt │ │ │ │ └── test_max_target_bytes_results │ │ │ │ │ ├── 1.3R │ │ │ │ │ ├── error.txt │ │ │ │ │ └── results.json │ │ │ │ │ ├── 100B │ │ │ │ │ └── results.json │ │ │ │ │ ├── 1B │ │ │ │ │ ├── error.txt │ │ │ │ │ └── results.json │ │ │ │ │ └── 1MB │ │ │ │ │ ├── error.txt │ │ │ │ │ └── results.json │ │ │ ├── test_message_interpolation │ │ │ │ ├── test_message_interpolation │ │ │ │ │ ├── rulesmessage_interpolationmulti-pattern-inside.yaml-message_interpolationmulti_pattern_inside.py │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesmessage_interpolationmulti-pattern-inside.yaml-message_interpolationmulti_pattern_inside_nested.py │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesmessage_interpolationpattern-either.yaml-message_interpolationpattern_either_basic.py │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesmessage_interpolationpattern-inside.yaml-message_interpolationpattern_inside_basic.py │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesmessage_interpolationpattern-inside.yaml-message_interpolationpattern_inside_complex.py │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesmessage_interpolationpattern-not-inside.yaml-message_interpolationpattern_not_inside_basic.py │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesmessage_interpolationpattern-not-inside.yaml-message_interpolationpattern_not_inside_complex.py │ │ │ │ │ │ └── results.json │ │ │ │ │ └── rulesmessage_interpolationpropagated-constant.yaml-message_interpolationpropagated_constant.py │ │ │ │ │ │ └── results.json │ │ │ │ └── test_no_double_interpolation │ │ │ │ │ └── report.json │ │ │ ├── test_metavariable_comparison │ │ │ │ ├── test_metavariable_comparison_rule │ │ │ │ │ └── results.json │ │ │ │ ├── test_metavariable_comparison_rule_bad_content │ │ │ │ │ └── results.json │ │ │ │ ├── test_metavariable_comparison_rule_base │ │ │ │ │ └── results.json │ │ │ │ ├── test_metavariable_comparison_rule_strip │ │ │ │ │ └── results.json │ │ │ │ └── test_metavariable_propagation_comparison │ │ │ │ │ └── results.json │ │ │ ├── test_metavariable_matching │ │ │ │ └── test_equivalence │ │ │ │ │ └── results.json │ │ │ ├── test_metavariable_pattern │ │ │ │ ├── test1 │ │ │ │ │ └── results.json │ │ │ │ └── test2 │ │ │ │ │ └── results.json │ │ │ ├── test_metrics │ │ │ │ └── test_metrics_payload │ │ │ │ │ ├── pro_flag0 │ │ │ │ │ └── metrics-payload.json │ │ │ │ │ └── pro_flag1_TODO │ │ │ │ │ └── metrics-payload.json │ │ │ ├── test_misc │ │ │ │ ├── test_basic_rule__absolute │ │ │ │ │ └── results.json │ │ │ │ ├── test_basic_rule__local │ │ │ │ │ └── results.json │ │ │ │ ├── test_basic_rule__relative │ │ │ │ │ └── results.json │ │ │ │ ├── test_cdn_ruleset_resolution │ │ │ │ │ └── results.json │ │ │ │ ├── test_critical_severity │ │ │ │ │ └── results.json │ │ │ │ ├── test_deduplication │ │ │ │ │ └── results.json │ │ │ │ ├── test_deduplication_different_message │ │ │ │ │ └── results.json │ │ │ │ ├── test_deduplication_same_message │ │ │ │ │ └── results.json │ │ │ │ ├── test_default_rule__file │ │ │ │ │ └── results.json │ │ │ │ ├── test_default_rule__folder │ │ │ │ │ └── results.json │ │ │ │ ├── test_experiment_finding_output │ │ │ │ │ └── output.txt │ │ │ │ ├── test_hidden_rule__explicit │ │ │ │ │ └── results.json │ │ │ │ ├── test_hidden_rule__implicit │ │ │ │ │ └── results.json │ │ │ │ ├── test_inventory_finding_output │ │ │ │ │ └── output.txt │ │ │ │ ├── test_language_filtering │ │ │ │ │ └── results.json │ │ │ │ ├── test_match_rules_same_message │ │ │ │ │ └── results.txt │ │ │ │ ├── test_multi_subshell_input │ │ │ │ │ └── results.json │ │ │ │ ├── test_multiline │ │ │ │ │ └── results.json │ │ │ │ ├── test_multiple_configs_different_origins │ │ │ │ │ └── results.json │ │ │ │ ├── test_multiple_configs_file │ │ │ │ │ └── results.json │ │ │ │ ├── test_nested_pattern_either_rule │ │ │ │ │ └── results.json │ │ │ │ ├── test_nested_patterns_rule │ │ │ │ │ └── results.json │ │ │ │ ├── test_noextension_filtering │ │ │ │ │ └── results.json │ │ │ │ ├── test_noextension_filtering_optimizations │ │ │ │ │ └── results.json │ │ │ │ ├── test_noextension_with_explicit_lang │ │ │ │ │ └── results.json │ │ │ │ ├── test_per_rule_include │ │ │ │ │ └── results.json │ │ │ │ ├── test_script │ │ │ │ │ └── results.json │ │ │ │ ├── test_show_supported_languages │ │ │ │ │ └── results.txt │ │ │ │ ├── test_sort_json_findings │ │ │ │ │ └── results.json │ │ │ │ ├── test_sort_text_findings │ │ │ │ │ └── output.txt │ │ │ │ ├── test_stdin_input │ │ │ │ │ └── results.json │ │ │ │ ├── test_subshell_input │ │ │ │ │ └── results.json │ │ │ │ ├── test_taint_mode │ │ │ │ │ └── results.json │ │ │ │ ├── test_terminal_output │ │ │ │ │ ├── results.txt │ │ │ │ │ └── results_second.txt │ │ │ │ ├── test_terminal_output_quiet │ │ │ │ │ └── results.txt │ │ │ │ ├── test_time │ │ │ │ │ └── results.txt │ │ │ │ ├── test_url_rule │ │ │ │ │ └── results.json │ │ │ │ └── test_verbose │ │ │ │ │ └── results.txt │ │ │ ├── test_missing_file │ │ │ │ └── test_missing_file │ │ │ │ │ ├── error.json │ │ │ │ │ └── error.txt │ │ │ ├── test_nosemgrep │ │ │ │ ├── test_nosem_rule │ │ │ │ │ └── results.json │ │ │ │ ├── test_nosem_rule__invalid_id │ │ │ │ │ ├── error.json │ │ │ │ │ └── error.txt │ │ │ │ ├── test_nosem_rule__with_disable_nosem │ │ │ │ │ └── results.json │ │ │ │ └── test_regex_rule__nosemgrep │ │ │ │ │ └── results.json │ │ │ ├── test_output │ │ │ │ ├── test_additional_outputs │ │ │ │ │ ├── emacs.txt.expected │ │ │ │ │ ├── gitlab_sast.json.expected │ │ │ │ │ ├── gitlab_secrets.json.expected │ │ │ │ │ ├── one.json.expected │ │ │ │ │ ├── sarif.json.expected │ │ │ │ │ ├── text.expected │ │ │ │ │ ├── two.json.expected │ │ │ │ │ └── vim.txt.expected │ │ │ │ ├── test_additional_outputs_with_format_flag │ │ │ │ │ ├── --emacs │ │ │ │ │ │ ├── result.expected │ │ │ │ │ │ └── result.json.expected │ │ │ │ │ ├── --gitlab-sast │ │ │ │ │ │ ├── result.expected │ │ │ │ │ │ └── result.json.expected │ │ │ │ │ ├── --gitlab-secrets │ │ │ │ │ │ ├── result.expected │ │ │ │ │ │ └── result.json.expected │ │ │ │ │ ├── --json │ │ │ │ │ │ ├── result.expected │ │ │ │ │ │ └── result.json.expected │ │ │ │ │ ├── --sarif │ │ │ │ │ │ ├── result.expected │ │ │ │ │ │ └── result.json.expected │ │ │ │ │ └── --vim │ │ │ │ │ │ ├── result.expected │ │ │ │ │ │ └── result.json.expected │ │ │ │ ├── test_additional_outputs_with_format_output_flag │ │ │ │ │ ├── --emacs │ │ │ │ │ │ ├── result.out.expected │ │ │ │ │ │ └── sarif.json.expected │ │ │ │ │ ├── --gitlab-sast │ │ │ │ │ │ ├── result.out.expected │ │ │ │ │ │ └── sarif.json.expected │ │ │ │ │ ├── --gitlab-secrets │ │ │ │ │ │ ├── result.out.expected │ │ │ │ │ │ └── sarif.json.expected │ │ │ │ │ ├── --json │ │ │ │ │ │ ├── result.out.expected │ │ │ │ │ │ └── sarif.json.expected │ │ │ │ │ ├── --sarif │ │ │ │ │ │ ├── result.out.expected │ │ │ │ │ │ └── sarif.json.expected │ │ │ │ │ └── --vim │ │ │ │ │ │ ├── result.out.expected │ │ │ │ │ │ └── sarif.json.expected │ │ │ │ ├── test_file_count_multifile │ │ │ │ │ ├── exclude_include │ │ │ │ │ │ └── result.out │ │ │ │ │ ├── language-filtering │ │ │ │ │ │ └── result.out │ │ │ │ │ └── multilangproj │ │ │ │ │ │ └── result.out │ │ │ │ ├── test_git_repo_output │ │ │ │ │ ├── False │ │ │ │ │ │ └── results.txt │ │ │ │ │ └── True │ │ │ │ │ │ └── results.txt │ │ │ │ ├── test_json_output_with_dataflow_traces │ │ │ │ │ └── results.json │ │ │ │ ├── test_junit_xml_output │ │ │ │ │ └── results.xml │ │ │ │ ├── test_junit_xml_output_flag │ │ │ │ │ └── expected.xml │ │ │ │ ├── test_long_rule_id │ │ │ │ │ └── results.out │ │ │ │ ├── test_long_rule_id_long_text │ │ │ │ │ └── results.out │ │ │ │ ├── test_omit_experiment │ │ │ │ │ └── results.out │ │ │ │ ├── test_omit_inventory │ │ │ │ │ └── results.out │ │ │ │ ├── test_output_format │ │ │ │ │ ├── --emacs │ │ │ │ │ │ └── results.out │ │ │ │ │ ├── --gitlab-sast │ │ │ │ │ │ └── results.out │ │ │ │ │ ├── --gitlab-secrets │ │ │ │ │ │ └── results.out │ │ │ │ │ ├── --json │ │ │ │ │ │ └── results.out │ │ │ │ │ ├── --sarif │ │ │ │ │ │ └── results.out │ │ │ │ │ └── --vim │ │ │ │ │ │ └── results.out │ │ │ │ ├── test_output_highlighting │ │ │ │ │ └── results.txt │ │ │ │ ├── test_output_highlighting__force_color_and_no_color │ │ │ │ │ └── results.txt │ │ │ │ ├── test_output_highlighting__no_color │ │ │ │ │ └── results.txt │ │ │ │ ├── test_output_matching_explanations │ │ │ │ │ └── report.json │ │ │ │ ├── test_output_truncated_messages │ │ │ │ │ └── report.json │ │ │ │ ├── test_semgrepignore_ignore_log_json_report │ │ │ │ │ └── report.json │ │ │ │ ├── test_semgrepignore_ignore_log_json_report_pysemgrep │ │ │ │ │ ├── report.json │ │ │ │ │ └── v1 │ │ │ │ │ │ └── report.json │ │ │ │ ├── test_semgrepignore_ignore_log_report │ │ │ │ │ └── report.txt │ │ │ │ ├── test_semgrepignore_ignore_log_report_pysemgrep │ │ │ │ │ ├── report.txt │ │ │ │ │ └── v1 │ │ │ │ │ │ └── report.txt │ │ │ │ ├── test_yaml_capturing │ │ │ │ │ └── results.txt │ │ │ │ └── test_yaml_metavariables │ │ │ │ │ └── report.json │ │ │ ├── test_output_sarif │ │ │ │ ├── test_sarif_output │ │ │ │ │ ├── notrace-cwe_tag │ │ │ │ │ │ └── results.sarif │ │ │ │ │ ├── notrace-eqeq │ │ │ │ │ │ └── results.sarif │ │ │ │ │ ├── notrace-metavariable_type │ │ │ │ │ │ └── results.sarif │ │ │ │ │ ├── notrace-source_rule_url │ │ │ │ │ │ └── results.sarif │ │ │ │ │ ├── notrace-source_url │ │ │ │ │ │ └── results.sarif │ │ │ │ │ ├── trace-cwe_tag │ │ │ │ │ │ └── results.sarif │ │ │ │ │ ├── trace-eqeq │ │ │ │ │ │ └── results.sarif │ │ │ │ │ ├── trace-metavariable_type │ │ │ │ │ │ └── results.sarif │ │ │ │ │ ├── trace-source_rule_url │ │ │ │ │ │ └── results.sarif │ │ │ │ │ └── trace-source_url │ │ │ │ │ │ └── results.sarif │ │ │ │ ├── test_sarif_output_include_nosemgrep │ │ │ │ │ └── results.sarif │ │ │ │ ├── test_sarif_output_osemfail │ │ │ │ │ ├── False-rule_and_target0 │ │ │ │ │ │ └── results.sarif │ │ │ │ │ └── True-rule_and_target0 │ │ │ │ │ │ └── results.sarif │ │ │ │ ├── test_sarif_output_rule_board │ │ │ │ │ └── results.sarif │ │ │ │ ├── test_sarif_output_when_errors │ │ │ │ │ └── results.sarif │ │ │ │ ├── test_sarif_output_with_autofix │ │ │ │ │ └── results.sarif │ │ │ │ ├── test_sarif_output_with_dataflow_traces │ │ │ │ │ └── results.sarif │ │ │ │ ├── test_sarif_output_with_nosemgrep_and_error │ │ │ │ │ └── results.sarif │ │ │ │ ├── test_sarif_output_with_source │ │ │ │ │ └── results.sarif │ │ │ │ └── test_sarif_output_with_source_edit │ │ │ │ │ └── results.sarif │ │ │ ├── test_parse_rate_metrics │ │ │ │ └── test_parse_metrics │ │ │ │ │ └── parse-rates.json │ │ │ ├── test_paths │ │ │ │ └── test_paths │ │ │ │ │ └── results.json │ │ │ ├── test_permissions │ │ │ │ ├── test_permissions_ls │ │ │ │ │ └── files.list │ │ │ │ ├── test_permissions_scan │ │ │ │ │ └── results.json │ │ │ │ ├── test_permissions_scan_full_lax │ │ │ │ │ └── results.json │ │ │ │ └── test_permissions_scan_full_strict │ │ │ │ │ └── results.json │ │ │ ├── test_process_limits │ │ │ │ ├── test_max_memory │ │ │ │ │ ├── error.txt │ │ │ │ │ └── results.json │ │ │ │ ├── test_spacegrep_timeout │ │ │ │ │ ├── error.txt │ │ │ │ │ └── results.json │ │ │ │ ├── test_timeout │ │ │ │ │ └── results.json │ │ │ │ ├── test_timeout_eio │ │ │ │ │ └── results.json │ │ │ │ └── test_timeout_threshold │ │ │ │ │ ├── error.txt │ │ │ │ │ ├── error_2.txt │ │ │ │ │ └── results.json │ │ │ ├── test_regex │ │ │ │ ├── test_invalid_regex_with_any_language_rule │ │ │ │ │ ├── error.json │ │ │ │ │ └── error.txt │ │ │ │ ├── test_metavariable_multi_regex_rule │ │ │ │ │ └── results.json │ │ │ │ ├── test_metavariable_propagation_regex │ │ │ │ │ └── results.json │ │ │ │ ├── test_metavariable_regex_const_prop │ │ │ │ │ └── results.json │ │ │ │ ├── test_metavariable_regex_multi_rule │ │ │ │ │ └── results.json │ │ │ │ ├── test_metavariable_regex_rule │ │ │ │ │ └── results.json │ │ │ │ ├── test_pattern_regex_empty_file │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_rule__child │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_rule__invalid_expression │ │ │ │ │ ├── error.json │ │ │ │ │ └── error.txt │ │ │ │ ├── test_regex_rule__issue2465 │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_rule__not │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_rule__not2 │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_rule__pattern_regex_and_pattern_not_regex │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_rule__top │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_rule__utf8 │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_rule__utf8_on_image │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_with_any_language_multiple_rule │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_with_any_language_multiple_rule_none_alias │ │ │ │ │ └── results.json │ │ │ │ ├── test_regex_with_any_language_rule │ │ │ │ │ └── results.json │ │ │ │ └── test_regex_with_any_language_rule_none_alias │ │ │ │ │ └── results.json │ │ │ ├── test_rule_id │ │ │ │ └── test_rule_id_paths │ │ │ │ │ ├── rulesrule_id-rule_idhello.txt │ │ │ │ │ └── results.json │ │ │ │ │ └── rulesrule_idnpm-style-rule_idhello.txt │ │ │ │ │ └── results.json │ │ │ ├── test_rule_parser │ │ │ │ ├── test_rule_parser__failure__error_messages │ │ │ │ │ ├── bad-three-layers │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad1 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad10 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad11 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad12 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad13 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad14 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad15 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad16 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad2 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad3 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad4 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad5 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad6 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad7 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad8 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── bad9 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── badlanguage │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── badpaths1 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── badpaths2 │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── badpattern │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── invalid │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ ├── missing-field │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ │ └── missing-toplevel │ │ │ │ │ │ ├── error-in-color.txt │ │ │ │ │ │ └── error.json │ │ │ │ ├── test_rule_parser_cli_pattern │ │ │ │ │ ├── error.json │ │ │ │ │ └── error.txt │ │ │ │ └── test_rule_parser_error_key_name_text │ │ │ │ │ └── error.txt │ │ │ ├── test_rule_validation │ │ │ │ ├── test_extra_top_level_valid │ │ │ │ │ └── rulesextra_field.yaml │ │ │ │ │ │ └── results.txt │ │ │ │ └── test_validation_of_invalid_rules │ │ │ │ │ ├── rulesinvalid-rulesadditional-invalid-pattern-operator.yaml │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesinvalid-rulesinvalid-metavariable-regex.yaml │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesinvalid-rulesinvalid-missing-top-item.yaml │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesinvalid-rulesinvalid-pattern-child.yaml │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesinvalid-rulesinvalid-pattern-operator.yaml │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesinvalid-rulesinvalid-pattern.yaml │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesinvalid-rulesmissing-hyphen.yaml │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesinvalid-rulesmissing-pattern.yaml │ │ │ │ │ └── results.txt │ │ │ │ │ ├── rulesinvalid-rulesstring-pattern-under-patterns.yaml │ │ │ │ │ └── results.txt │ │ │ │ │ └── rulesinvalid-rulesstring-pattern.yaml │ │ │ │ │ └── results.txt │ │ │ ├── test_semgrep_core_parse_error │ │ │ │ ├── test_file_parser__failure__error_messages │ │ │ │ │ ├── settings0 │ │ │ │ │ │ ├── error.txt │ │ │ │ │ │ └── out.json │ │ │ │ │ └── settings1 │ │ │ │ │ │ ├── error.txt │ │ │ │ │ │ └── out.json │ │ │ │ └── test_parse_errors │ │ │ │ │ └── errors.txt │ │ │ ├── test_severity │ │ │ │ ├── test_severity_error │ │ │ │ │ └── results.json │ │ │ │ ├── test_severity_info │ │ │ │ │ └── results.json │ │ │ │ ├── test_severity_multiple │ │ │ │ │ └── results.json │ │ │ │ └── test_severity_warning │ │ │ │ │ └── results.json │ │ │ ├── test_spacegrep │ │ │ │ ├── test_spacegrep │ │ │ │ │ ├── rulesspacegrepdockerfile.yaml-spacegrepdockerfile │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesspacegrepdockerfile.yaml-spacegreproot.Dockerfile │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesspacegrephtml.yaml-spacegrephtml.mustache │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesspacegrephttpresponse.yaml-spacegrephttpresponse.txt │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesspacegrepmarkdown.yaml-spacegrepmarkdown.md │ │ │ │ │ │ └── results.json │ │ │ │ │ ├── rulesspacegrepmulti-lines.yaml-spacegrepmulti-lines.java │ │ │ │ │ │ └── results.json │ │ │ │ │ └── rulesspacegrepterraform.yaml-spacegrepterraform.tf │ │ │ │ │ │ └── results.json │ │ │ │ └── test_spacegrep_nosem │ │ │ │ │ └── rulesspacegrepnosem-html.yaml-spacegrepnosem.html │ │ │ │ │ └── results.json │ │ │ ├── test_test │ │ │ │ ├── test_cli_test_basic │ │ │ │ │ └── results.json │ │ │ │ ├── test_cli_test_directory │ │ │ │ │ └── results.json │ │ │ │ ├── test_cli_test_from_entrypoint │ │ │ │ │ └── output.txt │ │ │ │ ├── test_cli_test_ignore_rule_paths │ │ │ │ │ └── results.json │ │ │ │ ├── test_cli_test_multiple_annotations │ │ │ │ │ └── results.txt │ │ │ │ ├── test_cli_test_suffixes │ │ │ │ │ └── results.json │ │ │ │ ├── test_cli_test_yaml_language │ │ │ │ │ └── results.json │ │ │ │ ├── test_cli_todook_filtering │ │ │ │ │ └── results.json │ │ │ │ └── test_timeout │ │ │ │ │ └── results.json │ │ │ ├── test_version_constraints │ │ │ │ └── test_version_constraints │ │ │ │ │ └── results.json │ │ │ └── test_warnings │ │ │ │ └── test_semgrepignore_v2_warning │ │ │ │ └── results.txt │ │ ├── targets │ │ │ ├── aliengrep │ │ │ │ ├── begin-end.log │ │ │ │ ├── dockerfile │ │ │ │ ├── html.mustache │ │ │ │ ├── httpresponse.txt │ │ │ │ ├── long-match.txt │ │ │ │ ├── markdown.md │ │ │ │ ├── metavariable-pattern.conf │ │ │ │ ├── multi-lines.java │ │ │ │ ├── nosem.html │ │ │ │ └── terraform.tf │ │ │ ├── auto │ │ │ │ └── fingerprints │ │ │ │ │ └── inside.py │ │ │ ├── autofix │ │ │ │ ├── add-metadata-hcl.hcl │ │ │ │ ├── autofix.py │ │ │ │ ├── collision.py │ │ │ │ ├── csv-writer.py │ │ │ │ ├── defaulthttpclient.java │ │ │ │ ├── delete-partial-line.py │ │ │ │ ├── django-none-password-default.py │ │ │ │ ├── flask-use-jsonify.py │ │ │ │ ├── imported-entity.py │ │ │ │ ├── java-string-wrap.java │ │ │ │ ├── ocaml_paren_expr.ml │ │ │ │ ├── order.py │ │ │ │ ├── python-assert-statement.py │ │ │ │ ├── python-delete-import.py │ │ │ │ ├── python-ranges.py │ │ │ │ ├── redundant.py │ │ │ │ ├── replace-field-yaml.yaml │ │ │ │ ├── requests-use-timeout.py │ │ │ │ ├── three-autofixes.py │ │ │ │ ├── two-autofixes.txt │ │ │ │ └── utf-8.py │ │ │ ├── bad │ │ │ │ ├── basic_java.java │ │ │ │ ├── invalid_c_long.c │ │ │ │ ├── invalid_go.go │ │ │ │ ├── invalid_javascript.js │ │ │ │ └── invalid_python.py │ │ │ ├── basic.py │ │ │ ├── basic │ │ │ │ ├── README.md │ │ │ │ ├── bento.png │ │ │ │ ├── inside.py │ │ │ │ ├── metavariable-comparison-bad-content.py │ │ │ │ ├── metavariable-comparison-base.py │ │ │ │ ├── metavariable-comparison-strip.py │ │ │ │ ├── metavariable-comparison.py │ │ │ │ ├── metavariable-regex-multi-regex.py │ │ │ │ ├── metavariable-regex-multi-rule.py │ │ │ │ ├── metavariable-regex.py │ │ │ │ ├── nested-patterns.js │ │ │ │ ├── nosem.c │ │ │ │ ├── nosem.go │ │ │ │ ├── nosem.java │ │ │ │ ├── nosem.js │ │ │ │ ├── nosem.py │ │ │ │ ├── regex-any-language.html │ │ │ │ ├── regex-nosemgrep.txt │ │ │ │ ├── regex-utf8.txt │ │ │ │ ├── regex.py │ │ │ │ ├── simple_python_no_extension │ │ │ │ ├── stupid.js │ │ │ │ ├── stupid.py │ │ │ │ └── stupid_no_extension │ │ │ ├── ci │ │ │ │ └── foo.py │ │ │ ├── deduplication │ │ │ │ └── deduplication.py │ │ │ ├── dependency_aware │ │ │ │ ├── ansi │ │ │ │ │ ├── ansi.js │ │ │ │ │ ├── package.json │ │ │ │ │ └── yarn.lock │ │ │ │ ├── awscli-with-manifest │ │ │ │ │ ├── Pipfile │ │ │ │ │ ├── Pipfile.lock │ │ │ │ │ └── awscli_vuln.py │ │ │ │ ├── awscli │ │ │ │ │ ├── Pipfile.lock │ │ │ │ │ └── awscli_vuln.py │ │ │ │ ├── dart │ │ │ │ │ ├── pubspec.lock │ │ │ │ │ └── pubspec.yaml │ │ │ │ ├── deeply_nested_package_lock │ │ │ │ │ └── package-lock.json │ │ │ │ ├── empty_yarn │ │ │ │ │ └── yarn.lock │ │ │ │ ├── generic │ │ │ │ │ ├── generic.txt │ │ │ │ │ └── package-lock.json │ │ │ │ ├── go │ │ │ │ │ ├── go.mod │ │ │ │ │ └── sca.go │ │ │ │ ├── go_multi_newline │ │ │ │ │ ├── go.mod │ │ │ │ │ └── sca.go │ │ │ │ ├── go_toolchain │ │ │ │ │ ├── go.mod │ │ │ │ │ └── sca.go │ │ │ │ ├── gradle-arbitrary-comment │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── gradle.lockfile │ │ │ │ │ └── sca-gradle.java │ │ │ │ ├── gradle-direct │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── gradle.lockfile │ │ │ │ ├── gradle-kts │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ ├── gradle.lockfile │ │ │ │ │ └── sca-gradle.java │ │ │ │ ├── gradle-no-comment │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── gradle.lockfile │ │ │ │ │ └── sca-gradle.java │ │ │ │ ├── gradle-no-lockfile-missing-gradlew │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── sca-gradle.java │ │ │ │ ├── gradle-no-lockfile │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── gradle │ │ │ │ │ │ └── wrapper │ │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ ├── gradlew │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ ├── sca-gradle.java │ │ │ │ │ └── semgrep-dependencies-init.gradle │ │ │ │ ├── gradle │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── gradle.lockfile │ │ │ │ │ └── sca-gradle.java │ │ │ │ ├── gradle_empty= │ │ │ │ │ └── gradle.lockfile │ │ │ │ ├── gradle_multi_project_no_lockfile │ │ │ │ │ ├── app │ │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── main │ │ │ │ │ │ │ └── java │ │ │ │ │ │ │ │ └── org │ │ │ │ │ │ │ │ └── example │ │ │ │ │ │ │ │ └── App.java │ │ │ │ │ │ │ └── test │ │ │ │ │ │ │ └── java │ │ │ │ │ │ │ └── org │ │ │ │ │ │ │ └── example │ │ │ │ │ │ │ └── AppTest.java │ │ │ │ │ ├── gradle.properties │ │ │ │ │ ├── gradle │ │ │ │ │ │ ├── libs.versions.toml │ │ │ │ │ │ └── wrapper │ │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ ├── gradlew │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ ├── lib │ │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── main │ │ │ │ │ │ │ └── java │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── gradle │ │ │ │ │ │ │ └── CustomLib.java │ │ │ │ │ └── settings.gradle.kts │ │ │ │ ├── gradle_trailing_newline │ │ │ │ │ └── gradle │ │ │ │ │ │ ├── build.gradle │ │ │ │ │ │ ├── gradle.lockfile │ │ │ │ │ │ └── sca-gradle.java │ │ │ │ ├── js │ │ │ │ │ ├── package-lock.json │ │ │ │ │ └── sca.js │ │ │ │ ├── lodash │ │ │ │ │ ├── useslodash.js │ │ │ │ │ └── yarn.lock │ │ │ │ ├── log4j │ │ │ │ │ ├── log4shell.java │ │ │ │ │ ├── maven_dep_tree.txt │ │ │ │ │ └── pom.xml │ │ │ │ ├── manifest_parse_error │ │ │ │ │ ├── poetry.lock │ │ │ │ │ └── pyproject.toml │ │ │ │ ├── maven-no-lockfile │ │ │ │ │ └── pom.xml │ │ │ │ ├── maven_dep_tree_extra_field │ │ │ │ │ └── maven_dep_tree.txt │ │ │ │ ├── maven_dep_tree_joined │ │ │ │ │ └── maven_dep_tree.txt │ │ │ │ ├── maven_dep_tree_optional │ │ │ │ │ └── maven_dep_tree.txt │ │ │ │ ├── maven_dep_tree_release_version │ │ │ │ │ └── maven_dep_tree.txt │ │ │ │ ├── mix │ │ │ │ │ ├── mix.exs │ │ │ │ │ └── mix.lock │ │ │ │ ├── monorepo │ │ │ │ │ ├── build.js │ │ │ │ │ ├── webapp1 │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ ├── webapp2 │ │ │ │ │ │ ├── app.js │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ └── yarn.lock │ │ │ │ ├── multi-dep-rule │ │ │ │ │ ├── bad.js │ │ │ │ │ ├── package-lock.json │ │ │ │ │ └── package.json │ │ │ │ ├── nested_package_lock │ │ │ │ │ └── package-lock.json │ │ │ │ ├── npm-empty │ │ │ │ │ └── package-lock.json │ │ │ │ ├── npm-malformed │ │ │ │ │ └── package-lock.json │ │ │ │ ├── nuget-large │ │ │ │ │ └── packages.lock.json │ │ │ │ ├── nuget │ │ │ │ │ └── packages.lock.json │ │ │ │ ├── nuget_no_lockfile │ │ │ │ │ └── NugetNoLockfile.csproj │ │ │ │ ├── osv_parsing │ │ │ │ │ ├── package-lock │ │ │ │ │ │ ├── commits.v1 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── commits.v2 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── empty.v1 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── empty.v2 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── files.v1 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── files.v2 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── nested-dependencies-dup.v1 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── nested-dependencies-dup.v2 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── nested-dependencies.v1 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── nested-dependencies.v2 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── one-package-dev.v1 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── one-package-dev.v2 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── one-package.v1 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── one-package.v2 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── scoped-packages.v1 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── scoped-packages.v2 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ ├── two-packages.v1 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ │ └── two-packages.v2 │ │ │ │ │ │ │ └── package-lock.json │ │ │ │ │ ├── pipfile │ │ │ │ │ │ ├── empty │ │ │ │ │ │ │ └── Pipfile.lock │ │ │ │ │ │ ├── no-version │ │ │ │ │ │ │ └── Pipfile.lock │ │ │ │ │ │ ├── one-package-dev │ │ │ │ │ │ │ └── Pipfile.lock │ │ │ │ │ │ ├── one-package │ │ │ │ │ │ │ └── Pipfile.lock │ │ │ │ │ │ ├── two-packages-alt │ │ │ │ │ │ │ └── Pipfile.lock │ │ │ │ │ │ └── two-packages │ │ │ │ │ │ │ └── Pipfile.lock │ │ │ │ │ ├── pnpm │ │ │ │ │ │ ├── commits │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── empty │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── exotic │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── files │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── multiple-packages │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── multiple-versions │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── no-packages │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── one-package-dev │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── one-package-v6-lockfile │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── one-package │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── peer-dependencies-advanced │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── peer-dependencies │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── scoped-packages-v6-lockfile │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ ├── scoped-packages │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ │ └── tarball │ │ │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ │ ├── poetry │ │ │ │ │ │ ├── empty │ │ │ │ │ │ │ └── poetry.lock │ │ │ │ │ │ ├── one-package-with-metadata │ │ │ │ │ │ │ └── poetry.lock │ │ │ │ │ │ ├── one-package │ │ │ │ │ │ │ └── poetry.lock │ │ │ │ │ │ ├── source-git │ │ │ │ │ │ │ └── poetry.lock │ │ │ │ │ │ ├── source-legacy │ │ │ │ │ │ │ └── poetry.lock │ │ │ │ │ │ └── two-packages │ │ │ │ │ │ │ └── poetry.lock │ │ │ │ │ ├── requirements │ │ │ │ │ │ ├── empty │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ │ ├── file-format-example │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ │ ├── multiple-packages-constrained │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ │ ├── multiple-packages-mixed │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ │ ├── non-normalized-names │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ │ ├── one-package-constrained │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ │ ├── one-package-unconstrained │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ │ ├── only-comments │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ │ └── with-added-support │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ └── yarn │ │ │ │ │ │ ├── cache-compressionlevel.v2 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── commits.v1 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── commits.v2 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── empty.v1 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── empty.v2 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── files.v1 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── files.v2 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── metadata-only.v2 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── multiple-constraints.v1 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── multiple-versions.v1 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── multiple-versions.v2 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── one-package.v1 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── one-package.v2 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── scoped-packages.v1 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── scoped-packages.v2 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── two-packages.v1 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── two-packages.v2 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ ├── versions-with-build-strings.v1 │ │ │ │ │ │ └── yarn.lock │ │ │ │ │ │ └── versions-with-build-strings.v2 │ │ │ │ │ │ └── yarn.lock │ │ │ │ ├── package-lock-v3 │ │ │ │ │ └── package-lock.json │ │ │ │ ├── package-lock_resolved_false │ │ │ │ │ └── package-lock.json │ │ │ │ ├── php │ │ │ │ │ ├── composer.json │ │ │ │ │ ├── composer.lock │ │ │ │ │ └── foo.php │ │ │ │ ├── pipenv-dependency-children │ │ │ │ │ ├── Pipfile │ │ │ │ │ └── Pipfile.lock │ │ │ │ ├── pipfile │ │ │ │ │ ├── Pipfile.lock │ │ │ │ │ └── sca-pipfile.py │ │ │ │ ├── pipfile_with_empty_dev-packages │ │ │ │ │ ├── Pipfile │ │ │ │ │ ├── Pipfile.lock │ │ │ │ │ └── sca-pipfile.py │ │ │ │ ├── pipfile_with_one_newline_between_sections │ │ │ │ │ ├── Pipfile │ │ │ │ │ ├── Pipfile.lock │ │ │ │ │ └── sca-pipfile.py │ │ │ │ ├── pipfile_with_uppercase_package_name │ │ │ │ │ ├── Pipfile.lock │ │ │ │ │ └── sca-pipfile.py │ │ │ │ ├── pipfile_with_vuln_in_dev-packages │ │ │ │ │ ├── Pipfile │ │ │ │ │ ├── Pipfile.lock │ │ │ │ │ └── sca-pipfile.py │ │ │ │ ├── pnpm-error-key │ │ │ │ │ ├── foo.js │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ ├── pnpm-v6 │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ ├── pnpm-v9-no-snapshots-this-is-wrong-btw │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ ├── pnpm-v9 │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ ├── pnpm-workspaces │ │ │ │ │ ├── foo.js │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ ├── pnpm │ │ │ │ │ ├── foo.js │ │ │ │ │ └── pnpm-lock.yaml │ │ │ │ ├── poetry │ │ │ │ │ ├── poetry.lock │ │ │ │ │ ├── pyproject.toml │ │ │ │ │ └── sca-poetry.py │ │ │ │ ├── poetry_comments │ │ │ │ │ ├── poetry.lock │ │ │ │ │ └── pyproject.toml │ │ │ │ ├── poetry_empty_table │ │ │ │ │ ├── poetry.lock │ │ │ │ │ └── pyproject.toml │ │ │ │ ├── poetry_quoted_key │ │ │ │ │ ├── poetry.lock │ │ │ │ │ └── pyproject.toml │ │ │ │ ├── poetry_trailing_newlines │ │ │ │ │ ├── poetry.lock │ │ │ │ │ └── pyproject.toml │ │ │ │ ├── poetry_with_arbitrary_starting_comment │ │ │ │ │ ├── poetry.lock │ │ │ │ │ ├── pyproject.toml │ │ │ │ │ └── sca-poetry.py │ │ │ │ ├── poetry_with_uppercase_package_name │ │ │ │ │ ├── poetry.lock │ │ │ │ │ ├── pyproject.toml │ │ │ │ │ └── sca-poetry.py │ │ │ │ ├── requirement │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirement.txt │ │ │ │ │ └── requirements.in │ │ │ │ ├── requirement_pip │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirement.pip │ │ │ │ │ └── requirements.in │ │ │ │ ├── requirements │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ └── requirements.txt │ │ │ │ ├── requirements3 │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ └── requirements3.txt │ │ │ │ ├── requirements_folder │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ └── requirements │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ └── stage.txt │ │ │ │ ├── requirements_folder_dep_dupes │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ └── requirements │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ └── stage.txt │ │ │ │ ├── requirements_folder_no_src │ │ │ │ │ ├── requirements.in │ │ │ │ │ └── requirements │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ └── stage.txt │ │ │ │ ├── requirements_folder_similar_deps │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ └── requirements │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ └── stage.txt │ │ │ │ ├── requirements_multiple_lockfiles │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ ├── requirements.txt │ │ │ │ │ └── requirements │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ └── stage.txt │ │ │ │ ├── requirements_multiple_lockfiles_dep_dupes │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ ├── requirements.txt │ │ │ │ │ └── requirements │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ └── stage.txt │ │ │ │ ├── requirements_multiple_lockfiles_dep_dupes_no_src │ │ │ │ │ ├── requirements.in │ │ │ │ │ ├── requirements.txt │ │ │ │ │ └── requirements │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ └── stage.txt │ │ │ │ ├── requirements_multiple_lockfiles_no_src │ │ │ │ │ ├── requirements.in │ │ │ │ │ ├── requirements.txt │ │ │ │ │ └── requirements │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ └── stage.txt │ │ │ │ ├── requirements_multiple_lockfiles_similar_deps │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ ├── requirements.txt │ │ │ │ │ └── requirements │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ └── stage.txt │ │ │ │ ├── requirements_nested │ │ │ │ │ ├── a │ │ │ │ │ │ └── b │ │ │ │ │ │ │ ├── foo.py │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ └── requirements.txt │ │ │ │ ├── requirements_nested_dep_dupes │ │ │ │ │ ├── a │ │ │ │ │ │ └── b │ │ │ │ │ │ │ ├── foo.py │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ └── requirements.txt │ │ │ │ ├── requirements_nested_folder │ │ │ │ │ ├── a │ │ │ │ │ │ └── b │ │ │ │ │ │ │ ├── foo.py │ │ │ │ │ │ │ └── requirements │ │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ │ └── stage.txt │ │ │ │ │ └── requirements.txt │ │ │ │ ├── requirements_nested_folder_dep_dupes │ │ │ │ │ ├── a │ │ │ │ │ │ └── b │ │ │ │ │ │ │ ├── foo.py │ │ │ │ │ │ │ └── requirements │ │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ │ └── stage.txt │ │ │ │ │ └── requirements.txt │ │ │ │ ├── requirements_nested_folder_no_src │ │ │ │ │ ├── a │ │ │ │ │ │ └── b │ │ │ │ │ │ │ └── requirements │ │ │ │ │ │ │ ├── prod.txt │ │ │ │ │ │ │ └── stage.txt │ │ │ │ │ └── requirements.txt │ │ │ │ ├── requirements_nested_no_src │ │ │ │ │ ├── a │ │ │ │ │ │ └── b │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ └── requirements.txt │ │ │ │ ├── requirements_pip │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ └── requirements.pip │ │ │ │ ├── requirements_pip_folder │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ └── requirements │ │ │ │ │ │ ├── prod.pip │ │ │ │ │ │ └── stage.pip │ │ │ │ ├── requirements_with_uppercase_package_name │ │ │ │ │ ├── foo.py │ │ │ │ │ ├── requirements.in │ │ │ │ │ └── requirements.txt │ │ │ │ ├── ruby-with-multiple-gem-sections │ │ │ │ │ ├── Gemfile.lock │ │ │ │ │ └── sca.rb │ │ │ │ ├── ruby-with-multiple-remotes │ │ │ │ │ ├── Gemfile.lock │ │ │ │ │ └── sca.rb │ │ │ │ ├── ruby │ │ │ │ │ ├── Gemfile.lock │ │ │ │ │ └── sca.rb │ │ │ │ ├── rust │ │ │ │ │ ├── Cargo.lock │ │ │ │ │ └── sca.rs │ │ │ │ ├── rust_short_lockfile │ │ │ │ │ ├── Cargo.lock │ │ │ │ │ └── sca.rs │ │ │ │ ├── setup-py-dynamic-resolution │ │ │ │ │ ├── foo.py │ │ │ │ │ └── setup.py │ │ │ │ ├── swiftpm │ │ │ │ │ ├── v1 │ │ │ │ │ │ ├── Package.resolved │ │ │ │ │ │ └── Package.swift │ │ │ │ │ ├── v2 │ │ │ │ │ │ ├── Package.resolved │ │ │ │ │ │ └── Package.swift │ │ │ │ │ └── v3 │ │ │ │ │ │ ├── Package.resolved │ │ │ │ │ │ └── Package.swift │ │ │ │ ├── swiftpm_missing_version │ │ │ │ │ ├── Package.resolved │ │ │ │ │ └── Package.swift │ │ │ │ ├── transitive_and_direct │ │ │ │ │ ├── direct_reachable_transitive_unreachable │ │ │ │ │ │ ├── bad.js │ │ │ │ │ │ ├── package-lock.json │ │ │ │ │ │ └── package.json │ │ │ │ │ └── transitive_not_reachable_if_direct │ │ │ │ │ │ ├── bad.js │ │ │ │ │ │ ├── package-lock.json │ │ │ │ │ │ └── package.json │ │ │ │ ├── unreachable_multiple_copies │ │ │ │ │ ├── package.json │ │ │ │ │ └── yarn.lock │ │ │ │ ├── uv │ │ │ │ │ ├── README.md │ │ │ │ │ ├── hello.py │ │ │ │ │ ├── pyproject.toml │ │ │ │ │ └── uv.lock │ │ │ │ ├── yarn-v1-without-version-constraint │ │ │ │ │ └── yarn.lock │ │ │ │ ├── yarn │ │ │ │ │ └── yarn.lock │ │ │ │ ├── yarn2 │ │ │ │ │ ├── foo.js │ │ │ │ │ ├── package.json │ │ │ │ │ └── yarn.lock │ │ │ │ ├── yarn_at_in_version │ │ │ │ │ └── yarn.lock │ │ │ │ └── yarn_multi_hash │ │ │ │ │ └── yarn.lock │ │ │ ├── empty │ │ │ │ └── totally_empty_file │ │ │ ├── equivalence │ │ │ │ └── open_redirect.py │ │ │ ├── error_management │ │ │ │ ├── r2c_nosemgrep_was_fatal.py │ │ │ │ └── r2c_was_fatal.py │ │ │ ├── exclude_include │ │ │ │ ├── excluded │ │ │ │ │ ├── excluded.js │ │ │ │ │ └── included.js │ │ │ │ └── included │ │ │ │ │ ├── excluded.js │ │ │ │ │ ├── included.js │ │ │ │ │ └── included.vue │ │ │ ├── fixtest │ │ │ │ ├── basic.fixed.go │ │ │ │ ├── basic.go │ │ │ │ ├── no_associated_fixed.py │ │ │ │ ├── test1.fixed.py │ │ │ │ ├── test1.py │ │ │ │ ├── test2.py │ │ │ │ ├── test3.fixed.py │ │ │ │ ├── test3.py │ │ │ │ ├── test4.fixed.py │ │ │ │ └── test4.py │ │ │ ├── ignores │ │ │ │ ├── .gitignore │ │ │ │ ├── .semgrepignore │ │ │ │ ├── find.js │ │ │ │ ├── ignore.min.js │ │ │ │ ├── ignore_test.js │ │ │ │ ├── ok │ │ │ │ │ └── find.js │ │ │ │ └── tests │ │ │ │ │ └── ignore.js │ │ │ ├── ignores_default │ │ │ │ ├── .gitignore │ │ │ │ ├── find.js │ │ │ │ ├── ignore.min.js │ │ │ │ └── ignore_test.go │ │ │ ├── image │ │ │ │ └── semgrep.png │ │ │ ├── join_rules │ │ │ │ ├── recursive │ │ │ │ │ ├── flask-deep-stored-xss-example │ │ │ │ │ │ └── targets │ │ │ │ │ │ │ └── app │ │ │ │ │ │ │ ├── app.py │ │ │ │ │ │ │ ├── deep.py │ │ │ │ │ │ │ ├── deeper.py │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ └── user.html.j2 │ │ │ │ │ └── java-callgraph-example │ │ │ │ │ │ ├── vulnado-chain-broken │ │ │ │ │ │ └── src │ │ │ │ │ │ │ └── main │ │ │ │ │ │ │ └── java │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── scalesec │ │ │ │ │ │ │ └── vulnado │ │ │ │ │ │ │ ├── LoginController.java │ │ │ │ │ │ │ ├── User.java │ │ │ │ │ │ │ └── VulnadoApplication.java │ │ │ │ │ │ └── vulnado │ │ │ │ │ │ ├── LoginController.java │ │ │ │ │ │ ├── User.java │ │ │ │ │ │ └── VulnadoApplication.java │ │ │ │ ├── user-input-escaped-with-safe │ │ │ │ │ ├── app.py │ │ │ │ │ └── search.html │ │ │ │ └── user-input-with-unescaped-extension │ │ │ │ │ ├── launch.htm.j2 │ │ │ │ │ └── views.py │ │ │ ├── language-filtering │ │ │ │ ├── call-f.js │ │ │ │ └── call-f.py │ │ │ ├── long_text.py │ │ │ ├── ls │ │ │ │ └── rules.yaml │ │ │ ├── match_based_id │ │ │ │ ├── after │ │ │ │ │ ├── ellipse.c │ │ │ │ │ ├── formatting.c │ │ │ │ │ ├── join.py │ │ │ │ │ ├── meta-change.c │ │ │ │ │ ├── operator.c │ │ │ │ │ └── taint.py │ │ │ │ ├── before │ │ │ │ │ ├── ellipse.c │ │ │ │ │ ├── formatting.c │ │ │ │ │ ├── join.py │ │ │ │ │ ├── meta-change.c │ │ │ │ │ ├── operator.c │ │ │ │ │ └── taint.py │ │ │ │ └── duplicates │ │ │ │ │ ├── duplicate1.py │ │ │ │ │ └── duplicate2.py │ │ │ ├── message_interpolation │ │ │ │ ├── multi_pattern_inside.py │ │ │ │ ├── multi_pattern_inside_nested.py │ │ │ │ ├── pattern_either_basic.py │ │ │ │ ├── pattern_inside_basic.py │ │ │ │ ├── pattern_inside_complex.py │ │ │ │ ├── pattern_not_inside_basic.py │ │ │ │ ├── pattern_not_inside_complex.py │ │ │ │ ├── propagated_constant.py │ │ │ │ └── target_with_metavariable.py │ │ │ ├── metavariable-pattern │ │ │ │ ├── test1.yml │ │ │ │ └── test2.php │ │ │ ├── metavariable_propagation │ │ │ │ ├── metavariable-comparison-propagation.py │ │ │ │ ├── metavariable-regex-const-prop.dockerfile │ │ │ │ └── metavariable-regex-propagation.py │ │ │ ├── metrics_send │ │ │ │ ├── MoviesController.cs │ │ │ │ ├── MvcMovieContext.cs │ │ │ │ └── taint_assume_safe_numbers1.java │ │ │ ├── multi-focus-metavariable.py │ │ │ ├── multilangproj │ │ │ │ ├── code.js │ │ │ │ ├── math.ml │ │ │ │ └── script.py │ │ │ ├── multiline │ │ │ │ └── stupid.py │ │ │ ├── nosem_invalid_id │ │ │ │ └── nosem_invalid_id.js │ │ │ ├── nosemgrep │ │ │ │ ├── eqeq-nosemgrep.py │ │ │ │ └── multiple-nosemgrep.py │ │ │ ├── parse_metrics │ │ │ │ ├── lexical-error.scala │ │ │ │ ├── ok.ml │ │ │ │ ├── ok.php │ │ │ │ ├── ok.rb │ │ │ │ ├── ok.scala │ │ │ │ ├── parse-error.scala │ │ │ │ ├── partial-parse-error.rb │ │ │ │ └── rules.yaml │ │ │ ├── pattern-not-regex │ │ │ │ └── issue2465.requirements.txt │ │ │ ├── per-rule-include │ │ │ │ ├── dont-scan-me.py │ │ │ │ └── scan-me.py │ │ │ ├── permissions │ │ │ │ └── README │ │ │ ├── pro-rule-skipping-no-parsing │ │ │ │ └── x.cls │ │ │ ├── pro-rule-skipping │ │ │ │ └── x.cls │ │ │ ├── rule_id │ │ │ │ └── hello.txt │ │ │ ├── script │ │ │ │ └── bad │ │ │ ├── semgrep-publish │ │ │ │ ├── invalid │ │ │ │ │ └── invalid.yaml │ │ │ │ ├── multirule │ │ │ │ │ └── multirule.yaml │ │ │ │ └── valid │ │ │ │ │ ├── valid1.yaml │ │ │ │ │ └── valid2.yaml │ │ │ ├── simple.yaml │ │ │ ├── sort-findings │ │ │ │ ├── b.py │ │ │ │ ├── c.py │ │ │ │ └── z │ │ │ │ │ └── a.py │ │ │ ├── spacegrep │ │ │ │ ├── dockerfile │ │ │ │ ├── html.mustache │ │ │ │ ├── httpresponse.txt │ │ │ │ ├── markdown.md │ │ │ │ ├── multi-lines.java │ │ │ │ ├── nosem.html │ │ │ │ ├── root.Dockerfile │ │ │ │ └── terraform.tf │ │ │ ├── spacegrep_timeout │ │ │ │ └── gnu-lgplv2.txt │ │ │ ├── synthesizing │ │ │ │ └── ex1.py │ │ │ ├── taint │ │ │ │ ├── taint.py │ │ │ │ ├── taint_intrafile.py │ │ │ │ └── taint_trace.cpp │ │ │ ├── test_test │ │ │ │ ├── basic.py │ │ │ │ ├── directory │ │ │ │ │ └── basic.py │ │ │ │ ├── foo.xml │ │ │ │ ├── long.py │ │ │ │ ├── multiple_annotations.py │ │ │ │ ├── suffixes │ │ │ │ │ └── this.that.check.py │ │ │ │ ├── todook.py │ │ │ │ └── yaml_language │ │ │ │ │ └── yaml_language.test.yaml │ │ │ ├── version-constraints │ │ │ │ └── x.py │ │ │ └── yaml │ │ │ │ ├── target.yaml │ │ │ │ └── yaml_capture.yaml │ │ ├── test_aliengrep.py │ │ ├── test_autofix.py │ │ ├── test_baseline.py │ │ ├── test_exclude_include.py │ │ ├── test_exclude_include_formatting.py │ │ ├── test_fixtest.py │ │ ├── test_help.py │ │ ├── test_ignores.py │ │ ├── test_max_target_bytes.py │ │ ├── test_message_interpolation.py │ │ ├── test_metavariable_comparison.py │ │ ├── test_metavariable_matching.py │ │ ├── test_metavariable_pattern.py │ │ ├── test_metrics.py │ │ ├── test_misc.py │ │ ├── test_missing_file.py │ │ ├── test_multi_config_fail.py │ │ ├── test_nosemgrep.py │ │ ├── test_output.py │ │ ├── test_output_sarif.py │ │ ├── test_parse_rate_metrics.py │ │ ├── test_paths.py │ │ ├── test_permissions.py │ │ ├── test_process_limits.py │ │ ├── test_regex.py │ │ ├── test_rule_id.py │ │ ├── test_rule_parser.py │ │ ├── test_rule_validation.py │ │ ├── test_semgrep_core_error.py │ │ ├── test_semgrep_core_parse_error.py │ │ ├── test_severity.py │ │ ├── test_show.py │ │ ├── test_spacegrep.py │ │ ├── test_target_selection.py │ │ ├── test_test.py │ │ ├── test_version.py │ │ ├── test_version_constraints.py │ │ └── test_warnings.py │ └── unit │ │ ├── parsers │ │ └── test_pnpm.py │ │ ├── snapshots │ │ └── test_rule_match │ │ │ ├── test_rule_match_to_app_finding │ │ │ └── results.json │ │ │ └── test_rule_match_to_app_finding_historical_info │ │ │ └── results.json │ │ ├── targeting │ │ ├── test_exclude.py │ │ ├── test_include.py │ │ ├── test_size_limit.py │ │ └── test_target_manager.py │ │ ├── test_baseline.py │ │ ├── test_bytesize.py │ │ ├── test_clean_project_url.py │ │ ├── test_config_resolver.py │ │ ├── test_engine_type.py │ │ ├── test_error_handler.py │ │ ├── test_filter_changed_subprojects.py │ │ ├── test_filter_dependency_aware_rules.py │ │ ├── test_filter_exclude_rule.py │ │ ├── test_join_rule.py │ │ ├── test_match_hashes.py │ │ ├── test_meta.py │ │ ├── test_metric_manager.py │ │ ├── test_paths_to_transitivity.py │ │ ├── test_project_config.py │ │ ├── test_resolve_dependency_source.py │ │ ├── test_resolve_subprojects.py │ │ ├── test_rule.py │ │ ├── test_rule_match.py │ │ ├── test_semgrep_test.py │ │ ├── test_semver_matching.py │ │ ├── test_subproject.py │ │ ├── test_subproject_matchers.py │ │ ├── test_version.py │ │ └── test_yaml_parsing.py │ ├── fixtures.py │ ├── performance │ ├── targets_perf_sca │ │ ├── 100k │ │ │ ├── Gemfile.lock │ │ │ ├── Pipfile.lock │ │ │ ├── go.mod │ │ │ ├── gradle.lockfile │ │ │ ├── maven_dep_tree.txt │ │ │ ├── package-lock.json │ │ │ ├── poetry.lock │ │ │ ├── requirements.txt │ │ │ └── yarn.lock │ │ ├── 10k │ │ │ ├── Gemfile.lock │ │ │ ├── Pipfile.lock │ │ │ ├── go.mod │ │ │ ├── gradle.lockfile │ │ │ ├── maven_dep_tree.txt │ │ │ ├── package-lock.json │ │ │ ├── poetry.lock │ │ │ ├── requirements.txt │ │ │ └── yarn.lock │ │ ├── 50k │ │ │ ├── Gemfile.lock │ │ │ ├── Pipfile.lock │ │ │ ├── go.mod │ │ │ ├── gradle.lockfile │ │ │ ├── maven_dep_tree.txt │ │ │ ├── package-lock.json │ │ │ ├── poetry.lock │ │ │ ├── requirements.txt │ │ │ └── yarn.lock │ │ └── readme.txt │ └── test_semdep.py │ ├── qa │ ├── __init__.py │ ├── public_repos.py │ ├── rules │ │ └── regex-sentinel.yaml │ └── test_public_repos.py │ └── semgrep_runner.py ├── cygwin-env.mk ├── debug ├── dev ├── optional.opam └── required.opam ├── devShells.nix ├── dune ├── dune-project ├── flake.lock ├── flake.nix ├── images ├── semgrep-api-token.jpg ├── semgrep-auto-config-example.jpg ├── semgrep-ci-cd-popup.jpg ├── semgrep-example-rules-editor.jpg ├── semgrep-login.jpg ├── semgrep-logo-dark.svg ├── semgrep-logo-light.svg ├── semgrep-main-image.jpg └── semgrep-scan-cli.jpg ├── interfaces ├── Parsing_stats.atd ├── Rule_options.atd ├── Semgrep_prefilter.atd ├── notes.txt └── semgrep_interfaces ├── languages ├── bash │ ├── ast │ │ ├── AST_bash.ml │ │ ├── AST_bash_builder.ml │ │ ├── AST_bash_builder.mli │ │ ├── AST_bash_loc.ml │ │ ├── AST_bash_loc.mli │ │ └── dune │ ├── generic │ │ ├── Bash_to_generic.ml │ │ ├── Bash_to_generic.mli │ │ └── dune │ └── tree-sitter │ │ ├── Parse_bash_tree_sitter.ml │ │ ├── Parse_bash_tree_sitter.mli │ │ └── dune ├── cairo │ └── generic │ │ ├── Parse_cairo_tree_sitter.ml │ │ ├── Parse_cairo_tree_sitter.mli │ │ └── dune ├── circom │ └── generic │ │ ├── Parse_circom_tree_sitter.ml │ │ ├── Parse_circom_tree_sitter.mli │ │ └── dune ├── cpp │ ├── ast │ │ ├── Log_parser_cpp.ml │ │ ├── ast_cpp.ml │ │ └── dune │ ├── generic │ │ ├── cpp_to_generic.ml │ │ ├── cpp_to_generic.mli │ │ └── dune │ ├── menhir │ │ ├── authors.txt │ │ ├── conflicts.txt │ │ ├── copyright.txt │ │ ├── credits.txt │ │ ├── dune │ │ ├── flag_parsing_cpp.ml │ │ ├── lexer_cpp.mll │ │ ├── license.txt │ │ ├── notes.txt │ │ ├── parse_cpp.ml │ │ ├── parse_cpp.mli │ │ ├── parser_cpp.mly │ │ ├── parser_cpp_mly_helper.ml │ │ ├── parsing_hacks.ml │ │ ├── parsing_hacks.mli │ │ ├── parsing_hacks_cpp.ml │ │ ├── parsing_hacks_cpp.mli │ │ ├── parsing_hacks_define.ml │ │ ├── parsing_hacks_define.mli │ │ ├── parsing_hacks_lib.ml │ │ ├── parsing_hacks_lib.mli │ │ ├── parsing_hacks_pp.ml │ │ ├── parsing_hacks_pp.mli │ │ ├── parsing_hacks_typedef.ml │ │ ├── parsing_hacks_typedef.mli │ │ ├── parsing_recovery_cpp.ml │ │ ├── parsing_recovery_cpp.mli │ │ ├── pp_token.ml │ │ ├── pp_token.mli │ │ ├── token_cpp.ml │ │ ├── token_cpp.mli │ │ ├── token_helpers_cpp.ml │ │ ├── token_helpers_cpp.mli │ │ ├── token_views_context.ml │ │ ├── token_views_context.mli │ │ ├── token_views_cpp.ml │ │ ├── token_views_cpp.mli │ │ ├── type_cpp.ml │ │ ├── type_cpp.mli │ │ ├── unit_parsing_cpp.ml │ │ └── unit_parsing_cpp.mli │ ├── orig_spec │ │ ├── orig_c.mly │ │ └── orig_cpp.mly │ └── tree-sitter │ │ ├── Parse_cpp_tree_sitter.ml │ │ ├── Parse_cpp_tree_sitter.mli │ │ ├── Preprocessor_cpp.ml │ │ ├── Preprocessor_cpp.mli │ │ └── dune ├── csharp │ └── generic │ │ ├── Parse_csharp_tree_sitter.ml │ │ ├── Parse_csharp_tree_sitter.mli │ │ └── dune ├── dart │ └── generic │ │ ├── Parse_dart_tree_sitter.ml │ │ ├── Parse_dart_tree_sitter.mli │ │ └── dune ├── dockerfile │ ├── ast │ │ ├── AST_dockerfile.ml │ │ ├── AST_dockerfile_loc.ml │ │ ├── AST_dockerfile_loc.mli │ │ └── dune │ ├── generic │ │ ├── Dockerfile_to_generic.ml │ │ ├── Dockerfile_to_generic.mli │ │ └── dune │ └── tree-sitter │ │ ├── Parse_dockerfile_tree_sitter.ml │ │ ├── Parse_dockerfile_tree_sitter.mli │ │ └── dune ├── go │ ├── ast │ │ ├── ast_go.ml │ │ └── dune │ ├── generic │ │ ├── dune │ │ ├── go_to_generic.ml │ │ └── go_to_generic.mli │ ├── menhir │ │ ├── conflicts.txt │ │ ├── dune │ │ ├── lexer_go.mll │ │ ├── pad.txt │ │ ├── parse_go.ml │ │ ├── parse_go.mli │ │ ├── parser_go.mly │ │ ├── parsing_hacks_go.ml │ │ ├── parsing_hacks_go.mli │ │ ├── token_helpers_go.ml │ │ ├── token_helpers_go.mli │ │ ├── unit_parsing_go.ml │ │ └── unit_parsing_go.mli │ ├── orig_spec │ │ ├── go.y │ │ ├── lex.go │ │ └── rest_todo │ └── tree-sitter │ │ ├── Parse_go_tree_sitter.ml │ │ ├── Parse_go_tree_sitter.mli │ │ └── dune ├── hack │ └── generic │ │ ├── Parse_hack_tree_sitter.ml │ │ ├── Parse_hack_tree_sitter.mli │ │ └── dune ├── html │ └── generic │ │ ├── Parse_html_tree_sitter.ml │ │ ├── Parse_html_tree_sitter.mli │ │ └── dune ├── java │ ├── ast │ │ ├── Log_parser_java.ml │ │ ├── ast_java.ml │ │ └── dune │ ├── generic │ │ ├── dune │ │ ├── java_to_generic.ml │ │ └── java_to_generic.mli │ └── tree-sitter │ │ ├── Parse_java_tree_sitter.ml │ │ ├── Parse_java_tree_sitter.mli │ │ └── dune ├── javascript │ ├── ast │ │ ├── Log_parser_javascript.ml │ │ ├── ast_js.ml │ │ ├── dune │ │ ├── visitor_js.ml │ │ └── visitor_js.mli │ ├── generic │ │ ├── dune │ │ ├── js_to_generic.ml │ │ └── js_to_generic.mli │ ├── menhir │ │ ├── conflicts.txt │ │ ├── copyright.txt │ │ ├── dune │ │ ├── lexer_js.mll │ │ ├── license.txt │ │ ├── parse_js.ml │ │ ├── parse_js.mli │ │ ├── parser_js.mly │ │ ├── parsing_hacks_js.ml │ │ ├── parsing_hacks_js.mli │ │ ├── token_helpers_js.ml │ │ ├── token_helpers_js.mli │ │ ├── unit_parsing_js.ml │ │ └── unit_parsing_js.mli │ └── orig_spec │ │ └── orig.mly ├── json │ ├── ast │ │ ├── AST_json.ml │ │ └── dune │ ├── generic │ │ ├── dune │ │ ├── json_to_generic.ml │ │ └── json_to_generic.mli │ └── menhir │ │ ├── dune │ │ ├── parse_json.ml │ │ ├── parse_json.mli │ │ ├── test_parsing_json.ml │ │ ├── test_parsing_json.mli │ │ ├── unit_parsing_json.ml │ │ └── unit_parsing_json.mli ├── jsonnet │ ├── ast │ │ ├── AST_jsonnet.ml │ │ └── dune │ ├── generic │ │ ├── Jsonnet_to_generic.ml │ │ ├── Jsonnet_to_generic.mli │ │ └── dune │ └── tree-sitter │ │ ├── Parse_jsonnet_tree_sitter.ml │ │ ├── Parse_jsonnet_tree_sitter.mli │ │ └── dune ├── julia │ └── generic │ │ ├── Parse_julia_tree_sitter.ml │ │ ├── Parse_julia_tree_sitter.mli │ │ └── dune ├── kotlin │ └── generic │ │ ├── Parse_kotlin_tree_sitter.ml │ │ ├── Parse_kotlin_tree_sitter.mli │ │ └── dune ├── lisp │ └── tree-sitter │ │ ├── Parse_clojure_tree_sitter.ml │ │ ├── Parse_clojure_tree_sitter.mli │ │ └── dune ├── lua │ └── generic │ │ ├── Log_parser_lua.ml │ │ ├── Parse_lua_tree_sitter.ml │ │ ├── Parse_lua_tree_sitter.mli │ │ └── dune ├── move_on_aptos │ └── generic │ │ ├── Parse_move_on_aptos_tree_sitter.ml │ │ ├── Parse_move_on_aptos_tree_sitter.mli │ │ └── dune ├── move_on_sui │ └── generic │ │ ├── Log_parser_move.ml │ │ ├── Parse_move_on_sui_tree_sitter.ml │ │ ├── Parse_move_on_sui_tree_sitter.mli │ │ └── dune ├── ocaml │ ├── ast │ │ ├── AST_ocaml.ml │ │ └── dune │ ├── generic │ │ ├── dune │ │ ├── ocaml_to_generic.ml │ │ └── ocaml_to_generic.mli │ ├── menhir │ │ ├── dune │ │ ├── lexer_ml.mll │ │ ├── license_parser_ml_mly.txt │ │ ├── parse_ml.ml │ │ ├── parse_ml.mli │ │ ├── parser_ml.mly │ │ ├── token_helpers_ml.ml │ │ ├── token_helpers_ml.mli │ │ ├── unit_parsing_ml.ml │ │ └── unit_parsing_ml.mli │ ├── orig_spec │ │ ├── orig_ocaml.mly │ │ └── orig_ocaml_4_10_menhir.mly │ └── tree-sitter │ │ ├── Parse_ocaml_tree_sitter.ml │ │ ├── Parse_ocaml_tree_sitter.mli │ │ └── dune ├── php │ ├── ast │ │ ├── ast_php.ml │ │ ├── cst_php.ml │ │ └── dune │ ├── generic │ │ ├── dune │ │ ├── php_to_generic.ml │ │ └── php_to_generic.mli │ ├── menhir │ │ ├── ast_php_build.ml │ │ ├── ast_php_build.mli │ │ ├── conflicts.txt │ │ ├── dune │ │ ├── flag_parsing_php.ml │ │ ├── lexer_php.mll │ │ ├── parse_php.ml │ │ ├── parse_php.mli │ │ ├── parser_php.mly │ │ ├── parsing_hacks_php.ml │ │ ├── parsing_hacks_php.mli │ │ ├── token_helpers_php.ml │ │ ├── token_helpers_php.mli │ │ ├── unit_parsing_php.ml │ │ └── unit_parsing_php.mli │ ├── orig_spec │ │ ├── hphp-may-2012 │ │ │ ├── hphp.x │ │ │ └── hphp.y │ │ ├── orig_php_5.x.mly │ │ ├── php-src-8.x │ │ │ ├── zend_language_parser.y │ │ │ └── zend_language_scanner.l │ │ └── xhp │ │ │ ├── xhp_orig_when_port.l │ │ │ └── xhp_orig_when_port.y │ └── tree-sitter │ │ ├── Parse_php_tree_sitter.ml │ │ ├── Parse_php_tree_sitter.mli │ │ └── dune ├── promql │ └── generic │ │ ├── Parse_promql_tree_sitter.ml │ │ ├── Parse_promql_tree_sitter.mli │ │ └── dune ├── protobuf │ └── generic │ │ ├── Parse_protobuf_tree_sitter.ml │ │ ├── Parse_protobuf_tree_sitter.mli │ │ └── dune ├── python │ ├── ast │ │ ├── AST_python.ml │ │ └── dune │ ├── generic │ │ ├── Python_to_generic.ml │ │ ├── Python_to_generic.mli │ │ └── dune │ ├── menhir │ │ ├── Flag_parsing_python.ml │ │ ├── Lexer_python.mll │ │ ├── Parse_python.ml │ │ ├── Parse_python.mli │ │ ├── Parser_python.mly │ │ ├── Parsing_hacks_python.ml │ │ ├── Parsing_hacks_python.mli │ │ ├── Token_helpers_python.ml │ │ ├── Token_helpers_python.mli │ │ ├── Unit_parsing_python.ml │ │ ├── Unit_parsing_python.mli │ │ ├── conflicts.txt │ │ ├── copyright.txt │ │ ├── dune │ │ ├── license.txt │ │ ├── modif-orig.txt │ │ └── readme.txt │ └── tree-sitter │ │ ├── Parse_python_tree_sitter.ml │ │ ├── Parse_python_tree_sitter.mli │ │ └── dune ├── ql │ ├── ast │ │ ├── AST_ql.ml │ │ └── dune │ ├── generic │ │ ├── QL_to_generic.ml │ │ ├── QL_to_generic.mli │ │ └── dune │ └── tree-sitter │ │ ├── Parse_ql_tree_sitter.ml │ │ ├── Parse_ql_tree_sitter.mli │ │ └── dune ├── r │ └── generic │ │ ├── Parse_r_tree_sitter.ml │ │ ├── Parse_r_tree_sitter.mli │ │ └── dune ├── regexp │ ├── .gitignore │ ├── AST.ml │ ├── AST.mli │ ├── Char_class.ml │ ├── Conf.ml │ ├── Conf.mli │ ├── Dialect.ml │ ├── Dialect.mli │ ├── Dump.ml │ ├── Dump.mli │ ├── Lexer.mll │ ├── Parse.ml │ ├── Parse.mli │ ├── Parser.mly │ ├── README.md │ ├── Unit_parsing.ml │ └── dune ├── ruby │ ├── ast │ │ ├── ast_ruby.ml │ │ └── dune │ ├── generic │ │ ├── dune │ │ ├── ruby_to_generic.ml │ │ └── ruby_to_generic.mli │ ├── orig_spec │ │ └── orig.mly │ └── tree-sitter │ │ ├── Parse_ruby_tree_sitter.ml │ │ ├── Parse_ruby_tree_sitter.mli │ │ └── dune ├── rust │ └── generic │ │ ├── Parse_rust_tree_sitter.ml │ │ ├── Parse_rust_tree_sitter.mli │ │ └── dune ├── scala │ ├── ast │ │ ├── AST_scala.ml │ │ ├── Log_parser_scala.ml │ │ └── dune │ ├── generic │ │ ├── dune │ │ ├── scala_to_generic.ml │ │ └── scala_to_generic.mli │ ├── orig_spec │ │ └── scala.ebnf │ └── recursive_descent │ │ ├── Lexer_scala.mll │ │ ├── Parse_scala.ml │ │ ├── Parse_scala.mli │ │ ├── Parser_scala.mly │ │ ├── Parser_scala_recursive_descent.ml │ │ ├── Parser_scala_recursive_descent.mli │ │ ├── Token_helpers_scala.ml │ │ ├── Token_scala.ml │ │ ├── Unit_parsing_scala.ml │ │ ├── Unit_parsing_scala.mli │ │ └── dune ├── solidity │ └── generic │ │ ├── Parse_solidity_tree_sitter.ml │ │ ├── Parse_solidity_tree_sitter.mli │ │ └── dune ├── swift │ └── generic │ │ ├── Parse_swift_tree_sitter.ml │ │ ├── Parse_swift_tree_sitter.mli │ │ └── dune ├── terraform │ ├── ast │ │ ├── AST_terraform.ml │ │ └── dune │ ├── generic │ │ ├── Terraform_to_generic.ml │ │ ├── Terraform_to_generic.mli │ │ └── dune │ └── tree-sitter │ │ ├── Parse_terraform_tree_sitter.ml │ │ ├── Parse_terraform_tree_sitter.mli │ │ └── dune ├── typescript │ └── tree-sitter │ │ ├── .ocamlformat-ignore │ │ ├── Boilerplate_tree_sitter_typescript.ml │ │ ├── CST_tree_sitter_typescript.ml │ │ ├── Parse_typescript_tree_sitter.ml │ │ ├── Parse_typescript_tree_sitter.mli │ │ └── dune └── yaml │ ├── ast │ ├── AST_yaml.ml │ └── dune │ ├── generic │ ├── dune │ ├── yaml_to_generic.ml │ └── yaml_to_generic.mli │ └── parser │ ├── Parse_yaml.ml │ ├── Parse_yaml.mli │ └── dune ├── libs ├── collections │ ├── Assoc.ml │ ├── Assoc.mli │ ├── Hashtbl_.ml │ ├── Hashtbl_.mli │ ├── List_.ml │ ├── List_.mli │ ├── Maps.ml │ ├── ROHashtbl.ml │ ├── ROHashtbl.mli │ ├── Seq_.ml │ ├── Seq_.mli │ ├── Set_.ml │ ├── Set_.mli │ ├── Sets.ml │ ├── Stack_.ml │ ├── Stack_.mli │ ├── dune │ └── tests │ │ ├── Collections_tests.ml │ │ ├── Unit_Hashtbl_.ml │ │ ├── Unit_Hashtbl_.mli │ │ ├── Unit_List_.ml │ │ ├── Unit_List_.mli │ │ ├── Unit_Seq_.ml │ │ ├── Unit_Seq_.mli │ │ └── dune ├── commons │ ├── ATD_string_wrap.ml │ ├── Arg_.ml │ ├── Arg_.mli │ ├── Buffer_.ml │ ├── Buffer_.mli │ ├── Cache_disk.ml │ ├── Cache_disk.mli │ ├── CapConsole.ml │ ├── CapConsole.mli │ ├── CapExec.ml │ ├── CapExec.mli │ ├── CapFS.ml │ ├── CapFS.mli │ ├── CapProcess.ml │ ├── CapProcess.mli │ ├── CapTmp.ml │ ├── CapTmp.mli │ ├── Chan.ml │ ├── Chan.mli │ ├── Cmd.ml │ ├── Cmd.mli │ ├── Cmdliner_.ml │ ├── Cmdliner_.mli │ ├── Common.ml │ ├── Common.mli │ ├── Console.ml │ ├── Console.mli │ ├── Datetime_.ml │ ├── Datetime_.mli │ ├── Dumper.ml │ ├── Dumper.mli │ ├── Either_.ml │ ├── Either_.mli │ ├── Eq.ml │ ├── Eq.mli │ ├── Exception.ml │ ├── Exception.mli │ ├── File_type.ml │ ├── File_type.mli │ ├── Filename_.ml │ ├── Filename_.mli │ ├── Fmt_.ml │ ├── Fmt_.mli │ ├── Fpath_.ml │ ├── Fpath_.mli │ ├── Gensym.ml │ ├── Gensym.mli │ ├── Glom.ml │ ├── Glom.mli │ ├── Hook.ml │ ├── Hook.mli │ ├── Immutable_buffer.ml │ ├── Immutable_buffer.mli │ ├── Int64_.ml │ ├── Int64_.mli │ ├── JSON.ml │ ├── JSON.mli │ ├── Log_commons.ml │ ├── Logs_.ml │ ├── Logs_.mli │ ├── Marshaled.ml │ ├── Marshaled.mli │ ├── OCaml.ml │ ├── OCaml.mli │ ├── Ord.ml │ ├── Ord.mli │ ├── Pcre2_.ml │ ├── Pcre2_.mli │ ├── Pcre_.ml │ ├── Pcre_.mli │ ├── Platform.ml │ ├── Platform.mli │ ├── Random_.ml │ ├── Random_.mli │ ├── Result_.ml │ ├── Result_.mli │ ├── Semver_.ml │ ├── Semver_.mli │ ├── String_.ml │ ├── String_.mli │ ├── Sys_.ml │ ├── Sys_.mli │ ├── Testutil.ml │ ├── Testutil.mli │ ├── Testutil_files.ml │ ├── Testutil_files.mli │ ├── Testutil_logs.ml │ ├── Testutil_logs.mli │ ├── Testutil_mock.ml │ ├── Testutil_mock.mli │ ├── Textedit.ml │ ├── Textedit.mli │ ├── UChan.ml │ ├── UChan.mli │ ├── UCmd.ml │ ├── UCmd.mli │ ├── UCommon.ml │ ├── UCommon.mli │ ├── UConsole.ml │ ├── UConsole.mli │ ├── UFile.ml │ ├── UFile.mli │ ├── UMarshal_.ml │ ├── UMarshal_.mli │ ├── UTmp.ml │ ├── UTmp.mli │ ├── Uri_.ml │ ├── Uri_.mli │ ├── authors.txt │ ├── copyright.txt │ ├── credits.txt │ ├── dune │ ├── license.txt │ └── tests │ │ ├── Commons_tests.ml │ │ ├── Commons_tests.mli │ │ ├── Unit_CapExec.ml │ │ ├── Unit_CapExec.mli │ │ ├── Unit_File.ml │ │ ├── Unit_File.mli │ │ ├── Unit_Hook.ml │ │ ├── Unit_Pcre2_.ml │ │ ├── Unit_Pcre2_.mli │ │ ├── Unit_Pcre_.ml │ │ ├── Unit_Pcre_.mli │ │ ├── Unit_Random_.ml │ │ ├── Unit_Random_.mli │ │ ├── Unit_Result_.ml │ │ ├── Unit_Result_.mli │ │ ├── Unit_String_.ml │ │ ├── Unit_String_.mli │ │ ├── Unit_commons.ml │ │ ├── Unit_immutable_buffer.ml │ │ ├── Unit_regexp_engine.ml │ │ ├── Unit_regexp_engine.mli │ │ └── dune ├── commons2 │ ├── common2.ml │ ├── common2.mli │ └── dune ├── git_wrapper │ ├── Git_wrapper.ml │ ├── Git_wrapper.mli │ ├── Log_git_wrapper.ml │ ├── Testutil_git.ml │ ├── Testutil_git.mli │ ├── Unit_git_wrapper.ml │ ├── Unit_git_wrapper.mli │ └── dune ├── gitignore │ ├── Gitignore.ml │ ├── Gitignore_cache.ml │ ├── Gitignore_cache.mli │ ├── Gitignore_filter.ml │ ├── Gitignore_filter.mli │ ├── Parse_gitignore.ml │ ├── Parse_gitignore.mli │ ├── Unit_gitignore.ml │ ├── Unit_gitignore.mli │ └── dune ├── glob │ ├── Lexer.mli │ ├── Lexer.mll │ ├── Log_glob.ml │ ├── Match.ml │ ├── Match.mli │ ├── Parse.ml │ ├── Parse.mli │ ├── Parser.mly │ ├── Pattern.ml │ ├── Unit_glob.ml │ ├── Unit_glob.mli │ └── dune ├── lib_parsing │ ├── Flag_parsing.ml │ ├── Loc.ml │ ├── Loc.mli │ ├── Log_lib_parsing.ml │ ├── Parsed_int.ml │ ├── Parsed_int.mli │ ├── Parsing_error.ml │ ├── Parsing_helpers.ml │ ├── Parsing_helpers.mli │ ├── Parsing_result.ml │ ├── Parsing_stat.ml │ ├── Parsing_stat.mli │ ├── Pos.ml │ ├── Pos.mli │ ├── Tok.ml │ ├── Tok.mli │ ├── Tok_range.ml │ ├── Tok_range.mli │ ├── Unit_tok.ml │ ├── ast_fuzzy.ml │ ├── copyright.txt │ ├── dune │ ├── lib_ast_fuzzy.ml │ ├── lib_ast_fuzzy.mli │ └── license.txt ├── lib_parsing_tree_sitter │ ├── Log_tree_sitter.ml │ ├── Parse_tree_sitter_helpers.ml │ ├── Parse_tree_sitter_helpers.mli │ └── dune ├── lwt_platform │ ├── Lwt_platform.mli │ ├── dune │ └── unix │ │ ├── Lwt_platform.ml │ │ └── dune ├── murmur3 │ ├── Murmur3.ml │ ├── Murmur3.mli │ ├── Murmur3_stubs.c │ ├── MurmurHash3.c │ ├── MurmurHash3.h │ └── dune ├── networking │ ├── dune │ ├── http_helpers │ │ ├── dune │ │ ├── http_helpers.ml │ │ └── http_helpers.mli │ ├── http_mock_client │ │ ├── Http_mock_client.ml │ │ ├── Http_mock_client.mli │ │ └── dune │ └── proxy │ │ ├── dune │ │ ├── proxy.ml │ │ └── proxy.mli ├── ograph │ ├── dune │ ├── ograph_call_dot_gv.ml │ ├── ograph_call_dot_gv.mli │ ├── ograph_extended.ml │ └── ograph_extended.mli ├── ojsonnet │ ├── Check_jsonnet.ml │ ├── Check_jsonnet.mli │ ├── Conf_ojsonnet.ml │ ├── Core_jsonnet.ml │ ├── Desugar_jsonnet.ml │ ├── Desugar_jsonnet.mli │ ├── Eval_jsonnet.ml │ ├── Eval_jsonnet.mli │ ├── Eval_jsonnet_common.ml │ ├── Eval_jsonnet_envir.ml │ ├── Eval_jsonnet_envir.mli │ ├── Eval_jsonnet_subst.ml │ ├── Eval_jsonnet_subst.mli │ ├── Interpret_jsonnet.ml │ ├── Interpret_jsonnet.mli │ ├── Manifest_jsonnet.ml │ ├── Manifest_jsonnet.mli │ ├── Parse_jsonnet.ml │ ├── Parse_jsonnet.mli │ ├── Std_jsonnet.ml │ ├── Std_jsonnet.mli │ ├── Test_ojsonnet.ml │ ├── Test_ojsonnet.mli │ ├── Unit_jsonnet.ml │ ├── Unit_jsonnet.mli │ ├── Value_jsonnet.ml │ └── dune ├── parallelism │ ├── Atomic_.ml │ ├── Atomic_.mli │ ├── Domains.ml │ ├── Domains.mli │ ├── Eio_locked.ml │ ├── Eio_locked.mli │ ├── Log_parallelism.ml │ ├── Parallelism_config.ml │ ├── Parmap_.ml │ ├── Parmap_.mli │ ├── SharedCounterTable.ml │ ├── SharedCounterTable.mli │ ├── SharedMemo.ml │ ├── SharedMemo.mli │ ├── dune │ └── tests │ │ ├── Parallelism_tests.ml │ │ ├── Parallelism_tests.mli │ │ ├── Unit_Domains.ml │ │ ├── Unit_SharedMemo.ml │ │ └── dune ├── paths │ ├── Fppath.ml │ ├── Fppath.mli │ ├── List_files.ml │ ├── List_files.mli │ ├── Log_paths.ml │ ├── Ppath.ml │ ├── Ppath.mli │ ├── Project.ml │ ├── Project.mli │ ├── Rfpath.ml │ ├── Rfpath.mli │ ├── Rpath.ml │ ├── Rpath.mli │ ├── Testutil_paths.ml │ ├── Testutil_paths.mli │ ├── Unit_Ppath.ml │ ├── Unit_Ppath.mli │ ├── Unit_Rpath.ml │ ├── Unit_Rpath.mli │ ├── Unit_list_files.ml │ ├── Unit_list_files.mli │ └── dune ├── process_limits │ ├── Cgroup_limits.ml │ ├── Cgroup_limits.mli │ ├── Log_process_limits.ml │ ├── Memory_limit.ml │ ├── Memory_limit.mli │ ├── Process_limit_metrics.ml │ ├── Process_limit_metrics.mli │ ├── Time_limit.ml │ ├── Time_limit.mli │ ├── Unit_cgroup_limits.ml │ ├── Unit_cgroup_limits.mli │ ├── Unit_memory_limit.ml │ ├── Unit_memory_limit.mli │ └── dune ├── profiling │ ├── Profiling.ml │ ├── Profiling.mli │ ├── dune │ └── ppx │ │ ├── dune │ │ ├── ppx_profiling.ml │ │ └── tests │ │ ├── basic.ml │ │ ├── label.ml │ │ └── optional_param.ml ├── python-str-repr │ ├── LICENSE │ ├── README.md │ ├── dune-project │ ├── lib │ │ ├── dune │ │ ├── python_str_repr.ml │ │ └── python_str_repr.mli │ ├── python-str-repr.opam │ └── test │ │ ├── dune │ │ ├── test_py_python_str_repr.ml │ │ └── test_python_str_repr.ml └── telemetry │ ├── Logging.mli │ ├── Ometrics.mli │ ├── Telemetry.mli │ ├── Tracing.mli │ ├── dune │ ├── js │ ├── Logging.ml │ ├── Ometrics.ml │ ├── Telemetry.ml │ ├── Tracing.ml │ └── dune │ ├── ppx │ ├── dune │ ├── ppx_tests │ │ ├── basic.ml │ │ ├── label.ml │ │ ├── multiple_funs.ml │ │ └── nested_let.ml │ └── ppx_tracing.ml │ ├── ppx_tests │ └── trace_debug.ml │ └── unix │ ├── Logging.ml │ ├── Ometrics.ml │ ├── Otel_util.ml │ ├── Telemetry.ml │ ├── Tracing.ml │ └── dune ├── metrics.md ├── mypy-tests.ini ├── mypy.ini ├── perf ├── Makefile ├── README.md ├── bench │ ├── dogfood │ │ ├── prep │ │ └── semgrep_r_all.yml.gz │ └── dummy │ │ ├── input │ │ └── dummy │ │ │ ├── rules │ │ │ └── exec.yaml │ │ │ └── targets │ │ │ ├── hello.js │ │ │ └── malformed.js │ │ ├── prep │ │ ├── rules │ │ └── exec.yaml │ │ └── targets │ │ ├── hello.js │ │ └── malformed.js ├── benchmark-against-version.py ├── compare-bench-findings ├── compare-perf ├── config.py ├── configs │ ├── ci_large_repos.yaml │ ├── ci_medium_repos.yaml │ └── ci_small_repos.yaml ├── constants.py ├── corpus.py ├── r2c-rules │ ├── README.md │ ├── django.yml │ ├── docker.yml │ ├── eslint-plugin-security.yml │ ├── flask.yml │ ├── golang.yml │ ├── java.yml │ ├── javascript.yml │ ├── python.yml │ ├── r2c-ci.yml │ ├── r2c-security-audit.yml │ ├── ruby.yml │ └── slow-prefilter.yml ├── repository_time_per_rule.py ├── rules │ ├── all_nodejsscan.yml │ ├── no_regexp.yml │ ├── semgrep_fast.yml │ ├── semgrep_slow.yml │ └── zulip │ │ └── semgrep.yml ├── run-benchmarks ├── snapshots │ └── ci_small_repos_baseline.json └── variant.py ├── pysemgrep.nix ├── release_changes.md ├── scripts ├── add-pysemgrep-to-path.sh ├── build-static-libcurl.sh ├── build-wheels.sh ├── cheatsheet.json ├── check-bash-version ├── compare-target-selection ├── compare.py ├── generate-cheatsheet ├── generate_cheatsheet.py ├── jsonnet_to_yaml.sh ├── lint-ocaml ├── make-symlinks ├── merge-rules.py ├── processing-output │ ├── diff-files.py │ ├── duplicate-diff.py │ ├── read-action-timing.py │ ├── read-core-timing.py │ └── read-timing.py ├── release │ ├── Pipfile │ ├── Pipfile.lock │ ├── bump │ ├── git │ │ ├── __init__.py │ │ └── constants.py │ ├── linuxbrew.Dockerfile │ └── towncrier.toml ├── report_test_metrics.sh ├── run-benchmarks.sh ├── run-core-test ├── run-coverage.py ├── run-ocamldebug.sh ├── test-compare-perf ├── validate-docker-build.sh ├── validate-docker-release.sh └── validate-wheel.sh ├── semgrep.jsonnet ├── semgrep.nix ├── semgrep.opam ├── semgrep.opam.template ├── semgrep.svg ├── semgrep.yml ├── setup.py ├── src ├── aliengrep │ ├── Conf.ml │ ├── Conf.mli │ ├── Log_aliengrep.ml │ ├── Match.ml │ ├── Match.mli │ ├── Pat_AST.ml │ ├── Pat_AST.mli │ ├── Pat_compile.ml │ ├── Pat_compile.mli │ ├── Pat_lexer.ml │ ├── Pat_lexer.mli │ ├── Pat_parser.ml │ ├── Pat_parser.mli │ ├── Pcre_util.ml │ ├── Pcre_util.mli │ ├── README.md │ ├── Unit_Match.ml │ ├── Unit_Match.mli │ ├── Unit_Pat_parser.ml │ ├── Unit_Pat_parser.mli │ ├── Unit_tests.ml │ └── dune ├── analyzing │ ├── AST_to_IL.ml │ ├── AST_to_IL.mli │ ├── CFG_build.ml │ ├── CFG_build.mli │ ├── Constant_propagation.ml │ ├── Constant_propagation.mli │ ├── Dataflow_core.ml │ ├── Dataflow_core.mli │ ├── Dataflow_svalue.ml │ ├── Dataflow_svalue.mli │ ├── Dataflow_var_env.ml │ ├── Dataflow_var_env.mli │ ├── Dataflow_when.ml │ ├── Dataflow_when.mli │ ├── Eval_generic_partial.ml │ ├── Eval_generic_partial.mli │ ├── Eval_il_partial.ml │ ├── Eval_il_partial.mli │ ├── Fold_IL_params.ml │ ├── Fold_IL_params.mli │ ├── Implicit_return.ml │ ├── Implicit_return.mli │ ├── Iter_with_context.ml │ ├── Log_analyzing.ml │ ├── Visit_class_defs.ml │ ├── Visit_function_defs.ml │ ├── Visit_pattern_ids.ml │ ├── Visit_wildcard_imports.ml │ ├── dune │ └── tests │ │ ├── Test_analyze_generic.ml │ │ ├── Test_analyze_generic.mli │ │ ├── Unit_dataflow.ml │ │ ├── Unit_dataflow.mli │ │ └── dune ├── ast_generic │ ├── AST_generic.ml │ ├── AST_generic_helpers.ml │ ├── AST_generic_helpers.mli │ ├── IdFlags.ml │ ├── IdFlags.mli │ ├── Log_ast_generic.ml │ ├── Meta_AST.ml │ ├── Meta_AST.mli │ ├── Raw_tree.ml │ ├── Raw_tree.mli │ └── dune ├── configuring │ ├── Flag_semgrep.ml │ ├── Limits_semgrep.ml │ ├── Num_jobs.ml │ ├── Num_jobs.mli │ ├── Resources.ml │ ├── Resources.mli │ ├── Rule_options.atd │ ├── Rule_options.ml │ └── dune ├── core │ ├── Core_error.ml │ ├── Core_error.mli │ ├── Core_match.ml │ ├── Core_match.mli │ ├── Core_profiling.ml │ ├── Core_profiling.mli │ ├── Core_quick_profiling.ml │ ├── Core_quick_profiling.mli │ ├── Core_result.ml │ ├── Core_result.mli │ ├── Engine_kind.ml │ ├── Log_semgrep.ml │ ├── Matching_explanation.ml │ ├── Metavariable.ml │ ├── Metavariable.mli │ ├── Range.ml │ ├── Range.mli │ ├── SCA_match.ml │ ├── Semgrep_output_utils.ml │ ├── Semgrep_output_utils.mli │ ├── Summary_stats.ml │ ├── Summary_stats.mli │ ├── Taint_trace.ml │ ├── Test_tags.ml │ ├── Test_tags.mli │ ├── Trace_data.ml │ ├── Trace_data.mli │ ├── Type.ml │ ├── Type.mli │ ├── Version.ml │ ├── Version_info.ml │ ├── Version_info.mli │ └── dune ├── core_cli │ ├── Core_CLI.ml │ ├── Core_CLI.mli │ ├── Core_actions.ml │ ├── Core_exit_code.ml │ ├── Core_exit_code.mli │ ├── Test_core_CLI.ml │ ├── Test_core_CLI.mli │ └── dune ├── core_scan │ ├── Core_metrics.ml │ ├── Core_metrics.mli │ ├── Core_scan.ml │ ├── Core_scan.mli │ ├── Core_scan_config.ml │ ├── Core_targeting.ml │ ├── Core_targeting.mli │ ├── Lang_job.ml │ ├── Parmap_targets.ml │ ├── Parmap_targets.mli │ └── dune ├── engine │ ├── Entropy.ml │ ├── Entropy.mli │ ├── Entropy_data.ml │ ├── Eval_generic.ml │ ├── Eval_generic.mli │ ├── Formula_cache.ml │ ├── Formula_cache.mli │ ├── Log_engine.ml │ ├── Match_env.ml │ ├── Match_rules.ml │ ├── Match_rules.mli │ ├── Match_search_mode.ml │ ├── Match_search_mode.mli │ ├── Match_taint_spec.ml │ ├── Match_taint_spec.mli │ ├── Match_tainting_mode.ml │ ├── Match_tainting_mode.mli │ ├── Metavariable_analysis.ml │ ├── Metavariable_analysis.mli │ ├── Metavariable_name.ml │ ├── Metavariable_name.mli │ ├── Metavariable_pattern.ml │ ├── Metavariable_pattern.mli │ ├── Metavariable_regex.ml │ ├── Metavariable_regex.mli │ ├── Range_with_metavars.ml │ ├── Range_with_metavars.mli │ ├── ReDoS.ml │ ├── ReDoS.mli │ ├── String_literal.ml │ ├── String_literal.mli │ ├── Xpattern_match_aliengrep.ml │ ├── Xpattern_match_aliengrep.mli │ ├── Xpattern_match_regexp.ml │ ├── Xpattern_match_regexp.mli │ ├── Xpattern_match_spacegrep.ml │ ├── Xpattern_match_spacegrep.mli │ ├── Xpattern_matcher.ml │ ├── Xpattern_matcher.mli │ ├── dune │ └── tests │ │ ├── Test_compare_matches.ml │ │ ├── Test_compare_matches.mli │ │ ├── Test_dataflow_tainting.ml │ │ ├── Test_dataflow_tainting.mli │ │ ├── Test_engine.ml │ │ ├── Test_engine.mli │ │ ├── Test_utils.ml │ │ ├── Unit_ReDoS.ml │ │ ├── Unit_engine.ml │ │ ├── Unit_engine.mli │ │ ├── Unit_entropy.ml │ │ └── dune ├── fixing │ ├── Autofix.ml │ ├── Autofix.mli │ ├── Autofix_metavar_replacement.ml │ ├── Autofix_metavar_replacement.mli │ ├── Autofix_printer.ml │ ├── Autofix_printer.mli │ ├── Fixed_lines.ml │ ├── Fixed_lines.mli │ ├── Hybrid_print.ml │ ├── Hybrid_print.mli │ ├── Log_fixing.ml │ ├── dune │ └── tests │ │ ├── README.txt │ │ ├── Unit_autofix.ml │ │ ├── Unit_autofix_printer.ml │ │ ├── Unit_autofix_printer.mli │ │ └── dune ├── il │ ├── CFG.ml │ ├── Display_IL.ml │ ├── Display_IL.mli │ ├── IL.ml │ ├── IL_helpers.ml │ ├── IL_helpers.mli │ └── dune ├── lsp_legacy │ ├── Legacy_language_server.ml │ ├── Legacy_ls.ml │ ├── Legacy_ls.mli │ ├── Legacy_test_ls_e2e.ml │ ├── Legacy_test_ls_e2e.mli │ ├── Legacy_unit_ls.ml │ ├── Legacy_unit_ls.mli │ ├── custom_commands │ │ ├── Legacy_autofix_cmd.ml │ │ ├── Legacy_autofix_cmd.mli │ │ ├── Legacy_ignore_cmd.ml │ │ ├── Legacy_ignore_cmd.mli │ │ └── dune │ ├── custom_requests │ │ ├── Legacy_login_start.ml │ │ ├── Legacy_login_start.mli │ │ ├── Legacy_login_status.ml │ │ ├── Legacy_login_status.mli │ │ ├── Legacy_loginfinish.ml │ │ ├── Legacy_loginfinish.mli │ │ ├── Legacy_search.ml │ │ ├── Legacy_search.mli │ │ ├── Legacy_showast.ml │ │ ├── Legacy_showast.mli │ │ └── dune │ ├── dune │ ├── notifications │ │ ├── Legacy_notification_handler.ml │ │ ├── Legacy_notification_handler.mli │ │ └── dune │ ├── requests │ │ ├── Legacy_code_actions.ml │ │ ├── Legacy_code_actions.mli │ │ ├── Legacy_execute_command.ml │ │ ├── Legacy_execute_command.mli │ │ ├── Legacy_hover_request.ml │ │ ├── Legacy_hover_request.mli │ │ ├── Legacy_initialize_request.ml │ │ ├── Legacy_initialize_request.mli │ │ ├── Legacy_request_handler.ml │ │ ├── Legacy_request_handler.mli │ │ └── dune │ ├── scan_helpers │ │ ├── Legacy_diagnostics.ml │ │ ├── Legacy_diagnostics.mli │ │ ├── Legacy_processed_run.ml │ │ ├── Legacy_processed_run.mli │ │ ├── Legacy_scan_helpers.ml │ │ ├── Legacy_scan_helpers.mli │ │ └── dune │ ├── server │ │ ├── Legacy_ls_metrics.ml │ │ ├── Legacy_ls_metrics.mli │ │ ├── Legacy_lsp_.ml │ │ ├── Legacy_lsp_.mli │ │ ├── Legacy_rpc_server.ml │ │ ├── Legacy_rpc_server.mli │ │ ├── Legacy_search_config.ml │ │ ├── Legacy_session.ml │ │ ├── Legacy_session.mli │ │ ├── Legacy_user_settings.ml │ │ ├── Legacy_user_settings.mli │ │ └── dune │ └── util │ │ ├── Legacy_convert_utils.ml │ │ ├── Legacy_convert_utils.mli │ │ └── dune ├── main │ ├── Main.ml │ ├── dune │ ├── flags.sh │ └── list-tree-sitter-langs.sh ├── matching │ ├── Log_matching.ml │ ├── Match_patterns.ml │ ├── Match_patterns.mli │ ├── Matching_generic.ml │ ├── Matching_generic.mli │ ├── Matching_visitor.ml │ ├── Normalize_generic.ml │ ├── Normalize_generic.mli │ ├── Pattern_vs_code.ml │ ├── Pattern_vs_code.mli │ ├── SubAST_generic.ml │ ├── SubAST_generic.mli │ ├── Trace_matching.ml │ ├── Trace_matching.mli │ ├── Unit_matcher.ml │ ├── Unit_matcher.mli │ └── dune ├── metachecking │ ├── Check_rule.ml │ ├── Check_rule.mli │ ├── Test_metachecking.ml │ ├── Test_metachecking.mli │ ├── Translate_rule.ml │ ├── Translate_rule.mli │ ├── Unit_metachecking.ml │ ├── Unit_metachecking.mli │ └── dune ├── naming │ ├── Log_naming.ml │ ├── Naming_AST.ml │ ├── Naming_AST.mli │ ├── Naming_utils.ml │ ├── Naming_utils.mli │ ├── Test_naming_generic.ml │ ├── Test_naming_generic.mli │ ├── Unit_naming_generic.ml │ ├── Unit_naming_generic.mli │ ├── Unit_typing_generic.ml │ ├── Unit_typing_generic.mli │ └── dune ├── optimizing │ ├── Analyze_pattern.ml │ ├── Analyze_pattern.mli │ ├── Analyze_rule.ml │ ├── Analyze_rule.mli │ ├── Analyze_spacegrep.ml │ ├── Analyze_spacegrep.mli │ ├── Log_optimizing.ml │ ├── Mini_rules_filter.ml │ ├── Mini_rules_filter.mli │ ├── Semgrep_prefilter.atd │ └── dune ├── osemgrep │ ├── README.md │ ├── TODO.md │ ├── cli │ │ ├── CLI.ml │ │ ├── CLI.mli │ │ ├── Help.ml │ │ ├── Help.mli │ │ └── dune │ ├── cli_ci │ │ ├── Ci_CLI.ml │ │ ├── Ci_CLI.mli │ │ ├── Ci_subcommand.ml │ │ ├── Ci_subcommand.mli │ │ ├── Eval_ci_action.ml │ │ ├── Eval_ci_action.mli │ │ ├── Git_metadata.ml │ │ ├── Git_metadata.mli │ │ ├── Github_metadata.ml │ │ ├── Github_metadata.mli │ │ ├── Test_ci_subcommand.ml │ │ ├── Test_ci_subcommand.mli │ │ ├── Test_is_blocking_helpers.ml │ │ ├── Unit_ci.ml │ │ ├── Unit_ci.mli │ │ └── dune │ ├── cli_install_ci │ │ ├── Install_ci_CLI.ml │ │ ├── Install_ci_CLI.mli │ │ ├── Install_ci_subcommand.ml │ │ ├── Install_ci_subcommand.mli │ │ └── dune │ ├── cli_install_semgrep_pro │ │ ├── Install_semgrep_pro_CLI.ml │ │ ├── Install_semgrep_pro_CLI.mli │ │ ├── Install_semgrep_pro_subcommand.ml │ │ ├── Install_semgrep_pro_subcommand.mli │ │ └── dune │ ├── cli_login │ │ ├── Login_CLI.ml │ │ ├── Login_CLI.mli │ │ ├── Login_subcommand.ml │ │ ├── Login_subcommand.mli │ │ ├── Logout_CLI.ml │ │ ├── Logout_CLI.mli │ │ ├── Logout_subcommand.ml │ │ ├── Logout_subcommand.mli │ │ ├── Test_login_subcommand.ml │ │ ├── Test_login_subcommand.mli │ │ └── dune │ ├── cli_lsp │ │ ├── Lsp_CLI.ml │ │ ├── Lsp_CLI.mli │ │ ├── Lsp_subcommand.ml │ │ ├── Lsp_subcommand.mli │ │ └── dune │ ├── cli_scan │ │ ├── Diff_scan.ml │ │ ├── Diff_scan.mli │ │ ├── Ls_subcommand.ml │ │ ├── Ls_subcommand.mli │ │ ├── Scan_CLI.ml │ │ ├── Scan_CLI.mli │ │ ├── Scan_subcommand.ml │ │ ├── Scan_subcommand.mli │ │ ├── Test_scan_subcommand.ml │ │ ├── Test_scan_subcommand.mli │ │ └── dune │ ├── cli_show │ │ ├── Show_CLI.ml │ │ ├── Show_CLI.mli │ │ ├── Show_subcommand.ml │ │ ├── Show_subcommand.mli │ │ ├── Test_show_subcommand.ml │ │ ├── Test_show_subcommand.mli │ │ ├── Whoami.ml │ │ ├── Whoami.mli │ │ └── dune │ ├── cli_test │ │ ├── Diagnosis.ml │ │ ├── Test_CLI.ml │ │ ├── Test_CLI.mli │ │ ├── Test_annotation.ml │ │ ├── Test_annotation.mli │ │ ├── Test_subcommand.ml │ │ ├── Test_subcommand.mli │ │ ├── Unit_test_subcommand.ml │ │ ├── Unit_test_subcommand.mli │ │ └── dune │ ├── cli_validate │ │ ├── Validate_CLI.ml │ │ ├── Validate_CLI.mli │ │ ├── Validate_subcommand.ml │ │ ├── Validate_subcommand.mli │ │ └── dune │ ├── configuring │ │ ├── Semgrep_envvars.ml │ │ ├── Semgrep_envvars.mli │ │ ├── Semgrep_settings.ml │ │ ├── Semgrep_settings.mli │ │ └── dune │ ├── core │ │ ├── Auth.ml │ │ ├── Auth.mli │ │ ├── CLI_common.ml │ │ ├── CLI_common.mli │ │ ├── Core_runner_result.ml │ │ ├── Engine_type.ml │ │ ├── Error.ml │ │ ├── Error.mli │ │ ├── Exit_code.ml │ │ ├── Exit_code.mli │ │ ├── Maturity.ml │ │ ├── Maturity.mli │ │ ├── Metrics_.ml │ │ ├── Metrics_.mli │ │ ├── Migration.ml │ │ ├── Migration.mli │ │ ├── Profiler.ml │ │ ├── Profiler.mli │ │ ├── Project_metadata.ml │ │ ├── Project_metadata.mli │ │ ├── Pysemgrep.ml │ │ ├── Pysemgrep.mli │ │ ├── Rule_filtering.ml │ │ ├── Rule_filtering.mli │ │ ├── Rule_tests.ml │ │ ├── Rule_tests.mli │ │ ├── Rules_config.ml │ │ ├── Rules_config.mli │ │ ├── Rules_source.ml │ │ ├── dune │ │ └── semgrep_metrics.atd │ ├── core_runner │ │ ├── Core_runner.ml │ │ ├── Core_runner.mli │ │ └── dune │ ├── experiments │ │ └── distributed_scans │ │ │ ├── Distributed_scan_stub.ml │ │ │ ├── Distributed_scan_stub.mli │ │ │ └── dune │ ├── jsonnet │ │ ├── AST_generic_to_jsonnet.ml │ │ ├── AST_generic_to_jsonnet.mli │ │ └── dune │ ├── networking │ │ ├── Fetch_file.ml │ │ ├── Github_API.ml │ │ ├── Github_API.mli │ │ ├── Rule_fetching.ml │ │ ├── Rule_fetching.mli │ │ ├── Semgrep_App.ml │ │ ├── Semgrep_App.mli │ │ ├── Semgrep_Metrics.ml │ │ ├── Semgrep_Metrics.mli │ │ ├── Semgrep_Registry.ml │ │ ├── Semgrep_Registry.mli │ │ ├── Semgrep_login.ml │ │ ├── Semgrep_login.mli │ │ ├── Testutil_login.ml │ │ ├── Testutil_login.mli │ │ ├── Unit_Fetching.ml │ │ ├── Unit_Fetching.mli │ │ ├── Unit_Login.ml │ │ ├── Unit_Login.mli │ │ ├── Unit_Networking.ml │ │ ├── Unit_Networking.mli │ │ ├── dune │ │ └── tests │ │ │ └── dune │ ├── reporting │ │ ├── Cli_json_output.ml │ │ ├── Cli_json_output.mli │ │ ├── Console_Spinner.ml │ │ ├── Console_Spinner.mli │ │ ├── Exposure.ml │ │ ├── Exposure.mli │ │ ├── Gated_data.ml │ │ ├── Gitlab_output.ml │ │ ├── Gitlab_output.mli │ │ ├── Junit_xml_output.ml │ │ ├── Junit_xml_output.mli │ │ ├── Output.ml │ │ ├── Output.mli │ │ ├── Output_format.ml │ │ ├── Sarif_output.ml │ │ ├── Sarif_output.mli │ │ ├── Semgrep_hashing_functions.ml │ │ ├── Semgrep_hashing_functions.mli │ │ ├── Skipped_groups.ml │ │ ├── Skipped_groups.mli │ │ ├── Text_output.ml │ │ ├── Text_output.mli │ │ ├── Text_reports.ml │ │ ├── Text_reports.mli │ │ ├── Unit_reporting.ml │ │ ├── Unit_reporting.mli │ │ └── dune │ └── tests │ │ ├── Test_osemgrep.ml │ │ ├── Test_osemgrep.mli │ │ ├── Test_target_selection.ml │ │ ├── Test_target_selection.mli │ │ └── dune ├── parsing │ ├── Check_pattern.ml │ ├── Check_pattern.mli │ ├── Log_parsing.ml │ ├── Manifest_jsonnet_to_AST_generic.ml │ ├── Manifest_jsonnet_to_AST_generic.mli │ ├── Parse_SCA_version.ml │ ├── Parse_SCA_version.mli │ ├── Parse_contribution.ml │ ├── Parse_contribution.mli │ ├── Parse_metavariable_type.ml │ ├── Parse_metavariable_type.mli │ ├── Parse_pattern.ml │ ├── Parse_pattern.mli │ ├── Parse_rule.ml │ ├── Parse_rule.mli │ ├── Parse_rule_formula.ml │ ├── Parse_rule_formula.mli │ ├── Parse_rule_helpers.ml │ ├── Parse_rule_helpers.mli │ ├── Parse_rules_with_atd.ml │ ├── Parse_rules_with_atd.mli │ ├── Parse_target.ml │ ├── Parse_target.mli │ ├── Parsing_plugin.ml │ ├── Parsing_plugin.mli │ ├── Parsing_result2.ml │ ├── Parsing_result2.mli │ ├── Parsing_stats.atd │ ├── Pfff_or_tree_sitter.ml │ ├── Pfff_or_tree_sitter.mli │ ├── Rule_file.ml │ ├── Rule_file.mli │ ├── Unit_parsing.ml │ ├── Unit_parsing.mli │ ├── dune │ └── tests │ │ ├── AST_stat.ml │ │ ├── AST_stat.mli │ │ ├── Test_parsing.ml │ │ ├── Test_parsing.mli │ │ └── dune ├── printing │ ├── Log_printing.ml │ ├── Pretty_print_AST.ml │ ├── Pretty_print_AST.mli │ ├── Ugly_print_AST.ml │ ├── Ugly_print_AST.mli │ ├── dune │ └── tests │ │ ├── README.txt │ │ ├── Unit_ugly_print_AST.ml │ │ └── dune ├── reporting │ ├── Core_json_output.ml │ ├── Core_json_output.mli │ ├── Core_text_output.ml │ ├── Core_text_output.mli │ ├── Log_reporting.ml │ ├── Metavar_replacement.ml │ ├── Metavar_replacement.mli │ ├── Nosemgrep.ml │ ├── Nosemgrep.mli │ ├── Unit_core_json_output.ml │ └── dune ├── rpc │ ├── README.txt │ ├── RPC.ml │ ├── RPC.mli │ ├── RPC_return.ml │ ├── RPC_return.mli │ └── dune ├── rule │ ├── Analyzer.ml │ ├── Analyzer.mli │ ├── Lang.ml │ ├── Lang.mli │ ├── Language.ml │ ├── Language.mli │ ├── Mini_rule.ml │ ├── Mvar.ml │ ├── Mvar.mli │ ├── Pattern.ml │ ├── Pattern.mli │ ├── Rule.ml │ ├── Rule_ID.ml │ ├── Rule_ID.mli │ ├── Rule_error.ml │ ├── Rule_error.mli │ ├── SCA_pattern.ml │ ├── SCA_version.ml │ ├── Target_selector.ml │ ├── Visit_rule.ml │ ├── Visit_rule.mli │ ├── Xpattern.ml │ ├── dune │ ├── rule_schema_v2.atd │ ├── rule_schema_v2_adapter.ml │ └── semgrep_output_v1.atd ├── sca │ ├── Dependency.ml │ ├── Dependency_source.ml │ ├── Ecosystem.ml │ ├── Lockfile.ml │ ├── Lockfile.mli │ ├── Manifest.ml │ ├── Manifest.mli │ ├── Package.ml │ └── dune ├── spacegrep │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── bin │ │ ├── spacecat │ │ └── spacegrep │ ├── dune │ ├── examples │ │ ├── exec.doc │ │ ├── exec.pat │ │ ├── go-package.doc │ │ ├── go-package.pat │ │ ├── go-package.url │ │ ├── hello.doc │ │ ├── hello.pat │ │ ├── js-internal-error.doc │ │ ├── js-internal-error.pat │ │ ├── js-optional-chain.doc │ │ ├── js-optional-chain.pat │ │ ├── my_first_calculator.py.doc │ │ ├── my_first_calculator.py.pat │ │ ├── python-from.doc │ │ ├── python-from.pat │ │ ├── python-tab.doc │ │ ├── python-tab.pat │ │ ├── ruby-erb.doc │ │ └── ruby-erb.pat │ ├── perf-data │ │ ├── django-template.pat │ │ └── django-template.po.gz │ ├── scripts │ │ ├── run-examples │ │ └── show-perf │ └── src │ │ ├── bin │ │ ├── Space_main.ml │ │ ├── Spacecat_main.ml │ │ ├── Spacegrep_main.ml │ │ └── dune │ │ ├── lib │ │ ├── Comment.ml │ │ ├── Comment.mli │ │ ├── Doc_AST.ml │ │ ├── Dump_match.ml │ │ ├── Dump_match.mli │ │ ├── File_type.ml │ │ ├── Find_files.ml │ │ ├── Find_files.mli │ │ ├── Lexer.mll │ │ ├── Loc.ml │ │ ├── Log_spacegrep.ml │ │ ├── Match.ml │ │ ├── Match.mli │ │ ├── Parse_doc.ml │ │ ├── Parse_doc.mli │ │ ├── Parse_pattern.ml │ │ ├── Parse_pattern.mli │ │ ├── Pattern_AST.ml │ │ ├── Pre_match.ml │ │ ├── Pre_match.mli │ │ ├── Print.ml │ │ ├── Print_match.ml │ │ ├── Print_match.mli │ │ ├── Src_file.ml │ │ ├── Src_file.mli │ │ └── dune │ │ └── test │ │ ├── .ocamlformat-ignore │ │ ├── Comment.ml │ │ ├── File_type.ml │ │ ├── Matcher.ml │ │ ├── Parser.ml │ │ ├── Src_file.ml │ │ ├── Test.ml │ │ └── dune ├── tainting │ ├── Dataflow_tainting.ml │ ├── Dataflow_tainting.mli │ ├── Log_tainting.ml │ ├── Shape_and_sig.ml │ ├── Taint.ml │ ├── Taint.mli │ ├── Taint_input_env.ml │ ├── Taint_input_env.mli │ ├── Taint_lambdas.ml │ ├── Taint_lambdas.mli │ ├── Taint_lval_env.ml │ ├── Taint_lval_env.mli │ ├── Taint_pro_hooks.ml │ ├── Taint_rule_inst.ml │ ├── Taint_shape.ml │ ├── Taint_shape.mli │ ├── Taint_spec_match.ml │ ├── Taint_spec_match.mli │ ├── Taint_spec_preds.ml │ ├── Xtaint.ml │ ├── Xtaint.mli │ └── dune ├── target │ ├── Origin.ml │ ├── Origin.mli │ ├── Product.ml │ ├── Product.mli │ ├── Target.ml │ ├── Target.mli │ ├── Target_kind.ml │ ├── Target_kind.mli │ ├── Xtarget.ml │ ├── Xtarget.mli │ └── dune ├── targeting │ ├── Filter_target.ml │ ├── Filter_target.mli │ ├── Find_targets.ml │ ├── Find_targets.mli │ ├── Find_targets_lang.ml │ ├── Find_targets_lang.mli │ ├── Guess_lang.ml │ ├── Guess_lang.mli │ ├── Include_filter.ml │ ├── Include_filter.mli │ ├── Log_targeting.ml │ ├── Scanning_root.ml │ ├── Scanning_root.mli │ ├── Semgrepignore.ml │ ├── Semgrepignore.mli │ ├── Skip_target.ml │ ├── Skip_target.mli │ ├── Targeting_stat.ml │ ├── Targeting_stat.mli │ ├── Unit_find_targets.ml │ ├── Unit_find_targets.mli │ ├── Unit_guess_lang.ml │ ├── Unit_guess_lang.mli │ ├── Unit_include_filter.ml │ ├── Unit_include_filter.mli │ ├── Unit_semgrepignore.ml │ ├── Unit_semgrepignore.mli │ ├── default.semgrepignore │ └── dune ├── tests │ ├── Test.ml │ └── dune └── typing │ ├── Typing.ml │ ├── Typing.mli │ └── dune ├── stats ├── autofix-printing-stats │ ├── .gitignore │ ├── projects.txt │ └── run └── parsing-stats │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── lang │ ├── bash │ │ └── projects.txt │ ├── c │ │ └── projects.txt │ ├── cpp │ │ └── projects.txt │ ├── csharp │ │ └── projects.txt │ ├── go │ │ └── projects.txt │ ├── hcl │ │ └── projects.txt │ ├── java │ │ └── projects.txt │ ├── javascript │ │ └── projects.txt │ ├── julia │ │ └── projects.txt │ ├── kotlin │ │ └── projects.txt │ ├── lua │ │ └── projects.txt │ ├── move_on_aptos │ │ └── projects.txt │ ├── ocaml │ │ └── projects.txt │ ├── php │ │ └── projects.txt │ ├── python │ │ └── projects.txt │ ├── ql │ │ └── projects.txt │ ├── ruby │ │ └── projects.txt │ ├── rust │ │ └── projects.txt │ ├── scala │ │ └── projects.txt │ ├── solidity │ │ └── projects.txt │ ├── swift │ │ └── projects.txt │ └── typescript │ │ └── projects.txt │ ├── run-all │ ├── run-lang │ ├── skipped-lang │ ├── dart │ │ └── projects.txt │ ├── elixir │ │ └── projects.txt │ ├── hack │ │ └── projects.txt │ ├── r │ │ └── projects.txt │ └── readme.txt │ ├── test-parsing │ ├── .gitignore │ ├── Makefile │ └── lang │ │ ├── javascript │ │ └── projects.txt │ │ └── ocaml │ │ └── projects.txt │ ├── test-upload │ └── lang │ │ └── test │ │ └── stats.json │ └── upload-parsing-rates ├── test ├── tests ├── README.md ├── TODO │ ├── bad.py │ ├── basic.sgrep │ ├── class.py │ ├── dots.sgrep │ ├── expr_vs_stmt_metavar.sgrep │ ├── flask.py │ ├── foo.js │ ├── foo.py │ ├── global.py │ ├── imports.py │ ├── imports2.py │ ├── metavar.sgrep │ ├── misc_export_default_ext.js │ ├── name_metavar.sgrep │ ├── naming.java │ ├── protocol.sgrep │ ├── stmt.sgrep │ ├── stmt_basic.sgrep │ ├── stmt_dots.sgrep │ ├── stmt_ellipsis.py │ ├── stmt_ellipsis.sgrep │ ├── stmt_metavar.sgrep │ ├── string.sgrep │ ├── stupid.py │ ├── stupid_if.sgrep │ ├── test.py │ └── unify.sgrep ├── autofix │ ├── cairo │ │ ├── fix_vardef.cairo │ │ ├── fix_vardef.fix │ │ ├── fix_vardef.fixed │ │ └── fix_vardef.sgrep │ ├── cpp │ │ ├── fix_vardef.cpp │ │ ├── fix_vardef.fix │ │ ├── fix_vardef.fixed │ │ └── fix_vardef.sgrep │ ├── csharp │ │ ├── fix_vardef.cs │ │ ├── fix_vardef.fix │ │ ├── fix_vardef.fixed │ │ └── fix_vardef.sgrep │ ├── dart │ │ ├── fix_vardef.dart │ │ ├── fix_vardef.fix │ │ ├── fix_vardef.fixed │ │ └── fix_vardef.sgrep │ ├── java │ │ ├── fix_vardef.fix │ │ ├── fix_vardef.fixed │ │ ├── fix_vardef.java │ │ └── fix_vardef.sgrep │ ├── js │ │ ├── arrow_func.fix │ │ ├── arrow_func.fixed │ │ ├── arrow_func.js │ │ ├── arrow_func.sgrep │ │ ├── fix_obj.fix │ │ ├── fix_obj.fixed │ │ ├── fix_obj.js │ │ ├── fix_obj.sgrep │ │ ├── metavar_arg.fix │ │ ├── metavar_arg.fixed │ │ ├── metavar_arg.js │ │ ├── metavar_call.fix │ │ ├── metavar_call.fixed │ │ └── metavar_call.js │ ├── ocaml │ │ ├── poly_paren_type.fix │ │ ├── poly_paren_type.fixed │ │ ├── poly_paren_type.ml │ │ ├── poly_paren_type.sgrep │ │ ├── val.fix │ │ ├── val.fixed │ │ ├── val.ml │ │ └── val.sgrep │ ├── python │ │ ├── aligned_fix.fix │ │ ├── aligned_fix.fixed │ │ ├── aligned_fix.py │ │ ├── aligned_fix.sgrep │ │ ├── aligned_fix_non_ast.fix │ │ ├── aligned_fix_non_ast.fixed │ │ ├── aligned_fix_non_ast.py │ │ ├── aligned_fix_non_ast.sgrep │ │ ├── capture_group.fix-regex │ │ ├── capture_group.fixed │ │ ├── capture_group.py │ │ ├── capture_group.sgrep │ │ ├── fix_binop.fix │ │ ├── fix_binop.fixed │ │ ├── fix_binop.py │ │ ├── fix_binop.sgrep │ │ ├── fix_dotted_ident.fix │ │ ├── fix_dotted_ident.fixed │ │ ├── fix_dotted_ident.py │ │ ├── fix_dotted_ident.sgrep │ │ ├── fix_ellipsis_metavar.fix │ │ ├── fix_ellipsis_metavar.fixed │ │ ├── fix_ellipsis_metavar.py │ │ ├── fix_ellipsis_metavar.sgrep │ │ ├── fix_within_binop.fix │ │ ├── fix_within_binop.fixed │ │ ├── fix_within_binop.py │ │ ├── fix_within_binop.sgrep │ │ ├── metavar_call.fix │ │ ├── metavar_call.fixed │ │ ├── metavar_call.py │ │ ├── metavar_string2.fix │ │ ├── metavar_string2.fixed │ │ ├── metavar_string2.py │ │ ├── metavar_string2.sgrep │ │ ├── regexp_count.fix-regex │ │ ├── regexp_count.fixed │ │ ├── regexp_count.py │ │ ├── regexp_count.sgrep │ │ ├── regexp_overcount.fix-regex │ │ ├── regexp_overcount.fixed │ │ ├── regexp_overcount.py │ │ ├── regexp_overcount.sgrep │ │ ├── simple_regexp.fix-regex │ │ ├── simple_regexp.fixed │ │ ├── simple_regexp.py │ │ └── simple_regexp.sgrep │ ├── rust │ │ ├── fix_vardef.fix │ │ ├── fix_vardef.fixed │ │ ├── fix_vardef.rs │ │ └── fix_vardef.sgrep │ ├── solidity │ │ ├── fix_vardef.fix │ │ ├── fix_vardef.fixed │ │ ├── fix_vardef.sgrep │ │ └── fix_vardef.sol │ └── ts │ │ ├── fix_cast.fix │ │ ├── fix_cast.fixed │ │ ├── fix_cast.sgrep │ │ └── fix_cast.ts ├── errors │ ├── bad_indentation.yaml │ ├── bad_language.yaml │ ├── bad_regexp.yaml │ ├── bad_severity.yaml │ ├── empty_languages.yaml │ ├── ignored_metavar_regex.yaml │ ├── missing_id.yaml │ ├── only_negative_terms.yaml │ ├── pattern_where_python_deprecated.yaml │ ├── rules_recovery.yaml │ ├── unknown_metavariable.yaml │ ├── unknown_metavariable2.yaml │ └── unsatisfiable_formula.yaml ├── eval │ ├── duration1.json │ ├── duration2.json │ ├── float.json │ ├── in_list.json │ ├── mixed_int_and_float.json │ ├── modulo_expr.json │ ├── regexp.json │ ├── regexp2.json │ ├── regexp3.json │ └── simple_expr.json ├── explanations │ ├── explain_basic.py │ ├── explain_basic.yaml │ ├── explain_focus.py │ ├── explain_focus.yaml │ ├── explain_metavar_cond.py │ ├── explain_metavar_cond.yaml │ ├── explain_negation.py │ ├── explain_negation.yaml │ ├── explain_subpatterns.py │ ├── explain_subpatterns.yaml │ ├── explain_taint.py │ └── explain_taint.yaml ├── irrelevant_rules │ ├── mvar-regex.cs │ ├── mvar-regex.yaml │ ├── mvar-regex1.txt │ ├── mvar-regex1.yaml │ ├── mvar-regex2.go │ ├── mvar-regex2.yaml │ ├── pattern-and-one-general.js │ ├── pattern-and-one-general.yaml │ ├── pattern-and.py │ ├── pattern-and.yaml │ ├── pattern-either.py │ ├── pattern-either.yaml │ ├── pattern-or.js │ ├── pattern-or.yaml │ ├── pattern-regex.py │ ├── pattern-regex.yaml │ ├── pattern.py │ ├── pattern.yaml │ ├── taint-general-sink.py │ ├── taint-general-sink.yaml │ ├── taint-general-source.py │ ├── taint-general-source.yaml │ ├── typed-mvar.java │ └── typed-mvar.yaml ├── jsonnet │ ├── LICENSE.md │ ├── errors │ │ ├── arith_not_number_runtime.jsonnet │ │ ├── dupe_field_runtime.jsonnet │ │ ├── dupe_field_static.jsonnet │ │ ├── error1.jsonnet │ │ ├── error2.jsonnet │ │ ├── floor_not_float.jsonnet │ │ ├── not_field_runtime.jsonnet │ │ ├── object_comprehension1.json │ │ ├── object_comprehension1.jsonnet │ │ ├── object_comprehension2.json │ │ ├── object_comprehension2.jsonnet │ │ ├── string_invalid_access.jsonnet │ │ └── super_no_super_class_runtime.jsonnet │ ├── fail │ │ └── infinite_loops_or_too_slow │ │ │ └── Readme.md │ ├── libs │ │ └── local.libsonnet │ ├── only_envir │ │ ├── array_comprehension1.json │ │ ├── array_comprehension1.jsonnet │ │ ├── format.json │ │ ├── format.jsonnet │ │ ├── format_percent.json │ │ ├── format_percent.jsonnet │ │ ├── format_string.json │ │ └── format_string.jsonnet │ ├── only_subst │ │ ├── basic_super.json │ │ ├── basic_super.jsonnet │ │ ├── basic_super2.json │ │ ├── basic_super2.jsonnet │ │ ├── grandparent_with_super.json │ │ ├── grandparent_with_super.jsonnet │ │ ├── multiple_inheritance.json │ │ ├── multiple_inheritance.jsonnet │ │ ├── static_binding_in_super_object.json │ │ └── static_binding_in_super_object.jsonnet │ ├── pass │ │ ├── adding_self_to_self.json │ │ ├── adding_self_to_self.jsonnet │ │ ├── array_comprehension2.json │ │ ├── array_comprehension2.jsonnet │ │ ├── basic.json │ │ ├── basic.jsonnet │ │ ├── basic_super1.json │ │ ├── basic_super1.jsonnet │ │ ├── closure.json │ │ ├── closure.jsonnet │ │ ├── closure2.json │ │ ├── closure2.jsonnet │ │ ├── concat1.json │ │ ├── concat1.jsonnet │ │ ├── concat2.json │ │ ├── concat2.jsonnet │ │ ├── extending_self_on_left.json │ │ ├── extending_self_on_left.jsonnet │ │ ├── extending_self_on_right.json │ │ ├── extending_self_on_right.jsonnet │ │ ├── filter.json │ │ ├── filter.jsonnet │ │ ├── foo.txt │ │ ├── function.json │ │ ├── function.jsonnet │ │ ├── import.json │ │ ├── import.jsonnet │ │ ├── import_local.json │ │ ├── import_local.jsonnet │ │ ├── importstr.json │ │ ├── importstr.jsonnet │ │ ├── inf.json │ │ ├── inf.jsonnet │ │ ├── internal_merge.json │ │ ├── internal_merge.jsonnet │ │ ├── length.json │ │ ├── length.jsonnet │ │ ├── locals_in_objects.json │ │ ├── locals_in_objects.jsonnet │ │ ├── multiple_inheritance_with_empty.json │ │ ├── multiple_inheritance_with_empty.jsonnet │ │ ├── nested_object_with_self.json │ │ ├── nested_object_with_self.jsonnet │ │ ├── null_field.json │ │ ├── null_field.jsonnet │ │ ├── obj_access.json │ │ ├── obj_access.jsonnet │ │ ├── object.json │ │ ├── object.jsonnet │ │ ├── objectHas.json │ │ ├── objectHas.jsonnet │ │ ├── plus_object.json │ │ ├── plus_object.jsonnet │ │ ├── render_int.json │ │ ├── render_int.jsonnet │ │ ├── returning_self.json │ │ ├── returning_self.jsonnet │ │ ├── self_access.json │ │ ├── self_access.jsonnet │ │ ├── self_as_object.json │ │ ├── self_as_object.jsonnet │ │ ├── self_bound_correctly_in_superobjects.json │ │ ├── self_bound_correctly_in_superobjects.jsonnet │ │ ├── self_in_array.json │ │ ├── self_in_array.jsonnet │ │ ├── short_circuit_func.json │ │ ├── short_circuit_func.jsonnet │ │ ├── simple_self.json │ │ ├── simple_self.jsonnet │ │ ├── simple_self_with_plus.json │ │ ├── simple_self_with_plus.jsonnet │ │ ├── simple_test.json │ │ ├── simple_test.jsonnet │ │ ├── string.json │ │ ├── string.jsonnet │ │ ├── string_access.json │ │ ├── string_access.jsonnet │ │ ├── super_up_two_levels.json │ │ ├── super_up_two_levels.jsonnet │ │ ├── use_std.json │ │ └── use_std.jsonnet │ ├── readme.txt │ └── tutorial │ │ ├── errors │ │ └── error-examples.jsonnet │ │ ├── fail │ │ ├── arith.json │ │ ├── arith.jsonnet │ │ ├── comprehensions.json │ │ ├── comprehensions.jsonnet │ │ ├── functions.json │ │ └── functions.jsonnet │ │ ├── libs │ │ ├── martinis.libsonnet │ │ ├── templates.libsonnet │ │ └── utils.libsonnet │ │ ├── only_envir │ │ ├── negroni.json │ │ └── negroni.jsonnet │ │ ├── only_subst │ │ ├── oo-contrived.json │ │ ├── oo-contrived.jsonnet │ │ ├── sours_oo.json │ │ └── sours_oo.jsonnet │ │ ├── parse_errors │ │ ├── library_ext.libsonnet │ │ ├── library_tla.libsonnet │ │ ├── top_level_ext.json │ │ ├── top_level_ext.jsonnet │ │ ├── top_level_tla.json │ │ └── top_level_tla.jsonnet │ │ ├── pass │ │ ├── computer_fields.json │ │ ├── computer_fields.jsonnet │ │ ├── conditionals.json │ │ ├── conditionals.jsonnet │ │ ├── garnish.txt │ │ ├── imports.json │ │ ├── imports.jsonnet │ │ ├── inner_references.json │ │ ├── inner_references.jsonnet │ │ ├── references.json │ │ ├── references.jsonnet │ │ ├── sours.json │ │ ├── sours.jsonnet │ │ ├── variables.json │ │ └── variables.jsonnet │ │ └── too_slow │ │ ├── mixins.json │ │ └── mixins.jsonnet ├── login │ ├── bad_response.json │ ├── fetch_body.json │ ├── ok_response.json │ └── token_response.json ├── ls │ └── ci │ │ └── rule_conf_resp.json ├── metachecks │ ├── explicit-regex-capture.rule.yaml │ ├── explicit-regex-capture.yaml │ ├── implicit-regex-capture.rule.yaml │ ├── implicit-regex-capture.yaml │ ├── metavariable-ellipsis.rule.yaml │ ├── metavariable-ellipsis.yaml │ ├── metavariable-pattern.rule.yaml │ ├── metavariable-pattern.yaml │ ├── nested-focus-metavariable.rule.yaml │ ├── nested-focus-metavariable.yaml │ ├── slow_pattern.rule.yaml │ ├── slow_pattern.yaml │ ├── unbound-metavariable.rule.yaml │ └── unbound-metavariable.yaml ├── misc │ ├── controlflow │ │ ├── goto.c │ │ ├── if.php │ │ ├── if.py │ │ └── while.py │ ├── dataflow │ │ ├── big-mult.py │ │ ├── div-by-zero.py │ │ ├── liveness.py │ │ ├── mult.py │ │ ├── reaching.py │ │ ├── tainting.py │ │ └── while.py │ ├── equivalences │ │ └── test.py │ ├── experimental_diff │ │ ├── array_access.yaml │ │ └── typed_metavars.yaml │ ├── il │ │ ├── array.js │ │ ├── assert.py │ │ ├── assignop.c │ │ ├── basic.py │ │ ├── call.py │ │ ├── cond.c │ │ ├── container.py │ │ ├── dot.js │ │ ├── dowhile.js │ │ ├── for.c │ │ ├── foreach.py │ │ ├── goto.c │ │ ├── if.py │ │ ├── incr_decr.c │ │ ├── lambda.js │ │ ├── seq.c │ │ ├── var.js │ │ ├── var.py │ │ └── while.py │ ├── jsonnet │ │ ├── lib_semgrep.jsonnet │ │ ├── metavar_cond.jsonnet │ │ ├── metavar_cond2.jsonnet │ │ ├── metavar_cond_octal.jsonnet │ │ ├── metavar_regex.jsonnet │ │ ├── negation_ajin.jsonnet │ │ ├── negation_ajin_orig_jsonnet │ │ ├── notes.txt │ │ ├── regexp.jsonnet │ │ └── regexp_nomatch.jsonnet │ ├── naming │ │ ├── inside.py │ │ ├── inside.yaml │ │ ├── scope_basic.py │ │ ├── scope_python.py │ │ └── scope_python.yml │ ├── otarzan │ │ ├── app.ml │ │ ├── expr.ml │ │ ├── poly.ml │ │ ├── qualified_alias.ml │ │ ├── record.ml │ │ ├── stmt.ml │ │ └── tuple.ml │ ├── perf │ │ └── input │ │ │ ├── stmts-double-ellipsis-abb.sgrep │ │ │ ├── stmts-double-ellipsis-abc.sgrep │ │ │ └── stmts-ellipsis-ab.sgrep │ ├── skipping_errors │ │ └── test.js │ ├── tainting │ │ ├── hello_world.java │ │ ├── simple.java │ │ ├── tainting.py │ │ └── tainting2.py │ └── target_file │ │ ├── target_file.list │ │ └── target_file_newline.list ├── naming │ ├── go │ │ ├── const_propagation.go │ │ └── vardef_vs_use.go │ ├── java │ │ ├── unknown_var.java │ │ └── vardef_vs_use.java │ ├── js │ │ └── vardef_vs_use.js │ └── python │ │ ├── assign_vardef.py │ │ ├── exn.py │ │ ├── iterator.py │ │ ├── regression1.py │ │ ├── scope.py │ │ └── shadow_name_type.py ├── osemgrep │ └── osemgrep.yml ├── parsing │ ├── bash │ │ ├── and-cond.bash │ │ ├── for-no-in.bash │ │ ├── hello.bash │ │ ├── pipe-or.bash │ │ └── pipe-redirect.bash │ ├── c │ │ ├── asm_stmt.c │ │ ├── basic.c │ │ └── char.c │ ├── cairo │ │ └── hello.cairo │ ├── circom │ │ └── multiply.circom │ ├── clojure │ │ └── zip.clj │ ├── cpp │ │ ├── ambiguity_typedef.cpp │ │ ├── asm_stmt.cpp │ │ ├── char.cpp │ │ ├── class.cpp │ │ ├── hello.cpp │ │ ├── operator_paren.cpp │ │ ├── operator_templated2.cpp │ │ ├── operator_templated3.cpp │ │ ├── parenthesized_assignment.cpp │ │ ├── pointer_type_declarator_ident.cpp │ │ └── switch.cpp │ ├── csharp │ │ ├── async.cs │ │ ├── attributes.cs │ │ ├── condaccess.cs │ │ ├── defaultoperator.cs │ │ ├── events.cs │ │ ├── exceptions.cs │ │ ├── extern_alias.cs │ │ ├── finalizer.cs │ │ ├── foreach.cs │ │ ├── forloop.cs │ │ ├── goto.cs │ │ ├── hello_world.cs │ │ ├── implicit_typing.cs │ │ ├── indexer.cs │ │ ├── linq.cs │ │ ├── localfunc.cs │ │ ├── lock.cs │ │ ├── makeref.cs │ │ ├── namespace_file_level.cs │ │ ├── object_initializer.cs │ │ ├── operatoroverload.cs │ │ ├── patternmatch.cs │ │ ├── range.cs │ │ ├── reserved.cs │ │ ├── strings.cs │ │ ├── tuples.cs │ │ ├── typeconstraints.cs │ │ ├── unchecked.cs │ │ ├── unsafe.cs │ │ ├── using.cs │ │ └── with_expression.cs │ ├── dart │ │ ├── class.dart │ │ ├── fib.dart │ │ └── hello.dart │ ├── dockerfile │ │ ├── no-trailing-newline-segfault.dockerfile │ │ ├── no-trailing-newline.dockerfile │ │ ├── numeric-user.dockerfile │ │ ├── semgrep.dockerfile │ │ └── user.dockerfile │ ├── go │ │ ├── generics_qualified.go │ │ ├── if_header_type.go │ │ ├── multi_line_raw_string.go │ │ ├── string.go │ │ ├── test_unicode.go │ │ └── unicode_rune.go │ ├── hack │ │ └── test.hack │ ├── html │ │ └── hello.html │ ├── java │ │ ├── accent.java │ │ ├── annotGeneric.java │ │ ├── annotStmt.java │ │ ├── annot_interface.java │ │ ├── annot_interface2.java │ │ ├── enumArgsAndBody.java │ │ ├── field.java │ │ ├── generics0.java │ │ ├── generics1.java │ │ ├── generics2.java │ │ ├── generics3.java │ │ ├── generics4.java │ │ ├── println.java │ │ ├── record.java │ │ ├── simple_addition.java │ │ ├── textblocks.java │ │ ├── this.java │ │ ├── this2.java │ │ └── this_implicit.java │ ├── js │ │ ├── cp_assign_record_assign.js │ │ ├── html-comment.js │ │ ├── import.js │ │ ├── jsx.js │ │ └── require.js │ ├── json │ │ └── simple.json │ ├── jsonnet │ │ ├── call_3args.jsonnet │ │ ├── exclude_files.jsonnet │ │ ├── foo.jsonnet │ │ ├── myformula.jsonnet │ │ ├── myrule.jsonnet │ │ ├── std.jsonnet │ │ ├── string.jsonnet │ │ └── tailstrict.jsonnet │ ├── julia │ │ └── helloworld.jl │ ├── kotlin │ │ ├── binary-func.kt │ │ ├── class_newline.kt │ │ ├── eldritch.kt │ │ ├── enum.kt │ │ ├── generics.kt │ │ ├── hello-world.kt │ │ ├── navigation.kt │ │ ├── parent_with_args.kt │ │ ├── prim-expr.kt │ │ ├── small-program.kt │ │ ├── string.kt │ │ ├── types.kt │ │ └── unary.kt │ ├── lua │ │ ├── for_in.lua │ │ ├── hello_world.lua │ │ ├── labels.lua │ │ ├── local_empty.lua │ │ ├── multi_return.lua │ │ ├── nested_table.lua │ │ ├── one.lua │ │ ├── prefix.lua │ │ ├── prim_expr.lua │ │ └── varargs.lua │ ├── move_on_aptos │ │ ├── basic.move │ │ └── test.move │ ├── move_on_sui │ │ ├── TODO │ │ │ ├── TODO.txt │ │ │ ├── basic.TODO │ │ │ └── test.TODO │ │ ├── address.move │ │ ├── annotations.move │ │ ├── as_expressions.move │ │ ├── ascii.move │ │ ├── authenticator_state.move │ │ ├── bag.move │ │ ├── balance.move │ │ ├── bcs.move │ │ ├── bit_vector.move │ │ ├── borrow.move │ │ ├── clock.move │ │ ├── coin.move │ │ ├── damir1.move │ │ ├── damir2.move │ │ ├── damir3.move │ │ ├── damir4.move │ │ ├── damir5.move │ │ ├── debug.move │ │ ├── display.move │ │ ├── dotted_vector_literal_access.move │ │ ├── dynamic_field.move │ │ ├── dynamic_object_field.move │ │ ├── event.move │ │ ├── fixed_point32.move │ │ ├── hash.move │ │ ├── hex.move │ │ ├── linked_table.move │ │ ├── literal_address_module_and_pos_structs.move │ │ ├── math.move │ │ ├── module_labels.move │ │ ├── module_uses.move │ │ ├── multi_index_test.move │ │ ├── named_address_test.move │ │ ├── native_structs.move │ │ ├── new_syntax_file.move │ │ ├── object.move │ │ ├── object_bag.move │ │ ├── object_table.move │ │ ├── option.move │ │ ├── package.move │ │ ├── pay.move │ │ ├── priority_queue.move │ │ ├── prover.move │ │ ├── random.move │ │ ├── simple_module.move │ │ ├── string.move │ │ ├── sui.move │ │ ├── table.move │ │ ├── table_vec.move │ │ ├── token.move │ │ ├── transfer.move │ │ ├── tx_context.move │ │ ├── type_name.move │ │ ├── types.move │ │ ├── unit_test.move │ │ ├── url.move │ │ ├── variant_creation.move │ │ ├── vec_map.move │ │ ├── vec_set.move │ │ ├── vector.move │ │ └── versioned.move │ ├── ocaml │ │ ├── attribute_type.ml │ │ ├── basic.mli │ │ ├── class.ml │ │ ├── fun_typed_ret.ml │ │ ├── function_match.ml │ │ ├── functor_application.ml │ │ ├── let_module.ml │ │ ├── object_type.ml │ │ ├── object_type2.ml │ │ ├── object_type2.mli │ │ ├── objfield_assign.ml │ │ └── typed_pattern.ml │ ├── php │ │ ├── arrow.php │ │ ├── attributes.php │ │ ├── attributes_qualified.php │ │ ├── attributes_qualified2.php │ │ ├── catch_or.php │ │ ├── class.php │ │ ├── enum.php │ │ ├── foreach_destructure_empty_comma.php │ │ ├── match_expression.php │ │ ├── misc_for_method.php │ │ ├── named_arguments.php │ │ ├── parameter_type_qualified.php │ │ ├── unicode_method.php │ │ ├── union_types.php │ │ └── union_types2.php │ ├── promql │ │ └── test.promql │ ├── protobuf │ │ ├── semgrep_output.proto │ │ └── simple.proto │ ├── python │ │ ├── as_pattern.py │ │ ├── field.py │ │ ├── pattern_matching.py │ │ ├── re.py │ │ └── tuple_expansion.py │ ├── ql │ │ └── basic.ql │ ├── r │ │ └── hello-world.r │ ├── ruby │ │ ├── atom_kwd_trailing_comma.rb │ │ ├── dots_forwarding.rb │ │ ├── heredoc.rb │ │ ├── heredoc2.rb │ │ ├── rational_float.rb │ │ └── string.rb │ ├── rust │ │ ├── async.rs │ │ ├── declarations.rs │ │ ├── expressions.rs │ │ ├── hello_world.rs │ │ ├── inner_attr_stmt.rs │ │ ├── literals.rs │ │ ├── macros.rs │ │ ├── patterns.rs │ │ ├── source_files.rs │ │ └── types.rs │ ├── scala │ │ ├── anonymous_types.scala │ │ ├── end_markers.scala │ │ ├── enums.scala │ │ ├── exports.scala │ │ ├── expr_case_clause.scala │ │ ├── extensions.scala │ │ ├── for_exprs.scala │ │ ├── fun_dcl.scala │ │ ├── function_types.scala │ │ ├── generator_guards.scala │ │ ├── given_defs.scala │ │ ├── if_expr.scala │ │ ├── imports.scala │ │ ├── indented_block_expr_rhs.scala │ │ ├── indented_for_body.scala │ │ ├── indented_match.scala │ │ ├── indented_package.scala │ │ ├── indented_tuple_for_pattern.scala │ │ ├── indented_while.scala │ │ ├── interpolated_string_no_dedent.scala │ │ ├── match_type.scala │ │ ├── newline_in_for.scala │ │ ├── opaque.scala │ │ ├── optional_brace_class.scala │ │ ├── optional_brace_object.scala │ │ ├── optional_brace_weird_space.scala │ │ ├── pat_typed_in_class.scala │ │ ├── quoted.scala │ │ ├── soft_keywords.scala │ │ ├── soft_modifiers.scala │ │ ├── splatted_args.scala │ │ ├── starred_arrow_param_type.scala │ │ ├── type_case_clauses.scala │ │ ├── tyrefined.scala │ │ ├── using_args.scala │ │ ├── using_clauses.scala │ │ └── while_expr.scala │ ├── solidity │ │ └── unchecked.sol │ ├── swift │ │ ├── class-separator.swift │ │ ├── emoji.swift │ │ ├── expressions.swift │ │ ├── hello-world.swift │ │ ├── optional-assignment.swift │ │ ├── statements.swift │ │ └── switch_expr.swift │ ├── terraform │ │ ├── simple.tf │ │ └── simple.tfvars │ ├── ts │ │ ├── abstract.ts │ │ ├── brace1.ts │ │ ├── brace2.ts │ │ ├── is.ts │ │ ├── keyof.ts │ │ ├── keyof2.ts │ │ ├── override.ts │ │ ├── override_protected.ts │ │ ├── override_small.ts │ │ ├── override_type.ts │ │ ├── template_literal_types.ts │ │ └── typeof.ts │ └── xml │ │ ├── book.xml │ │ ├── note.xml │ │ ├── pom.xml │ │ └── xsschema.xml ├── parsing_errors │ ├── err.ts │ ├── foo.c │ ├── skip_tokens.ts │ └── unbalanced_brace.py ├── parsing_missing │ ├── c │ │ └── missing-semicolon.c │ └── cpp │ │ └── missing-semicolon.cpp ├── parsing_partial │ └── cpp │ │ ├── empty_case_body.cpp │ │ ├── expecting_ident_param.cpp │ │ ├── funcdef_without_params.cpp │ │ ├── funcdef_without_params2.cpp │ │ ├── operator_templated.cpp │ │ ├── operator_templated_partial.cpp │ │ └── saf-2016.cpp ├── parsing_patterns │ ├── go │ │ ├── ellipsis_asi.sgrep │ │ ├── simple_typed_metavar.sgrep │ │ └── struct.sgrep │ └── java │ │ ├── annotation-ellipsis-after.sgrep │ │ ├── annotation-ellipsis-both.sgrep │ │ ├── annotation-ellipsis.sgrep │ │ ├── ellipsis-concat.sgrep │ │ ├── ellipsis-interface.sgrep │ │ ├── escape_char.sgrep │ │ ├── import.java │ │ ├── import.sgrep │ │ ├── package.sgrep │ │ └── simple-typed-metavar.sgrep ├── parsing_todo │ ├── cpp │ │ ├── expecting_init.cpp │ │ └── semicolon.cpp │ ├── lua │ │ └── builtins.lua │ └── protobuf │ │ └── error_todo.proto ├── patterns │ ├── POLYGLOT │ │ ├── anonymous_metavar.sgrep │ │ ├── concrete_syntax.sgrep │ │ ├── deep_expr_operator.sgrep │ │ ├── deep_exprstmt.sgrep │ │ ├── dots_args.sgrep │ │ ├── dots_expr.sgrep │ │ ├── dots_for.sgrep │ │ ├── dots_method_chaining.sgrep │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.sgrep │ │ ├── equivalence_constant_propagation.sgrep │ │ ├── equivalence_float.sgrep │ │ ├── equivalence_number.sgrep │ │ ├── metavar_anno.sgrep │ │ ├── metavar_arg.sgrep │ │ ├── metavar_call.sgrep │ │ ├── metavar_class_def.sgrep │ │ ├── metavar_cond.sgrep │ │ ├── metavar_ellipsis_args.sgrep │ │ ├── metavar_equality_expr.sgrep │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_key_value.sgrep │ │ ├── metavar_stmt.sgrep │ │ ├── metavar_string.sgrep │ │ ├── misc_else_blocks_brace.sgrep │ │ ├── misc_else_blocks_no_brace.sgrep │ │ ├── misc_if_blocks_brace.sgrep │ │ ├── misc_if_blocks_no_brace.sgrep │ │ ├── partial_class.sgrep │ │ ├── partial_finally.sgrep │ │ ├── partial_if.sgrep │ │ ├── partial_try.sgrep │ │ ├── regexp_case_insensitive.sgrep │ │ ├── regexp_pcre.sgrep │ │ └── regexp_string.sgrep │ ├── TEMPLATE │ │ ├── alpha-c-like │ │ │ ├── concrete_syntax.xxx │ │ │ ├── deep_exprstmt.xxx │ │ │ ├── dots_args.xxx │ │ │ ├── dots_nested_stmts.xxx │ │ │ ├── dots_stmts.xxx │ │ │ ├── dots_string.xxx │ │ │ ├── metavar_arg.xxx │ │ │ ├── metavar_call.xxx │ │ │ └── metavar_equality_var.xxx │ │ ├── alpha-python-like │ │ │ ├── concrete_syntax.xxx │ │ │ ├── deep_exprstmt.xxx │ │ │ ├── dots_args.xxx │ │ │ ├── dots_nested_stmts.xxx │ │ │ ├── dots_stmts.xxx │ │ │ ├── dots_string.xxx │ │ │ ├── metavar_arg.xxx │ │ │ ├── metavar_call.xxx │ │ │ └── metavar_equality_var.xxx │ │ ├── beta-c-like │ │ │ ├── metavar_class_def.java │ │ │ ├── metavar_cond.java │ │ │ ├── metavar_equality_expr.java │ │ │ ├── metavar_equality_stmt.java │ │ │ ├── metavar_func_def.java │ │ │ ├── metavar_import.java │ │ │ └── metavar_stmt.java │ │ └── doc.txt │ ├── bash │ │ ├── added_identifier.sh │ │ ├── added_identifier.yaml │ │ ├── anchored-stmt.bash │ │ ├── anchored-stmt.sgrep │ │ ├── anonymous_metavar.bash │ │ ├── arg-ellipsis.bash │ │ ├── arg-ellipsis.sgrep │ │ ├── arg-named-ellipsis.bash │ │ ├── arg-named-ellipsis.sgrep │ │ ├── array-ellipsis.bash │ │ ├── array-ellipsis.sgrep │ │ ├── assign-add.bash │ │ ├── assign-add.sgrep │ │ ├── assign.bash │ │ ├── assign.sgrep │ │ ├── background.bash │ │ ├── background.sgrep │ │ ├── case-body.bash │ │ ├── case-body.sgrep │ │ ├── command-substitution-body.bash │ │ ├── command-substitution-body.sgrep │ │ ├── command-substitution.bash │ │ ├── command-substitution.sgrep │ │ ├── concatenation-ellipsis-args.bash │ │ ├── concatenation-ellipsis-args.sgrep │ │ ├── concatenation-ellipsis.bash │ │ ├── concatenation-ellipsis.sgrep │ │ ├── concatenation-named-ellipsis-args.bash │ │ ├── concatenation-named-ellipsis-args.sgrep │ │ ├── concatenation-named-ellipsis.bash │ │ ├── concatenation-named-ellipsis.sgrep │ │ ├── concatenation.bash │ │ ├── concatenation.sgrep │ │ ├── concrete_syntax.bash │ │ ├── concrete_syntax.sgrep │ │ ├── declaration-assignments.bash │ │ ├── declaration-assignments.sgrep │ │ ├── deep_expr_operator.bash │ │ ├── deep_expr_operator.sgrep │ │ ├── deep_exprstmt.bash │ │ ├── deep_exprstmt.sgrep │ │ ├── dots_args.bash │ │ ├── dots_args.sgrep │ │ ├── dots_nested_stmts.bash │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_stmts.bash │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.bash │ │ ├── dots_string.sgrep │ │ ├── empty.bash │ │ ├── empty.sgrep │ │ ├── expression.bash │ │ ├── expression.sgrep │ │ ├── for-body.bash │ │ ├── for-body.sgrep │ │ ├── for-elt-ellipsis.bash │ │ ├── for-elt-ellipsis.sgrep │ │ ├── for-metavar.bash │ │ ├── for-metavar.sgrep │ │ ├── function-body.bash │ │ ├── function-body.sgrep │ │ ├── function-metavar.bash │ │ ├── function-metavar.sgrep │ │ ├── function.bash │ │ ├── function.sgrep │ │ ├── hello.bash │ │ ├── hello.sgrep │ │ ├── if-body.bash │ │ ├── if-body.sgrep │ │ ├── if-header.bash │ │ ├── if-header.sgrep │ │ ├── match-cmd-or-arg.bash │ │ ├── match-cmd-or-arg.sgrep │ │ ├── metavar_arg.bash │ │ ├── metavar_arg.sgrep │ │ ├── metavar_call.bash │ │ ├── metavar_call.sgrep │ │ ├── metavar_equality_expr.bash │ │ ├── metavar_equality_expr.sgrep │ │ ├── metavar_equality_var.bash │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_func_def.bash │ │ ├── metavar_func_def.sgrep │ │ ├── nested_stmts.bash │ │ ├── nested_stmts.sgrep │ │ ├── normalize-dquoted-word.bash │ │ ├── normalize-dquoted-word.sgrep │ │ ├── normalize-squoted-word.bash │ │ ├── normalize-squoted-word.sgrep │ │ ├── not-an-expression1.bash │ │ ├── not-an-expression1.sgrep │ │ ├── not-an-expression2.bash │ │ ├── not-an-expression2.sgrep │ │ ├── not-an-expression3.bash │ │ ├── not-an-expression3.sgrep │ │ ├── not-an-expression4.bash │ │ ├── not-an-expression4.sgrep │ │ ├── not-an-expression5.bash │ │ ├── not-an-expression5.sgrep │ │ ├── not.bash │ │ ├── not.sgrep │ │ ├── or.bash │ │ ├── or.sgrep │ │ ├── pipeline.bash │ │ ├── pipeline.sgrep │ │ ├── quoted-ellipsis.bash │ │ ├── quoted-ellipsis.sgrep │ │ ├── quoted-ellipsis2.bash │ │ ├── quoted-ellipsis2.sgrep │ │ ├── quoted-expansion.bash │ │ ├── quoted-expansion.sgrep │ │ ├── quoted-named-ellipsis.bash │ │ ├── quoted-named-ellipsis.sgrep │ │ ├── quoted-named-ellipsis2.bash │ │ ├── quoted-named-ellipsis2.sgrep │ │ ├── select-body.bash │ │ ├── select-body.sgrep │ │ ├── set-lhs-metavar.bash │ │ ├── set-lhs-metavar.sgrep │ │ ├── set-rhs-metavar.bash │ │ ├── set-rhs-metavar.sgrep │ │ ├── stmt-ellipsis.bash │ │ ├── stmt-ellipsis.sgrep │ │ ├── stmt-named-ellipsis.bash │ │ ├── stmt-named-ellipsis.sgrep │ │ ├── subshell.bash │ │ ├── subshell.sgrep │ │ ├── todo │ │ │ ├── array-named-ellipsis.bash │ │ │ ├── array-named-ellipsis.sgrep │ │ │ ├── assign-multi.bash │ │ │ ├── assign-multi.sgrep │ │ │ ├── c-style-loop.bash │ │ │ ├── c-style-loop.sgrep │ │ │ ├── deep_exprstmt.sgrep │ │ │ ├── for-elt-named-ellipsis.bash │ │ │ ├── for-elt-named-ellipsis.sgrep │ │ │ ├── until.bash │ │ │ ├── until.sgrep │ │ │ ├── var-ellipsis-var.bash │ │ │ ├── var-ellipsis-var.sgrep │ │ │ ├── while-named-ellipsis.bash │ │ │ └── while-named-ellipsis.sgrep │ │ ├── while-body.bash │ │ ├── while-body.sgrep │ │ ├── while-ellipsis.bash │ │ └── while-ellipsis.sgrep │ ├── c │ │ ├── aliasing.TODO │ │ ├── anonymous_metavar.c │ │ ├── concrete_syntax.c │ │ ├── const-prop-buf-decl-flow.c │ │ ├── const-prop-buf-decl-flow.sgrep │ │ ├── const-prop-buf-decl.c │ │ ├── const-prop-buf-decl.sgrep │ │ ├── deep_expr_operator.c │ │ ├── deep_exprstmt.c │ │ ├── dots_args.c │ │ ├── dots_params.c │ │ ├── dots_params.sgrep │ │ ├── dots_sizeof.c │ │ ├── dots_sizeof.sgrep │ │ ├── dots_stmts.c │ │ ├── dots_string.c │ │ ├── equivalence_float.c │ │ ├── equivalence_number.c │ │ ├── goto_fail.c │ │ ├── goto_fail.sgrep │ │ ├── metavar_arg.c │ │ ├── metavar_call.c │ │ ├── metavar_cond.c │ │ ├── metavar_ellipsis_args.c │ │ ├── metavar_equality_expr.c │ │ ├── metavar_equality_stmt.c │ │ ├── metavar_equality_var.c │ │ ├── metavar_import.TODO_fail_with_cplusplus │ │ ├── metavar_import.sgrep │ │ ├── metavar_stmt.c │ │ ├── metavar_typed.c │ │ ├── metavar_typed.sgrep │ │ ├── metavar_typed_generic.c │ │ ├── metavar_typed_generic.sgrep │ │ ├── metavar_typed_reuse.c │ │ ├── metavar_typed_reuse.sgrep │ │ ├── misc_toplevel_macrocall.c │ │ ├── misc_toplevel_macrocall.sgrep │ │ ├── misc_typedef_inference.c │ │ ├── misc_typedef_inference.sgrep │ │ ├── partial_parsing │ │ │ ├── misc_ifdef_strings.c │ │ │ ├── misc_ifdef_strings.sgrep │ │ │ └── note.txt │ │ └── regexp_string.c │ ├── cairo │ │ ├── anonymous_metavar.cairo │ │ ├── deep_cond.cairo │ │ ├── deep_cond.sgrep │ │ ├── deep_expr_operator.cairo │ │ ├── dots_args.cairo │ │ ├── dots_args.sgrep │ │ ├── dots_attributes.cairo │ │ ├── dots_attributes.sgrep │ │ ├── dots_loop.cairo │ │ ├── dots_loop.sgrep │ │ ├── dots_method_chaining.cairo │ │ ├── dots_method_chaining.sgrep │ │ ├── metavar_let.cairo │ │ ├── metavar_let.sgrep │ │ ├── metavar_stmt.cairo │ │ ├── metavar_stmt.sgrep │ │ ├── misc_impl.cairo │ │ └── misc_impl.sgrep │ ├── circom │ │ ├── anonymous_metavar.circom │ │ ├── concrete_syntax.circom │ │ ├── deep_expr_operator.circom │ │ ├── deep_extrstmt.circom │ │ ├── dots_args.circom │ │ ├── dots_for.circom │ │ ├── dots_nested_stmts.circom │ │ ├── dots_stmts.circom │ │ ├── dots_template.circom │ │ ├── dots_template.sgrep │ │ ├── metavar_arg.circom │ │ ├── metavar_call.circom │ │ ├── metavar_equality_var.circom │ │ ├── metavar_version.circom │ │ └── metavar_version.sgrep │ ├── clojure │ │ ├── TODO │ │ │ ├── deep_exprstmt.clj │ │ │ └── dots_nested_stmts.clj │ │ ├── concrete_syntax.clj │ │ ├── concrete_syntax.sgrep │ │ ├── dots_args.clj │ │ ├── dots_args.sgrep │ │ ├── dots_stmts.clj │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.clj │ │ ├── dots_string.sgrep │ │ ├── metavar_arg.clj │ │ ├── metavar_arg.sgrep │ │ ├── metavar_call.clj │ │ ├── metavar_call.sgrep │ │ ├── metavar_equality_var.clj │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_slash_access.clj │ │ └── metavar_slash_access.sgrep │ ├── cp_exception.py │ ├── cp_exception.sgrep │ ├── cpp │ │ ├── anonymous_metavar.cpp │ │ ├── block_ellipsis.cpp │ │ ├── block_ellipsis.sgrep │ │ ├── concrete_syntax.cpp │ │ ├── deep_expr_operator.cpp │ │ ├── deep_exprstmt.cpp │ │ ├── dots_args.cpp │ │ ├── dots_for.cpp │ │ ├── dots_method_chaining.cpp │ │ ├── dots_namespace.cpp │ │ ├── dots_namespace.sgrep │ │ ├── dots_params.cpp │ │ ├── dots_params.sgrep │ │ ├── dots_rhs.cpp │ │ ├── dots_rhs.sgrep │ │ ├── dots_stmts.cpp │ │ ├── dots_string.cpp │ │ ├── equivalence_float.cpp │ │ ├── equivalence_number.cpp │ │ ├── metavar_arg.cpp │ │ ├── metavar_call.cpp │ │ ├── metavar_cond.cpp │ │ ├── metavar_ellipsis_args.cpp │ │ ├── metavar_equality_expr.cpp │ │ ├── metavar_equality_stmt.cpp │ │ ├── metavar_equality_var.cpp │ │ ├── metavar_stmt.cpp │ │ ├── misc_const.cpp │ │ ├── misc_const.sgrep │ │ ├── misc_include.cpp │ │ ├── misc_include.sgrep │ │ ├── misc_thread_local.cpp │ │ ├── misc_thread_local.sgrep │ │ ├── named_ellipsis.cpp │ │ ├── named_ellipsis.sgrep │ │ ├── parsing_pfff_only │ │ │ └── dotstar.cpp │ │ ├── parsing_todo_tree_sitter │ │ │ ├── could_not_find_case.cpp │ │ │ ├── non_recoverable1.cpp │ │ │ └── single_name_simple_var.cpp │ │ ├── regexp_string.cpp │ │ ├── standalone_expr.cpp │ │ ├── standalone_expr.sgrep │ │ ├── toplevel_ellipsis.cpp │ │ ├── toplevel_ellipsis.sgrep │ │ ├── typed_metavar.cpp │ │ └── typed_metavar.sgrep │ ├── csharp │ │ ├── anonymous_metavar.cs │ │ ├── concrete_syntax.cs │ │ ├── concrete_syntax.sgrep │ │ ├── decl_before_init.cs │ │ ├── decl_before_init.sgrep │ │ ├── deep_expr_operator.cs │ │ ├── deep_expr_operator.sgrep │ │ ├── deep_exprstmt.cs │ │ ├── dots_args.cs │ │ ├── dots_args.sgrep │ │ ├── dots_class.cs │ │ ├── dots_class.sgrep │ │ ├── dots_method_chaining.cs │ │ ├── dots_nested_stmts.cs │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_parameters.cs │ │ ├── dots_parameters.sgrep │ │ ├── dots_stmts.cs │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.cs │ │ ├── dots_string.sgrep │ │ ├── equivalence_constant_propagation.cs │ │ ├── equivalence_constant_propagation.sgrep │ │ ├── loops.cs │ │ ├── loops.sgrep │ │ ├── metavar_anno.cs │ │ ├── metavar_anno.sgrep │ │ ├── metavar_arg.cs │ │ ├── metavar_arg.sgrep │ │ ├── metavar_call.cs │ │ ├── metavar_class_def.cs │ │ ├── metavar_class_def.sgrep │ │ ├── metavar_cond.cs │ │ ├── metavar_cond.sgrep │ │ ├── metavar_ellipsis_args.cs │ │ ├── metavar_ellipsis_new_args.cs │ │ ├── metavar_ellipsis_new_args.sgrep │ │ ├── metavar_equality_expr.cs │ │ ├── metavar_equality_expr.sgrep │ │ ├── metavar_equality_stmt.cs │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.cs │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_func_def.cs │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_import.cs │ │ ├── metavar_import.sgrep │ │ ├── metavar_key_value.cs │ │ ├── metavar_key_value.sgrep │ │ ├── metavar_stmt.cs │ │ ├── metavar_stmt.sgrep │ │ ├── metavar_typed.cs │ │ ├── metavar_typed.sgrep │ │ ├── misc_enum_pattern.cs │ │ ├── misc_enum_pattern.sgrep │ │ ├── todo │ │ │ ├── misc_linq.cs │ │ │ └── misc_linq.sgrep │ │ ├── toplevel_ellipsis.cs │ │ └── toplevel_ellipsis.sgrep │ ├── dart │ │ ├── anonymous_metavar.dart │ │ ├── concrete_syntax.dart │ │ ├── deep_expr_operator.dart │ │ ├── deep_expr_operator.sgrep │ │ ├── deep_exprstmt.dart │ │ ├── dots_args.dart │ │ ├── dots_expr.dart │ │ ├── metavar_arg.dart │ │ ├── metavar_call.dart │ │ └── metavar_stmt.dart │ ├── dockerfile │ │ ├── add-chown.dockerfile │ │ ├── add-chown.sgrep │ │ ├── add.dockerfile │ │ ├── add.sgrep │ │ ├── anonymous_metavar.dockerfile │ │ ├── arg-default-metavar.dockerfile │ │ ├── arg-default-metavar.sgrep │ │ ├── arg-metavar.dockerfile │ │ ├── arg-metavar.sgrep │ │ ├── arg.dockerfile │ │ ├── arg.sgrep │ │ ├── array-ellipsis.dockerfile │ │ ├── array-ellipsis.sgrep │ │ ├── array-metavariable.dockerfile │ │ ├── array-metavariable.sgrep │ │ ├── cmd-argv.dockerfile │ │ ├── cmd-argv.sgrep │ │ ├── cmd-ellipsis.dockerfile │ │ ├── cmd-ellipsis.sgrep │ │ ├── cmd-named-ellipsis.dockerfile │ │ ├── cmd-named-ellipsis.sgrep │ │ ├── cmd-shell.dockerfile │ │ ├── cmd-shell.sgrep │ │ ├── concrete_syntax.dockerfile │ │ ├── concrete_syntax.sgrep │ │ ├── copy-chown.dockerfile │ │ ├── copy-chown.sgrep │ │ ├── copy-ellipsis.dockerfile │ │ ├── copy-ellipsis.sgrep │ │ ├── copy-metavar.dockerfile │ │ ├── copy-metavar.sgrep │ │ ├── copy-multiple-files.dockerfile │ │ ├── copy-multiple-files.sgrep │ │ ├── copy-param.dockerfile │ │ ├── copy-param.sgrep │ │ ├── copy.dockerfile │ │ ├── copy.sgrep │ │ ├── deep_exprstmt.TODO │ │ ├── deep_exprstmt.sgrep │ │ ├── dots_args.dockerfile │ │ ├── dots_args.sgrep │ │ ├── dots_nested_stmts.dockerfile │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_stmts.dockefile │ │ ├── dots_stmts.dockerfile │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.dockerfile │ │ ├── dots_string.sgrep │ │ ├── entrypoint-ellipsis.dockerfile │ │ ├── entrypoint-ellipsis.sgrep │ │ ├── entrypoint-named-ellipsis.dockerfile │ │ ├── entrypoint-named-ellipsis.sgrep │ │ ├── entrypoint.dockerfile │ │ ├── entrypoint.sgrep │ │ ├── env-const-prop.dockerfile │ │ ├── env-const-prop.sgrep │ │ ├── env-ellipsis.dockerfile │ │ ├── env-ellipsis.sgrep │ │ ├── env-key-one-char.dockerfile │ │ ├── env-key-one-char.sgrep │ │ ├── env-val-metavar.dockerfile │ │ ├── env-val-metavar.sgrep │ │ ├── env.dockerfile │ │ ├── env.sgrep │ │ ├── expose-ellipsis.dockerfile │ │ ├── expose-ellipsis.sgrep │ │ ├── expose-metavar.dockerfile │ │ ├── expose-metavar.sgrep │ │ ├── expose.dockerfile │ │ ├── expose.sgrep │ │ ├── from-alias-reuse.dockerfile │ │ ├── from-alias-reuse.sgrep │ │ ├── from-as.dockerfile │ │ ├── from-as.sgrep │ │ ├── from-digest-metavar.dockerfile │ │ ├── from-digest-metavar.sgrep │ │ ├── from-param.dockerfile │ │ ├── from-param.sgrep │ │ ├── from-tag-metavar.dockerfile │ │ ├── from-tag-metavar.sgrep │ │ ├── from.dockerfile │ │ ├── from.sgrep │ │ ├── from2.dockerfile │ │ ├── from2.sgrep │ │ ├── healthcheck-ellipsis.dockerfile │ │ ├── healthcheck-ellipsis.sgrep │ │ ├── healthcheck-metavar.dockerfile │ │ ├── healthcheck-metavar.sgrep │ │ ├── healthcheck-none.dockerfile │ │ ├── healthcheck-none.sgrep │ │ ├── healthcheck-options-cmd-ellipsis.dockerfile │ │ ├── healthcheck-options-cmd-ellipsis.sgrep │ │ ├── healthcheck-options-ellipsis.dockerfile │ │ ├── healthcheck-options-ellipsis.sgrep │ │ ├── healthcheck-options.dockerfile │ │ ├── healthcheck-options.sgrep │ │ ├── healthcheck.dockerfile │ │ ├── healthcheck.sgrep │ │ ├── instruction-ellipsis.dockerfile │ │ ├── instruction-ellipsis.sgrep │ │ ├── instruction-metavariable.dockerfile │ │ ├── instruction-metavariable.sgrep │ │ ├── label-ellipsis.dockerfile │ │ ├── label-ellipsis.sgrep │ │ ├── label-metavar.dockerfile │ │ ├── label-metavar.sgrep │ │ ├── label-variable-key.dockerfile │ │ ├── label-variable-key.sgrep │ │ ├── label.dockerfile │ │ ├── label.sgrep │ │ ├── maintainer-metavar.dockerfile │ │ ├── maintainer-metavar.sgrep │ │ ├── maintainer.dockerfile │ │ ├── maintainer.sgrep │ │ ├── metavar-backref.dockerfile │ │ ├── metavar-backref.sgrep │ │ ├── metavar_arg.dockerfile │ │ ├── metavar_arg.sgrep │ │ ├── metavar_call.dockerfile │ │ ├── metavar_call.sgrep │ │ ├── metavar_equality_var.dockerfile │ │ ├── metavar_equality_var.sgrep │ │ ├── multiline_comment.dockerfile │ │ ├── multiline_comment.sgrep │ │ ├── no-trailing-newline.dockerfile │ │ ├── no-trailing-newline.sgrep │ │ ├── onbuild.dockerfile │ │ ├── onbuild.sgrep │ │ ├── run-anchored.dockerfile │ │ ├── run-anchored.sgrep │ │ ├── run-argv.dockerfile │ │ ├── run-argv.sgrep │ │ ├── run-param-metavar.dockerfile │ │ ├── run-param-metavar.sgrep │ │ ├── run-param-mount-metavar.dockerfile │ │ ├── run-param-mount-metavar.sgrep │ │ ├── run-param.dockerfile │ │ ├── run-param.sgrep │ │ ├── run.dockerfile │ │ ├── run.sgrep │ │ ├── shell.dockerfile │ │ ├── shell.sgrep │ │ ├── stopsignal-metavar.dockerfile │ │ ├── stopsignal-metavar.sgrep │ │ ├── stopsignal.dockerfile │ │ ├── stopsignal.sgrep │ │ ├── string-comparison.dockerfile │ │ ├── string-comparison.sgrep │ │ ├── strings.dockerfile │ │ ├── strings.sgrep │ │ ├── todo │ │ │ ├── env-key-metavar.dockerfile │ │ │ ├── env-key-metavar.sgrep │ │ │ ├── string-fragments.dockerfile │ │ │ └── string-fragments.sgrep │ │ ├── user-group-expansion.dockerfile │ │ ├── user-group-expansion.sgrep │ │ ├── user-group-metavar.dockerfile │ │ ├── user-group-metavar.sgrep │ │ ├── user-group.dockerfile │ │ ├── user-group.sgrep │ │ ├── user.dockerfile │ │ ├── user.sgrep │ │ ├── volume-ellipsis.dockerfile │ │ ├── volume-ellipsis.sgrep │ │ ├── volume-metavar.dockerfile │ │ ├── volume-metavar.sgrep │ │ ├── volume.dockerfile │ │ ├── volume.sgrep │ │ ├── workdir-metavar.dockerfile │ │ ├── workdir-metavar.sgrep │ │ ├── workdir.dockerfile │ │ └── workdir.sgrep │ ├── generic │ │ ├── concrete_syntax.generic │ │ ├── dots_args.generic │ │ ├── dots_args.sgrep │ │ ├── dots_expr.generic │ │ ├── dots_stmts.generic │ │ ├── dots_string.generic │ │ ├── dots_string.sgrep │ │ ├── metavar_call.generic │ │ ├── metavar_equality_var.generic │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_stmt.generic │ │ ├── metavar_stmt.sgrep │ │ ├── minified.generic │ │ ├── minified.sgrep │ │ ├── misc_else_blocks_brace.generic │ │ ├── misc_else_blocks_brace.sgrep │ │ ├── misc_else_blocks_no_brace.generic │ │ ├── misc_else_blocks_no_brace.sgrep │ │ ├── misc_if_blocks_brace.generic │ │ ├── misc_if_blocks_brace.sgrep │ │ ├── misc_if_blocks_no_brace.generic │ │ ├── misc_if_blocks_no_brace.sgrep │ │ ├── not-minified.generic │ │ └── not-minified.sgrep │ ├── go │ │ ├── aliasing.TODO │ │ ├── anonymous_metavar.go │ │ ├── concrete_syntax.go │ │ ├── cp_ref.go │ │ ├── cp_ref.sgrep │ │ ├── cp_shortassign.go │ │ ├── cp_shortassign.sgrep │ │ ├── deep_cond.go │ │ ├── deep_cond.sgrep │ │ ├── deep_expr_lambda.go │ │ ├── deep_expr_lambda.sgrep │ │ ├── deep_expr_operator.go │ │ ├── deep_exprstmt.go │ │ ├── dots_args.go │ │ ├── dots_attributes.go │ │ ├── dots_attributes.sgrep │ │ ├── dots_expr.go │ │ ├── dots_for.go │ │ ├── dots_for.sgrep │ │ ├── dots_function_type.go │ │ ├── dots_function_type.sgrep │ │ ├── dots_import.go │ │ ├── dots_import.sgrep │ │ ├── dots_method_chaining.go │ │ ├── dots_nested_stmts.go │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_newargs.go │ │ ├── dots_newargs.sgrep │ │ ├── dots_package.go │ │ ├── dots_package.sgrep │ │ ├── dots_params.go │ │ ├── dots_params.sgrep │ │ ├── dots_select_cases.go │ │ ├── dots_select_cases.sgrep │ │ ├── dots_stmts.go │ │ ├── dots_stmts.sgrep │ │ ├── dots_stmts2.go │ │ ├── dots_stmts2.newline.go │ │ ├── dots_stmts2.newline.sgrep │ │ ├── dots_stmts2.sgrep │ │ ├── dots_stmts3.go │ │ ├── dots_stmts3.sgrep │ │ ├── dots_string.go │ │ ├── dots_struct_fields.TODO │ │ ├── dots_struct_fields.go.TODO │ │ ├── dots_struct_order.go │ │ ├── dots_struct_order.sgrep │ │ ├── dots_switch_cases.go │ │ ├── dots_switch_cases.sgrep │ │ ├── dots_type_tuple.go │ │ ├── dots_type_tuple.sgrep │ │ ├── equivalence_constant_dataflow.go.TODO │ │ ├── equivalence_constant_dataflow.sgrep.TODO │ │ ├── equivalence_constant_propagation.go │ │ ├── equivalence_interpolated_str.go │ │ ├── equivalence_interpolated_str.sgrep │ │ ├── equivalence_naming_import.go │ │ ├── equivalence_naming_import.sgrep │ │ ├── equivalence_naming_import1.go │ │ ├── equivalence_naming_import1.sgrep │ │ ├── equivalence_naming_import2.go │ │ ├── equivalence_naming_import2.sgrep │ │ ├── import_metavar.go │ │ ├── import_metavar.sgrep │ │ ├── import_metavar2.go │ │ ├── import_metavar2.sgrep │ │ ├── imports.go │ │ ├── imports.sgrep │ │ ├── imports2.sgrep │ │ ├── imports3.sgrep │ │ ├── imports_metavar.go │ │ ├── imports_metavar.sgrep │ │ ├── imports_prefix.go │ │ ├── imports_prefix.sgrep │ │ ├── interface_type_assertion.go │ │ ├── interface_type_assertion.sgrep │ │ ├── make-args-trans.go │ │ ├── make-args-trans.sgrep │ │ ├── make_ellipsis_firstarg.go │ │ ├── make_ellipsis_firstarg.sgrep │ │ ├── make_metavar_firstarg.go │ │ ├── make_metavar_firstarg.sgrep │ │ ├── make_tri_pat.go │ │ ├── make_tri_pat.sgrep │ │ ├── metavar-typing-structs-and-new.go │ │ ├── metavar-typing-structs-and-new.sgrep │ │ ├── metavar_arg.go │ │ ├── metavar_call.go │ │ ├── metavar_cond.go │ │ ├── metavar_cond.sgrep │ │ ├── metavar_ellipsis_args.go │ │ ├── metavar_ellipsis_stmts.go │ │ ├── metavar_ellipsis_stmts.sgrep │ │ ├── metavar_equality_expr.go │ │ ├── metavar_equality_stmt.go │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.go │ │ ├── metavar_equality_vardef_vs_use.go │ │ ├── metavar_equality_vardef_vs_use.sgrep │ │ ├── metavar_expr.go │ │ ├── metavar_expr.sgrep │ │ ├── metavar_func_def.go │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_import.go.TODO │ │ ├── metavar_import.sgrep.TODO │ │ ├── metavar_key_value.go │ │ ├── metavar_key_value.sgrep │ │ ├── metavar_package.go │ │ ├── metavar_package.sgrep │ │ ├── metavar_stmt.TODO │ │ ├── metavar_stmt.go │ │ ├── metavar_stmt.sgrep │ │ ├── metavar_type.go │ │ ├── metavar_type.sgrep │ │ ├── metavar_typed.go │ │ ├── metavar_typed.sgrep │ │ ├── metavar_typed_args.go │ │ ├── metavar_typed_args.sgrep │ │ ├── metavar_typed_fieldaccess.go.TODO │ │ ├── metavar_typed_fieldaccess.sgrep.TODO │ │ ├── metavar_typed_lefthand.go │ │ ├── metavar_typed_lefthand.sgrep │ │ ├── metavar_typed_literal.go │ │ ├── metavar_typed_literal.sgrep │ │ ├── metavar_typed_struct.go │ │ ├── metavar_typed_struct.sgrep │ │ ├── misc_assignop.go │ │ ├── misc_assignop.sgrep │ │ ├── misc_cast_autofix.go │ │ ├── misc_cast_autofix.sgrep │ │ ├── misc_compositelit.go │ │ ├── misc_compositelit.sgrep │ │ ├── misc_diff_pfff_treesitter.go │ │ ├── misc_diff_pfff_treesitter.sgrep │ │ ├── misc_empty_body.go │ │ ├── misc_empty_body.sgrep │ │ ├── misc_exprstmt_vs_expr.go │ │ ├── misc_exprstmt_vs_expr.sgrep │ │ ├── misc_functype_0arg.go │ │ ├── misc_functype_0arg.sgrep │ │ ├── misc_functype_0arg_bis.go │ │ ├── misc_functype_0arg_bis.sgrep │ │ ├── misc_hidden_empty.go │ │ ├── misc_hidden_empty.sgrep │ │ ├── misc_hidden_empty2.go │ │ ├── misc_hidden_empty2.sgrep │ │ ├── misc_import.go │ │ ├── misc_import.sgrep │ │ ├── misc_import_order.go │ │ ├── misc_import_order.sgrep │ │ ├── misc_initkey.go │ │ ├── misc_initkey.sgrep │ │ ├── misc_interface_method.go │ │ ├── misc_interface_method.sgrep │ │ ├── misc_noteq.go │ │ ├── misc_noteq.sgrep │ │ ├── misc_package.go │ │ ├── misc_package.sgrep │ │ ├── misc_ref_new.go │ │ ├── misc_ref_new.sgrep │ │ ├── misc_regression1.go │ │ ├── misc_regression1.sgrep │ │ ├── misc_tuple_order.go │ │ ├── misc_tuple_order.sgrep │ │ ├── misc_type_decl.go │ │ ├── misc_type_decl.sgrep │ │ ├── multiple_metavars.go │ │ ├── multiple_metavars.sgrep │ │ ├── package_metavar.go │ │ ├── package_metavar.sgrep │ │ ├── partial_function.go │ │ ├── partial_function.sgrep │ │ ├── partial_initbraces.go │ │ ├── partial_initbraces.sgrep │ │ ├── partial_single_field.go │ │ ├── partial_single_field.sgrep │ │ ├── partial_single_field2.go │ │ ├── partial_single_field2.sgrep │ │ ├── regexp_caret.go │ │ ├── regexp_caret.sgrep │ │ ├── regexp_import.go │ │ ├── regexp_import.sgrep │ │ ├── regexp_string.go │ │ ├── shortassign.go │ │ ├── shortassign.sgrep │ │ ├── string_literals.go │ │ ├── string_literals.sgrep │ │ ├── struct_tags.go │ │ ├── struct_tags.sgrep │ │ ├── struct_tags_one.go │ │ ├── struct_tags_one.sgrep │ │ ├── todo │ │ │ └── imports3.go │ │ ├── typing-make.go │ │ └── typing-make.sgrep │ ├── hack │ │ ├── TODO │ │ │ ├── equivalence_constant_propagation.hack │ │ │ ├── equivalence_constant_propagation.sgrep │ │ │ ├── equivalence_eq.hack │ │ │ ├── equivalence_eq.sgrep │ │ │ ├── equivalence_naming_import.hack │ │ │ └── equivalence_naming_import.sgrep │ │ ├── anonymous_metavar.hack │ │ ├── concrete_syntax.hack │ │ ├── deep_expr_operator.hack │ │ ├── deep_exprstmt.hack │ │ ├── dots_args.hack │ │ ├── dots_class_def.hack │ │ ├── dots_class_def.sgrep │ │ ├── dots_func_def.hack │ │ ├── dots_func_def.sgrep │ │ ├── dots_method_chaining.hack │ │ ├── dots_method_chaining.sgrep │ │ ├── dots_nested_stmts.hack │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_params.hack │ │ ├── dots_params.sgrep │ │ ├── dots_stmts.hack │ │ ├── dots_string.hack │ │ ├── metavar_anno_class.hack │ │ ├── metavar_anno_class.sgrep │ │ ├── metavar_arg.hack │ │ ├── metavar_call.hack │ │ ├── metavar_class_def.hack │ │ ├── metavar_cond.hack │ │ ├── metavar_cond.sgrep │ │ ├── metavar_ellipsis_args.hack │ │ ├── metavar_equality_expr.hack │ │ ├── metavar_equality_stmt.hack │ │ ├── metavar_equality_var.hack │ │ ├── metavar_func_def.hack │ │ ├── metavar_import.hack │ │ ├── metavar_import.sgrep │ │ └── metavar_stmt.hack │ ├── html │ │ ├── anonymous_metavar.html │ │ ├── anonymous_metavar.sgrep │ │ ├── metavar_attr_value.html │ │ ├── metavar_attr_value.sgrep │ │ ├── metavar_ellipsis_xmls.html │ │ ├── metavar_ellipsis_xmls.sgrep │ │ ├── metavar_tag.html │ │ ├── metavar_tag.sgrep │ │ ├── misc_many_features.html │ │ └── misc_many_features.sgrep │ ├── java │ │ ├── aliasing.TODO │ │ ├── aliasing_and_direct2.java │ │ ├── aliasing_and_direct2.sgrep │ │ ├── aliasing_qualified.java │ │ ├── aliasing_qualified.sgrep │ │ ├── aliasing_type.java │ │ ├── aliasing_type.sgrep │ │ ├── anonymous_metavar.java │ │ ├── better_import1.java │ │ ├── better_import1.sgrep │ │ ├── better_import2.java │ │ ├── better_import2.sgrep │ │ ├── better_import3.java │ │ ├── better_import3.sgrep │ │ ├── better_import4.java │ │ ├── better_import4.sgrep │ │ ├── boxing_equivalences_boolean.java │ │ ├── boxing_equivalences_boolean.sgrep │ │ ├── boxing_equivalences_boxed_boolean.java │ │ ├── boxing_equivalences_boxed_boolean.sgrep │ │ ├── boxing_equivalences_int.java │ │ ├── boxing_equivalences_int.sgrep │ │ ├── boxing_equivalences_integer.java │ │ ├── boxing_equivalences_integer.sgrep │ │ ├── boxing_equivalences_resolved_boolean.java │ │ ├── boxing_equivalences_resolved_boolean.sgrep │ │ ├── boxing_equivalences_resolved_integer.java │ │ ├── boxing_equivalences_resolved_integer.sgrep │ │ ├── boxing_equivalences_resolved_string.java │ │ ├── boxing_equivalences_resolved_string.sgrep │ │ ├── boxing_equivalences_string.java │ │ ├── boxing_equivalences_string.sgrep │ │ ├── concrete_syntax.java │ │ ├── cp_foreach.java │ │ ├── cp_foreach.sgrep │ │ ├── cp_is_must_analysis.java │ │ ├── cp_is_must_analysis.sgrep │ │ ├── cp_is_must_analysis1.java │ │ ├── cp_is_must_analysis1.sgrep │ │ ├── cp_is_must_analysis2.java │ │ ├── cp_is_must_analysis2.sgrep │ │ ├── cp_string_format.java │ │ ├── cp_string_format.sgrep │ │ ├── cp_switch_throw.java │ │ ├── cp_switch_throw.sgrep │ │ ├── cp_synchronized.java │ │ ├── cp_synchronized.sgrep │ │ ├── cp_synchronized1.java │ │ ├── cp_synchronized1.sgrep │ │ ├── cp_try_return.java │ │ ├── cp_try_return.sgrep │ │ ├── deep_cond.java │ │ ├── deep_cond.sgrep │ │ ├── deep_expr_operator.java │ │ ├── deep_exprstmt.java │ │ ├── dots_annotations.java │ │ ├── dots_annotations.sgrep │ │ ├── dots_annotations_brackets.java │ │ ├── dots_annotations_brackets.sgrep │ │ ├── dots_args.java │ │ ├── dots_attribute.java │ │ ├── dots_attribute.sgrep │ │ ├── dots_catch.java │ │ ├── dots_catch.sgrep │ │ ├── dots_enum.java │ │ ├── dots_enum.sgrep │ │ ├── dots_expr.java │ │ ├── dots_for.java │ │ ├── dots_generics.java │ │ ├── dots_generics.sgrep │ │ ├── dots_generics2.java │ │ ├── dots_generics2.sgrep │ │ ├── dots_import.java │ │ ├── dots_import.sgrep │ │ ├── dots_interface.java │ │ ├── dots_interface.sgrep │ │ ├── dots_method_chaining.java │ │ ├── dots_method_chaining2.java │ │ ├── dots_method_chaining2.sgrep │ │ ├── dots_method_chaining3.java │ │ ├── dots_method_chaining3.sgrep │ │ ├── dots_method_chaining_simple.java │ │ ├── dots_method_chaining_simple.sgrep │ │ ├── dots_nested_stmts.java │ │ ├── dots_params.java │ │ ├── dots_params.sgrep │ │ ├── dots_stmts.java │ │ ├── dots_string.java │ │ ├── dots_vardef.java │ │ ├── dots_vardef.sgrep │ │ ├── equivalence_constant_propagation.java │ │ ├── equivalence_constant_propagation.sgrep │ │ ├── equivalence_constant_propagation2.java │ │ ├── equivalence_constant_propagation2.sgrep │ │ ├── equivalence_constant_propagation_field.java │ │ ├── equivalence_constant_propagation_field.sgrep │ │ ├── errors │ │ │ ├── record_and_accents.java │ │ │ ├── recoverable_error1.java │ │ │ └── unrecoverable_error1.java │ │ ├── generics_args.java │ │ ├── generics_args.sgrep │ │ ├── id_qualified.java │ │ ├── id_qualified.sgrep │ │ ├── import_metavar_fullpath.java │ │ ├── import_metavar_fullpath.sgrep │ │ ├── less_generics.java │ │ ├── less_generics.sgrep │ │ ├── less_inheritance.java │ │ ├── less_inheritance.sgrep │ │ ├── metavar_anno.java │ │ ├── metavar_arg.java │ │ ├── metavar_as_type.java │ │ ├── metavar_as_type.sgrep │ │ ├── metavar_call.java │ │ ├── metavar_class_def.java │ │ ├── metavar_class_type.java │ │ ├── metavar_class_type.sgrep │ │ ├── metavar_cond.java │ │ ├── metavar_ellipsis_args.java │ │ ├── metavar_ellipsis_params.java │ │ ├── metavar_ellipsis_params.sgrep │ │ ├── metavar_equality_expr.java │ │ ├── metavar_equality_field_vs_use.java │ │ ├── metavar_equality_field_vs_use.sgrep │ │ ├── metavar_equality_stmt.java │ │ ├── metavar_equality_var.java │ │ ├── metavar_func_anno.java │ │ ├── metavar_func_anno.sgrep │ │ ├── metavar_func_def.java │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_idspecial.java │ │ ├── metavar_idspecial.sgrep │ │ ├── metavar_import.java │ │ ├── metavar_import.sgrep │ │ ├── metavar_name.java │ │ ├── metavar_name.sgrep │ │ ├── metavar_package.java │ │ ├── metavar_package.sgrep │ │ ├── metavar_qualified_id.java │ │ ├── metavar_qualified_id.sgrep │ │ ├── metavar_stmt.java │ │ ├── metavar_typed.java │ │ ├── metavar_typed.sgrep │ │ ├── metavar_typed_args.java │ │ ├── metavar_typed_args.sgrep │ │ ├── metavar_typed_bool.java │ │ ├── metavar_typed_bool.sgrep │ │ ├── metavar_typed_classfield.java │ │ ├── metavar_typed_classfield.sgrep │ │ ├── metavar_typed_dot_method.java │ │ ├── metavar_typed_dot_method.sgrep │ │ ├── metavar_typed_field.java │ │ ├── metavar_typed_field.sgrep │ │ ├── metavar_typed_fieldaccess.java.TODO │ │ ├── metavar_typed_fieldaccess.sgrep.TODO │ │ ├── metavar_typed_function.java │ │ ├── metavar_typed_function.sgrep │ │ ├── metavar_typed_if_statement.java │ │ ├── metavar_typed_if_statement.sgrep │ │ ├── metavar_typed_int.java │ │ ├── metavar_typed_int.sgrep │ │ ├── metavar_typed_lefthand.java │ │ ├── metavar_typed_lefthand.sgrep │ │ ├── metavar_typed_localvar.java │ │ ├── metavar_typed_localvar.sgrep │ │ ├── metavar_typed_methodcall.java │ │ ├── metavar_typed_methodcall.sgrep │ │ ├── metavar_typed_new.java │ │ ├── metavar_typed_new.sgrep │ │ ├── metavar_typed_qualified.java │ │ ├── metavar_typed_qualified.sgrep │ │ ├── metavar_typed_with_metavar.java │ │ ├── metavar_typed_with_metavar.sgrep │ │ ├── misc_accent_record.java │ │ ├── misc_accent_record.sgrep │ │ ├── misc_annot.java │ │ ├── misc_annot.sgrep │ │ ├── misc_assert.java │ │ ├── misc_assert.sgrep │ │ ├── misc_at_interface.java │ │ ├── misc_at_interface.sgrep │ │ ├── misc_at_interface2.java │ │ ├── misc_at_interface2.sgrep │ │ ├── misc_brace_semi.java │ │ ├── misc_brace_semi.sgrep │ │ ├── misc_class_literal.java │ │ ├── misc_class_literal.sgrep │ │ ├── misc_constructor.java │ │ ├── misc_constructor.sgrep │ │ ├── misc_constructor_public.java │ │ ├── misc_constructor_public.sgrep │ │ ├── misc_def_to_assign.java │ │ ├── misc_def_to_assign.sgrep │ │ ├── misc_generic.java │ │ ├── misc_generic.sgrep │ │ ├── misc_import_resolve.java │ │ ├── misc_import_resolve.sgrep │ │ ├── misc_import_resolve_unqualified.java │ │ ├── misc_import_resolve_unqualified.sgrep │ │ ├── misc_import_static.java │ │ ├── misc_import_static.sgrep │ │ ├── misc_instance_call.java │ │ ├── misc_instance_call.sgrep │ │ ├── misc_precedence.java │ │ ├── misc_precedence.sgrep │ │ ├── misc_record_pattern.java │ │ ├── misc_record_pattern.sgrep │ │ ├── misc_static_block.java │ │ ├── misc_static_block.sgrep │ │ ├── misc_super_call.java │ │ ├── misc_super_call.sgrep │ │ ├── misc_switch_e.java │ │ ├── misc_switch_e.sgrep │ │ ├── misc_token_cast.java │ │ ├── misc_token_cast.sgrep │ │ ├── misc_varargs.java │ │ ├── misc_varargs.sgrep │ │ ├── named_ellipsis_param.java │ │ ├── named_ellipsis_param.sgrep │ │ ├── named_ellipsis_stmt.java │ │ ├── named_ellipsis_stmt.sgrep │ │ ├── parameterized_type.java │ │ ├── parameterized_type.sgrep │ │ ├── partial_finally.java │ │ ├── partial_method.java │ │ ├── partial_method.sgrep │ │ ├── partial_try.java │ │ ├── perf_fields.java │ │ ├── perf_fields.sgrep │ │ ├── regexp_case_insensitive.java │ │ ├── regexp_pcre.java │ │ ├── regexp_string.java │ │ ├── statement_list.java │ │ ├── statement_list.sgrep │ │ ├── stmts_to_fields.java │ │ ├── stmts_to_fields.sgrep │ │ ├── try_mutli_resources.java │ │ ├── try_mutli_resources.sgrep │ │ ├── try_resources.java │ │ ├── try_resources.sgrep │ │ ├── typed_metavar_class.java │ │ ├── typed_metavar_class.sgrep │ │ ├── typed_metavar_foreach.java │ │ ├── typed_metavar_foreach.sgrep │ │ ├── typed_metavar_ternary.java │ │ ├── typed_metavar_ternary.sgrep │ │ ├── typed_metavar_var.java │ │ ├── typed_metavar_var.sgrep │ │ ├── unordered_implement.java │ │ ├── unordered_implement.sgrep │ │ ├── visit_attribute.java │ │ └── visit_attribute.sgrep │ ├── js │ │ ├── ac_matching_bitor.js │ │ ├── ac_matching_bitor.sgrep │ │ ├── aliasing.TODO │ │ ├── aliasing_require.js │ │ ├── aliasing_require.sgrep │ │ ├── anonymous_metavar.js │ │ ├── caching_deep.js │ │ ├── caching_deep.sgrep │ │ ├── caching_deep_metavar.js │ │ ├── caching_deep_metavar.sgrep │ │ ├── caching_different_depth.js │ │ ├── caching_different_depth.sgrep │ │ ├── caching_flat.js │ │ ├── caching_flat.sgrep │ │ ├── caching_nested.js │ │ ├── caching_nested.sgrep │ │ ├── concrete_syntax.js │ │ ├── cp_array_destructure.js │ │ ├── cp_array_destructure.sgrep │ │ ├── cp_conditional.js │ │ ├── cp_conditional.sgrep │ │ ├── cp_dataflow.js │ │ ├── cp_dataflow.sgrep │ │ ├── cp_implicit_conversion.js │ │ ├── cp_implicit_conversion.sgrep │ │ ├── cp_incrdecr.js │ │ ├── cp_incrdecr.sgrep │ │ ├── cp_label.js │ │ ├── cp_label.sgrep │ │ ├── cp_throw.js │ │ ├── cp_throw.sgrep │ │ ├── cp_undeclared.js │ │ ├── cp_undeclared.sgrep │ │ ├── cp_undeclared1.js │ │ ├── cp_undeclared1.sgrep │ │ ├── deep_cond.js │ │ ├── deep_cond.sgrep │ │ ├── deep_deep_stmt1.js │ │ ├── deep_deep_stmt1.sgrep │ │ ├── deep_deep_stmt2.js │ │ ├── deep_deep_stmt2.sgrep │ │ ├── deep_deep_stmt3.js │ │ ├── deep_deep_stmt3.sgrep │ │ ├── deep_expr_and_ellipsis.js │ │ ├── deep_expr_and_ellipsis.sgrep │ │ ├── deep_expr_operator.js │ │ ├── deep_expr_vs_statement.js │ │ ├── deep_expr_vs_statement.sgrep │ │ ├── deep_expr_xml.js │ │ ├── deep_expr_xml.sgrep │ │ ├── deep_exprstmt.js │ │ ├── deep_jsx.js │ │ ├── deep_jsx.sgrep │ │ ├── deep_stmt.js │ │ ├── deep_stmt.sgrep │ │ ├── deep_stmt2.js │ │ ├── deep_stmt2.sgrep │ │ ├── deep_stmt3.js │ │ ├── deep_stmt3.sgrep │ │ ├── deep_vardef.js │ │ ├── deep_vardef.sgrep │ │ ├── dots_args.js │ │ ├── dots_container.js │ │ ├── dots_container.sgrep │ │ ├── dots_container2.js │ │ ├── dots_container2.sgrep │ │ ├── dots_expr.js │ │ ├── dots_field_chaining.js │ │ ├── dots_field_chaining.sgrep │ │ ├── dots_for.js │ │ ├── dots_importfrom.js │ │ ├── dots_importfrom.sgrep │ │ ├── dots_jsx_attr.js │ │ ├── dots_jsx_attr.sgrep │ │ ├── dots_jsx_attr_list.js │ │ ├── dots_jsx_attr_list.sgrep │ │ ├── dots_jsx_body.js │ │ ├── dots_jsx_body.sgrep │ │ ├── dots_jsx_body2.js │ │ ├── dots_jsx_body2.sgrep │ │ ├── dots_method_chaining.js │ │ ├── dots_nested_stmts.js │ │ ├── dots_object.js │ │ ├── dots_object.sgrep │ │ ├── dots_object2.js │ │ ├── dots_object2.sgrep │ │ ├── dots_params.js │ │ ├── dots_params.sgrep │ │ ├── dots_pattern_record.js │ │ ├── dots_pattern_record.sgrep │ │ ├── dots_regexp.js │ │ ├── dots_regexp.sgrep │ │ ├── dots_stmts.js │ │ ├── dots_string.js │ │ ├── dots_string_no_interpolation.js │ │ ├── dots_string_no_interpolation.sgrep │ │ ├── dots_template_literals.js │ │ ├── dots_template_literals.sgrep │ │ ├── ellipsis_metavar_tagged_template.js │ │ ├── ellipsis_metavar_tagged_template.sgrep │ │ ├── ellipsis_metavar_template.js │ │ ├── ellipsis_metavar_template.sgrep │ │ ├── equivalence_aliasing_import.js │ │ ├── equivalence_aliasing_import.sgrep │ │ ├── equivalence_constant_propagation.js │ │ ├── equivalence_constant_propagation2.js │ │ ├── equivalence_constant_propagation2.sgrep │ │ ├── equivalence_constant_propagation3.js │ │ ├── equivalence_constant_propagation3.sgrep │ │ ├── equivalence_import_require.js │ │ ├── equivalence_import_require.sgrep │ │ ├── equivalence_import_variations.js │ │ ├── equivalence_import_variations.sgrep │ │ ├── equivalence_import_variations2.js │ │ ├── equivalence_import_variations2.sgrep │ │ ├── equivalence_import_variations3.js │ │ ├── equivalence_import_variations3.sgrep │ │ ├── equivalence_import_variations4.js │ │ ├── equivalence_import_variations4.sgrep │ │ ├── equivalence_keyword_args.js │ │ ├── equivalence_keyword_args.sgrep │ │ ├── equivalence_naming_import.TODO │ │ ├── equivalence_varlet.js │ │ ├── equivalence_varlet.sgrep │ │ ├── eval_call.js │ │ ├── eval_call.sgrep │ │ ├── infer_const.js │ │ ├── infer_const.sgrep │ │ ├── infer_const_1.js │ │ ├── infer_const_1.sgrep │ │ ├── infer_const_regexp.js │ │ ├── infer_const_regexp.sgrep │ │ ├── less_class_complex.js │ │ ├── less_class_complex.sgrep │ │ ├── less_class_complex_2.js │ │ ├── less_class_complex_2.sgrep │ │ ├── less_inheritance.js │ │ ├── less_inheritance.sgrep │ │ ├── less_xml_attr.js │ │ ├── less_xml_attr.sgrep │ │ ├── less_xml_body.js │ │ ├── less_xml_body.sgrep │ │ ├── metavar_anno.js │ │ ├── metavar_arg.js │ │ ├── metavar_call.js │ │ ├── metavar_class_def.js │ │ ├── metavar_class_fields.js │ │ ├── metavar_class_fields.sgrep │ │ ├── metavar_cond.js │ │ ├── metavar_ellipsis_args.js │ │ ├── metavar_equality_expr.js │ │ ├── metavar_equality_stmt.js │ │ ├── metavar_equality_var.js │ │ ├── metavar_equality_vardef_vs_use.js │ │ ├── metavar_equality_vardef_vs_use.sgrep │ │ ├── metavar_func_def.js │ │ ├── metavar_import.js │ │ ├── metavar_import.sgrep │ │ ├── metavar_import2.js │ │ ├── metavar_import2.sgrep │ │ ├── metavar_import3.js │ │ ├── metavar_import3.sgrep │ │ ├── metavar_importfrom.js │ │ ├── metavar_importfrom.sgrep │ │ ├── metavar_importfrom2.js │ │ ├── metavar_importfrom2.sgrep │ │ ├── metavar_jsx_attr.js │ │ ├── metavar_jsx_attr.sgrep │ │ ├── metavar_jsx_tag.js │ │ ├── metavar_jsx_tag.sgrep │ │ ├── metavar_jsx_val.js │ │ ├── metavar_jsx_val.sgrep │ │ ├── metavar_key_value.js │ │ ├── metavar_regexp.js │ │ ├── metavar_regexp.sgrep │ │ ├── metavar_stmt.js │ │ ├── metavar_stmt_or_expr.js │ │ ├── metavar_stmt_or_expr.sgrep │ │ ├── metavar_template.js │ │ ├── metavar_template.sgrep │ │ ├── metavar_typed_bool.js │ │ ├── metavar_typed_bool.sgrep │ │ ├── metavar_typed_literal.js │ │ ├── metavar_typed_literal.sgrep │ │ ├── metavar_xml_attr.js │ │ ├── metavar_xml_attr.sgrep │ │ ├── misc_arrow.js │ │ ├── misc_arrow.sgrep │ │ ├── misc_arrow2.js │ │ ├── misc_arrow2.sgrep │ │ ├── misc_asi_pattern.js │ │ ├── misc_asi_pattern.sgrep │ │ ├── misc_catch_unbound.js │ │ ├── misc_catch_unbound.sgrep │ │ ├── misc_decorators_method.js │ │ ├── misc_decorators_method.sgrep │ │ ├── misc_deep_expr_stmt.js │ │ ├── misc_deep_expr_stmt.sgrep │ │ ├── misc_destructuring.js │ │ ├── misc_destructuring.sgrep │ │ ├── misc_destructuring3.js │ │ ├── misc_destructuring3.sgrep │ │ ├── misc_destructuring_2.js │ │ ├── misc_destructuring_2.sgrep │ │ ├── misc_else_blocks_brace.js │ │ ├── misc_else_blocks_no_brace.js │ │ ├── misc_empty_body.js │ │ ├── misc_empty_body.sgrep │ │ ├── misc_export.js │ │ ├── misc_export.sgrep │ │ ├── misc_expr_vs_vardef.js │ │ ├── misc_expr_vs_vardef.sgrep │ │ ├── misc_faketok.js │ │ ├── misc_faketok.sgrep │ │ ├── misc_field_vs_vardef.js │ │ ├── misc_field_vs_vardef.sgrep │ │ ├── misc_foreach.js │ │ ├── misc_foreach.sgrep │ │ ├── misc_foreach1.js │ │ ├── misc_foreach1.sgrep │ │ ├── misc_if_blocks_brace.js │ │ ├── misc_if_blocks_no_brace.js │ │ ├── misc_jsx.js │ │ ├── misc_jsx.sgrep │ │ ├── misc_jsx_and_obj.js │ │ ├── misc_jsx_and_obj.sgrep │ │ ├── misc_lambda.js │ │ ├── misc_lambda.sgrep │ │ ├── misc_metavar_with_digit.js │ │ ├── misc_metavar_with_digit.sgrep │ │ ├── misc_method_brace_newline.js │ │ ├── misc_method_brace_newline.sgrep │ │ ├── misc_method_chain_vs_stmt.js │ │ ├── misc_method_chain_vs_stmt.sgrep │ │ ├── misc_nested_field.js │ │ ├── misc_nested_field.sgrep │ │ ├── misc_new.js │ │ ├── misc_new.sgrep │ │ ├── misc_notoken.js │ │ ├── misc_notoken.sgrep │ │ ├── misc_null_cast.js │ │ ├── misc_null_cast.sgrep │ │ ├── misc_object_directly.js │ │ ├── misc_object_directly.sgrep │ │ ├── misc_regexp_modifier.js │ │ ├── misc_regexp_modifier.sgrep │ │ ├── misc_semicolon.js │ │ ├── misc_semicolon.sgrep │ │ ├── misc_string.js │ │ ├── misc_string.sgrep │ │ ├── misc_tagged_template_literal.js │ │ ├── misc_tagged_template_literal.sgrep │ │ ├── misc_this.js │ │ ├── misc_this.sgrep │ │ ├── misc_unicode.js │ │ ├── misc_unicode.sgrep │ │ ├── misc_yield_undefined.js │ │ ├── misc_yield_undefined.sgrep │ │ ├── object_duplicate_key.js │ │ ├── object_duplicate_key.sgrep │ │ ├── object_numeric_key.js │ │ ├── object_numeric_key.sgrep │ │ ├── partial_catch.js │ │ ├── partial_catch.sgrep │ │ ├── partial_class.js │ │ ├── partial_decorators_arg_method.js │ │ ├── partial_decorators_arg_method.sgrep │ │ ├── partial_decorators_method.js │ │ ├── partial_decorators_method.sgrep │ │ ├── partial_finally.js │ │ ├── partial_function.js │ │ ├── partial_function.sgrep │ │ ├── partial_if.js │ │ ├── partial_lambda_or_func.js │ │ ├── partial_lambda_or_func.sgrep │ │ ├── partial_single_field.js │ │ ├── partial_single_field.sgrep │ │ ├── partial_try.js │ │ ├── regexp.js │ │ ├── regexp.sgrep │ │ ├── regexp_fieldname.js │ │ ├── regexp_fieldname.sgrep │ │ ├── regexp_string.js │ │ ├── semgrep │ │ │ ├── jsx.sgrep │ │ │ └── metavar_jsx.sgrep │ │ ├── switch_case_pattern.js │ │ ├── switch_case_pattern.sgrep │ │ ├── template_string_w_metavar.js │ │ ├── template_string_w_metavar.sgrep │ │ ├── typed_metavar_assign.js │ │ ├── typed_metavar_assign.sgrep │ │ ├── unordered_destructuring.js │ │ ├── unordered_destructuring.sgrep │ │ ├── unordered_fields.js │ │ ├── unordered_fields.sgrep │ │ ├── unordered_fields2.js │ │ ├── unordered_fields2.sgrep │ │ ├── unordered_metavar.js │ │ ├── unordered_metavar.sgrep │ │ ├── unordered_xml_attr.js │ │ └── unordered_xml_attr.sgrep │ ├── json │ │ ├── anonymous_metavar.json │ │ ├── deep_expr_operator.json │ │ ├── deep_expr_operator.sgrep │ │ ├── dots_dict.json │ │ ├── dots_dict.sgrep │ │ ├── metavar_array.json │ │ ├── metavar_array.sgrep │ │ ├── metavar_field.json │ │ ├── metavar_field.sgrep │ │ ├── partial_single_field.json │ │ ├── partial_single_field.sgrep │ │ ├── partial_single_field2.json │ │ ├── partial_single_field2.sgrep │ │ ├── partial_single_field_metavar.json │ │ └── partial_single_field_metavar.sgrep │ ├── jsonnet │ │ ├── anonymous_metavar.jsonnet │ │ ├── concrete_syntax.jsonnet │ │ ├── deep_expr_operator.jsonnet │ │ ├── deep_expr_operator.sgrep │ │ ├── dots_args.jsonnet │ │ ├── dots_string.jsonnet │ │ ├── metavar_arg.jsonnet │ │ ├── metavar_call.jsonnet │ │ ├── metavar_equality_var.jsonnet │ │ └── metavar_equality_var.sgrep │ ├── julia │ │ ├── anonymous_metavar.jl │ │ ├── concrete_syntax.jl │ │ ├── deep_expr_operator.jl │ │ ├── deep_exprstmt.jl │ │ ├── do_block_metavar.jl │ │ ├── do_block_metavar.sgrep │ │ ├── dots_args.jl │ │ ├── dots_nested_stmts.jl │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_stmts.jl │ │ ├── dots_string.jl │ │ ├── ellipsis_catch.jl │ │ ├── ellipsis_catch.sgrep │ │ ├── empty_catch.jl │ │ ├── empty_catch.sgrep │ │ ├── implicit_return.jl │ │ ├── implicit_return.sgrep │ │ ├── implicit_return_inside_funcbody_expr.jl │ │ ├── implicit_return_inside_funcbody_expr.sgrep │ │ ├── implicit_return_inside_funcdef.jl │ │ ├── implicit_return_inside_funcdef.sgrep │ │ ├── implicit_return_inside_lambda.jl │ │ ├── implicit_return_inside_lambda.sgrep │ │ ├── import_alias.jl │ │ ├── import_alias.sgrep │ │ ├── import_import.jl │ │ ├── import_import.sgrep │ │ ├── import_metavar.jl │ │ ├── import_metavar.sgrep │ │ ├── let_ellipsis.jl │ │ ├── let_ellipsis.sgrep │ │ ├── metavar_arg.jl │ │ ├── metavar_call.jl │ │ ├── metavar_equality_var.jl │ │ ├── op_plus.jl │ │ ├── op_plus.sgrep │ │ ├── single_statement_block.jl │ │ ├── single_statement_block.sgrep │ │ ├── using_alias.jl │ │ ├── using_alias.sgrep │ │ ├── using_import.jl │ │ └── using_import.sgrep │ ├── kotlin │ │ ├── anonymous_metavar.kt │ │ ├── bigger_class_with_newline.kt │ │ ├── bigger_class_with_newline.sgrep │ │ ├── class_newline.kt │ │ ├── class_newline.sgrep │ │ ├── concrete_syntax.kt │ │ ├── deep_expr_operator.kt │ │ ├── deep_exprstmt.kt │ │ ├── deep_exprstmt.sgrep │ │ ├── dots_args.kt │ │ ├── dots_class_params.kt │ │ ├── dots_class_params.sgrep │ │ ├── dots_fields.kt │ │ ├── dots_fields.sgrep │ │ ├── dots_method_chaining.kt │ │ ├── dots_nested_stmts.kt │ │ ├── dots_params.kt │ │ ├── dots_params.sgrep │ │ ├── dots_stmts.TODO │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.kt │ │ ├── in_class_const_prop.kt │ │ ├── in_class_const_prop.sgrep │ │ ├── in_class_typing.kt │ │ ├── in_class_typing.sgrep │ │ ├── interpolated_ident.kt │ │ ├── interpolated_ident.sgrep │ │ ├── metavar_arg.kt │ │ ├── metavar_call.kt │ │ ├── metavar_class_def.kt │ │ ├── metavar_cond.kt │ │ ├── metavar_cond.sgrep │ │ ├── metavar_equality_expr.kt │ │ ├── metavar_equality_stmt.kt │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.TODO │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_func_def.kt │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_import.kt │ │ ├── metavar_import.sgrep │ │ ├── metavar_stmt.kt │ │ ├── metavar_stmt.sgrep │ │ ├── metavar_typed.kt │ │ ├── metavar_typed.sgrep │ │ ├── misc_call_in_assign.kt │ │ ├── misc_call_in_assign.sgrep │ │ ├── misc_trailing_lambda1.kt │ │ ├── misc_trailing_lambda1.sgrep │ │ ├── misc_trailing_lambda2.kt │ │ ├── misc_trailing_lambda2.sgrep │ │ ├── not_string_metavar.kt │ │ ├── not_string_metavar.sgrep │ │ ├── single_interpolated_ident.kt │ │ ├── single_interpolated_ident.sgrep │ │ ├── string_metavar.kt │ │ ├── string_metavar.sgrep │ │ ├── unordered_extend.kt │ │ └── unordered_extend.sgrep │ ├── lua │ │ ├── anonymous_metavar.lua │ │ ├── assignment.lua │ │ ├── assignment.sgrep │ │ ├── comparison.lua │ │ ├── comparison.sgrep │ │ ├── concrete_syntax.lua │ │ ├── deep_exprstmt.lua │ │ ├── dots_args.lua │ │ ├── dots_nested_stmts.lua │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_stmts.lua │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.lua │ │ ├── metavar_arg.lua │ │ ├── metavar_call.lua │ │ └── metavar_equality_var.lua │ ├── move_on_aptos │ │ ├── concrete_syntax.move │ │ ├── deep_expr_operator.move │ │ ├── deep_expr_operator.sgrep │ │ ├── deep_exprstmt.move │ │ ├── deep_exprstmt.sgrep │ │ ├── dots_args.move │ │ ├── dots_method_chaining.move │ │ ├── dots_nested_stmts.move │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_stmts.move │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.move │ │ ├── dots_string.sgrep │ │ ├── enum_alt_syntax.move │ │ ├── enum_alt_syntax.sgrep │ │ ├── equivalence_constant_propagation.move │ │ ├── equivalence_constant_propagation.sgrep │ │ ├── equivalence_naming_import.move │ │ ├── equivalence_naming_import.sgrep │ │ ├── metavar_anno.move │ │ ├── metavar_anno.sgrep │ │ ├── metavar_arg.move │ │ ├── metavar_call.move │ │ ├── metavar_class_def.move │ │ ├── metavar_class_def.sgrep │ │ ├── metavar_cond.move │ │ ├── metavar_cond.sgrep │ │ ├── metavar_ellipsis_args.move │ │ ├── metavar_equality_expr.move │ │ ├── metavar_equality_stmt.move │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.move │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_func_def.move │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_import.move │ │ ├── metavar_import.sgrep │ │ ├── metavar_stmt.move │ │ ├── metavar_stmt.sgrep │ │ ├── metavar_typed.move │ │ ├── metavar_typed.sgrep │ │ ├── misc_address_value.move │ │ ├── misc_address_value.sgrep │ │ ├── misc_vector_value.move │ │ ├── misc_vector_value.sgrep │ │ ├── pattern_enum.move │ │ ├── pattern_enum.sgrep │ │ ├── struct_alt_syntax.move │ │ ├── struct_alt_syntax.sgrep │ │ ├── visibility_package.move │ │ └── visibility_package.sgrep │ ├── move_on_sui │ │ ├── concrete_syntax.move │ │ ├── deep_expr_operator.move │ │ ├── deep_expr_operator.sgrep │ │ ├── deep_exprstmt.move │ │ ├── deep_exprstmt.sgrep │ │ ├── dots_args.move │ │ ├── dots_method_chaining.move │ │ ├── dots_nested_stmts.move │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_stmts.move │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.move │ │ ├── dots_string.sgrep │ │ ├── equivalence_constant_propagation.move │ │ ├── equivalence_constant_propagation.sgrep │ │ ├── equivalence_naming_import.move │ │ ├── equivalence_naming_import.sgrep │ │ ├── metavar_anno.move │ │ ├── metavar_anno.sgrep │ │ ├── metavar_arg.move │ │ ├── metavar_call.move │ │ ├── metavar_class_def.move │ │ ├── metavar_class_def.sgrep │ │ ├── metavar_cond.move │ │ ├── metavar_cond.sgrep │ │ ├── metavar_ellipsis_args.move │ │ ├── metavar_equality_expr.move │ │ ├── metavar_equality_stmt.move │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.move │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_func_def.move │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_import.move │ │ ├── metavar_import.sgrep │ │ ├── metavar_stmt.move │ │ ├── metavar_stmt.sgrep │ │ ├── metavar_typed.move │ │ └── metavar_typed.sgrep │ ├── ocaml │ │ ├── aliasing_qualified.ml │ │ ├── aliasing_qualified.sgrep │ │ ├── aliasing_qualified_contructor.ml │ │ ├── aliasing_qualified_contructor.sgrep │ │ ├── anonymous_metavar.ml │ │ ├── concrete_syntax.ml │ │ ├── concrete_syntax.sgrep │ │ ├── dots_args.ml │ │ ├── dots_args.sgrep │ │ ├── dots_let_body.ml │ │ ├── dots_let_body.sgrep │ │ ├── dots_match_cases.ml │ │ ├── dots_match_cases.sgrep │ │ ├── dots_nested_stmts.ml │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_params.ml │ │ ├── dots_params.sgrep │ │ ├── dots_string.ml │ │ ├── dots_string.sgrep │ │ ├── equivalence_number.ml │ │ ├── equivalence_number.sgrep │ │ ├── foo.ml │ │ ├── foo.sgrep │ │ ├── local_open.TODO │ │ ├── local_open.sgrep │ │ ├── metavar_arg.ml │ │ ├── metavar_arg.sgrep │ │ ├── metavar_call.ml │ │ ├── metavar_call.sgrep │ │ ├── metavar_cond.ml │ │ ├── metavar_cond.sgrep │ │ ├── metavar_ellipsis_args.ml │ │ ├── metavar_ellipsis_args.sgrep │ │ ├── metavar_equality_expr.ml │ │ ├── metavar_equality_expr.sgrep │ │ ├── metavar_equality_stmt.ml │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.ml │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_func_def.ml │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_module.ml │ │ ├── metavar_module.sgrep │ │ ├── metavar_stmt.ml │ │ ├── metavar_stmt.sgrep │ │ ├── misc_ctor_one_arg.ml │ │ ├── misc_ctor_one_arg.sgrep │ │ ├── misc_functor.ml │ │ ├── misc_functor.sgrep │ │ ├── misc_let_and_attribute.ml │ │ ├── misc_let_and_attribute.sgrep │ │ ├── misc_match_case.ml │ │ ├── misc_match_case.sgrep │ │ ├── misc_notokenloc.ml │ │ ├── misc_notokenloc.sgrep │ │ ├── misc_try.ml │ │ ├── misc_try.sgrep │ │ ├── misc_useless_else.ml │ │ ├── misc_useless_else.sgrep │ │ ├── partial_if.ml │ │ ├── partial_if.sgrep │ │ ├── partial_let.ml │ │ ├── partial_let.sgrep │ │ ├── partial_match.ml │ │ ├── partial_match.sgrep │ │ ├── partial_try.ml │ │ ├── partial_try.sgrep │ │ ├── regexp.ml │ │ ├── regexp.sgrep │ │ ├── regexp_string.ml │ │ └── regexp_string.sgrep │ ├── php │ │ ├── anonymous_metavar.php │ │ ├── assoc_concat.php │ │ ├── assoc_concat.sgrep │ │ ├── backed_enum.php │ │ ├── backed_enum.sgrep │ │ ├── case_insensitive_function_id.php │ │ ├── case_insensitive_function_id.sgrep │ │ ├── concrete_syntax.php │ │ ├── constant_propogation.php │ │ ├── constant_propogation.sgrep │ │ ├── cp_builtin.php │ │ ├── cp_builtin.sgrep │ │ ├── cp_global.php │ │ ├── cp_global.sgrep │ │ ├── cp_import.php │ │ ├── cp_import.sgrep │ │ ├── deep_expr_operator.php │ │ ├── deep_exprstmt.php │ │ ├── dots_args.php │ │ ├── dots_args_in_block.php │ │ ├── dots_args_in_block.sgrep │ │ ├── dots_args_isset.php │ │ ├── dots_args_isset.sgrep │ │ ├── dots_array.php │ │ ├── dots_array.sgrep │ │ ├── dots_backquote.php │ │ ├── dots_backquote.sgrep │ │ ├── dots_echo.php │ │ ├── dots_echo.sgrep │ │ ├── dots_eval.php │ │ ├── dots_eval.sgrep │ │ ├── dots_foreach.php │ │ ├── dots_foreach.sgrep │ │ ├── dots_func_in_class.php │ │ ├── dots_func_in_class.sgrep │ │ ├── dots_include.php │ │ ├── dots_include.sgrep │ │ ├── dots_include1.php │ │ ├── dots_include1.sgrep │ │ ├── dots_interpolated.php │ │ ├── dots_interpolated.sgrep │ │ ├── dots_method_chaining.php │ │ ├── dots_method_chaining.sgrep │ │ ├── dots_method_chaining_simple.php │ │ ├── dots_method_chaining_simple.sgrep │ │ ├── dots_nested_stmts.php │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_stmts.php │ │ ├── dots_string.php │ │ ├── equivalence_constant_propagation.php │ │ ├── foo.php │ │ ├── foo.sgrep │ │ ├── gh_5594.php │ │ ├── gh_5594.sgrep │ │ ├── gh_5880.php │ │ ├── gh_5880.sgrep │ │ ├── metavar_anno.php │ │ ├── metavar_anno.sgrep │ │ ├── metavar_arg.php │ │ ├── metavar_call.php │ │ ├── metavar_class.php │ │ ├── metavar_class.sgrep │ │ ├── metavar_class_def.php │ │ ├── metavar_class_def.sgrep │ │ ├── metavar_cond.php │ │ ├── metavar_ellipsis_args.php │ │ ├── metavar_equality_expr.php │ │ ├── metavar_equality_stmt.php │ │ ├── metavar_equality_var.php │ │ ├── metavar_func_def.php │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_import.php │ │ ├── metavar_import.sgrep │ │ ├── metavar_method.php │ │ ├── metavar_method.sgrep │ │ ├── metavar_param.php │ │ ├── metavar_param.sgrep │ │ ├── metavar_param_default.php │ │ ├── metavar_param_default.sgrep │ │ ├── metavar_stmt.php │ │ ├── metavar_string.php │ │ ├── metavar_underscore.php │ │ ├── metavar_underscore.sgrep │ │ ├── misc_boolean_propagation.php │ │ ├── misc_boolean_propagation.sgrep │ │ ├── misc_dots.php │ │ ├── misc_dots.sgrep │ │ ├── misc_goto.php │ │ ├── misc_goto.sgrep │ │ ├── misc_param_default.php │ │ ├── misc_param_default.sgrep │ │ ├── misc_parameter_type_qualified.php │ │ ├── misc_parameter_type_qualified.sgrep │ │ ├── misc_parsing_keyword_as_id.php │ │ ├── misc_parsing_keyword_as_id.sgrep │ │ ├── misc_public_method.php │ │ ├── misc_public_method.sgrep │ │ ├── misc_stmt1_fbody.php │ │ ├── misc_stmt1_fbody.sgrep │ │ ├── misc_superglobals.php │ │ ├── misc_superglobals.sgrep │ │ ├── multiple_interfaces.php │ │ ├── multiple_interfaces.sgrep │ │ ├── named_arguments.php │ │ ├── named_arguments.sgrep │ │ ├── naming_origname_use_group.php │ │ ├── naming_origname_use_group.sgrep │ │ ├── naming_origname_use_single.php │ │ ├── naming_origname_use_single.sgrep │ │ ├── naming_rename_use_group.php │ │ ├── naming_rename_use_group.sgrep │ │ ├── naming_rename_use_single.php │ │ ├── naming_rename_use_single.sgrep │ │ ├── partial_if.php │ │ ├── regexp_string.php │ │ ├── sgrep │ │ │ ├── argref.php │ │ │ ├── boolean_vs_int.php │ │ │ ├── case_sensitive.php │ │ │ ├── debug_rlog.php │ │ │ ├── dots_in_brackets.php │ │ │ ├── expr_pattern.php │ │ │ ├── fbt.php │ │ │ ├── foo.php │ │ │ ├── foo_expr.sgrep │ │ │ ├── foreach.php │ │ │ ├── foreach.sgrep │ │ │ ├── foreach.spatch │ │ │ ├── foreach2.spatch │ │ │ ├── if.php │ │ │ ├── keywords_arguments.php │ │ │ ├── many_args.php │ │ │ ├── many_args.sgrep │ │ │ ├── multi.sgrep │ │ │ ├── namespace.php │ │ │ ├── namespace2.php │ │ │ ├── new_var.php │ │ │ ├── regexp.php │ │ │ ├── regexp.sgrep │ │ │ ├── return_this.php │ │ │ ├── statement_pattern.php │ │ │ ├── static_initializers.php │ │ │ ├── string_args.php │ │ │ ├── trailing_comma.php │ │ │ ├── xhp.php │ │ │ ├── xhp_metavar.php │ │ │ ├── xhp_metavar2.php │ │ │ └── xhp_metavar_attr.php │ │ └── spatch │ │ │ ├── add_statement.exp │ │ │ ├── add_statement.php │ │ │ ├── add_statement.spatch │ │ │ ├── array_to_int_array.php │ │ │ ├── bar.exp │ │ │ ├── bar.php │ │ │ ├── bar.spatch │ │ │ ├── bar2.exp │ │ │ ├── bar2.php │ │ │ ├── distr_plus.exp │ │ │ ├── distr_plus.php │ │ │ ├── distr_plus.spatch │ │ │ ├── error │ │ │ ├── transfo_on_comma_varargs.php │ │ │ ├── transfo_on_comma_varargs.spatch │ │ │ └── transfo_on_comma_varargs_ok.spatch │ │ │ ├── errors │ │ │ ├── missing_paren.php │ │ │ ├── missing_paren.spatch │ │ │ ├── transfo_not_at_start.php │ │ │ └── transfo_not_at_start.spatch │ │ │ ├── foo.exp │ │ │ ├── foo.php │ │ │ ├── foo.spatch │ │ │ ├── generics.php │ │ │ ├── generics.spatch │ │ │ ├── lvalue.exp │ │ │ ├── lvalue.php │ │ │ ├── lvalue.spatch │ │ │ ├── new.exp │ │ │ ├── new.php │ │ │ ├── new.spatch │ │ │ ├── pb_space_instanceof.exp │ │ │ ├── pb_space_instanceof.php │ │ │ ├── pb_space_instanceof.spatch │ │ │ ├── pb_space_new.exp │ │ │ ├── pb_space_new.php │ │ │ ├── pb_space_new.spatch │ │ │ ├── regexp.exp │ │ │ ├── regexp.php │ │ │ ├── regexp.spatch │ │ │ ├── remove_space_between.exp │ │ │ ├── remove_space_between.php │ │ │ ├── remove_space_between.spatch │ │ │ ├── remove_trailing_comma.exp │ │ │ ├── remove_trailing_comma.php │ │ │ ├── remove_trailing_comma.spatch │ │ │ ├── remove_trailing_comment.exp │ │ │ ├── remove_trailing_comment.php │ │ │ ├── remove_trailing_comment.spatch │ │ │ ├── remove_whole_line.exp │ │ │ ├── remove_whole_line.php │ │ │ ├── remove_whole_line.spatch │ │ │ ├── space.spatch │ │ │ ├── static_scalar.exp │ │ │ ├── static_scalar.php │ │ │ ├── static_scalar.spatch │ │ │ ├── stmts_fuzzy.php │ │ │ ├── stmts_fuzzy.spatch │ │ │ ├── todo │ │ │ ├── 1.php │ │ │ ├── add_statement_indented.php │ │ │ ├── arg_assert.php │ │ │ ├── arg_assert2.php │ │ │ ├── border1.php │ │ │ ├── fbt.php │ │ │ ├── fbt_locale.php │ │ │ ├── fbt_optional_last_arg.php │ │ │ ├── fbts.php │ │ │ ├── fbts_locale.php │ │ │ ├── funcall_multiline.php │ │ │ ├── metavar.php │ │ │ ├── metavar.spatch │ │ │ ├── multiline.php │ │ │ ├── multiline.spatch │ │ │ ├── multiline2.spatch │ │ │ ├── pb_indent.php │ │ │ ├── pb_indent.spatch │ │ │ ├── pb_space_or.php │ │ │ ├── pb_space_or.spatch │ │ │ ├── reindent_expr.php │ │ │ ├── reindent_expr.spatch │ │ │ ├── reindent_expr2.php │ │ │ ├── remove_second_arg.php │ │ │ ├── remove_second_arg.spatch │ │ │ ├── remove_second_arg2.spatch │ │ │ ├── stmts.php │ │ │ ├── stmts.spatch │ │ │ └── ui_form.php │ │ │ ├── todo2 │ │ │ ├── border.exp │ │ │ ├── border.php │ │ │ ├── border.spatch │ │ │ ├── border_var.exp │ │ │ ├── border_var.php │ │ │ ├── border_var.spatch │ │ │ ├── border_var2.exp │ │ │ ├── border_var2.php │ │ │ ├── entgeneric.exp │ │ │ ├── entgeneric.php │ │ │ ├── entgeneric.spatch │ │ │ ├── entuser.exp │ │ │ ├── entuser.php │ │ │ ├── entuser.spatch │ │ │ ├── remove_refarg.exp │ │ │ ├── remove_refarg.php │ │ │ ├── remove_refarg.spatch │ │ │ ├── space1.exp │ │ │ └── space1.php │ │ │ ├── type.exp │ │ │ ├── type.php │ │ │ ├── type.spatch │ │ │ ├── xhp_metavar.exp │ │ │ ├── xhp_metavar.php │ │ │ ├── xhp_metavar.spatch │ │ │ ├── xhp_nested.exp │ │ │ ├── xhp_nested.php │ │ │ └── xhp_nested.spatch │ ├── promql │ │ ├── aggregation.promql │ │ ├── aggregation.sgrep │ │ ├── anonymous_metavar.promql │ │ ├── binary_ellipsis.promql │ │ ├── binary_ellipsis.sgrep │ │ ├── complex_func.promql │ │ ├── complex_func.sgrep │ │ ├── empty_selector.promql │ │ ├── empty_selector.sgrep │ │ ├── func.promql │ │ ├── func.sgrep │ │ ├── grouping.promql │ │ ├── grouping.sgrep │ │ ├── selector.promql │ │ ├── selector.sgrep │ │ ├── selector_ellipsis.promql │ │ ├── selector_ellipsis.sgrep │ │ ├── selector_with_name_label.promql │ │ ├── selector_with_name_label.sgrep │ │ ├── selector_without_labels.promql │ │ ├── selector_without_labels.sgrep │ │ ├── subquery.promql │ │ ├── subquery.sgrep │ │ ├── subquery_in_func.promql │ │ ├── subquery_in_func.sgrep │ │ ├── subquery_vs_range_selector.promql │ │ └── subquery_vs_range_selector.sgrep │ ├── protobuf │ │ └── simple.sgrep │ ├── python │ │ ├── ac_matching_dots.py │ │ ├── ac_matching_dots.sgrep │ │ ├── ac_matching_dots1.py │ │ ├── ac_matching_dots1.sgrep │ │ ├── ac_matching_explosion.py │ │ ├── ac_matching_explosion.sgrep │ │ ├── ac_matching_explosion1.py │ │ ├── ac_matching_explosion1.sgrep │ │ ├── ac_matching_explosion2.py │ │ ├── ac_matching_explosion2.sgrep │ │ ├── ac_matching_explosion3.py │ │ ├── ac_matching_explosion3.sgrep │ │ ├── ac_matching_free.py │ │ ├── ac_matching_free.sgrep │ │ ├── ac_matching_free1.py │ │ ├── ac_matching_free1.sgrep │ │ ├── ac_matching_if.py │ │ ├── ac_matching_if.sgrep │ │ ├── ac_matching_if1.py │ │ ├── ac_matching_if1.sgrep │ │ ├── ac_matching_mvars.py │ │ ├── ac_matching_mvars.sgrep │ │ ├── ac_matching_mvars1.py │ │ ├── ac_matching_mvars1.sgrep │ │ ├── ac_matching_mvars2.py │ │ ├── ac_matching_mvars2.sgrep │ │ ├── aliasing_and_direct.py │ │ ├── aliasing_and_direct.sgrep │ │ ├── aliasing_attribute.py │ │ ├── aliasing_attribute.sgrep │ │ ├── already_resolved_with_wildcard.py │ │ ├── already_resolved_with_wildcard.sgrep │ │ ├── anonymous_metavar.py │ │ ├── any_qualified_with_wildcard.py │ │ ├── any_qualified_with_wildcard.sgrep │ │ ├── assoc_matching_bug.py │ │ ├── assoc_matching_bug.sgrep │ │ ├── assoc_matching_dots.py │ │ ├── assoc_matching_dots.sgrep │ │ ├── assoc_matching_dots1.py │ │ ├── assoc_matching_dots1.sgrep │ │ ├── assoc_matching_explosion.py │ │ ├── assoc_matching_explosion.sgrep │ │ ├── assoc_matching_explosion1.py │ │ ├── assoc_matching_explosion1.sgrep │ │ ├── assoc_matching_explosion2.py │ │ ├── assoc_matching_explosion2.sgrep │ │ ├── assoc_matching_explosion3.py │ │ ├── assoc_matching_explosion3.sgrep │ │ ├── assoc_matching_free.py │ │ ├── assoc_matching_free.sgrep │ │ ├── assoc_matching_free1.py │ │ ├── assoc_matching_free1.sgrep │ │ ├── assoc_matching_mvars.py │ │ ├── assoc_matching_mvars.sgrep │ │ ├── assoc_matching_mvars1.py │ │ ├── assoc_matching_mvars1.sgrep │ │ ├── concrete_fstring.py │ │ ├── concrete_fstring.sgrep │ │ ├── concrete_syntax.py │ │ ├── constprop_dataflow.py │ │ ├── constprop_dataflow.sgrep │ │ ├── constprop_used_twice.py │ │ ├── constprop_used_twice.sgrep │ │ ├── cp_concat.py │ │ ├── cp_concat.sgrep │ │ ├── cp_eval1.py │ │ ├── cp_eval1.sgrep │ │ ├── cp_eval2.py │ │ ├── cp_eval2.sgrep │ │ ├── cp_exception.py │ │ ├── cp_exception.sgrep │ │ ├── cp_label.py │ │ ├── cp_label.sgrep │ │ ├── cp_label1.py │ │ ├── cp_label1.sgrep │ │ ├── cp_method_call.py │ │ ├── cp_method_call.sgrep │ │ ├── cp_python_mult_string.py │ │ ├── cp_python_mult_string.sgrep │ │ ├── cp_python_mult_string1.py │ │ ├── cp_python_mult_string1.sgrep │ │ ├── cp_rlval.py │ │ ├── cp_rlval.sgrep │ │ ├── cp_string_mvar.py │ │ ├── cp_string_mvar.sgrep │ │ ├── cp_strings.py │ │ ├── cp_strings.sgrep │ │ ├── cp_with.py │ │ ├── cp_with.sgrep │ │ ├── cp_yield.py │ │ ├── cp_yield.sgrep │ │ ├── deep_cond.py │ │ ├── deep_cond.sgrep │ │ ├── deep_expr_operator.py │ │ ├── deep_expr_operator.sgrep │ │ ├── deep_expr_vs_statement.py │ │ ├── deep_expr_vs_statement.sgrep │ │ ├── deep_exprstmt.py │ │ ├── deep_exprstmt.sgrep │ │ ├── deep_fake_dataflow.py │ │ ├── deep_fake_dataflow.sgrep │ │ ├── deep_try.py │ │ ├── deep_try.sgrep │ │ ├── df_input.py │ │ ├── df_input.sgrep │ │ ├── dict_ellipsis.py │ │ ├── dict_ellipsis.sgrep │ │ ├── dots_args.py │ │ ├── dots_attribute.py │ │ ├── dots_attribute.sgrep │ │ ├── dots_except_as.py │ │ ├── dots_except_as.sgrep │ │ ├── dots_expr.py │ │ ├── dots_expr_plus.py │ │ ├── dots_expr_plus.sgrep │ │ ├── dots_expr_plus_string.py │ │ ├── dots_expr_plus_string.sgrep │ │ ├── dots_fields.py │ │ ├── dots_fields.sgrep │ │ ├── dots_fstring.py │ │ ├── dots_fstring.sgrep │ │ ├── dots_inherit.py │ │ ├── dots_inherit.sgrep │ │ ├── dots_list.py │ │ ├── dots_list.sgrep │ │ ├── dots_method_chaining.py │ │ ├── dots_nested_stmts.py │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_params.py │ │ ├── dots_params.sgrep │ │ ├── dots_pattern_comprehension.py │ │ ├── dots_pattern_comprehension.sgrep │ │ ├── dots_return.py │ │ ├── dots_return.sgrep │ │ ├── dots_stmts.py │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.py │ │ ├── dots_tuples.py │ │ ├── dots_tuples.sgrep │ │ ├── equivalence_constant_propagation.py │ │ ├── equivalence_constant_propagation.sgrep │ │ ├── equivalence_f_string.py │ │ ├── equivalence_f_string.sgrep │ │ ├── equivalence_f_string_2.py │ │ ├── equivalence_f_string_2.sgrep │ │ ├── equivalence_f_string_3.py │ │ ├── equivalence_f_string_3.sgrep │ │ ├── equivalence_f_string_4.py │ │ ├── equivalence_f_string_4.sgrep │ │ ├── equivalence_interpolated_str.py │ │ ├── equivalence_interpolated_str.sgrep │ │ ├── equivalence_interpolated_str2.py │ │ ├── equivalence_interpolated_str2.sgrep │ │ ├── equivalence_keyword_args.py │ │ ├── equivalence_keyword_args.sgrep │ │ ├── equivalence_naming_import.py │ │ ├── equivalence_naming_import.sgrep │ │ ├── import_metavar.py │ │ ├── import_metavar.sgrep │ │ ├── import_metavar_fullpath.py │ │ ├── import_metavar_fullpath.sgrep │ │ ├── import_negatives.py │ │ ├── import_negatives.sgrep │ │ ├── import_negatives2.py │ │ ├── import_negatives2.sgrep │ │ ├── imports.py │ │ ├── imports.sgrep │ │ ├── index_tuple.py │ │ ├── index_tuple.sgrep │ │ ├── less_attributes.py │ │ ├── less_attributes.sgrep │ │ ├── less_catch.py │ │ ├── less_catch.sgrep │ │ ├── less_catch_multiple.py │ │ ├── less_catch_multiple.sgrep │ │ ├── less_inherits.py │ │ ├── less_inherits.sgrep │ │ ├── less_typehint.py │ │ ├── less_typehint.sgrep │ │ ├── less_typehint2.py │ │ ├── less_typehint2.sgrep │ │ ├── metavar_anno.py │ │ ├── metavar_anno.sgrep │ │ ├── metavar_anno_fqn.py │ │ ├── metavar_anno_fqn.sgrep │ │ ├── metavar_arg.py │ │ ├── metavar_call.py │ │ ├── metavar_class_def.py │ │ ├── metavar_class_def.sgrep │ │ ├── metavar_cond.py │ │ ├── metavar_cond.sgrep │ │ ├── metavar_dict.py │ │ ├── metavar_dict.sgrep │ │ ├── metavar_ellipsis_args.py │ │ ├── metavar_equality_expr.py │ │ ├── metavar_equality_field_vs_var.py │ │ ├── metavar_equality_field_vs_var.sgrep │ │ ├── metavar_equality_funcdef_vs_use.py │ │ ├── metavar_equality_funcdef_vs_use.sgrep │ │ ├── metavar_equality_param_vs_use.py │ │ ├── metavar_equality_param_vs_use.sgrep │ │ ├── metavar_equality_stmt.py │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.py │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_func_def.py │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_import.py │ │ ├── metavar_import.sgrep │ │ ├── metavar_iterator.py │ │ ├── metavar_iterator.sgrep │ │ ├── metavar_key_value.py │ │ ├── metavar_kwd_arg.py │ │ ├── metavar_kwd_arg.sgrep │ │ ├── metavar_match.py │ │ ├── metavar_match.sgrep │ │ ├── metavar_pattern.py │ │ ├── metavar_pattern.sgrep │ │ ├── metavar_set.py │ │ ├── metavar_set.sgrep │ │ ├── metavar_stmt.py │ │ ├── metavar_stmt.sgrep │ │ ├── metavar_string.py │ │ ├── metavar_tuple.py │ │ ├── metavar_tuple.sgrep │ │ ├── metavar_typed.py │ │ ├── metavar_typed.sgrep │ │ ├── misc_attributes.py │ │ ├── misc_attributes.sgrep │ │ ├── misc_block_import.py │ │ ├── misc_block_import.sgrep │ │ ├── misc_class_regression.py │ │ ├── misc_class_regression.sgrep │ │ ├── misc_comprehension.py │ │ ├── misc_comprehension.sgrep │ │ ├── misc_dots_stmts.py │ │ ├── misc_dots_stmts.sgrep │ │ ├── misc_else.py │ │ ├── misc_else.sgrep │ │ ├── misc_encoded_string.py │ │ ├── misc_encoded_string.sgrep │ │ ├── misc_except_matching.py │ │ ├── misc_except_matching.sgrep │ │ ├── misc_exn.py │ │ ├── misc_exn.sgrep │ │ ├── misc_fake_propa.py │ │ ├── misc_fake_propa.sgrep │ │ ├── misc_faketok1.py │ │ ├── misc_faketok1.sgrep │ │ ├── misc_faketok2.py │ │ ├── misc_faketok2.sgrep │ │ ├── misc_faketok3.py │ │ ├── misc_faketok3.sgrep │ │ ├── misc_if1.py │ │ ├── misc_if1.sgrep │ │ ├── misc_import.py │ │ ├── misc_import.sgrep │ │ ├── misc_match_stmt.py │ │ ├── misc_match_stmt.sgrep │ │ ├── misc_metavar_field_anyorder.py │ │ ├── misc_metavar_field_anyorder.sgrep │ │ ├── misc_metavar_vs_fstring.py │ │ ├── misc_metavar_vs_fstring.sgrep │ │ ├── misc_naming_bug.py │ │ ├── misc_naming_bug.sgrep │ │ ├── misc_naming_bug2.py │ │ ├── misc_naming_bug2.sgrep │ │ ├── misc_paren.py │ │ ├── misc_paren.sgrep │ │ ├── misc_prefix_string.py │ │ ├── misc_prefix_string.sgrep │ │ ├── misc_range_statements.py │ │ ├── misc_range_statements.sgrep │ │ ├── misc_regression1.py │ │ ├── misc_regression1.sgrep │ │ ├── misc_regression2.py │ │ ├── misc_regression2.sgrep │ │ ├── misc_return_empty.py │ │ ├── misc_return_empty.sgrep │ │ ├── misc_stmts1.py │ │ ├── misc_stmts1.sgrep │ │ ├── misc_tuple.py │ │ ├── misc_tuple.sgrep │ │ ├── misc_tuple2.py │ │ ├── misc_tuple2.sgrep │ │ ├── misc_with_no_rename.py │ │ ├── misc_with_no_rename.sgrep │ │ ├── misc_with_parens.py │ │ ├── misc_with_parens.sgrep │ │ ├── multi_import.py │ │ ├── multi_import.sgrep │ │ ├── multi_qualified_wildcard.py │ │ ├── multi_qualified_wildcard.sgrep │ │ ├── multiple_metavars.py │ │ ├── multiple_metavars.sgrep │ │ ├── parenthesized_with.py │ │ ├── parenthesized_with.sgrep │ │ ├── pip614-extended-decorator-grammer1.py │ │ ├── pip614-extended-decorator-grammer1.sgrep │ │ ├── pip614-extended-decorator-grammer2.py │ │ ├── pip614-extended-decorator-grammer2.sgrep │ │ ├── python2.py │ │ ├── python2.sgrep │ │ ├── regexp_string.py │ │ ├── regexp_string_backref.py │ │ ├── regexp_string_backref.sgrep │ │ ├── scoped_wildcard.py │ │ ├── scoped_wildcard.sgrep │ │ ├── set_vs_dict.py │ │ ├── set_vs_dict.sgrep │ │ ├── set_vs_dict2.py │ │ ├── set_vs_dict2.sgrep │ │ ├── set_vs_dict3.py │ │ ├── set_vs_dict3.sgrep │ │ ├── standalone_decorator.py │ │ ├── standalone_decorator.sgrep │ │ ├── standalone_decorator_single_arg.py │ │ ├── standalone_decorator_single_arg.sgrep │ │ ├── static_method.py │ │ ├── static_method.sgrep │ │ ├── stmts_to_fields.py │ │ ├── stmts_to_fields.sgrep │ │ ├── unordered_metavar2.py │ │ ├── unordered_metavar2.sgrep │ │ ├── untyped_vs_typed.py │ │ ├── untyped_vs_typed.sgrep │ │ ├── visitor_def.py │ │ ├── visitor_def.sgrep │ │ ├── wildcard_qualified.py │ │ ├── wildcard_qualified.sgrep │ │ ├── wildcard_qualified_mvar.py │ │ └── wildcard_qualified_mvar.sgrep │ ├── ql │ │ ├── anonymous_metavar.ql │ │ ├── concrete_syntax.ql │ │ ├── deep_expr_operator.ql │ │ ├── deep_expr_operator.sgrep │ │ ├── dots_args.ql │ │ ├── dots_expr.ql │ │ ├── dots_expr.sgrep │ │ ├── dots_module.ql │ │ ├── dots_module.sgrep │ │ ├── dots_predicate.ql │ │ ├── dots_predicate.sgrep │ │ ├── dots_stmts.ql │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.ql │ │ ├── metavar_anno.ql │ │ ├── metavar_anno.sgrep │ │ ├── metavar_arg.ql │ │ ├── metavar_call.ql │ │ ├── metavar_class_def.ql │ │ ├── metavar_ellipsis_args.ql │ │ ├── metavar_equality_expr.ql │ │ └── metavar_equality_expr.sgrep │ ├── r │ │ ├── anonymous_metavar.r │ │ ├── concrete_syntax.r │ │ ├── dots_args.r │ │ ├── dots_nested_stmts.r │ │ ├── dots_stmts.r │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.r │ │ ├── metavar_arg.r │ │ ├── metavar_call.r │ │ └── metavar_equality_var.r │ ├── ruby │ │ ├── anonymous_metavar.rb │ │ ├── blocks.rb │ │ ├── blocks.sgrep │ │ ├── blocks1.rb │ │ ├── blocks1.sgrep │ │ ├── call_expr_property.rb │ │ ├── call_expr_property.sgrep │ │ ├── command_call_with_ellipsis.rb │ │ ├── command_call_with_ellipsis.sgrep │ │ ├── command_call_with_ellipsis_with_block.rb │ │ ├── command_call_with_ellipsis_with_block.sgrep │ │ ├── command_call_with_ellipsis_with_do_block.rb │ │ ├── command_call_with_ellipsis_with_do_block.sgrep │ │ ├── command_call_with_ellipsis_with_newlined_do_block.rb │ │ ├── command_call_with_ellipsis_with_newlined_do_block.sgrep │ │ ├── concrete_syntax.rb │ │ ├── cp_assign.rb │ │ ├── cp_assign.sgrep │ │ ├── cp_concat.rb │ │ ├── cp_concat.sgrep │ │ ├── cp_interpolated.rb │ │ ├── cp_interpolated.sgrep │ │ ├── cp_string_mutable.rb │ │ ├── cp_string_mutable.sgrep │ │ ├── deep_expr_operator.rb │ │ ├── deep_expr_operator.sgrep │ │ ├── deep_exprstmt.rb │ │ ├── deep_exprstmt.sgrep │ │ ├── dots_args.rb │ │ ├── dots_atom.TODO │ │ ├── dots_atom.sgrep │ │ ├── dots_expr.rb │ │ ├── dots_interpolated_string.rb │ │ ├── dots_interpolated_string.sgrep │ │ ├── dots_method_chaining.rb │ │ ├── dots_multiple_interpolated.rb │ │ ├── dots_multiple_interpolated.sgrep │ │ ├── dots_nested_stmts.rb │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_regexp.rb │ │ ├── dots_regexp.sgrep │ │ ├── dots_stmts.rb │ │ ├── dots_stmts.sgrep │ │ ├── dots_string.rb │ │ ├── dots_struct_new.rb │ │ ├── dots_struct_new.sgrep │ │ ├── equivalence_constant_propagation.rb │ │ ├── equivalence_keyword_args.rb │ │ ├── equivalence_keyword_args.sgrep │ │ ├── equivalence_keyword_args_hash.rb │ │ ├── equivalence_keyword_args_hash.sgrep │ │ ├── foo.rb │ │ ├── foo.sgrep │ │ ├── implicit_return.rb │ │ ├── implicit_return.sgrep │ │ ├── lambda.rb │ │ ├── lambda.sgrep │ │ ├── metavar_arg.rb │ │ ├── metavar_atom.rb │ │ ├── metavar_atom.sgrep │ │ ├── metavar_atom_or_id.rb │ │ ├── metavar_atom_or_id.sgrep │ │ ├── metavar_call.rb │ │ ├── metavar_class_def.rb │ │ ├── metavar_class_def.sgrep │ │ ├── metavar_classname.rb │ │ ├── metavar_classname.sgrep │ │ ├── metavar_cond.rb │ │ ├── metavar_cond.sgrep │ │ ├── metavar_ellipsis_args.rb │ │ ├── metavar_ellipsis_args_empty.rb │ │ ├── metavar_ellipsis_args_empty.sgrep │ │ ├── metavar_equality_expr.rb │ │ ├── metavar_equality_stmt.rb │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.rb │ │ ├── metavar_equality_var.sgrep │ │ ├── metavar_func_def.rb │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_import.rb │ │ ├── metavar_import.sgrep │ │ ├── metavar_interpolated.rb │ │ ├── metavar_interpolated.sgrep │ │ ├── metavar_key_value.rb │ │ ├── metavar_regexp.rb │ │ ├── metavar_regexp.sgrep │ │ ├── metavar_stmt.rb │ │ ├── metavar_stmt.sgrep │ │ ├── misc_backtick_interp.rb │ │ ├── misc_backtick_interp.sgrep │ │ ├── misc_backticks.rb │ │ ├── misc_backticks.sgrep │ │ ├── misc_bitand.rb │ │ ├── misc_bitand.sgrep │ │ ├── misc_div0.rb │ │ ├── misc_div0.sgrep │ │ ├── misc_dot_call.rb │ │ ├── misc_dot_call.sgrep │ │ ├── misc_dotaccess.rb │ │ ├── misc_dotaccess.sgrep │ │ ├── misc_empty_token1.rb │ │ ├── misc_empty_token1.sgrep │ │ ├── misc_hidden_call.rb │ │ ├── misc_hidden_call.sgrep │ │ ├── misc_kwdarg.rb │ │ ├── misc_kwdarg.sgrep │ │ ├── misc_kwdarg2.rb │ │ ├── misc_kwdarg2.sgrep │ │ ├── misc_kwdarg3.rb │ │ ├── misc_kwdarg3.sgrep │ │ ├── misc_kwdarg_dots.rb │ │ ├── misc_kwdarg_dots.sgrep │ │ ├── misc_kwdarg_vs_atom.rb │ │ ├── misc_kwdarg_vs_atom.sgrep │ │ ├── misc_multiple_assign.rb │ │ ├── misc_multiple_assign.sgrep │ │ ├── misc_multiple_assign_uneq_lists.rb │ │ ├── misc_multiple_assign_uneq_lists.sgrep │ │ ├── misc_parsing1.rb │ │ ├── misc_parsing1.sgrep │ │ ├── misc_parsing2.rb │ │ ├── misc_parsing2.sgrep │ │ ├── misc_range.rb │ │ ├── misc_range.sgrep │ │ ├── regexp_ellipsis.rb │ │ ├── regexp_ellipsis.sgrep │ │ ├── regexp_literal.rb │ │ ├── regexp_literal.sgrep │ │ ├── regexp_metavar.rb │ │ ├── regexp_metavar.sgrep │ │ ├── regexp_string.rb │ │ ├── regexp_template.rb │ │ ├── regexp_template.sgrep │ │ ├── rescue_func.rb │ │ ├── rescue_func.sgrep │ │ ├── unless_argkwd.rb │ │ └── unless_argkwd.sgrep │ ├── rust │ │ ├── anonymous_metavar.rs │ │ ├── attribute_ellipsis.rs │ │ ├── attribute_ellipsis.sgrep │ │ ├── attribute_function.rs │ │ ├── attribute_function.sgrep │ │ ├── attribute_matching.rs │ │ ├── attribute_matching.sgrep │ │ ├── concrete_syntax.rs │ │ ├── cp_expr_stmt_if.ex │ │ ├── cp_expr_stmt_if.sgrep │ │ ├── deep_expr_operator.rs │ │ ├── deep_exprstmt.rs │ │ ├── dots_args.rs │ │ ├── dots_field_chaining.rs │ │ ├── dots_field_chaining.sgrep │ │ ├── dots_macro_call.rs │ │ ├── dots_macro_call.sgrep │ │ ├── dots_method_chaining.rs │ │ ├── dots_method_chaining.sgrep │ │ ├── dots_mod.rs │ │ ├── dots_mod.sgrep │ │ ├── dots_nested_stmts.rs │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_stmts.rs │ │ ├── dots_string.rs │ │ ├── dots_struct.rs │ │ ├── dots_struct.sgrep │ │ ├── epattern_type_prop.rs │ │ ├── epattern_type_prop.sgrep │ │ ├── implicit_return.rs │ │ ├── implicit_return.sgrep │ │ ├── match_variant_names.rs │ │ ├── match_variant_names.sgrep │ │ ├── metavar_arg.rs │ │ ├── metavar_call.rs │ │ ├── metavar_class_def.rs │ │ ├── metavar_class_def.sgrep │ │ ├── metavar_cond.rs │ │ ├── metavar_cond.sgrep │ │ ├── metavar_ellipsis.rs │ │ ├── metavar_ellipsis.sgrep │ │ ├── metavar_ellipsis_args.rs │ │ ├── metavar_ellipsis_args.sgrep │ │ ├── metavar_equality_expr.rs │ │ ├── metavar_equality_stmt.rs │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.rs │ │ ├── metavar_func_def.rs │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_import.rs │ │ ├── metavar_import.sgrep │ │ ├── metavar_param.rs │ │ ├── metavar_param.sgrep │ │ ├── metavar_pattern.rs │ │ ├── metavar_pattern.sgrep │ │ ├── metavar_standalone.rs │ │ ├── metavar_standalone.sgrep │ │ ├── metavar_stmt.rs │ │ ├── metavar_stmt.sgrep │ │ ├── misc_impl.rs │ │ ├── misc_impl.sgrep │ │ ├── misc_macrocall.rs │ │ ├── misc_macrocall.sgrep │ │ ├── misc_name_pattern.rs │ │ ├── misc_name_pattern.sgrep │ │ ├── misc_naming_recursion.rs │ │ ├── misc_naming_recursion.sgrep │ │ ├── misc_return_3.rs │ │ ├── misc_return_3.sgrep │ │ ├── misc_scoped_idents.rs │ │ ├── misc_scoped_idents.sgrep │ │ ├── misc_scoped_idents_as.rs │ │ ├── misc_scoped_idents_as.sgrep │ │ ├── struct_pattern.rs │ │ └── struct_pattern.sgrep │ ├── scala │ │ ├── anonymous_metavar.scala │ │ ├── apply_as_new.scala │ │ ├── apply_as_new.sgrep │ │ ├── by_name.scala │ │ ├── by_name.sgrep │ │ ├── case_class_block.scala │ │ ├── case_class_block.sgrep │ │ ├── case_object_block.scala │ │ ├── case_object_block.sgrep │ │ ├── catch_ellipsis.scala │ │ ├── catch_ellipsis.sgrep │ │ ├── class_params.scala │ │ ├── class_params.sgrep │ │ ├── concrete_syntax.scala │ │ ├── constructor_annots.scala │ │ ├── constructor_annots.sgrep │ │ ├── custom_interpolated.scala │ │ ├── custom_interpolated.sgrep │ │ ├── deep_expr_operator.scala │ │ ├── deep_exprstmt.scala │ │ ├── dots_args.scala │ │ ├── dots_atom.scala │ │ ├── dots_atom.sgrep │ │ ├── dots_match.scala │ │ ├── dots_match.sgrep │ │ ├── dots_method_chaining.scala │ │ ├── dots_method_chaining.sgrep │ │ ├── dots_nested_stmts.scala │ │ ├── dots_stmts.scala │ │ ├── dots_string.scala │ │ ├── equivalence_constant_propagation.scala │ │ ├── equivalence_naming_import.scala │ │ ├── equivalence_naming_import.sgrep │ │ ├── for_loop.scala │ │ ├── for_loop.sgrep │ │ ├── for_loop_ellipsis.scala │ │ ├── for_loop_ellipsis.sgrep │ │ ├── implicit_return.scala │ │ ├── implicit_return.sgrep │ │ ├── import_metavariable.scala │ │ ├── import_metavariable.sgrep │ │ ├── infix_method.scala │ │ ├── infix_method.sgrep │ │ ├── match_type_ellipsis.scala │ │ ├── match_type_ellipsis.sgrep │ │ ├── metavar_anno.scala │ │ ├── metavar_arg.scala │ │ ├── metavar_atom.scala │ │ ├── metavar_atom.sgrep │ │ ├── metavar_call.scala │ │ ├── metavar_class_def.scala │ │ ├── metavar_cond.scala │ │ ├── metavar_cond.sgrep │ │ ├── metavar_equality_expr.scala │ │ ├── metavar_equality_stmt.scala │ │ ├── metavar_equality_stmt.sgrep │ │ ├── metavar_equality_var.scala │ │ ├── metavar_func_def.scala │ │ ├── metavar_func_def.sgrep │ │ ├── metavar_import.scala │ │ ├── metavar_import.sgrep │ │ ├── metavar_key_value.scala │ │ ├── metavar_key_value.sgrep │ │ ├── metavar_pat.scala │ │ ├── metavar_pat.sgrep │ │ ├── metavar_stmt.scala │ │ ├── metavar_stmt.sgrep │ │ ├── metavar_typed.scala │ │ ├── metavar_typed.sgrep │ │ ├── metavar_typed_parens.scala │ │ ├── metavar_typed_parens.sgrep │ │ ├── minus_identifier.scala │ │ ├── minus_identifier.sgrep │ │ ├── misc_symbol.scala │ │ ├── misc_symbol.sgrep │ │ ├── pat_def.scala │ │ ├── pat_def.sgrep │ │ ├── pat_ellipsis.scala │ │ ├── pat_ellipsis.sgrep │ │ ├── tuple_def.scala │ │ ├── tuple_def.sgrep │ │ ├── tuple_infix_type.scala │ │ └── tuple_infix_type.sgrep │ ├── solidity │ │ ├── anonymous_metavar.sol │ │ ├── concrete_syntax.sol │ │ ├── deep_expr_operator.sol │ │ ├── deep_exprstmt.sol │ │ ├── dots_args.sol │ │ ├── dots_contract.sgrep │ │ ├── dots_contract.sol │ │ ├── dots_for.sol │ │ ├── dots_inherit.sgrep │ │ ├── dots_inherit.sol │ │ ├── dots_nested_stmts.sol │ │ ├── dots_stmts.sol │ │ ├── dots_string.sol │ │ ├── for_dots_misc1.sgrep │ │ ├── for_dots_misc1.sol │ │ ├── metavar_arg.sol │ │ ├── metavar_call.sol │ │ ├── metavar_equality_var.sol │ │ ├── metavar_version.sgrep │ │ ├── metavar_version.sol │ │ ├── misc_constructor.sgrep │ │ ├── misc_constructor.sol │ │ ├── misc_enum.sgrep │ │ ├── misc_enum.sol │ │ ├── misc_event.sgrep │ │ ├── misc_event.sol │ │ ├── misc_modifier.sgrep │ │ ├── misc_modifier.sol │ │ ├── misc_parent.sgrep │ │ ├── misc_parent.sol │ │ ├── misc_try_as_lambda.sgrep │ │ ├── misc_try_as_lambda.sol │ │ ├── misc_unchecked.sgrep │ │ └── misc_unchecked.sol │ ├── swift │ │ ├── anonymous_metavar.swift │ │ ├── class_ellipsis.sgrep │ │ ├── class_ellipsis.swift │ │ ├── class_variants.sgrep │ │ ├── class_variants.swift │ │ ├── concrete_syntax.swift │ │ ├── deep_expr_operator.swift │ │ ├── deep_exprstmt.swift │ │ ├── dots_args.swift │ │ ├── dots_nested_stmts.sgrep │ │ ├── dots_nested_stmts.swift │ │ ├── dots_stmts.swift │ │ ├── dots_string.swift │ │ ├── ellipsis_metavar.sgrep │ │ ├── ellipsis_metavar.swift │ │ ├── if_let.sgrep │ │ ├── if_let.swift │ │ ├── keypath.sgrep │ │ ├── keypath.swift │ │ ├── labeled_binding_in_case_stmt.sgrep │ │ ├── labeled_binding_in_case_stmt.swift │ │ ├── match_name.sgrep │ │ ├── match_name.swift │ │ ├── metavar_arg.swift │ │ ├── metavar_call.swift │ │ ├── metavar_equality_var.swift │ │ ├── nav_exp_ellipsis.sgrep │ │ ├── nav_exp_ellipsis.swift │ │ ├── semgrep_ellipsis.sgrep │ │ ├── semgrep_ellipsis.swift │ │ ├── semgrep_ellipsis_no_semi.sgrep │ │ ├── semgrep_ellipsis_no_semi.swift │ │ ├── typed_metavar.sgrep │ │ ├── typed_metavar.swift │ │ ├── unbounded_range_ellipsis.sgrep │ │ └── unbounded_range_ellipsis.swift │ ├── terraform │ │ ├── anonymous_metavar.tf │ │ ├── concrete_syntax.tf │ │ ├── deep_expr_operator.sgrep │ │ ├── deep_expr_operator.tf │ │ ├── dots_args.tf │ │ ├── dots_fields.sgrep │ │ ├── dots_fields.tf │ │ ├── dots_objects.sgrep │ │ ├── dots_objects.tf │ │ ├── dots_resource.sgrep │ │ ├── dots_resource.tf │ │ ├── dots_string.tf │ │ ├── dots_top.sgrep │ │ ├── dots_top.tf │ │ ├── equivalence_constant_propagation.sgrep │ │ ├── equivalence_constant_propagation.tf │ │ ├── equivalence_constant_propagation2.sgrep │ │ ├── equivalence_constant_propagation2.tf │ │ ├── metavar_arg.tf │ │ ├── metavar_call.tf │ │ ├── metavar_equality_var.sgrep │ │ └── metavar_equality_var.tf │ ├── ts │ │ ├── anonymous_metavar.ts │ │ ├── concrete_syntax.ts │ │ ├── deep_expr_operator.ts │ │ ├── deep_exprstmt.ts │ │ ├── deep_record.sgrep │ │ ├── deep_record.ts │ │ ├── dots_annotated_parameter.sgrep │ │ ├── dots_annotated_parameter.ts │ │ ├── dots_args.ts │ │ ├── dots_arrow_body.sgrep │ │ ├── dots_arrow_body.ts │ │ ├── dots_import.sgrep │ │ ├── dots_import.ts │ │ ├── dots_import_complex.sgrep │ │ ├── dots_import_complex.ts │ │ ├── dots_method_chaining.ts │ │ ├── dots_nested_stmts.ts │ │ ├── dots_params.sgrep │ │ ├── dots_params.ts │ │ ├── dots_stmts.ts │ │ ├── dots_string.ts │ │ ├── dots_type_literal.sgrep │ │ ├── dots_type_literal.ts │ │ ├── ellipsis_class_body.sgrep │ │ ├── ellipsis_class_body.ts │ │ ├── equivalence_constant_propagation.ts │ │ ├── equivalence_decl_vs_assign.sgrep │ │ ├── equivalence_decl_vs_assign.ts │ │ ├── ignore_types_function.sgrep │ │ ├── ignore_types_function.ts │ │ ├── import_vN.sgrep │ │ ├── import_vN.ts │ │ ├── less_type_let.sgrep │ │ ├── less_type_let.ts │ │ ├── metavar_arg.ts │ │ ├── metavar_call.ts │ │ ├── metavar_cond.ts │ │ ├── metavar_ellipsis_args.ts │ │ ├── metavar_equality_expr.ts │ │ ├── metavar_equality_methoddef_vs_use.sgrep │ │ ├── metavar_equality_methoddef_vs_use.ts │ │ ├── metavar_equality_stmt.ts │ │ ├── metavar_equality_var.ts │ │ ├── metavar_func_def.ts │ │ ├── metavar_import.sgrep │ │ ├── metavar_import.ts │ │ ├── metavar_key_value.ts │ │ ├── metavar_stmt.ts │ │ ├── metavar_typed_class.sgrep │ │ ├── metavar_typed_class.ts │ │ ├── metavar_typed_expr.sgrep │ │ ├── metavar_typed_expr.ts │ │ ├── metavar_typed_func.sgrep │ │ ├── metavar_typed_func.ts │ │ ├── misc_as_cast.sgrep │ │ ├── misc_as_cast.ts │ │ ├── misc_ast.sgrep │ │ ├── misc_ast.ts │ │ ├── misc_commonjs.sgrep │ │ ├── misc_commonjs.ts │ │ ├── misc_decorator1.sgrep │ │ ├── misc_decorator1.ts │ │ ├── misc_decorator_export.sgrep │ │ ├── misc_decorator_export.ts │ │ ├── misc_decorator_method.sgrep │ │ ├── misc_decorator_method.ts │ │ ├── misc_deep_metavar.sgrep │ │ ├── misc_deep_metavar.ts │ │ ├── misc_export.sgrep │ │ ├── misc_export.ts │ │ ├── misc_extends_qualified.sgrep │ │ ├── misc_extends_qualified.ts │ │ ├── misc_function.sgrep │ │ ├── misc_function.ts │ │ ├── misc_implements.sgrep │ │ ├── misc_implements.ts │ │ ├── misc_method.sgrep │ │ ├── misc_method.ts │ │ ├── misc_naming_recursion.sgrep │ │ ├── misc_naming_recursion.ts │ │ ├── misc_private_prop.sgrep │ │ ├── misc_private_prop.ts │ │ ├── misc_semicolon.sgrep │ │ ├── misc_semicolon.ts │ │ ├── misc_type1.sgrep │ │ ├── misc_type1.ts │ │ ├── misc_type2.sgrep │ │ ├── misc_type2.ts │ │ ├── misc_type3.sgrep │ │ ├── misc_type3.ts │ │ ├── opt_chain.sgrep │ │ ├── opt_chain.ts │ │ ├── param_type_annot.sgrep │ │ ├── param_type_annot.ts │ │ ├── record_functions.sgrep │ │ ├── record_functions.ts │ │ ├── regexp_fieldname.sgrep │ │ ├── regexp_fieldname.ts │ │ ├── regexp_string.ts │ │ ├── type_assert.sgrep │ │ ├── type_assert.ts │ │ ├── unordered_implement.sgrep │ │ └── unordered_implement.ts │ ├── xml │ │ ├── dots_body.sgrep │ │ ├── dots_body.xml │ │ ├── misc_attribute_pattern.sgrep │ │ └── misc_attribute_pattern.xml │ └── yaml │ │ ├── anchor.sgrep │ │ ├── anchor.yaml │ │ ├── anonymous_metavar.yaml │ │ ├── array_field_only.sgrep │ │ ├── array_field_only.yaml │ │ ├── dots_dict_list.sgrep │ │ ├── dots_dict_list.yaml │ │ ├── dots_list_dict.sgrep │ │ ├── dots_list_dict.yaml │ │ ├── dots_list_list.sgrep │ │ ├── dots_list_list.yaml │ │ ├── dots_nested.sgrep │ │ ├── dots_nested.yaml │ │ ├── empty.sgrep │ │ ├── empty.yaml │ │ ├── field_only.sgrep │ │ ├── field_only.yaml │ │ ├── metavar_array.sgrep │ │ ├── metavar_array.yaml │ │ ├── metavar_equality.sgrep │ │ ├── metavar_equality.yaml │ │ ├── metavar_field.sgrep │ │ ├── metavar_field.yaml │ │ ├── misc_double_id.sgrep │ │ ├── misc_double_id.yaml │ │ ├── misc_other_formats_braces.sgrep │ │ ├── misc_other_formats_braces.yaml │ │ ├── post_unicode.sgrep │ │ ├── post_unicode.yaml │ │ ├── semgrep │ │ ├── array.sgrep │ │ ├── array_brackets.sgrep │ │ ├── ellipses_only.sgrep │ │ ├── ellipses_stress.sgrep │ │ └── field.sgrep │ │ ├── tag_literal.sgrep │ │ ├── tag_literal.yaml │ │ ├── tag_metavar.sgrep │ │ ├── tag_metavar.yaml │ │ ├── unicode.sgrep │ │ ├── unicode.yaml │ │ └── yaml_rules │ │ ├── colleen.yaml │ │ ├── kubernetes_ex.yml │ │ ├── kubernetes_semgrep.yaml │ │ └── kubernetes_spacegrep.yaml ├── perf │ ├── OS.java │ ├── ajin.yaml │ ├── ajin2.yaml │ ├── ajin2_semgrepcore.yaml │ ├── benchmarking │ │ ├── netflix-slow-javascript.yml │ │ └── netflix-slow-python.yml │ ├── bloom │ │ ├── BadLogClass.java │ │ ├── ExampleErrorClass.java │ │ ├── crlf-injection-logs.yaml │ │ ├── crlf-injection-rule1.yaml │ │ ├── l10000.js │ │ ├── stmts-ellipsis.sgrep │ │ └── stmts-mv-ellipsis.sgrep │ ├── ellipsis-js.sgrep │ ├── ellipsis-python.sgrep │ ├── ellipsis-slow-js.sgrep │ ├── eq.sgrep │ ├── force_timeout.py │ ├── force_timeout.yaml │ ├── java.sgrep │ ├── java.yml │ ├── l100.js │ ├── l100.py │ ├── l1000.js │ ├── l1000.py │ ├── l10000.js │ ├── l10000.py │ ├── my_first_calculator.py │ ├── swagger-ui-bundle.js │ ├── three.js │ ├── timeout.js │ ├── timeout.py │ ├── timeout.sgrep │ ├── timeout_gracefully.py │ └── timeout_gracefully.yaml ├── precommit_dogfooding │ ├── bandit.yml │ └── python.yml ├── rule_formats │ ├── jwt-hardcode.rb │ ├── jwt-hardcode.yaml │ ├── jwt-hardcode1.jsonnet │ ├── jwt-hardcode2.jsonnet │ ├── new_syntax.json │ ├── new_syntax.jsonnet │ ├── new_syntax.yaml │ ├── new_syntax_basic.json │ ├── notes.txt │ ├── ok-rule-ids.yaml │ ├── sca_version_no_space.yaml │ ├── string_pattern.json │ ├── string_pattern.jsonnet │ └── string_pattern.yaml ├── rules │ ├── Makefile │ ├── TEMPLATE.js │ ├── TEMPLATE.yaml │ ├── TODO_taint_messy_sink.php │ ├── TODO_taint_messy_sink.yaml │ ├── and_inside.mustache │ ├── and_inside.yaml │ ├── anonymous_metavar.py │ ├── anonymous_metavar.yaml │ ├── anywhere_global.py │ ├── anywhere_global.yaml │ ├── anywhere_include.c │ ├── anywhere_include.yaml │ ├── anywhere_metavar.py │ ├── anywhere_metavar.yaml │ ├── as_metavariable.py │ ├── as_metavariable.yaml │ ├── as_metavariable2.py │ ├── as_metavariable2.yaml │ ├── assign_in_cond_expr_cpp.cpp │ ├── assign_in_cond_expr_cpp.yaml │ ├── attributes_match_multiple.php │ ├── attributes_match_multiple.yaml │ ├── bitwise_metavar_compare.jl │ ├── bitwise_metavar_compare.yaml │ ├── c_array_inits.c │ ├── c_array_inits.yaml │ ├── capture_group_unification.py │ ├── capture_group_unification.yaml │ ├── cast_symbol_prop.go │ ├── cast_symbol_prop.yaml │ ├── compare-exposed-port.dockerfile │ ├── compare-exposed-port.yaml │ ├── cp_lambda.cpp │ ├── cp_lambda.yaml │ ├── cp_mults.py │ ├── cp_mults.yaml │ ├── cp_private_class_attr.java │ ├── cp_private_class_attr.yaml │ ├── cp_private_class_attr1.java │ ├── cp_private_class_attr1.yaml │ ├── cp_private_class_attr2.java │ ├── cp_private_class_attr2.yaml │ ├── cp_private_class_attr3.java │ ├── cp_private_class_attr3.yaml │ ├── cp_python_and_or.py │ ├── cp_python_and_or.yaml │ ├── cp_python_strings.py │ ├── cp_python_strings.yaml │ ├── cp_relevant_rule.js │ ├── cp_relevant_rule.yaml │ ├── cp_subtraction.go │ ├── cp_subtraction.yaml │ ├── cp_subtraction1.go │ ├── cp_subtraction1.yaml │ ├── cpp_array_inits.cpp │ ├── cpp_array_inits.yaml │ ├── ctor_cpp.cpp │ ├── ctor_cpp.yaml │ ├── date_comparison.py │ ├── date_comparison.yaml │ ├── decorated-field.ts │ ├── decorated-field.yaml │ ├── decorated_field_pattern.ts │ ├── decorated_field_pattern.yaml │ ├── decorated_match.py │ ├── decorated_match.yaml │ ├── deep_expr_xml.js │ ├── deep_expr_xml.yaml │ ├── defer-persistent-binding.py │ ├── defer-persistent-binding.yaml │ ├── df_scala_expr_block.scala │ ├── df_scala_expr_block.yaml │ ├── different_binding_locations.py │ ├── different_binding_locations.yaml │ ├── ellipsis_in_case.go │ ├── ellipsis_in_case.yaml │ ├── ellipsis_metavar_extended_match.py │ ├── ellipsis_metavar_extended_match.yaml │ ├── ellipsis_metavar_template.js │ ├── ellipsis_metavar_template.yaml │ ├── ellipsis_stmts_deep.py │ ├── ellipsis_stmts_deep.yaml │ ├── ellipsis_stmts_deep1.ts │ ├── ellipsis_stmts_deep1.yaml │ ├── entropy_python.py │ ├── entropy_python.yaml │ ├── eval_not_in.py │ ├── eval_not_in.yaml │ ├── focus_metavariable.py │ ├── focus_metavariable.yaml │ ├── focus_metavariable1.py │ ├── focus_metavariable1.yaml │ ├── focus_metavariable2.py │ ├── focus_metavariable2.yaml │ ├── for_in_comprehension_metavar.jl │ ├── for_in_comprehension_metavar.yaml │ ├── generic_dots_mvar.generic │ ├── generic_dots_mvar.yaml │ ├── generic_ignore_comments.generic │ ├── generic_ignore_comments.yaml │ ├── generic_multilines.generic │ ├── generic_multilines.yaml │ ├── generic_single_line_ellipsis.generic │ ├── generic_single_line_ellipsis.yaml │ ├── inception.yaml │ ├── inception.yl │ ├── inception2.yaml │ ├── inception2.yl │ ├── inside.ejs │ ├── inside.yaml │ ├── inside_test.go │ ├── inside_test.yaml │ ├── int_binop.go │ ├── int_binop.yaml │ ├── js_bracket.js │ ├── js_bracket.yaml │ ├── js_constructor_naming.js │ ├── js_constructor_naming.yaml │ ├── js_no_ts.yaml │ ├── js_no_ts.yl │ ├── julia_let_taint.jl │ ├── julia_let_taint.yaml │ ├── julia_type_parameter.jl │ ├── julia_type_parameter.yaml │ ├── julia_typed_mvar.jl │ ├── julia_typed_mvar.yaml │ ├── kotlin_named_ellipsis.kt │ ├── kotlin_named_ellipsis.yaml │ ├── kotlin_slow_import.kt │ ├── kotlin_slow_import.yaml │ ├── labeled_propagators.py │ ├── labeled_propagators.yaml │ ├── macro_arg_taint.rs │ ├── macro_arg_taint.yaml │ ├── metavar_call.php │ ├── metavar_call.yaml │ ├── metavar_call_case_insensitive.php │ ├── metavar_call_case_insensitive.yaml │ ├── metavar_comparison_bitand.java │ ├── metavar_comparison_bitand.yaml │ ├── metavar_comparison_bitnot.java │ ├── metavar_comparison_bitnot.yaml │ ├── metavar_comparison_bitor.java │ ├── metavar_comparison_bitor.yaml │ ├── metavar_comparison_bitxor.java │ ├── metavar_comparison_bitxor.yaml │ ├── metavar_comparison_constness.c │ ├── metavar_comparison_constness.yaml │ ├── metavar_comparison_constness1.py │ ├── metavar_comparison_constness1.yaml │ ├── metavar_comparison_str.go │ ├── metavar_comparison_str.yaml │ ├── metavar_ellipsis_args_empty.rb │ ├── metavar_ellipsis_args_empty.yaml │ ├── metavar_ellipsis_xmls.html │ ├── metavar_ellipsis_xmls.yaml │ ├── metavar_name_imported_entity_java.java │ ├── metavar_name_imported_entity_java.yaml │ ├── metavar_name_imported_entity_js.js │ ├── metavar_name_imported_entity_js.yaml │ ├── metavar_pattern_dots_mvar.py │ ├── metavar_pattern_dots_mvar.yaml │ ├── metavar_pattern_either.js │ ├── metavar_pattern_either.yaml │ ├── metavar_pattern_fake_toks.php │ ├── metavar_pattern_fake_toks.yaml │ ├── metavar_pattern_fake_toks1.php │ ├── metavar_pattern_fake_toks1.yaml │ ├── metavar_pattern_generic.js │ ├── metavar_pattern_generic.yaml │ ├── metavar_pattern_generic_gibberish.js │ ├── metavar_pattern_generic_gibberish.yaml │ ├── metavar_pattern_lang.py │ ├── metavar_pattern_lang.yaml │ ├── metavar_pattern_lang1.py │ ├── metavar_pattern_lang1.yaml │ ├── metavar_pattern_lang2.generic │ ├── metavar_pattern_lang2.yaml │ ├── metavar_pattern_name.js │ ├── metavar_pattern_name.yaml │ ├── metavar_pattern_nested.py │ ├── metavar_pattern_nested.yaml │ ├── metavar_pattern_nested1.py │ ├── metavar_pattern_nested1.yaml │ ├── metavar_pattern_not.py │ ├── metavar_pattern_not.yaml │ ├── metavar_pattern_old_tls_versions.js │ ├── metavar_pattern_old_tls_versions.yaml │ ├── metavar_pattern_open_redirect.py │ ├── metavar_pattern_open_redirect.yaml │ ├── metavar_pattern_regex.generic │ ├── metavar_pattern_regex.yaml │ ├── metavar_pattern_regex1.js │ ├── metavar_pattern_regex1.yaml │ ├── metavar_pattern_regex2.js │ ├── metavar_pattern_regex2.yaml │ ├── metavar_pattern_regex3.js │ ├── metavar_pattern_regex3.yaml │ ├── metavar_pattern_regex4.js │ ├── metavar_pattern_regex4.yaml │ ├── metavar_regex_and.js │ ├── metavar_regex_and.yaml │ ├── metavar_regex_capture.py │ ├── metavar_regex_capture.yaml │ ├── metavar_regex_id.js │ ├── metavar_regex_id.yaml │ ├── metavar_regex_include.php │ ├── metavar_regex_include.yaml │ ├── metavar_regex_scope.py │ ├── metavar_regex_scope.yaml │ ├── metavar_regex_scope2.py │ ├── metavar_regex_scope2.yaml │ ├── metavar_regex_scope3.py │ ├── metavar_regex_scope3.yaml │ ├── metavar_regex_scope4.py │ ├── metavar_regex_scope4.yaml │ ├── metavar_template_type_arg.cpp │ ├── metavar_template_type_arg.yaml │ ├── metavar_type_decorator_python.py │ ├── metavar_type_decorator_python.yaml │ ├── metavar_type_func_param_go.go │ ├── metavar_type_func_param_go.yaml │ ├── metavar_type_func_param_julia.jl │ ├── metavar_type_func_param_julia.yaml │ ├── metavar_type_multi_types_cpp.cpp │ ├── metavar_type_multi_types_cpp.yaml │ ├── metavar_type_non_prim_php.php │ ├── metavar_type_non_prim_php.yaml │ ├── metavar_type_not_csharp.cs │ ├── metavar_type_not_csharp.yaml │ ├── metavar_type_not_go.go │ ├── metavar_type_not_go.yaml │ ├── metavar_type_not_java.java │ ├── metavar_type_not_java.yaml │ ├── metavar_type_not_kotlin.kt │ ├── metavar_type_not_kotlin.yaml │ ├── metavar_type_not_rust.rs │ ├── metavar_type_not_rust.yaml │ ├── metavar_type_not_scala.scala │ ├── metavar_type_not_scala.yaml │ ├── metavar_type_not_typescript.ts │ ├── metavar_type_not_typescript.yaml │ ├── metavar_type_simple_c.c │ ├── metavar_type_simple_c.yaml │ ├── metavar_type_simple_cpp.cpp │ ├── metavar_type_simple_cpp.yaml │ ├── metavar_type_simple_move_on_aptos.move │ ├── metavar_type_simple_move_on_aptos.yaml │ ├── metavar_type_str_eq_java.java │ ├── metavar_type_str_eq_java.yaml │ ├── metavar_type_str_eq_php.php │ ├── metavar_type_str_eq_php.yaml │ ├── metavar_type_str_eq_python.py │ ├── metavar_type_str_eq_python.yaml │ ├── metavar_unification.json │ ├── metavar_unification.yaml │ ├── metavariable_name_resolution.java │ ├── metavariable_name_resolution.yaml │ ├── metavariable_object_type.ts │ ├── metavariable_object_type.yaml │ ├── metavariable_pattern_either_unif.js │ ├── metavariable_pattern_either_unif.yaml │ ├── metavariable_pattern_keep_env.js │ ├── metavariable_pattern_keep_env.yaml │ ├── metavariable_pattern_php.php │ ├── metavariable_pattern_php.yaml │ ├── metavariable_pattern_recursive_def.js │ ├── metavariable_pattern_recursive_def.yaml │ ├── misc_deep_metavar.ts │ ├── misc_deep_metavar.yaml │ ├── misc_eval_nothandle.py │ ├── misc_eval_nothandle.yaml │ ├── misc_field.js │ ├── misc_field.yaml │ ├── misc_macro_call.rs │ ├── misc_macro_call.yaml │ ├── misc_name_and_neg.java │ ├── misc_name_and_neg.yaml │ ├── misc_php_new.php │ ├── misc_php_new.yaml │ ├── misc_php_new_taint.php │ ├── misc_php_new_taint.yaml │ ├── misc_terraform1.tf │ ├── misc_terraform1.yaml │ ├── misc_tpl_is_php.tpl │ ├── misc_tpl_is_php.yaml │ ├── misc_var_is_var.js │ ├── misc_var_is_var.yaml │ ├── mvar_regex_interpolated_var.py │ ├── mvar_regex_interpolated_var.yaml │ ├── naming_class_attribute.java │ ├── naming_class_attribute.yaml │ ├── neg_op_lit_equiv.c │ ├── neg_op_lit_equiv.yaml │ ├── negation_exact.js │ ├── negation_exact.yaml │ ├── no_fatal_error_with_xxx_equal.js │ ├── no_fatal_error_with_xxx_equal.yaml │ ├── no_strict_metavar_name_binding.js │ ├── no_strict_metavar_name_binding.yaml │ ├── non_irrelevant_rule.java │ ├── non_irrelevant_rule.yaml │ ├── not-under-inside.py │ ├── not-under-inside.yaml │ ├── not_found_exn.go │ ├── not_found_exn.yaml │ ├── not_found_exn2.py │ ├── not_found_exn2.yaml │ ├── numeric_regex_capture_groups.py │ ├── numeric_regex_capture_groups.yaml │ ├── option_ac_matching.php │ ├── option_ac_matching.yaml │ ├── option_attr_expr_false.py │ ├── option_attr_expr_false.yaml │ ├── option_attr_expr_true.py │ ├── option_attr_expr_true.yaml │ ├── option_attr_expr_true1.py │ ├── option_attr_expr_true1.yaml │ ├── option_fielddef_assign_arrow.js │ ├── option_fielddef_assign_arrow.yaml │ ├── option_implicit_exprstmt.dockerfile │ ├── option_implicit_exprstmt.yaml │ ├── option_symmetric_eq.php │ ├── option_symmetric_eq.yaml │ ├── option_xml_attr_implicit_ellipsis.js │ ├── option_xml_attr_implicit_ellipsis.yaml │ ├── option_xml_children_ordered.xml │ ├── option_xml_children_ordered.yaml │ ├── option_xml_singleton.js │ ├── option_xml_singleton.yaml │ ├── parse_pattern_as_stmt.ts │ ├── parse_pattern_as_stmt.yaml │ ├── pattern-either-one-general.py │ ├── pattern-either-one-general.yaml │ ├── pattern-inside-range.py │ ├── pattern-inside-range.yaml │ ├── pattern-regex.py │ ├── pattern-regex.yaml │ ├── pattern-x-1.py │ ├── pattern-x-1.yaml │ ├── pattern-x-2.py │ ├── pattern-x-2.yaml │ ├── pattern-x-3.py │ ├── pattern-x-3.yaml │ ├── pattern-x-4.py │ ├── pattern-x-4.yaml │ ├── pattern-x-bug.py │ ├── pattern-x-bug.yaml │ ├── pattern-x.js │ ├── pattern-x.yaml │ ├── pattern_int.py │ ├── pattern_int.yaml │ ├── pattern_move_func_signature.move │ ├── pattern_move_func_signature.yaml │ ├── pattern_move_let_bind.move │ ├── pattern_move_let_bind.yaml │ ├── pattern_move_standalone_mod_member.move │ ├── pattern_move_standalone_mod_member.yaml │ ├── pattern_move_struct_member.move │ ├── pattern_move_struct_member.yaml │ ├── pattern_not_regex.html │ ├── pattern_not_regex.yaml │ ├── pattern_not_regex1.txt │ ├── pattern_not_regex1.yaml │ ├── pattern_regex_inside.py │ ├── pattern_regex_inside.yaml │ ├── persistent_metavariable_pattern.py │ ├── persistent_metavariable_pattern.yaml │ ├── persistent_metavariable_pattern2.py │ ├── persistent_metavariable_pattern2.yaml │ ├── placement_new_cpp.cpp │ ├── placement_new_cpp.yaml │ ├── pow_metavar_comparison.py │ ├── pow_metavar_comparison.yaml │ ├── prim_obj_init_cpp.cpp │ ├── prim_obj_init_cpp.yaml │ ├── prometheus_long_duration_promql.test.yaml │ ├── prometheus_long_duration_promql.yaml │ ├── propagator_labels.py │ ├── propagator_labels.yaml │ ├── python_fstring_ellipsis.py │ ├── python_fstring_ellipsis.yaml │ ├── python_fstring_eval.py │ ├── python_fstring_eval.yaml │ ├── quotes.test.yaml │ ├── quotes.yaml │ ├── record_any.js │ ├── record_any.yaml │ ├── record_empty.js │ ├── record_empty.yaml │ ├── record_field_ellipsis.js │ ├── record_field_ellipsis.yaml │ ├── record_mixed.js │ ├── record_mixed.yaml │ ├── record_one_field.js │ ├── record_one_field.yaml │ ├── record_one_spread.js │ ├── record_one_spread.yaml │ ├── record_spread_ellipsis.js │ ├── record_spread_ellipsis.yaml │ ├── redos_bracket_colon.js │ ├── redos_bracket_colon.yaml │ ├── redos_python.py │ ├── redos_python.yaml │ ├── regex_capture_groups.py │ ├── regex_capture_groups.yaml │ ├── regexp_capture_empty_group.gem │ ├── regexp_capture_empty_group.yaml │ ├── regexp_capture_groups.gem │ ├── regexp_capture_groups.yaml │ ├── regexp_multiline_mode.txt │ ├── regexp_multiline_mode.yaml │ ├── regression_uniq_or_ellipsis.go │ ├── regression_uniq_or_ellipsis.yaml │ ├── relevant_rule_badutf8.js │ ├── relevant_rule_badutf8.yaml │ ├── resolved_metavariables.js │ ├── resolved_metavariables.yaml │ ├── rule_extensions.py │ ├── rule_extensions.yaml │ ├── rust_macro_token_args.rs │ ├── rust_macro_token_args.yaml │ ├── settings.js │ ├── settings.yaml │ ├── severity_critical.py │ ├── severity_critical.yaml │ ├── skip_list.txt │ ├── spacegrep_metavarbug.dockerfile │ ├── spacegrep_metavarbug.yaml │ ├── strict_metavar_name_binding.js │ ├── strict_metavar_name_binding.yaml │ ├── string_in_comparison.py │ ├── string_in_comparison.yaml │ ├── string_mvar_julia.jl │ ├── string_mvar_julia.yaml │ ├── string_vs_char_ptr_cpp.cpp │ ├── string_vs_char_ptr_cpp.yaml │ ├── struct_tags.go │ ├── struct_tags.yaml │ ├── swift_lambda_taint.swift │ ├── swift_lambda_taint.yaml │ ├── sym_prop_chain.py │ ├── sym_prop_chain.yaml │ ├── sym_prop_class_attr.java │ ├── sym_prop_class_attr.yaml │ ├── sym_prop_decorator.py │ ├── sym_prop_decorator.yaml │ ├── sym_prop_deep.java │ ├── sym_prop_deep.yaml │ ├── sym_prop_exp.js │ ├── sym_prop_exp.yaml │ ├── sym_prop_exp_no_propagate.js │ ├── sym_prop_exp_no_propagate.yaml │ ├── sym_prop_explosion.js │ ├── sym_prop_explosion.yaml │ ├── sym_prop_lambda.py │ ├── sym_prop_lambda.yaml │ ├── sym_prop_lhs_exp.py │ ├── sym_prop_lhs_exp.yaml │ ├── sym_prop_merge.py │ ├── sym_prop_merge.yaml │ ├── sym_prop_merge1.java │ ├── sym_prop_merge1.yaml │ ├── sym_prop_merge2.java │ ├── sym_prop_merge2.yaml │ ├── sym_prop_new.java │ ├── sym_prop_new.yaml │ ├── sym_prop_no_cycle.py │ ├── sym_prop_no_cycle.yaml │ ├── sym_prop_no_cycle1.js │ ├── sym_prop_no_cycle1.yaml │ ├── sym_prop_no_merge.py │ ├── sym_prop_no_merge.yaml │ ├── sym_prop_no_merge1.go │ ├── sym_prop_no_merge1.yaml │ ├── sym_prop_no_merge2.py │ ├── sym_prop_no_merge2.yaml │ ├── sym_prop_non_constant_exp.js │ ├── sym_prop_non_constant_exp.yaml │ ├── sym_prop_non_literal.java │ ├── sym_prop_non_literal.yaml │ ├── sym_prop_open_redirect.py │ ├── sym_prop_open_redirect.yaml │ ├── sym_prop_python_with.py │ ├── sym_prop_python_with.yaml │ ├── sym_prop_python_with1.py │ ├── sym_prop_python_with1.yaml │ ├── sym_prop_react.js │ ├── sym_prop_react.yaml │ ├── sym_prop_record.js │ ├── sym_prop_record.yaml │ ├── sym_prop_redundancy.py │ ├── sym_prop_redundancy.yaml │ ├── sym_prop_string_eq.py │ ├── sym_prop_string_eq.yaml │ ├── taint-general-source-sink.js │ ├── taint-general-source-sink.yaml │ ├── taint_array.py │ ├── taint_array.yaml │ ├── taint_assign_cleans_shape.js │ ├── taint_assign_cleans_shape.yaml │ ├── taint_assign_record.ts │ ├── taint_assign_record.yaml │ ├── taint_assign_record1.ts │ ├── taint_assign_record1.yaml │ ├── taint_assign_record2.js │ ├── taint_assign_record2.yaml │ ├── taint_assume_safe_booleans.py │ ├── taint_assume_safe_booleans.yaml │ ├── taint_assume_safe_booleans1.java │ ├── taint_assume_safe_booleans1.yaml │ ├── taint_assume_safe_funcs.php │ ├── taint_assume_safe_funcs.yaml │ ├── taint_assume_safe_indexes.py │ ├── taint_assume_safe_indexes.yaml │ ├── taint_assume_safe_numbers.py │ ├── taint_assume_safe_numbers.yaml │ ├── taint_assume_safe_numbers1.java │ ├── taint_assume_safe_numbers1.yaml │ ├── taint_assume_safe_numbers2.php │ ├── taint_assume_safe_numbers2.yaml │ ├── taint_assume_safe_numbers3.java │ ├── taint_assume_safe_numbers3.yaml │ ├── taint_async.py │ ├── taint_async.yaml │ ├── taint_basic.py │ ├── taint_basic.yaml │ ├── taint_best_fit_sink.py │ ├── taint_best_fit_sink.yaml │ ├── taint_best_fit_sink1.php │ ├── taint_best_fit_sink1.yaml │ ├── taint_best_fit_sink10.js │ ├── taint_best_fit_sink10.yaml │ ├── taint_best_fit_sink2.py │ ├── taint_best_fit_sink2.yaml │ ├── taint_best_fit_sink3.py │ ├── taint_best_fit_sink3.yaml │ ├── taint_best_fit_sink4.php │ ├── taint_best_fit_sink4.yaml │ ├── taint_best_fit_sink5.java │ ├── taint_best_fit_sink5.yaml │ ├── taint_best_fit_sink6.java │ ├── taint_best_fit_sink6.yaml │ ├── taint_best_fit_sink7.js │ ├── taint_best_fit_sink7.yaml │ ├── taint_best_fit_sink8.py │ ├── taint_best_fit_sink8.yaml │ ├── taint_best_fit_sink9.java │ ├── taint_best_fit_sink9.yaml │ ├── taint_by_side_effect_lhs.py │ ├── taint_by_side_effect_lhs.yaml │ ├── taint_clean_in_try_no_finally.py │ ├── taint_clean_in_try_no_finally.yaml │ ├── taint_control.py │ ├── taint_control.yaml │ ├── taint_cpp_for_each.cpp │ ├── taint_cpp_for_each.yaml │ ├── taint_cpp_ptr_field.cpp │ ├── taint_cpp_ptr_field.yaml │ ├── taint_cpp_ptr_field1.cpp │ ├── taint_cpp_ptr_field1.yaml │ ├── taint_decl_in_if_cond.cpp │ ├── taint_decl_in_if_cond.yaml │ ├── taint_decl_in_while_cond.cpp │ ├── taint_decl_in_while_cond.yaml │ ├── taint_exact_sanitizer.py │ ├── taint_exact_sanitizer.yaml │ ├── taint_exact_sources.py │ ├── taint_exact_sources.yaml │ ├── taint_exception.py │ ├── taint_exception.yaml │ ├── taint_expr_in_type.cpp │ ├── taint_expr_in_type.yaml │ ├── taint_expr_in_type_labels.cpp │ ├── taint_expr_in_type_labels.yaml │ ├── taint_field_sensitive1.js │ ├── taint_field_sensitive1.yaml │ ├── taint_field_sensitive2.js │ ├── taint_field_sensitive2.yaml │ ├── taint_field_sensitive3.js │ ├── taint_field_sensitive3.yaml │ ├── taint_field_sensitive4.js │ ├── taint_field_sensitive4.yaml │ ├── taint_field_sensitive5.php │ ├── taint_field_sensitive5.yaml │ ├── taint_field_sensitive6.py │ ├── taint_field_sensitive6.yaml │ ├── taint_field_sensitive7.py │ ├── taint_field_sensitive7.yaml │ ├── taint_field_sensitive8.py │ ├── taint_field_sensitive8.yaml │ ├── taint_final_globals.java │ ├── taint_final_globals.yaml │ ├── taint_final_globals1.js │ ├── taint_final_globals1.yaml │ ├── taint_final_globals2.java │ ├── taint_final_globals2.yaml │ ├── taint_flask.py │ ├── taint_flask.yaml │ ├── taint_foreach.java │ ├── taint_foreach.yaml │ ├── taint_foreach1.scala │ ├── taint_foreach1.yaml │ ├── taint_get_set_sensitivity.java │ ├── taint_get_set_sensitivity.yaml │ ├── taint_get_set_sensitivity1.java │ ├── taint_get_set_sensitivity1.yaml │ ├── taint_if_cond_sink.c │ ├── taint_if_cond_sink.yaml │ ├── taint_implicit_return.rs │ ├── taint_implicit_return.yaml │ ├── taint_imported_func.py │ ├── taint_imported_func.yaml │ ├── taint_iterator_values.js │ ├── taint_iterator_values.yaml │ ├── taint_labels.py │ ├── taint_labels.yaml │ ├── taint_labels1.py │ ├── taint_labels1.yaml │ ├── taint_labels2.py │ ├── taint_labels2.yaml │ ├── taint_labels3.py │ ├── taint_labels3.yaml │ ├── taint_labels4.py │ ├── taint_labels4.yaml │ ├── taint_labels5.py │ ├── taint_labels5.yaml │ ├── taint_labels6.py │ ├── taint_labels6.yaml │ ├── taint_labels7.py │ ├── taint_labels7.yaml │ ├── taint_labels_empty.go │ ├── taint_labels_empty.yaml │ ├── taint_labels_rec.rs │ ├── taint_labels_rec.yaml │ ├── taint_lambda.js │ ├── taint_lambda.yaml │ ├── taint_lambda1.java │ ├── taint_lambda1.yaml │ ├── taint_lambda2.js │ ├── taint_lambda2.yaml │ ├── taint_lambda3.js │ ├── taint_lambda3.yaml │ ├── taint_lambda4.ts │ ├── taint_lambda4.yaml │ ├── taint_lambda_cpp.cpp │ ├── taint_lambda_cpp.yaml │ ├── taint_match_on_source.py │ ├── taint_match_on_source.yaml │ ├── taint_nested_record_pattern.js │ ├── taint_nested_record_pattern.yaml │ ├── taint_no_builtin_props.py │ ├── taint_no_builtin_props.yaml │ ├── taint_no_builtin_props1.py │ ├── taint_no_builtin_props1.yaml │ ├── taint_no_builtin_props2.py │ ├── taint_no_builtin_props2.yaml │ ├── taint_no_builtin_props3.cpp │ ├── taint_no_builtin_props3.yaml │ ├── taint_non_exact_sink.py │ ├── taint_non_exact_sink.yaml │ ├── taint_not_conflicting_sanitizer.php │ ├── taint_not_conflicting_sanitizer.yaml │ ├── taint_not_conflicting_sanitizer1.php │ ├── taint_not_conflicting_sanitizer1.yaml │ ├── taint_obj_fields.kt │ ├── taint_obj_fields.yaml │ ├── taint_object_destructure.js │ ├── taint_object_destructure.yaml │ ├── taint_object_funcdef.js │ ├── taint_object_funcdef.yaml │ ├── taint_object_funcdef_1.ts │ ├── taint_object_funcdef_1.yaml │ ├── taint_param_default.py │ ├── taint_param_default.yaml │ ├── taint_param_default1.py │ ├── taint_param_default1.yaml │ ├── taint_param_pattern.rs │ ├── taint_param_pattern.yaml │ ├── taint_param_source.py │ ├── taint_param_source.yaml │ ├── taint_param_source1.js │ ├── taint_param_source1.yaml │ ├── taint_param_source2.ts │ ├── taint_param_source2.yaml │ ├── taint_param_source3.js │ ├── taint_param_source3.yaml │ ├── taint_propagator.py │ ├── taint_propagator.yaml │ ├── taint_propagator1.js │ ├── taint_propagator1.yaml │ ├── taint_propagator2.py │ ├── taint_propagator2.yaml │ ├── taint_propagator3.py │ ├── taint_propagator3.yaml │ ├── taint_propagator4.java │ ├── taint_propagator4.yaml │ ├── taint_propagator_by_side_effect_false.php │ ├── taint_propagator_by_side_effect_false.yaml │ ├── taint_propagator_by_side_effect_false1.php │ ├── taint_propagator_by_side_effect_false1.yaml │ ├── taint_propagator_lambda.java │ ├── taint_propagator_lambda.yaml │ ├── taint_propagator_lambda1.py │ ├── taint_propagator_lambda1.yaml │ ├── taint_propagator_lambda2.js │ ├── taint_propagator_lambda2.yaml │ ├── taint_react.js │ ├── taint_react.yaml │ ├── taint_return_expr.scala │ ├── taint_return_expr.yaml │ ├── taint_return_expr_fn_sink.scala │ ├── taint_return_expr_fn_sink.yaml │ ├── taint_ruby_concat.rb │ ├── taint_ruby_concat.yaml │ ├── taint_ruby_hash_elem_ref.rb │ ├── taint_ruby_hash_elem_ref.yaml │ ├── taint_ruby_if_expr.rb │ ├── taint_ruby_if_expr.yaml │ ├── taint_rust_returns.rs │ ├── taint_rust_returns.yaml │ ├── taint_safe_comparisons.py │ ├── taint_safe_comparisons.yaml │ ├── taint_sanitizer_var.py │ ├── taint_sanitizer_var.yaml │ ├── taint_single_variable_source.js │ ├── taint_single_variable_source.yaml │ ├── taint_source_var.py │ ├── taint_source_var.yaml │ ├── taint_source_var1.py │ ├── taint_source_var1.yaml │ ├── taint_splat.py │ ├── taint_splat.yaml │ ├── taint_spread_record_big.js │ ├── taint_spread_record_big.yaml │ ├── taint_spread_record_small.js │ ├── taint_spread_record_small.yaml │ ├── taint_this.js │ ├── taint_this.yaml │ ├── taint_this1.java │ ├── taint_this1.yaml │ ├── taint_typestate.py │ ├── taint_typestate.yaml │ ├── taint_typestate1.py │ ├── taint_typestate1.yaml │ ├── taint_typestate2.cpp │ ├── taint_typestate2.yaml │ ├── taint_typestate3.cpp │ ├── taint_typestate3.yaml │ ├── taint_typestate4.cpp │ ├── taint_typestate4.yaml │ ├── taint_typestate5.cpp │ ├── taint_typestate5.yaml │ ├── taint_unify_mvars.js │ ├── taint_unify_mvars.yaml │ ├── taint_union_mvars.js │ ├── taint_union_mvars.yaml │ ├── taint_unsafe_block.rs │ ├── taint_unsafe_block.yaml │ ├── taint_wo_side_effects.php │ ├── taint_wo_side_effects.yaml │ ├── taint_wo_side_effects1.php │ ├── taint_wo_side_effects1.yaml │ ├── taint_wo_side_effects2.php │ ├── taint_wo_side_effects2.yaml │ ├── tainted-file-path.java │ ├── tainted-file-path.yaml │ ├── tainted-filename.php │ ├── tainted-filename.yaml │ ├── tainted_pattern_lval.rs │ ├── tainted_pattern_lval.yaml │ ├── terraform_block_sink.tf │ ├── terraform_block_sink.yaml │ ├── terraform_coercions.tf │ ├── terraform_coercions.yaml │ ├── terraform_metavariable.tf │ ├── terraform_metavariable.yaml │ ├── terraform_mvar_regex_interpolated_var.tf │ ├── terraform_mvar_regex_interpolated_var.yaml │ ├── terraform_nested_yaml.tf │ ├── terraform_nested_yaml.yaml │ ├── top_level_sym_prop.py │ ├── top_level_sym_prop.yaml │ ├── ts_decorated_async_property.ts │ ├── ts_decorated_async_property.yaml │ ├── ts_decorated_static_property.ts │ ├── ts_decorated_static_property.yaml │ ├── typed_metavar_metavar_regex.go │ ├── typed_metavar_metavar_regex.yaml │ ├── typed_metavar_not.java │ ├── typed_metavar_not.yaml │ ├── typed_metavar_not_rust.rs │ ├── typed_metavar_not_rust.yaml │ ├── unicode_string.py │ ├── unicode_string.yaml │ ├── vardef_assign_false.js │ ├── vardef_assign_false.yaml │ ├── vardef_assign_false1.js │ ├── vardef_assign_false1.yaml │ ├── vardef_assign_true.js │ ├── vardef_assign_true.yaml │ ├── vardef_assign_true1.js │ ├── vardef_assign_true1.yaml │ ├── vardef_assign_true2.js │ ├── vardef_assign_true2.yaml │ ├── whole_file.tf │ ├── whole_file.yaml │ ├── xml_metavar_comp.xml │ ├── xml_metavar_comp.yaml │ ├── xml_metavar_comp2.xml │ ├── xml_metavar_comp2.yaml │ ├── yaml_metavariable_pattern.test.yaml │ ├── yaml_metavariable_pattern.yaml │ ├── yaml_on_yaml.test.yaml │ └── yaml_on_yaml.yaml ├── rules_error_recovery │ ├── README.md │ ├── lines_of_file_outofbound.tf │ └── lines_of_file_outofbound.yaml ├── rules_v2 │ ├── anywhere_global.py │ ├── anywhere_global.yaml │ ├── anywhere_include.c │ ├── anywhere_include.yaml │ ├── anywhere_metavar.py │ ├── anywhere_metavar.yaml │ ├── decorator_order_matters.py │ ├── decorator_order_matters.yaml │ ├── decorator_sublist_is_ok.py │ ├── decorator_sublist_is_ok.yaml │ ├── decorator_subsequence_is_ok.py │ ├── decorator_subsequence_is_ok.yaml │ ├── decorator_unordered_ok_when_rule_option_false.py │ ├── decorator_unordered_ok_when_rule_option_false.yaml │ ├── go_grouped_arguments.go │ ├── go_grouped_arguments.yaml │ ├── keyword_any_order.java │ ├── keyword_any_order.yaml │ ├── keyword_order_matters.java │ ├── keyword_order_matters.yaml │ ├── metavar_analysis.cs │ ├── metavar_analysis.yaml │ ├── metavar_cond.py │ ├── metavar_cond.yaml │ ├── metavar_cond2.py │ ├── metavar_cond2.yaml │ ├── metavar_cond_octal.go │ ├── metavar_cond_octal.yaml │ ├── metavar_ellipsis_param.go │ ├── metavar_ellipsis_param.yaml │ ├── metavar_regex.py │ ├── metavar_regex.yaml │ ├── metavar_type_multi_types_rule20_cpp.cpp │ ├── metavar_type_multi_types_rule20_cpp.yaml │ ├── metavar_type_rule20.java │ ├── metavar_type_rule20.yaml │ ├── multiple_autofix.fixed │ ├── multiple_autofix.py │ ├── multiple_autofix.yaml │ ├── negation_ajin.py │ ├── negation_ajin.yaml │ ├── new_syntax.py │ ├── new_syntax.yaml │ ├── new_syntax_taint.py │ ├── new_syntax_taint.yaml │ ├── new_syntax_taint_no_mode.py │ ├── new_syntax_taint_no_mode.yaml │ ├── r2c_was_here.java │ ├── r2c_was_here.yaml │ ├── r2c_was_here_again.cpp │ ├── r2c_was_here_again.yaml │ ├── regexp.py │ └── regexp.yaml ├── semgrep-core-e2e │ ├── rules │ │ └── basic.yaml │ ├── targets.json │ └── targets │ │ └── basic.py ├── semgrep_output │ ├── cli_output │ │ ├── cli_output1.json │ │ ├── cli_test_basic.TODO │ │ ├── cli_test_yaml_language.TODO │ │ ├── debug.TODO │ │ ├── dependency_aware.json │ │ ├── fix_regexp.json │ │ ├── invalid_rule.json │ │ ├── no_fingerprint.TODO │ │ ├── optional_offset.TODO │ │ ├── rule_id_and_spans.json │ │ ├── semgrep_ignore_report.TODO │ │ ├── skipped.json │ │ └── timing.json │ ├── core_output │ │ └── core_output1.json │ └── scans_output │ │ └── findings.json ├── snapshots │ └── semgrep-core │ │ ├── 004d00198550 │ │ ├── name │ │ └── stdout │ │ ├── 06d4c075c20a │ │ ├── name │ │ └── stdout │ │ ├── 0c4198671b7b │ │ ├── name │ │ └── stdout │ │ ├── 121e13bda1dc │ │ ├── name │ │ └── stdout │ │ ├── 170b2dae3013 │ │ ├── name │ │ └── stdout │ │ ├── 17eb04f5c4ea │ │ ├── name │ │ └── stdout │ │ ├── 1b426baf9922 │ │ ├── name │ │ └── stdout │ │ ├── 201a11c8d7a5 │ │ ├── name │ │ └── stdout │ │ ├── 2e75b85cd1f4 │ │ ├── name │ │ └── stdout │ │ ├── 340d1149ba01 │ │ ├── name │ │ └── stdxxx │ │ ├── 36becc511b8a │ │ ├── name │ │ └── stdout │ │ ├── 3ae892ddf988 │ │ ├── name │ │ └── stdout │ │ ├── 3e5448ffb606 │ │ ├── name │ │ └── stdxxx │ │ ├── 3e63db713cdd │ │ ├── name │ │ └── stdout │ │ ├── 3f2dd27915fc │ │ ├── name │ │ └── stdout │ │ ├── 4148713a0e06 │ │ ├── name │ │ └── stdout │ │ ├── 46b94c9a33b5 │ │ ├── name │ │ └── stdout │ │ ├── 4823773fc66b │ │ ├── name │ │ └── stdxxx │ │ ├── 4b1e1d216d04 │ │ ├── name │ │ └── stdout │ │ ├── 4d3e6e61c9c2 │ │ ├── name │ │ └── stdout │ │ ├── 4f06f5cf1f9b │ │ ├── name │ │ └── stdout │ │ ├── 507d831131cf │ │ ├── name │ │ └── stdout │ │ ├── 551857e0cb97 │ │ ├── name │ │ └── stdout │ │ ├── 5722008e9775 │ │ ├── name │ │ └── stdout │ │ ├── 58a845e402fc │ │ ├── name │ │ └── stdout │ │ ├── 597fbcbc7082 │ │ ├── name │ │ └── stdout │ │ ├── 64b671b03f84 │ │ ├── name │ │ └── stdout │ │ ├── 67608f448702 │ │ ├── name │ │ └── stdxxx │ │ ├── 68ddf7069d0b │ │ ├── name │ │ └── stdout │ │ ├── 6f1b4fa82de6 │ │ ├── name │ │ └── stdout │ │ ├── 7087eb11f7d3 │ │ ├── name │ │ └── stderr │ │ ├── 745a04125f26 │ │ ├── name │ │ └── stdout │ │ ├── 7953814bd0ae │ │ ├── name │ │ └── stdxxx │ │ ├── 795458d57912 │ │ ├── name │ │ └── stdout │ │ ├── 7c91655c3e4b │ │ ├── name │ │ └── stdout │ │ ├── 8128ddf1251b │ │ ├── name │ │ └── stdout │ │ ├── 8bdf63abd0d3 │ │ ├── name │ │ └── stdout │ │ ├── 8ce33c1fb551 │ │ ├── name │ │ └── stdout │ │ ├── 917142b5cdf9 │ │ ├── name │ │ └── stdout │ │ ├── 928cede2578e │ │ ├── name │ │ └── stdout │ │ ├── 94a23aa13ed6 │ │ ├── name │ │ └── stdxxx │ │ ├── 958abd4d536d │ │ ├── name │ │ └── stdxxx │ │ ├── 97c4439f0310 │ │ ├── name │ │ └── stdout │ │ ├── 98f80064bcd4 │ │ ├── name │ │ └── stderr │ │ ├── 9c5e0deddeba │ │ ├── name │ │ └── stdout │ │ ├── a0283f7165eb │ │ ├── name │ │ └── stdout │ │ ├── a5f8cca91ee4 │ │ ├── name │ │ └── stdout │ │ ├── a76b488ec431 │ │ ├── name │ │ └── stdout │ │ ├── a7a68e5155cd │ │ ├── name │ │ └── stdout │ │ ├── aaadc9ccf052 │ │ ├── name │ │ └── stdout │ │ ├── b52c24bc6a7d │ │ ├── name │ │ └── stdout │ │ ├── b5c5c5717af7 │ │ ├── name │ │ └── stdxxx │ │ ├── bc2f173cbf29 │ │ ├── name │ │ └── stdxxx │ │ ├── bc375a75a0d3 │ │ ├── name │ │ └── stdout │ │ ├── bd35707c2732 │ │ ├── name │ │ └── stdout │ │ ├── bf39e85cfedd │ │ ├── name │ │ └── stdout │ │ ├── c293d4dbc560 │ │ ├── name │ │ └── stdout │ │ ├── c298e1785db2 │ │ ├── name │ │ └── stdout │ │ ├── c49a2132d28d │ │ ├── name │ │ └── stdxxx │ │ ├── c6333bc90e8c │ │ ├── name │ │ └── stdxxx │ │ ├── cf1960f4121b │ │ ├── name │ │ └── stdout │ │ ├── d24e844bc5d2 │ │ ├── name │ │ └── stdout │ │ ├── d5c73b8c6b15 │ │ ├── name │ │ └── stdout │ │ ├── d6459a008a60 │ │ ├── name │ │ └── stdout │ │ ├── d7bb68fbd2a0 │ │ ├── name │ │ └── stderr │ │ ├── d7d1151b7841 │ │ ├── name │ │ └── stdout │ │ ├── dde92d39ed2e │ │ ├── name │ │ └── stderr │ │ ├── e3c19e7fa9c7 │ │ ├── name │ │ └── stdout │ │ ├── e4610a95c51e │ │ ├── name │ │ └── stdout │ │ ├── e5471538e004 │ │ ├── name │ │ └── stdout │ │ ├── ec0b6d8d3aac │ │ ├── name │ │ └── stdout │ │ ├── ecc9e564ee45 │ │ ├── name │ │ └── stdout │ │ ├── f0c91a5124a2 │ │ ├── name │ │ └── stdout │ │ ├── f651b86e22c7 │ │ ├── name │ │ └── stdout │ │ ├── f76e4684cf69 │ │ ├── name │ │ └── stdout │ │ ├── f7c140d27c6f │ │ ├── name │ │ └── stdout │ │ └── fc0ccdecb184 │ │ ├── name │ │ └── stdout ├── syntax_v2 │ ├── anywhere.yaml │ ├── depends_on.yaml │ ├── depends_on_either.yaml │ ├── extract.yaml │ ├── fix.yaml │ ├── labeled_propagators.yaml │ ├── match.yaml │ ├── metadata.yaml │ ├── metadata_supply_chain.yaml │ ├── min_version.yaml │ ├── not_formula.yaml │ ├── options.yaml │ ├── options_aliengrep.yaml │ ├── options_comments.yaml │ ├── regexp_nomatch.yaml │ ├── severity_new.yaml │ ├── steps.yaml │ ├── taint.yaml │ ├── taint_labels.yaml │ ├── validators.yaml │ ├── where_comparison.yaml │ ├── where_formula.yaml │ ├── where_formula_language.yaml │ ├── where_regex.yaml │ ├── where_regex_constprop.yaml │ ├── where_type.yaml │ └── where_types.yaml ├── taint_maturity │ ├── c │ │ ├── taint_if.c │ │ ├── taint_if.yaml │ │ ├── taint_seq.c │ │ └── taint_seq.yaml │ ├── csharp │ │ ├── taint_if.cs │ │ ├── taint_if.yaml │ │ ├── taint_seq.cs │ │ └── taint_seq.yaml │ ├── java │ │ ├── taint_if.java │ │ ├── taint_if.yaml │ │ ├── taint_seq.java │ │ └── taint_seq.yaml │ ├── php │ │ ├── taint_if.php │ │ ├── taint_if.yaml │ │ ├── taint_seq.php │ │ └── taint_seq.yaml │ └── python │ │ ├── taint_if.py │ │ ├── taint_if.yaml │ │ ├── taint_seq.py │ │ └── taint_seq.yaml ├── tainting_rules │ ├── go │ │ ├── command-injection.go │ │ ├── command-injection.yaml │ │ ├── continue.go │ │ ├── continue.yaml │ │ ├── goto_dead_code.go │ │ ├── goto_dead_code.yaml │ │ ├── make.go │ │ ├── make.yaml │ │ ├── nobuiltin.go │ │ ├── nobuiltin.yaml │ │ ├── switch.go │ │ ├── switch.yaml │ │ ├── switch_no_scrutinee.go │ │ ├── switch_no_scrutinee.yaml │ │ ├── token_labels.go │ │ ├── token_labels.yaml │ │ ├── zip-traversal.go │ │ └── zip-traversal.yaml │ ├── java │ │ ├── tainted_args.java │ │ ├── tainted_args.yaml │ │ ├── try_return.java │ │ └── try_return.yaml │ ├── js │ │ ├── await.js │ │ ├── await.yaml │ │ ├── call_chain.js │ │ ├── call_chain.yaml │ │ ├── eslint_obj_inj.js │ │ ├── eslint_obj_inj.yaml │ │ ├── everything_source.js │ │ ├── everything_source.yaml │ │ ├── everything_source1.js │ │ ├── everything_source1.yaml │ │ ├── metavar_eq_conditional.js │ │ ├── metavar_eq_conditional.yaml │ │ ├── metavar_eq_simple.js │ │ ├── metavar_eq_simple.yaml │ │ ├── nested_function.js │ │ ├── nested_function.yaml │ │ ├── sanitized_by_side_effect.js │ │ ├── sanitized_by_side_effect.yaml │ │ ├── simpl_nodejs_eval.js │ │ ├── simpl_nodejs_eval.yaml │ │ ├── throw.js │ │ └── throw.yaml │ ├── php │ │ ├── break.php │ │ ├── break.yaml │ │ ├── echo.php │ │ ├── echo.yaml │ │ ├── lval_var_sink.php │ │ ├── lval_var_sink.yaml │ │ ├── no_duplicate_submatches.php │ │ ├── no_duplicate_submatches.yaml │ │ ├── switch.php │ │ ├── switch.yaml │ │ ├── ternary.php │ │ └── ternary.yaml │ ├── python │ │ ├── break.py │ │ ├── break.yaml │ │ ├── fake_tokens.py │ │ ├── fake_tokens.yaml │ │ ├── raise_from.py │ │ ├── raise_from.yaml │ │ ├── raise_no_args.py │ │ ├── raise_no_args.yaml │ │ ├── simpl_django_redirect.py │ │ ├── simpl_django_redirect.yaml │ │ ├── sink_param.py │ │ ├── sink_param.yaml │ │ ├── sink_return.py │ │ ├── sink_return.yaml │ │ ├── source_param.py │ │ ├── source_param.yaml │ │ ├── tainting_top.py │ │ ├── tainting_top.yaml │ │ ├── try_finally.py │ │ ├── try_finally.yaml │ │ ├── try_finally1.py │ │ ├── try_finally1.yaml │ │ ├── try_raise.py │ │ └── try_raise.yaml │ ├── ruby │ │ ├── switch.rb │ │ └── switch.yaml │ ├── scala │ │ ├── new_object_sink.scala │ │ └── new_object_sink.yaml │ └── ts │ │ ├── source_exp.ts │ │ └── source_exp.yaml ├── typing │ ├── BasicParam.java │ ├── ClassFields.java │ ├── EqVarCmp.java │ ├── FuncParam.go │ ├── PropVarDef.go │ ├── StaticVarDef.go │ └── VarDef.java └── windows │ ├── readme.txt │ ├── rules.yml │ └── test.py └── tools ├── languages_dumper ├── Main.ml └── dune ├── ojsonnet ├── Main.ml └── dune └── otarzan ├── README.md ├── bin ├── Main.ml └── dune └── lib ├── Conf.ml ├── Parse.ml ├── Parse.mli ├── Print.ml ├── Print.mli ├── Run.ml ├── Test_otarzan.ml └── dune /TCB/CapStdlib.ml: -------------------------------------------------------------------------------- 1 | let exit _cap = Stdlib.exit 2 | -------------------------------------------------------------------------------- /bin: -------------------------------------------------------------------------------- 1 | _build/install/default/bin -------------------------------------------------------------------------------- /cli/LICENSE: -------------------------------------------------------------------------------- 1 | ../LICENSE -------------------------------------------------------------------------------- /cli/src/semdep/external/parsy/version.py: -------------------------------------------------------------------------------- 1 | __version__ = "2.0" 2 | -------------------------------------------------------------------------------- /cli/src/semgrep/__init__.py: -------------------------------------------------------------------------------- 1 | __VERSION__ = "1.128.0" 2 | -------------------------------------------------------------------------------- /cli/tests/default/e2e-other/rules: -------------------------------------------------------------------------------- 1 | ../e2e/rules -------------------------------------------------------------------------------- /cli/tests/default/e2e-other/targets: -------------------------------------------------------------------------------- 1 | ../e2e/targets -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/basic/simple_python_no_extension: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/deduplication/deduplication.py: -------------------------------------------------------------------------------- 1 | foo(1,2) -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/generic/generic.txt: -------------------------------------------------------------------------------- 1 | foobar -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/js/sca.js: -------------------------------------------------------------------------------- 1 | x = bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/monorepo/build.js: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/monorepo/webapp1/app.js: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/monorepo/webapp2/app.js: -------------------------------------------------------------------------------- 1 | good() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/multi-dep-rule/bad.js: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/pnpm-error-key/foo.js: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/pnpm-workspaces/foo.js: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/pnpm/foo.js: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/poetry/sca-poetry.py: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/requirement/foo.py: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/requirement_pip/foo.py: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/requirements/foo.py: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/requirements3/foo.py: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/requirements_folder/foo.py: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/requirements_pip/foo.py: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/ruby/sca.rb: -------------------------------------------------------------------------------- 1 | x = bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/rust/sca.rs: -------------------------------------------------------------------------------- 1 | let x = bad(); 2 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/dependency_aware/yarn2/foo.js: -------------------------------------------------------------------------------- 1 | bad() -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/ignores/.gitignore: -------------------------------------------------------------------------------- 1 | bad/ -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/ignores/find.js: -------------------------------------------------------------------------------- 1 | var x = 0 == 0 -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/ignores/ignore.min.js: -------------------------------------------------------------------------------- 1 | var x = 0 == 0 -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/ignores/ignore_test.js: -------------------------------------------------------------------------------- 1 | var x = 0 == 0 -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/ignores/ok/find.js: -------------------------------------------------------------------------------- 1 | var x = 0 == 0 -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/ignores/tests/ignore.js: -------------------------------------------------------------------------------- 1 | var x = 0 == 0 -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/ignores_default/.gitignore: -------------------------------------------------------------------------------- 1 | ignore.js -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/ignores_default/find.js: -------------------------------------------------------------------------------- 1 | var x = 0 == 0 -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/ignores_default/ignore.min.js: -------------------------------------------------------------------------------- 1 | var x = 0 == 0 -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/ignores_default/ignore_test.go: -------------------------------------------------------------------------------- 1 | var x = 0 == 0 -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/language-filtering/call-f.js: -------------------------------------------------------------------------------- 1 | f() 2 | 3 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/language-filtering/call-f.py: -------------------------------------------------------------------------------- 1 | f() 2 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/multilangproj/code.js: -------------------------------------------------------------------------------- 1 | var x = 1+1; 2 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/per-rule-include/dont-scan-me.py: -------------------------------------------------------------------------------- 1 | f() 2 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/per-rule-include/scan-me.py: -------------------------------------------------------------------------------- 1 | f() 2 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/rule_id/hello.txt: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/sort-findings/b.py: -------------------------------------------------------------------------------- 1 | f() 2 | f() 3 | f() 4 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/sort-findings/c.py: -------------------------------------------------------------------------------- 1 | f() 2 | f() 3 | f() 4 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/sort-findings/z/a.py: -------------------------------------------------------------------------------- 1 | f() 2 | f() 3 | -------------------------------------------------------------------------------- /cli/tests/default/e2e/targets/version-constraints/x.py: -------------------------------------------------------------------------------- 1 | x = "hello" 2 | -------------------------------------------------------------------------------- /interfaces/semgrep_interfaces: -------------------------------------------------------------------------------- 1 | ../cli/src/semgrep/semgrep_interfaces -------------------------------------------------------------------------------- /languages/regexp/.gitignore: -------------------------------------------------------------------------------- 1 | /Parser.ml 2 | /Parser.mli 3 | -------------------------------------------------------------------------------- /libs/collections/tests/Unit_Seq_.mli: -------------------------------------------------------------------------------- 1 | val tests : Testo.t list 2 | -------------------------------------------------------------------------------- /libs/commons/UChan.mli: -------------------------------------------------------------------------------- 1 | val with_open_in : Fpath.t -> (Chan.i -> 'a) -> 'a 2 | -------------------------------------------------------------------------------- /libs/commons/tests/Unit_Result_.mli: -------------------------------------------------------------------------------- 1 | val tests : Testo.t list 2 | -------------------------------------------------------------------------------- /libs/murmur3/Murmur3.mli: -------------------------------------------------------------------------------- 1 | val hash128 : string -> string 2 | -------------------------------------------------------------------------------- /libs/profiling/ppx/tests/basic.ml: -------------------------------------------------------------------------------- 1 | let foo a b = a + b [@@profiling] 2 | -------------------------------------------------------------------------------- /libs/profiling/ppx/tests/label.ml: -------------------------------------------------------------------------------- 1 | let foo ~a b = a + b [@@profiling] 2 | -------------------------------------------------------------------------------- /libs/telemetry/ppx/ppx_tests/label.ml: -------------------------------------------------------------------------------- 1 | let foo ~a b = a + b [@@trace] 2 | -------------------------------------------------------------------------------- /perf/bench/dummy/input/dummy/targets/hello.js: -------------------------------------------------------------------------------- 1 | exec("fortune"); 2 | -------------------------------------------------------------------------------- /perf/bench/dummy/targets/hello.js: -------------------------------------------------------------------------------- 1 | exec("fortune"); 2 | -------------------------------------------------------------------------------- /perf/bench/dummy/targets/malformed.js: -------------------------------------------------------------------------------- 1 | // malformed js file 2 | ) 3 | -------------------------------------------------------------------------------- /src/configuring/Rule_options.atd: -------------------------------------------------------------------------------- 1 | ../../interfaces/Rule_options.atd -------------------------------------------------------------------------------- /src/fixing/tests/Unit_autofix_printer.mli: -------------------------------------------------------------------------------- 1 | val tests : Testo.t list 2 | -------------------------------------------------------------------------------- /src/optimizing/Semgrep_prefilter.atd: -------------------------------------------------------------------------------- 1 | ../../interfaces/Semgrep_prefilter.atd -------------------------------------------------------------------------------- /src/osemgrep/cli_ci/Unit_ci.mli: -------------------------------------------------------------------------------- 1 | val tests : Testo.t list 2 | -------------------------------------------------------------------------------- /src/osemgrep/reporting/Gated_data.ml: -------------------------------------------------------------------------------- 1 | let msg = "requires login" 2 | -------------------------------------------------------------------------------- /src/osemgrep/reporting/Unit_reporting.mli: -------------------------------------------------------------------------------- 1 | val tests : < > -> Testo.t list 2 | -------------------------------------------------------------------------------- /src/parsing/Parsing_stats.atd: -------------------------------------------------------------------------------- 1 | ../../interfaces/Parsing_stats.atd -------------------------------------------------------------------------------- /src/rule/Language.ml: -------------------------------------------------------------------------------- 1 | ../../interfaces/semgrep_interfaces/Language.ml -------------------------------------------------------------------------------- /src/rule/Language.mli: -------------------------------------------------------------------------------- 1 | ../../interfaces/semgrep_interfaces/Language.mli -------------------------------------------------------------------------------- /src/spacegrep/.gitignore: -------------------------------------------------------------------------------- 1 | _build 2 | .merlin 3 | /tmp 4 | -------------------------------------------------------------------------------- /src/spacegrep/bin/spacecat: -------------------------------------------------------------------------------- 1 | spacegrep -------------------------------------------------------------------------------- /src/spacegrep/examples/exec.pat: -------------------------------------------------------------------------------- 1 | exec(...) 2 | -------------------------------------------------------------------------------- /src/spacegrep/examples/go-package.pat: -------------------------------------------------------------------------------- 1 | package hacknews 2 | ... 3 | -------------------------------------------------------------------------------- /src/spacegrep/examples/go-package.url: -------------------------------------------------------------------------------- 1 | https://semgrep.dev/Nxwy/ 2 | -------------------------------------------------------------------------------- /src/spacegrep/examples/hello.pat: -------------------------------------------------------------------------------- 1 | function ... { ... hello ... } 2 | -------------------------------------------------------------------------------- /src/spacegrep/examples/js-optional-chain.doc: -------------------------------------------------------------------------------- 1 | var x = foo?.bar?.baz; 2 | -------------------------------------------------------------------------------- /src/spacegrep/examples/js-optional-chain.pat: -------------------------------------------------------------------------------- 1 | foo?.bar 2 | -------------------------------------------------------------------------------- /src/spacegrep/examples/my_first_calculator.py.pat: -------------------------------------------------------------------------------- 1 | = 42 " 2 | -------------------------------------------------------------------------------- /src/spacegrep/examples/python-from.pat: -------------------------------------------------------------------------------- 1 | $X = 0 2 | -------------------------------------------------------------------------------- /src/spacegrep/examples/python-tab.pat: -------------------------------------------------------------------------------- 1 | $X 2 | -------------------------------------------------------------------------------- /src/spacegrep/examples/ruby-erb.pat: -------------------------------------------------------------------------------- 1 | "Version": "..." 2 | -------------------------------------------------------------------------------- /src/spacegrep/src/test/.ocamlformat-ignore: -------------------------------------------------------------------------------- 1 | Comment.ml 2 | -------------------------------------------------------------------------------- /stats/autofix-printing-stats/.gitignore: -------------------------------------------------------------------------------- 1 | tmp 2 | -------------------------------------------------------------------------------- /stats/parsing-stats/test-parsing/.gitignore: -------------------------------------------------------------------------------- 1 | /run-all 2 | /run-lang 3 | -------------------------------------------------------------------------------- /test: -------------------------------------------------------------------------------- 1 | _build/default/src/tests/test.exe -------------------------------------------------------------------------------- /tests/TODO/bad.py: -------------------------------------------------------------------------------- 1 | def foo 2 | return 1 3 | -------------------------------------------------------------------------------- /tests/TODO/basic.sgrep: -------------------------------------------------------------------------------- 1 | foo() -------------------------------------------------------------------------------- /tests/TODO/dots.sgrep: -------------------------------------------------------------------------------- 1 | foo($X, ...); 2 | 3 | -------------------------------------------------------------------------------- /tests/TODO/expr_vs_stmt_metavar.sgrep: -------------------------------------------------------------------------------- 1 | if $X: 2 | $Y 3 | $Y 4 | -------------------------------------------------------------------------------- /tests/TODO/foo.js: -------------------------------------------------------------------------------- 1 | function foo() { 2 | foo(1); 3 | } 4 | -------------------------------------------------------------------------------- /tests/TODO/global.py: -------------------------------------------------------------------------------- 1 | myglobal = 1 2 | -------------------------------------------------------------------------------- /tests/TODO/metavar.sgrep: -------------------------------------------------------------------------------- 1 | foo($X) -------------------------------------------------------------------------------- /tests/TODO/name_metavar.sgrep: -------------------------------------------------------------------------------- 1 | import $X 2 | -------------------------------------------------------------------------------- /tests/TODO/protocol.sgrep: -------------------------------------------------------------------------------- 1 | $V = $F(...) 2 | ... 3 | $G(..., $V, ...) 4 | -------------------------------------------------------------------------------- /tests/TODO/stmt.sgrep: -------------------------------------------------------------------------------- 1 | if $X: 2 | $Y 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /tests/TODO/stmt_basic.sgrep: -------------------------------------------------------------------------------- 1 | import foo 2 | -------------------------------------------------------------------------------- /tests/TODO/stmt_dots.sgrep: -------------------------------------------------------------------------------- 1 | if $X: 2 | ... 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /tests/TODO/stmt_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | $V = open() 2 | ... 3 | close($V) 4 | -------------------------------------------------------------------------------- /tests/TODO/stmt_metavar.sgrep: -------------------------------------------------------------------------------- 1 | if $X: 2 | $Y 3 | -------------------------------------------------------------------------------- /tests/TODO/string.sgrep: -------------------------------------------------------------------------------- 1 | "..." 2 | -------------------------------------------------------------------------------- /tests/TODO/stupid_if.sgrep: -------------------------------------------------------------------------------- 1 | if($X): 2 | $S 3 | else: 4 | $S 5 | -------------------------------------------------------------------------------- /tests/TODO/unify.sgrep: -------------------------------------------------------------------------------- 1 | $X != $X -------------------------------------------------------------------------------- /tests/autofix/cairo/fix_vardef.fix: -------------------------------------------------------------------------------- 1 | const bar : int = $V; -------------------------------------------------------------------------------- /tests/autofix/cairo/fix_vardef.sgrep: -------------------------------------------------------------------------------- 1 | const foo : int = $V; 2 | -------------------------------------------------------------------------------- /tests/autofix/cpp/fix_vardef.fix: -------------------------------------------------------------------------------- 1 | int bar = $V; -------------------------------------------------------------------------------- /tests/autofix/cpp/fix_vardef.sgrep: -------------------------------------------------------------------------------- 1 | int foo = $V; 2 | -------------------------------------------------------------------------------- /tests/autofix/csharp/fix_vardef.fix: -------------------------------------------------------------------------------- 1 | int bar = $V; -------------------------------------------------------------------------------- /tests/autofix/csharp/fix_vardef.sgrep: -------------------------------------------------------------------------------- 1 | int foo = $V; 2 | -------------------------------------------------------------------------------- /tests/autofix/dart/fix_vardef.fix: -------------------------------------------------------------------------------- 1 | int bar = $V; -------------------------------------------------------------------------------- /tests/autofix/dart/fix_vardef.sgrep: -------------------------------------------------------------------------------- 1 | int foo = $V; 2 | -------------------------------------------------------------------------------- /tests/autofix/java/fix_vardef.fix: -------------------------------------------------------------------------------- 1 | int bar = $V; -------------------------------------------------------------------------------- /tests/autofix/java/fix_vardef.sgrep: -------------------------------------------------------------------------------- 1 | int foo = $V; 2 | -------------------------------------------------------------------------------- /tests/autofix/js/arrow_func.fix: -------------------------------------------------------------------------------- 1 | bar($X) 2 | -------------------------------------------------------------------------------- /tests/autofix/js/arrow_func.sgrep: -------------------------------------------------------------------------------- 1 | foo($X) 2 | -------------------------------------------------------------------------------- /tests/autofix/js/fix_obj.fix: -------------------------------------------------------------------------------- 1 | foo({x: true}) 2 | -------------------------------------------------------------------------------- /tests/autofix/js/fix_obj.fixed: -------------------------------------------------------------------------------- 1 | // MATCH: 2 | foo({x: true}); 3 | -------------------------------------------------------------------------------- /tests/autofix/js/fix_obj.js: -------------------------------------------------------------------------------- 1 | // MATCH: 2 | foo(); 3 | -------------------------------------------------------------------------------- /tests/autofix/js/fix_obj.sgrep: -------------------------------------------------------------------------------- 1 | foo() 2 | -------------------------------------------------------------------------------- /tests/autofix/js/metavar_arg.fix: -------------------------------------------------------------------------------- 1 | bar($X, 4) 2 | -------------------------------------------------------------------------------- /tests/autofix/js/metavar_call.fix: -------------------------------------------------------------------------------- 1 | $F(2,1) 2 | -------------------------------------------------------------------------------- /tests/autofix/ocaml/poly_paren_type.fix: -------------------------------------------------------------------------------- 1 | val bar : $X -------------------------------------------------------------------------------- /tests/autofix/ocaml/poly_paren_type.fixed: -------------------------------------------------------------------------------- 1 | val bar : (int, float) Hashtbl.t 2 | -------------------------------------------------------------------------------- /tests/autofix/ocaml/poly_paren_type.ml: -------------------------------------------------------------------------------- 1 | val foo : (int, float) Hashtbl.t 2 | -------------------------------------------------------------------------------- /tests/autofix/ocaml/poly_paren_type.sgrep: -------------------------------------------------------------------------------- 1 | val foo : $X -------------------------------------------------------------------------------- /tests/autofix/ocaml/val.fix: -------------------------------------------------------------------------------- 1 | val foo : float -------------------------------------------------------------------------------- /tests/autofix/ocaml/val.fixed: -------------------------------------------------------------------------------- 1 | (* MATCH: *) 2 | val foo : float 3 | -------------------------------------------------------------------------------- /tests/autofix/ocaml/val.ml: -------------------------------------------------------------------------------- 1 | (* MATCH: *) 2 | val foo: int 3 | -------------------------------------------------------------------------------- /tests/autofix/ocaml/val.sgrep: -------------------------------------------------------------------------------- 1 | val foo: int 2 | -------------------------------------------------------------------------------- /tests/autofix/python/aligned_fix.fix: -------------------------------------------------------------------------------- 1 | foo() 2 | bar() -------------------------------------------------------------------------------- /tests/autofix/python/aligned_fix.fixed: -------------------------------------------------------------------------------- 1 | def f(): 2 | foo() 3 | bar() -------------------------------------------------------------------------------- /tests/autofix/python/aligned_fix.py: -------------------------------------------------------------------------------- 1 | def f(): 2 | to_replace() -------------------------------------------------------------------------------- /tests/autofix/python/aligned_fix.sgrep: -------------------------------------------------------------------------------- 1 | to_replace(...) -------------------------------------------------------------------------------- /tests/autofix/python/aligned_fix_non_ast.fix: -------------------------------------------------------------------------------- 1 | foo() 2 | def def def -------------------------------------------------------------------------------- /tests/autofix/python/aligned_fix_non_ast.py: -------------------------------------------------------------------------------- 1 | def f(): 2 | to_replace() -------------------------------------------------------------------------------- /tests/autofix/python/aligned_fix_non_ast.sgrep: -------------------------------------------------------------------------------- 1 | to_replace(...) -------------------------------------------------------------------------------- /tests/autofix/python/capture_group.fixed: -------------------------------------------------------------------------------- 1 | #MATCH: 2 | f(54321) 3 | -------------------------------------------------------------------------------- /tests/autofix/python/capture_group.py: -------------------------------------------------------------------------------- 1 | #MATCH: 2 | f(12345) 3 | -------------------------------------------------------------------------------- /tests/autofix/python/capture_group.sgrep: -------------------------------------------------------------------------------- 1 | f($X) 2 | -------------------------------------------------------------------------------- /tests/autofix/python/fix_binop.fix: -------------------------------------------------------------------------------- 1 | bar($X * 2) 2 | -------------------------------------------------------------------------------- /tests/autofix/python/fix_binop.sgrep: -------------------------------------------------------------------------------- 1 | foo($X) 2 | -------------------------------------------------------------------------------- /tests/autofix/python/fix_dotted_ident.fix: -------------------------------------------------------------------------------- 1 | bar.$X($...ARGS) 2 | -------------------------------------------------------------------------------- /tests/autofix/python/fix_dotted_ident.sgrep: -------------------------------------------------------------------------------- 1 | foo.$X($...ARGS) 2 | -------------------------------------------------------------------------------- /tests/autofix/python/fix_within_binop.fix: -------------------------------------------------------------------------------- 1 | bar() + 2 2 | -------------------------------------------------------------------------------- /tests/autofix/python/fix_within_binop.sgrep: -------------------------------------------------------------------------------- 1 | foo() 2 | -------------------------------------------------------------------------------- /tests/autofix/python/metavar_call.fix: -------------------------------------------------------------------------------- 1 | $F(2, 1) 2 | -------------------------------------------------------------------------------- /tests/autofix/python/metavar_string2.fix: -------------------------------------------------------------------------------- 1 | bar("$VAR") 2 | -------------------------------------------------------------------------------- /tests/autofix/python/metavar_string2.sgrep: -------------------------------------------------------------------------------- 1 | foo("$VAR") -------------------------------------------------------------------------------- /tests/autofix/python/regexp_count.fix-regex: -------------------------------------------------------------------------------- 1 | A([a-z]) 2 | 2 3 | [\1] -------------------------------------------------------------------------------- /tests/autofix/python/regexp_count.sgrep: -------------------------------------------------------------------------------- 1 | foo($A) -------------------------------------------------------------------------------- /tests/autofix/python/regexp_overcount.fix-regex: -------------------------------------------------------------------------------- 1 | A([a-z]) 2 | 4 3 | [\1] -------------------------------------------------------------------------------- /tests/autofix/python/regexp_overcount.sgrep: -------------------------------------------------------------------------------- 1 | foo($A) -------------------------------------------------------------------------------- /tests/autofix/python/simple_regexp.fix-regex: -------------------------------------------------------------------------------- 1 | A([a-z]) 2 | [\1] 3 | -------------------------------------------------------------------------------- /tests/autofix/python/simple_regexp.sgrep: -------------------------------------------------------------------------------- 1 | foo($A) -------------------------------------------------------------------------------- /tests/autofix/rust/fix_vardef.fix: -------------------------------------------------------------------------------- 1 | const bar : int; -------------------------------------------------------------------------------- /tests/autofix/rust/fix_vardef.sgrep: -------------------------------------------------------------------------------- 1 | const foo : int; 2 | 3 | -------------------------------------------------------------------------------- /tests/autofix/solidity/fix_vardef.fix: -------------------------------------------------------------------------------- 1 | int constant bar = $V; -------------------------------------------------------------------------------- /tests/autofix/solidity/fix_vardef.sgrep: -------------------------------------------------------------------------------- 1 | int constant foo = $V; 2 | -------------------------------------------------------------------------------- /tests/autofix/ts/fix_cast.fix: -------------------------------------------------------------------------------- 1 | 2 + $X 2 | -------------------------------------------------------------------------------- /tests/autofix/ts/fix_cast.sgrep: -------------------------------------------------------------------------------- 1 | 1 + $X 2 | -------------------------------------------------------------------------------- /tests/irrelevant_rules/mvar-regex1.txt: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /tests/irrelevant_rules/mvar-regex2.go: -------------------------------------------------------------------------------- 1 | import "foo/bar" 2 | -------------------------------------------------------------------------------- /tests/irrelevant_rules/pattern-and.py: -------------------------------------------------------------------------------- 1 | import child_process 2 | 3 | m -------------------------------------------------------------------------------- /tests/irrelevant_rules/pattern-either.py: -------------------------------------------------------------------------------- 1 | import django 2 | import os -------------------------------------------------------------------------------- /tests/irrelevant_rules/pattern-regex.py: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /tests/irrelevant_rules/pattern.py: -------------------------------------------------------------------------------- 1 | shell -------------------------------------------------------------------------------- /tests/irrelevant_rules/taint-general-source.py: -------------------------------------------------------------------------------- 1 | call(input) -------------------------------------------------------------------------------- /tests/jsonnet/errors/error1.jsonnet: -------------------------------------------------------------------------------- 1 | [1, error "problem houston"] 2 | -------------------------------------------------------------------------------- /tests/jsonnet/errors/error2.jsonnet: -------------------------------------------------------------------------------- 1 | [1, error [1,2]] 2 | 3 | -------------------------------------------------------------------------------- /tests/jsonnet/errors/floor_not_float.jsonnet: -------------------------------------------------------------------------------- 1 | std.floor("32.6") 2 | -------------------------------------------------------------------------------- /tests/jsonnet/only_envir/format.json: -------------------------------------------------------------------------------- 1 | "hello 12" 2 | -------------------------------------------------------------------------------- /tests/jsonnet/only_envir/format.jsonnet: -------------------------------------------------------------------------------- 1 | std.format("hello %d", 12) 2 | -------------------------------------------------------------------------------- /tests/jsonnet/only_envir/format_percent.json: -------------------------------------------------------------------------------- 1 | "Hello 12" 2 | -------------------------------------------------------------------------------- /tests/jsonnet/only_envir/format_percent.jsonnet: -------------------------------------------------------------------------------- 1 | "Hello %d" % 12 2 | -------------------------------------------------------------------------------- /tests/jsonnet/only_envir/format_string.json: -------------------------------------------------------------------------------- 1 | "foostuffbar" 2 | -------------------------------------------------------------------------------- /tests/jsonnet/only_subst/basic_super.json: -------------------------------------------------------------------------------- 1 | { "x": 2, "y": 3, "z": 2 } -------------------------------------------------------------------------------- /tests/jsonnet/pass/adding_self_to_self.json: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /tests/jsonnet/pass/array_comprehension2.json: -------------------------------------------------------------------------------- 1 | [2,3,4] -------------------------------------------------------------------------------- /tests/jsonnet/pass/basic.json: -------------------------------------------------------------------------------- 1 | [3,42] -------------------------------------------------------------------------------- /tests/jsonnet/pass/basic.jsonnet: -------------------------------------------------------------------------------- 1 | [1+2, 42] 2 | 3 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/closure.json: -------------------------------------------------------------------------------- 1 | 5 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/closure2.json: -------------------------------------------------------------------------------- 1 | 6 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/concat1.json: -------------------------------------------------------------------------------- 1 | ["foobar"] -------------------------------------------------------------------------------- /tests/jsonnet/pass/concat1.jsonnet: -------------------------------------------------------------------------------- 1 | ["foo" + "bar"] 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/concat2.json: -------------------------------------------------------------------------------- 1 | ["foo[1,2]"] -------------------------------------------------------------------------------- /tests/jsonnet/pass/concat2.jsonnet: -------------------------------------------------------------------------------- 1 | ["foo" + [1,2]] 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/extending_self_on_left.json: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /tests/jsonnet/pass/extending_self_on_right.json: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /tests/jsonnet/pass/filter.json: -------------------------------------------------------------------------------- 1 | [2,3] -------------------------------------------------------------------------------- /tests/jsonnet/pass/foo.txt: -------------------------------------------------------------------------------- 1 | this is a long string 2 | and it's amazing 3 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/function.json: -------------------------------------------------------------------------------- 1 | {"foo":3,"bar":42} -------------------------------------------------------------------------------- /tests/jsonnet/pass/import.json: -------------------------------------------------------------------------------- 1 | [[3,42]] -------------------------------------------------------------------------------- /tests/jsonnet/pass/import_local.json: -------------------------------------------------------------------------------- 1 | {"bar":1} 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/importstr.json: -------------------------------------------------------------------------------- 1 | ["this is a long string\nand it's amazing\n"] -------------------------------------------------------------------------------- /tests/jsonnet/pass/inf.json: -------------------------------------------------------------------------------- 1 | false 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/inf.jsonnet: -------------------------------------------------------------------------------- 1 | local val = 0; 2 | val <= -1 3 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/length.json: -------------------------------------------------------------------------------- 1 | [2,2,3] -------------------------------------------------------------------------------- /tests/jsonnet/pass/locals_in_objects.json: -------------------------------------------------------------------------------- 1 | { "x": 4, "y": 3 } -------------------------------------------------------------------------------- /tests/jsonnet/pass/multiple_inheritance_with_empty.json: -------------------------------------------------------------------------------- 1 | { "x": 1, "y": 1 } -------------------------------------------------------------------------------- /tests/jsonnet/pass/nested_object_with_self.json: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /tests/jsonnet/pass/null_field.json: -------------------------------------------------------------------------------- 1 | {"foo":1} -------------------------------------------------------------------------------- /tests/jsonnet/pass/obj_access.json: -------------------------------------------------------------------------------- 1 | {"foo":1,"bar":2} 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/object.json: -------------------------------------------------------------------------------- 1 | {"foo":1,"bar":"str"} -------------------------------------------------------------------------------- /tests/jsonnet/pass/object.jsonnet: -------------------------------------------------------------------------------- 1 | { 2 | foo: 1, 3 | bar: "str", 4 | } 5 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/objectHas.json: -------------------------------------------------------------------------------- 1 | [true,false] -------------------------------------------------------------------------------- /tests/jsonnet/pass/plus_object.json: -------------------------------------------------------------------------------- 1 | {"bar":2,"foo":2,"foobar":2} -------------------------------------------------------------------------------- /tests/jsonnet/pass/render_int.json: -------------------------------------------------------------------------------- 1 | "-0" 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/returning_self.json: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /tests/jsonnet/pass/self_access.json: -------------------------------------------------------------------------------- 1 | {"foo":42,"bar":42} -------------------------------------------------------------------------------- /tests/jsonnet/pass/self_as_object.json: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /tests/jsonnet/pass/self_as_object.jsonnet: -------------------------------------------------------------------------------- 1 | { x: 1, y: self }.y.y.x 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/self_bound_correctly_in_superobjects.json: -------------------------------------------------------------------------------- 1 | 2 -------------------------------------------------------------------------------- /tests/jsonnet/pass/short_circuit_func.json: -------------------------------------------------------------------------------- 1 | [false] -------------------------------------------------------------------------------- /tests/jsonnet/pass/simple_self.json: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /tests/jsonnet/pass/simple_self.jsonnet: -------------------------------------------------------------------------------- 1 | { x: 1, y: self.x }.y 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/simple_self_with_plus.json: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /tests/jsonnet/pass/string.json: -------------------------------------------------------------------------------- 1 | ["foobar"] -------------------------------------------------------------------------------- /tests/jsonnet/pass/string.jsonnet: -------------------------------------------------------------------------------- 1 | ["foobar"] 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/string_access.json: -------------------------------------------------------------------------------- 1 | "f" 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/string_access.jsonnet: -------------------------------------------------------------------------------- 1 | "foobar"[0] 2 | -------------------------------------------------------------------------------- /tests/jsonnet/pass/super_up_two_levels.json: -------------------------------------------------------------------------------- 1 | { "x": 3, "y": 1, "z": 2 } -------------------------------------------------------------------------------- /tests/jsonnet/pass/use_std.json: -------------------------------------------------------------------------------- 1 | [3,10,2] -------------------------------------------------------------------------------- /tests/jsonnet/tutorial/pass/garnish.txt: -------------------------------------------------------------------------------- 1 | Maraschino Cherry -------------------------------------------------------------------------------- /tests/login/bad_response.json: -------------------------------------------------------------------------------- 1 | { 2 | "error": "Not authorized" 3 | } 4 | -------------------------------------------------------------------------------- /tests/misc/il/array.js: -------------------------------------------------------------------------------- 1 | function foo() { 2 | return a[1][2]; 3 | } 4 | -------------------------------------------------------------------------------- /tests/misc/il/assert.py: -------------------------------------------------------------------------------- 1 | def foo(): 2 | assert 1 == 1 3 | -------------------------------------------------------------------------------- /tests/misc/il/basic.py: -------------------------------------------------------------------------------- 1 | def foo(): 2 | return 1+2 3 | -------------------------------------------------------------------------------- /tests/misc/il/call.py: -------------------------------------------------------------------------------- 1 | def foo(): 2 | a = bar() 3 | -------------------------------------------------------------------------------- /tests/misc/il/container.py: -------------------------------------------------------------------------------- 1 | def foo(): 2 | a = [eval(1), 2, 3] 3 | -------------------------------------------------------------------------------- /tests/misc/il/var.js: -------------------------------------------------------------------------------- 1 | function foo() { 2 | var x = 1; 3 | } 4 | -------------------------------------------------------------------------------- /tests/misc/il/var.py: -------------------------------------------------------------------------------- 1 | def foo(): 2 | a = 1 3 | -------------------------------------------------------------------------------- /tests/misc/perf/input/stmts-ellipsis-ab.sgrep: -------------------------------------------------------------------------------- 1 | $A; 2 | ... 3 | foo($B); 4 | -------------------------------------------------------------------------------- /tests/misc/target_file/target_file.list: -------------------------------------------------------------------------------- 1 | tests/js/concrete_syntax.js -------------------------------------------------------------------------------- /tests/parsing/bash/and-cond.bash: -------------------------------------------------------------------------------- 1 | if a && b; then 2 | c 3 | fi 4 | -------------------------------------------------------------------------------- /tests/parsing/bash/hello.bash: -------------------------------------------------------------------------------- 1 | echo hello 2 | -------------------------------------------------------------------------------- /tests/parsing/bash/pipe-or.bash: -------------------------------------------------------------------------------- 1 | a | b || c 2 | -------------------------------------------------------------------------------- /tests/parsing/bash/pipe-redirect.bash: -------------------------------------------------------------------------------- 1 | a | b > c 2 | -------------------------------------------------------------------------------- /tests/parsing/c/basic.c: -------------------------------------------------------------------------------- 1 | 2 | int main() { 3 | return 0; 4 | } -------------------------------------------------------------------------------- /tests/parsing/c/char.c: -------------------------------------------------------------------------------- 1 | char grade = 'D'; 2 | -------------------------------------------------------------------------------- /tests/parsing/cpp/char.cpp: -------------------------------------------------------------------------------- 1 | char grade = 'D'; 2 | -------------------------------------------------------------------------------- /tests/parsing/cpp/pointer_type_declarator_ident.cpp: -------------------------------------------------------------------------------- 1 | 2 | int x = A::B::**foo; -------------------------------------------------------------------------------- /tests/parsing/csharp/extern_alias.cs: -------------------------------------------------------------------------------- 1 | extern alias Foo; 2 | -------------------------------------------------------------------------------- /tests/parsing/dockerfile/no-trailing-newline.dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu -------------------------------------------------------------------------------- /tests/parsing/dockerfile/numeric-user.dockerfile: -------------------------------------------------------------------------------- 1 | USER 1000 2 | -------------------------------------------------------------------------------- /tests/parsing/dockerfile/user.dockerfile: -------------------------------------------------------------------------------- 1 | USER alpha 2 | -------------------------------------------------------------------------------- /tests/parsing/js/jsx.js: -------------------------------------------------------------------------------- 1 | return <a>text</a>; 2 | -------------------------------------------------------------------------------- /tests/parsing/jsonnet/foo.jsonnet: -------------------------------------------------------------------------------- 1 | foo(1, 2) 2 | #null 3 | 4 | -------------------------------------------------------------------------------- /tests/parsing/jsonnet/string.jsonnet: -------------------------------------------------------------------------------- 1 | local x = 'foo'; 2 | 1 3 | -------------------------------------------------------------------------------- /tests/parsing/julia/helloworld.jl: -------------------------------------------------------------------------------- 1 | println("hello world") 2 | -------------------------------------------------------------------------------- /tests/parsing/kotlin/binary-func.kt: -------------------------------------------------------------------------------- 1 | fun foo() { 2 | 2/3 3 | } 4 | -------------------------------------------------------------------------------- /tests/parsing/kotlin/small-program.kt: -------------------------------------------------------------------------------- 1 | fun foo() { 2 | 2 3 | } 4 | -------------------------------------------------------------------------------- /tests/parsing/kotlin/string.kt: -------------------------------------------------------------------------------- 1 | fun foo() { 2 | "what" 3 | } 4 | -------------------------------------------------------------------------------- /tests/parsing/lua/hello_world.lua: -------------------------------------------------------------------------------- 1 | print "Hello World!" 2 | -------------------------------------------------------------------------------- /tests/parsing/lua/one.lua: -------------------------------------------------------------------------------- 1 | return 1 2 | -------------------------------------------------------------------------------- /tests/parsing/ocaml/attribute_type.ml: -------------------------------------------------------------------------------- 1 | type foo = int [@opaque] 2 | -------------------------------------------------------------------------------- /tests/parsing/ocaml/basic.mli: -------------------------------------------------------------------------------- 1 | val foo: int -> bool 2 | 3 | -------------------------------------------------------------------------------- /tests/parsing/php/class.php: -------------------------------------------------------------------------------- 1 | <?php 2 | 3 | class Foo { 4 | } 5 | -------------------------------------------------------------------------------- /tests/parsing/python/re.py: -------------------------------------------------------------------------------- 1 | re.match(foo, "0|false|null") 2 | -------------------------------------------------------------------------------- /tests/parsing/ql/basic.ql: -------------------------------------------------------------------------------- 1 | from Int x 2 | select x -------------------------------------------------------------------------------- /tests/parsing/r/hello-world.r: -------------------------------------------------------------------------------- 1 | print("Hello world!") -------------------------------------------------------------------------------- /tests/parsing/ruby/string.rb: -------------------------------------------------------------------------------- 1 | a = "foo" 2 | -------------------------------------------------------------------------------- /tests/parsing/scala/fun_dcl.scala: -------------------------------------------------------------------------------- 1 | trait foo: 2 | def bar : T -------------------------------------------------------------------------------- /tests/parsing/scala/splatted_args.scala: -------------------------------------------------------------------------------- 1 | 2 | val x = foo(1, 2, bar*) -------------------------------------------------------------------------------- /tests/parsing/scala/using_args.scala: -------------------------------------------------------------------------------- 1 | 2 | val x = foo(using 1, 2, 3) -------------------------------------------------------------------------------- /tests/parsing/swift/hello-world.swift: -------------------------------------------------------------------------------- 1 | print("hello world") 2 | -------------------------------------------------------------------------------- /tests/parsing_errors/err.ts: -------------------------------------------------------------------------------- 1 | function foo() { 2 | return 1+ 3 | } -------------------------------------------------------------------------------- /tests/parsing_errors/unbalanced_brace.py: -------------------------------------------------------------------------------- 1 | #{ 2 | { 3 | } 4 | } 5 | -------------------------------------------------------------------------------- /tests/parsing_patterns/go/ellipsis_asi.sgrep: -------------------------------------------------------------------------------- 1 | &http.Transport{ 2 | ... 3 | } -------------------------------------------------------------------------------- /tests/parsing_patterns/java/import.java: -------------------------------------------------------------------------------- 1 | import a.b.c; 2 | -------------------------------------------------------------------------------- /tests/parsing_patterns/java/import.sgrep: -------------------------------------------------------------------------------- 1 | import $P; 2 | -------------------------------------------------------------------------------- /tests/parsing_patterns/java/package.sgrep: -------------------------------------------------------------------------------- 1 | package $X; 2 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/anonymous_metavar.sgrep: -------------------------------------------------------------------------------- 1 | $_ -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/concrete_syntax.sgrep: -------------------------------------------------------------------------------- 1 | foo(1, 2) -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | foo(<... 42 ...>); 2 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/deep_exprstmt.sgrep: -------------------------------------------------------------------------------- 1 | foo(); 2 | bar(); 3 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/dots_args.sgrep: -------------------------------------------------------------------------------- 1 | foo(..., 5) -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/dots_expr.sgrep: -------------------------------------------------------------------------------- 1 | $X = ... -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/dots_for.sgrep: -------------------------------------------------------------------------------- 1 | for(...) { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/dots_nested_stmts.sgrep: -------------------------------------------------------------------------------- 1 | if (...) 2 | ... 3 | 4 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/dots_string.sgrep: -------------------------------------------------------------------------------- 1 | foo("...") -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/equivalence_constant_propagation.sgrep: -------------------------------------------------------------------------------- 1 | $F("password") -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/equivalence_float.sgrep: -------------------------------------------------------------------------------- 1 | 1.23 2 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/equivalence_number.sgrep: -------------------------------------------------------------------------------- 1 | 8 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/metavar_arg.sgrep: -------------------------------------------------------------------------------- 1 | foo($X, 2) -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/metavar_call.sgrep: -------------------------------------------------------------------------------- 1 | $F(1,2) -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/metavar_cond.sgrep: -------------------------------------------------------------------------------- 1 | if ($E) 2 | foo(); 3 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/metavar_equality_expr.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/metavar_key_value.sgrep: -------------------------------------------------------------------------------- 1 | {..., $KEY: $VALUE, ...} 2 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/metavar_stmt.sgrep: -------------------------------------------------------------------------------- 1 | if ($X > $Y) 2 | $S; 3 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/metavar_string.sgrep: -------------------------------------------------------------------------------- 1 | foo("$VAR") -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/partial_class.sgrep: -------------------------------------------------------------------------------- 1 | class $A 2 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/partial_finally.sgrep: -------------------------------------------------------------------------------- 1 | finally { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/partial_if.sgrep: -------------------------------------------------------------------------------- 1 | if($X > $Y) 2 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/partial_try.sgrep: -------------------------------------------------------------------------------- 1 | try { ... } 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/POLYGLOT/regexp_pcre.sgrep: -------------------------------------------------------------------------------- 1 | $X = "=~/[A-Fa-f0-9]{16}/" 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/added_identifier.sh: -------------------------------------------------------------------------------- 1 | echo hello -------------------------------------------------------------------------------- /tests/patterns/bash/anchored-stmt.sgrep: -------------------------------------------------------------------------------- 1 | { a; } 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/anonymous_metavar.bash: -------------------------------------------------------------------------------- 1 | 2 | # ERROR: 3 | a=3 -------------------------------------------------------------------------------- /tests/patterns/bash/arg-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | echo ... hello 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/arg-named-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | echo $...ARGS hello 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/array-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | ar=(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/assign-add.sgrep: -------------------------------------------------------------------------------- 1 | a+=... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/assign.bash: -------------------------------------------------------------------------------- 1 | # MATCH: 2 | a=42 3 | 4 | b=42 5 | -------------------------------------------------------------------------------- /tests/patterns/bash/assign.sgrep: -------------------------------------------------------------------------------- 1 | a=... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/background.sgrep: -------------------------------------------------------------------------------- 1 | ... & 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/case-body.sgrep: -------------------------------------------------------------------------------- 1 | echo ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/command-substitution-body.sgrep: -------------------------------------------------------------------------------- 1 | echo ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/command-substitution.bash: -------------------------------------------------------------------------------- 1 | # MATCH: 2 | echo $(ls) 3 | -------------------------------------------------------------------------------- /tests/patterns/bash/command-substitution.sgrep: -------------------------------------------------------------------------------- 1 | ... $(...) ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/concatenation-ellipsis.bash: -------------------------------------------------------------------------------- 1 | # MATCH: 2 | a${x}c 3 | -------------------------------------------------------------------------------- /tests/patterns/bash/concatenation-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | ...${$VAR}... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/concatenation-named-ellipsis.bash: -------------------------------------------------------------------------------- 1 | # MATCH: 2 | a${x}c 3 | -------------------------------------------------------------------------------- /tests/patterns/bash/concatenation-named-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | $...A${$VAR}$...B 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/concatenation.bash: -------------------------------------------------------------------------------- 1 | # MATCH: 2 | a'b' 3 | -------------------------------------------------------------------------------- /tests/patterns/bash/concatenation.sgrep: -------------------------------------------------------------------------------- 1 | a'b' -------------------------------------------------------------------------------- /tests/patterns/bash/concrete_syntax.sgrep: -------------------------------------------------------------------------------- 1 | foo bar 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/declaration-assignments.sgrep: -------------------------------------------------------------------------------- 1 | declare -r $VAR=... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | foo <... bar ...> 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/deep_exprstmt.sgrep: -------------------------------------------------------------------------------- 1 | foo 2 | bar 3 | -------------------------------------------------------------------------------- /tests/patterns/bash/dots_args.sgrep: -------------------------------------------------------------------------------- 1 | foo ... 5 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/dots_stmts.sgrep: -------------------------------------------------------------------------------- 1 | $V=$(cat) 2 | ... 3 | eval ${$V} 4 | -------------------------------------------------------------------------------- /tests/patterns/bash/dots_string.sgrep: -------------------------------------------------------------------------------- 1 | foo "..." 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/expression.sgrep: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/for-body.sgrep: -------------------------------------------------------------------------------- 1 | echo ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/function-body.sgrep: -------------------------------------------------------------------------------- 1 | echo ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/function.sgrep: -------------------------------------------------------------------------------- 1 | function f(){ ...; } 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/hello.sgrep: -------------------------------------------------------------------------------- 1 | echo ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/if-body.sgrep: -------------------------------------------------------------------------------- 1 | echo ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/if-header.sgrep: -------------------------------------------------------------------------------- 1 | echo ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/match-cmd-or-arg.sgrep: -------------------------------------------------------------------------------- 1 | a 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/metavar_arg.sgrep: -------------------------------------------------------------------------------- 1 | foo $X 2 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/metavar_call.sgrep: -------------------------------------------------------------------------------- 1 | $CMD foo bar 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/metavar_equality_expr.sgrep: -------------------------------------------------------------------------------- 1 | cp ... $X ... $X 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/metavar_func_def.sgrep: -------------------------------------------------------------------------------- 1 | function $F() { 2 | ... 3 | } 4 | -------------------------------------------------------------------------------- /tests/patterns/bash/nested_stmts.sgrep: -------------------------------------------------------------------------------- 1 | if ...; then 2 | ... 3 | fi 4 | -------------------------------------------------------------------------------- /tests/patterns/bash/normalize-dquoted-word.sgrep: -------------------------------------------------------------------------------- 1 | "hello" world 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/normalize-squoted-word.sgrep: -------------------------------------------------------------------------------- 1 | 'hello' world 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/not-an-expression1.sgrep: -------------------------------------------------------------------------------- 1 | foo; 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/not-an-expression2.sgrep: -------------------------------------------------------------------------------- 1 | foo > bar 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/not-an-expression3.sgrep: -------------------------------------------------------------------------------- 1 | foo & 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/not-an-expression4.bash: -------------------------------------------------------------------------------- 1 | # MATCH: 2 | foo bar 3 | -------------------------------------------------------------------------------- /tests/patterns/bash/not-an-expression4.sgrep: -------------------------------------------------------------------------------- 1 | foo bar 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/not-an-expression5.sgrep: -------------------------------------------------------------------------------- 1 | foo | bar 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/not.sgrep: -------------------------------------------------------------------------------- 1 | ! ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/or.sgrep: -------------------------------------------------------------------------------- 1 | ... || ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/pipeline.sgrep: -------------------------------------------------------------------------------- 1 | ... | echo ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/quoted-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | "..." 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/quoted-ellipsis2.sgrep: -------------------------------------------------------------------------------- 1 | "${$A}...${$B}" 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/quoted-expansion.sgrep: -------------------------------------------------------------------------------- 1 | "$X" 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/quoted-named-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | "$...X" 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/quoted-named-ellipsis2.sgrep: -------------------------------------------------------------------------------- 1 | "${$A}$...MIDDLE${$B}" 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/select-body.sgrep: -------------------------------------------------------------------------------- 1 | echo ... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/set-lhs-metavar.bash: -------------------------------------------------------------------------------- 1 | # MATCH: 2 | a=42 3 | -------------------------------------------------------------------------------- /tests/patterns/bash/set-lhs-metavar.sgrep: -------------------------------------------------------------------------------- 1 | $X=42 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/set-rhs-metavar.bash: -------------------------------------------------------------------------------- 1 | # MATCH: 2 | HOME=$X 3 | -------------------------------------------------------------------------------- /tests/patterns/bash/set-rhs-metavar.sgrep: -------------------------------------------------------------------------------- 1 | HOME=$ANY 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/stmt-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | a; ...; b 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/stmt-named-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | a; $...STMT; b 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/subshell.sgrep: -------------------------------------------------------------------------------- 1 | (...) 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/todo/array-named-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | ar=($...X) 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/todo/assign-multi.sgrep: -------------------------------------------------------------------------------- 1 | a=... 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/todo/c-style-loop.sgrep: -------------------------------------------------------------------------------- 1 | for ...; do 2 | ... 3 | done 4 | -------------------------------------------------------------------------------- /tests/patterns/bash/todo/until.sgrep: -------------------------------------------------------------------------------- 1 | until ...; do 2 | ... 3 | done 4 | 5 | -------------------------------------------------------------------------------- /tests/patterns/bash/todo/var-ellipsis-var.bash: -------------------------------------------------------------------------------- 1 | 'a'b 2 | -------------------------------------------------------------------------------- /tests/patterns/bash/todo/var-ellipsis-var.sgrep: -------------------------------------------------------------------------------- 1 | # MATCH: 2 | $A...$B 3 | -------------------------------------------------------------------------------- /tests/patterns/bash/while-body.sgrep: -------------------------------------------------------------------------------- 1 | echo ... 2 | -------------------------------------------------------------------------------- /tests/patterns/c/anonymous_metavar.c: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 2; -------------------------------------------------------------------------------- /tests/patterns/c/const-prop-buf-decl-flow.sgrep: -------------------------------------------------------------------------------- 1 | $TYPE $NAME[50]; 2 | -------------------------------------------------------------------------------- /tests/patterns/c/const-prop-buf-decl.sgrep: -------------------------------------------------------------------------------- 1 | $TYPE $NAME[42]; 2 | -------------------------------------------------------------------------------- /tests/patterns/c/dots_params.sgrep: -------------------------------------------------------------------------------- 1 | int $F(...) { 2 | } 3 | -------------------------------------------------------------------------------- /tests/patterns/c/dots_sizeof.sgrep: -------------------------------------------------------------------------------- 1 | sizeof(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/c/metavar_import.sgrep: -------------------------------------------------------------------------------- 1 | #include $X 2 | -------------------------------------------------------------------------------- /tests/patterns/c/metavar_typed.sgrep: -------------------------------------------------------------------------------- 1 | (char *$X) == $Y 2 | -------------------------------------------------------------------------------- /tests/patterns/c/metavar_typed_generic.sgrep: -------------------------------------------------------------------------------- 1 | ($T *$X) == ($T *$Y) 2 | -------------------------------------------------------------------------------- /tests/patterns/c/misc_toplevel_macrocall.sgrep: -------------------------------------------------------------------------------- 1 | SOME_FUNC(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/c/misc_typedef_inference.sgrep: -------------------------------------------------------------------------------- 1 | sizeof($X) 2 | -------------------------------------------------------------------------------- /tests/patterns/c/partial_parsing/misc_ifdef_strings.sgrep: -------------------------------------------------------------------------------- 1 | SOME_FUNC(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/cairo/deep_cond.sgrep: -------------------------------------------------------------------------------- 1 | if <... $SOME_EXPR == true ...> {} 2 | -------------------------------------------------------------------------------- /tests/patterns/cairo/dots_args.sgrep: -------------------------------------------------------------------------------- 1 | 2 | bar(...); 3 | -------------------------------------------------------------------------------- /tests/patterns/cairo/dots_loop.sgrep: -------------------------------------------------------------------------------- 1 | loop { 2 | ... 3 | } 4 | -------------------------------------------------------------------------------- /tests/patterns/cairo/metavar_let.sgrep: -------------------------------------------------------------------------------- 1 | let $X = $Y; 2 | -------------------------------------------------------------------------------- /tests/patterns/cairo/metavar_stmt.sgrep: -------------------------------------------------------------------------------- 1 | if $X > $Y { 2 | $S; 3 | } 4 | -------------------------------------------------------------------------------- /tests/patterns/cairo/misc_impl.sgrep: -------------------------------------------------------------------------------- 1 | impl UnsafeType of $USERTYPE {} 2 | -------------------------------------------------------------------------------- /tests/patterns/circom/anonymous_metavar.circom: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 1; -------------------------------------------------------------------------------- /tests/patterns/circom/metavar_version.circom: -------------------------------------------------------------------------------- 1 | // MATCH: 2 | pragma circom 2.0.0; -------------------------------------------------------------------------------- /tests/patterns/circom/metavar_version.sgrep: -------------------------------------------------------------------------------- 1 | pragma circom $PRAGMA; -------------------------------------------------------------------------------- /tests/patterns/clojure/concrete_syntax.sgrep: -------------------------------------------------------------------------------- 1 | (foo 1 2) 2 | -------------------------------------------------------------------------------- /tests/patterns/clojure/dots_args.sgrep: -------------------------------------------------------------------------------- 1 | (foo ... 5) 2 | -------------------------------------------------------------------------------- /tests/patterns/clojure/dots_string.sgrep: -------------------------------------------------------------------------------- 1 | (foo "...") 2 | 3 | 4 | -------------------------------------------------------------------------------- /tests/patterns/clojure/metavar_arg.sgrep: -------------------------------------------------------------------------------- 1 | (foo $X 2) 2 | -------------------------------------------------------------------------------- /tests/patterns/clojure/metavar_call.sgrep: -------------------------------------------------------------------------------- 1 | ($F 1 2) 2 | -------------------------------------------------------------------------------- /tests/patterns/clojure/metavar_slash_access.sgrep: -------------------------------------------------------------------------------- 1 | ($X/parse 1 2) 2 | -------------------------------------------------------------------------------- /tests/patterns/cp_exception.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X -------------------------------------------------------------------------------- /tests/patterns/cpp/anonymous_metavar.cpp: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 2; -------------------------------------------------------------------------------- /tests/patterns/cpp/block_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | { ... } -------------------------------------------------------------------------------- /tests/patterns/cpp/dots_namespace.sgrep: -------------------------------------------------------------------------------- 1 | namespace VM { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/cpp/dots_params.sgrep: -------------------------------------------------------------------------------- 1 | int $F(...) { 2 | } 3 | -------------------------------------------------------------------------------- /tests/patterns/cpp/misc_const.sgrep: -------------------------------------------------------------------------------- 1 | const $TYPE $VARIABLE = $VALUE; 2 | -------------------------------------------------------------------------------- /tests/patterns/cpp/misc_include.sgrep: -------------------------------------------------------------------------------- 1 | #include <foo.h> 2 | -------------------------------------------------------------------------------- /tests/patterns/cpp/named_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | foo($...X) -------------------------------------------------------------------------------- /tests/patterns/cpp/standalone_expr.sgrep: -------------------------------------------------------------------------------- 1 | foo(...) -------------------------------------------------------------------------------- /tests/patterns/cpp/toplevel_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | ... -------------------------------------------------------------------------------- /tests/patterns/cpp/typed_metavar.sgrep: -------------------------------------------------------------------------------- 1 | (int $X) -------------------------------------------------------------------------------- /tests/patterns/csharp/concrete_syntax.sgrep: -------------------------------------------------------------------------------- 1 | Foo(1, 2) -------------------------------------------------------------------------------- /tests/patterns/csharp/decl_before_init.sgrep: -------------------------------------------------------------------------------- 1 | (IFoobar $F).Find(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/csharp/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | <... 12 ...> -------------------------------------------------------------------------------- /tests/patterns/csharp/dots_args.sgrep: -------------------------------------------------------------------------------- 1 | Foo(..., 5) 2 | -------------------------------------------------------------------------------- /tests/patterns/csharp/dots_class.sgrep: -------------------------------------------------------------------------------- 1 | class Foo { ... } -------------------------------------------------------------------------------- /tests/patterns/csharp/dots_stmts.sgrep: -------------------------------------------------------------------------------- 1 | $X = Get(); 2 | ... 3 | Eval($X); 4 | -------------------------------------------------------------------------------- /tests/patterns/csharp/dots_string.sgrep: -------------------------------------------------------------------------------- 1 | Foo("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/csharp/loops.sgrep: -------------------------------------------------------------------------------- 1 | while($COND) { ... } -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_anno.sgrep: -------------------------------------------------------------------------------- 1 | [$ANNO] 2 | class $CLASS{ ... } -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_arg.sgrep: -------------------------------------------------------------------------------- 1 | Foo($X, 2) 2 | -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_class_def.sgrep: -------------------------------------------------------------------------------- 1 | class $KLASS {} -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_cond.sgrep: -------------------------------------------------------------------------------- 1 | if ($COND) { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_ellipsis_new_args.sgrep: -------------------------------------------------------------------------------- 1 | new C($...ARGS) 2 | -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_equality_expr.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_func_def.sgrep: -------------------------------------------------------------------------------- 1 | $RETURNTYPE $FUNC(...) {...} -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_import.sgrep: -------------------------------------------------------------------------------- 1 | using $X; -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_key_value.sgrep: -------------------------------------------------------------------------------- 1 | Foo(..., bar: 42, ...); -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_stmt.sgrep: -------------------------------------------------------------------------------- 1 | if ($E) { 2 | $S; 3 | } 4 | -------------------------------------------------------------------------------- /tests/patterns/csharp/metavar_typed.sgrep: -------------------------------------------------------------------------------- 1 | $X == (String $Y) 2 | -------------------------------------------------------------------------------- /tests/patterns/csharp/misc_enum_pattern.sgrep: -------------------------------------------------------------------------------- 1 | public enum $ENUM { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/dart/anonymous_metavar.dart: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | const x = 2; -------------------------------------------------------------------------------- /tests/patterns/dart/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | foo(<... 42 ...>) -------------------------------------------------------------------------------- /tests/patterns/dockerfile/add.sgrep: -------------------------------------------------------------------------------- 1 | ADD file1 file2 /mydir/ 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/arg-default-metavar.sgrep: -------------------------------------------------------------------------------- 1 | ARG $VAR=$VAL 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/arg-metavar.sgrep: -------------------------------------------------------------------------------- 1 | ARG $VAR 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/arg.sgrep: -------------------------------------------------------------------------------- 1 | ARG a=42 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/array-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | RUN ["sudo", ...] 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/array-metavariable.sgrep: -------------------------------------------------------------------------------- 1 | RUN [$X] 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/cmd-argv.sgrep: -------------------------------------------------------------------------------- 1 | CMD ["echo", "hello"] 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/cmd-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | CMD ... 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/cmd-named-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | CMD $...ARGS 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/cmd-shell.sgrep: -------------------------------------------------------------------------------- 1 | CMD ...; 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/copy-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | COPY ... $DST 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/copy-metavar.sgrep: -------------------------------------------------------------------------------- 1 | COPY foo $DST 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/copy-param.sgrep: -------------------------------------------------------------------------------- 1 | COPY file1 file2 /mydir/ 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/copy.sgrep: -------------------------------------------------------------------------------- 1 | COPY file1 file2 /mydir/ 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/deep_exprstmt.sgrep: -------------------------------------------------------------------------------- 1 | foo 2 | bar 3 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/dots_args.sgrep: -------------------------------------------------------------------------------- 1 | foo ... 5 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/dots_string.sgrep: -------------------------------------------------------------------------------- 1 | foo "..." 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/entrypoint-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | ENTRYPOINT ... 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/entrypoint.sgrep: -------------------------------------------------------------------------------- 1 | ENTRYPOINT ["s3cmd"] 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/env-const-prop.sgrep: -------------------------------------------------------------------------------- 1 | EXPOSE 0 -------------------------------------------------------------------------------- /tests/patterns/dockerfile/env-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | ENV ... 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/env-val-metavar.sgrep: -------------------------------------------------------------------------------- 1 | ENV FOO=$VAL 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/env.sgrep: -------------------------------------------------------------------------------- 1 | ENV MY_NAME="John Doe" 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/expose-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | EXPOSE ... 222/udp ... 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/expose-metavar.sgrep: -------------------------------------------------------------------------------- 1 | EXPOSE $PORT_PROTO 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/expose.sgrep: -------------------------------------------------------------------------------- 1 | EXPOSE 42 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/from-as.sgrep: -------------------------------------------------------------------------------- 1 | FROM debian AS deb 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/from-param.sgrep: -------------------------------------------------------------------------------- 1 | FROM alpine 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/from.sgrep: -------------------------------------------------------------------------------- 1 | FROM debian 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/from2.sgrep: -------------------------------------------------------------------------------- 1 | FROM debian:unstable-slim 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/healthcheck-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | HEALTHCHECK ... 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/healthcheck-none.sgrep: -------------------------------------------------------------------------------- 1 | HEALTHCHECK NONE 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/instruction-metavariable.sgrep: -------------------------------------------------------------------------------- 1 | $INSTR 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/label-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | LABEL ... 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/label-metavar.sgrep: -------------------------------------------------------------------------------- 1 | LABEL $KEY=$VALUE 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/label-variable-key.sgrep: -------------------------------------------------------------------------------- 1 | LABEL $X=value 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/label.sgrep: -------------------------------------------------------------------------------- 1 | LABEL a=b c=d 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/maintainer.sgrep: -------------------------------------------------------------------------------- 1 | MAINTAINER nobody 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/metavar_arg.sgrep: -------------------------------------------------------------------------------- 1 | foo $X 2 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/metavar_call.sgrep: -------------------------------------------------------------------------------- 1 | $CMD foo bar 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/multiline_comment.sgrep: -------------------------------------------------------------------------------- 1 | echo "bar" -------------------------------------------------------------------------------- /tests/patterns/dockerfile/no-trailing-newline.sgrep: -------------------------------------------------------------------------------- 1 | CMD ... -------------------------------------------------------------------------------- /tests/patterns/dockerfile/onbuild.sgrep: -------------------------------------------------------------------------------- 1 | ONBUILD RUN ls 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/run-anchored.sgrep: -------------------------------------------------------------------------------- 1 | RUN b 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/run-argv.sgrep: -------------------------------------------------------------------------------- 1 | RUN ["echo", "hello"] 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/run-param-metavar.sgrep: -------------------------------------------------------------------------------- 1 | RUN --foo=$FOO echo 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/run-param.sgrep: -------------------------------------------------------------------------------- 1 | RUN --mount=type=secret ... 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/run.sgrep: -------------------------------------------------------------------------------- 1 | RUN ... 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/stopsignal-metavar.sgrep: -------------------------------------------------------------------------------- 1 | STOPSIGNAL $SIGNAL 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/stopsignal.sgrep: -------------------------------------------------------------------------------- 1 | STOPSIGNAL SIGUSR1 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/string-comparison.sgrep: -------------------------------------------------------------------------------- 1 | ENV X a 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/todo/env-key-metavar.sgrep: -------------------------------------------------------------------------------- 1 | ENV $KEY=42 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/todo/string-fragments.sgrep: -------------------------------------------------------------------------------- 1 | ENV A abc 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/user-group-metavar.sgrep: -------------------------------------------------------------------------------- 1 | USER $USER:$GROUP 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/user-group.sgrep: -------------------------------------------------------------------------------- 1 | USER root:root 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/user.sgrep: -------------------------------------------------------------------------------- 1 | USER root 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/volume-metavar.sgrep: -------------------------------------------------------------------------------- 1 | VOLUME $VOLUME 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/volume.sgrep: -------------------------------------------------------------------------------- 1 | VOLUME /var/log 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/workdir-metavar.sgrep: -------------------------------------------------------------------------------- 1 | WORKDIR /home/$DIR 2 | -------------------------------------------------------------------------------- /tests/patterns/dockerfile/workdir.sgrep: -------------------------------------------------------------------------------- 1 | WORKDIR /home/patrick 2 | -------------------------------------------------------------------------------- /tests/patterns/generic/dots_args.sgrep: -------------------------------------------------------------------------------- 1 | foo( 2 | ... 5 ... 3 | ) 4 | -------------------------------------------------------------------------------- /tests/patterns/generic/dots_string.sgrep: -------------------------------------------------------------------------------- 1 | foo( 2 | "..." 3 | ) 4 | -------------------------------------------------------------------------------- /tests/patterns/generic/metavar_stmt.sgrep: -------------------------------------------------------------------------------- 1 | if ($X > $Y) 2 | ...; 3 | -------------------------------------------------------------------------------- /tests/patterns/generic/minified.sgrep: -------------------------------------------------------------------------------- 1 | a -------------------------------------------------------------------------------- /tests/patterns/generic/not-minified.sgrep: -------------------------------------------------------------------------------- 1 | a -------------------------------------------------------------------------------- /tests/patterns/go/anonymous_metavar.go: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 1; -------------------------------------------------------------------------------- /tests/patterns/go/cp_ref.sgrep: -------------------------------------------------------------------------------- 1 | &0 2 | -------------------------------------------------------------------------------- /tests/patterns/go/cp_shortassign.sgrep: -------------------------------------------------------------------------------- 1 | fmt.Println("...") 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/go/dots_for.sgrep: -------------------------------------------------------------------------------- 1 | for ... { 2 | ... 3 | } -------------------------------------------------------------------------------- /tests/patterns/go/dots_nested_stmts.sgrep: -------------------------------------------------------------------------------- 1 | if $E { 2 | ... 3 | } -------------------------------------------------------------------------------- /tests/patterns/go/dots_package.sgrep: -------------------------------------------------------------------------------- 1 | package hacknews 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/go/dots_params.sgrep: -------------------------------------------------------------------------------- 1 | func $F(...) { 2 | ... 3 | } 4 | -------------------------------------------------------------------------------- /tests/patterns/go/dots_stmts.sgrep: -------------------------------------------------------------------------------- 1 | $X = get() 2 | ... 3 | eval($X) -------------------------------------------------------------------------------- /tests/patterns/go/equivalence_constant_dataflow.sgrep.TODO: -------------------------------------------------------------------------------- 1 | $f("password") -------------------------------------------------------------------------------- /tests/patterns/go/equivalence_naming_import.sgrep: -------------------------------------------------------------------------------- 1 | subprocess.open(...) -------------------------------------------------------------------------------- /tests/patterns/go/equivalence_naming_import1.sgrep: -------------------------------------------------------------------------------- 1 | jwt.BAD_CONST 2 | -------------------------------------------------------------------------------- /tests/patterns/go/equivalence_naming_import2.sgrep: -------------------------------------------------------------------------------- 1 | youtube.BAD_CONST 2 | -------------------------------------------------------------------------------- /tests/patterns/go/imports.sgrep: -------------------------------------------------------------------------------- 1 | import "foo/bar" -------------------------------------------------------------------------------- /tests/patterns/go/imports2.sgrep: -------------------------------------------------------------------------------- 1 | import "$X" -------------------------------------------------------------------------------- /tests/patterns/go/imports3.sgrep: -------------------------------------------------------------------------------- 1 | import "foobar" 2 | -------------------------------------------------------------------------------- /tests/patterns/go/imports_metavar.sgrep: -------------------------------------------------------------------------------- 1 | import ("$X") 2 | -------------------------------------------------------------------------------- /tests/patterns/go/imports_prefix.sgrep: -------------------------------------------------------------------------------- 1 | import "foo" -------------------------------------------------------------------------------- /tests/patterns/go/make-args-trans.sgrep: -------------------------------------------------------------------------------- 1 | make(map[$T1]$T2, ...) 2 | -------------------------------------------------------------------------------- /tests/patterns/go/make_metavar_firstarg.sgrep: -------------------------------------------------------------------------------- 1 | $X := make($Y,$Z) 2 | -------------------------------------------------------------------------------- /tests/patterns/go/make_tri_pat.sgrep: -------------------------------------------------------------------------------- 1 | make($TY,...,$ARG) 2 | -------------------------------------------------------------------------------- /tests/patterns/go/metavar_cond.sgrep: -------------------------------------------------------------------------------- 1 | if ($E) { 2 | foo() 3 | } -------------------------------------------------------------------------------- /tests/patterns/go/metavar_expr.sgrep: -------------------------------------------------------------------------------- 1 | $IDENT 2 | -------------------------------------------------------------------------------- /tests/patterns/go/metavar_package.sgrep: -------------------------------------------------------------------------------- 1 | package $X; 2 | -------------------------------------------------------------------------------- /tests/patterns/go/metavar_stmt.sgrep: -------------------------------------------------------------------------------- 1 | if ($X > $Y) { 2 | $S; 3 | } -------------------------------------------------------------------------------- /tests/patterns/go/metavar_typed.sgrep: -------------------------------------------------------------------------------- 1 | $X == ($Y : string) -------------------------------------------------------------------------------- /tests/patterns/go/metavar_typed_lefthand.sgrep: -------------------------------------------------------------------------------- 1 | ($A : [5]person) = $B 2 | -------------------------------------------------------------------------------- /tests/patterns/go/metavar_typed_literal.sgrep: -------------------------------------------------------------------------------- 1 | $KEY = ($VAL : string) 2 | -------------------------------------------------------------------------------- /tests/patterns/go/misc_assignop.sgrep: -------------------------------------------------------------------------------- 1 | if $A, $B := ... ; $B { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/go/misc_empty_body.sgrep: -------------------------------------------------------------------------------- 1 | if (...) { 2 | } 3 | -------------------------------------------------------------------------------- /tests/patterns/go/misc_exprstmt_vs_expr.sgrep: -------------------------------------------------------------------------------- 1 | $X == $Y 2 | -------------------------------------------------------------------------------- /tests/patterns/go/misc_import.sgrep: -------------------------------------------------------------------------------- 1 | import ("foo") 2 | -------------------------------------------------------------------------------- /tests/patterns/go/misc_interface_method.sgrep: -------------------------------------------------------------------------------- 1 | $FOO(...) bool 2 | -------------------------------------------------------------------------------- /tests/patterns/go/misc_noteq.sgrep: -------------------------------------------------------------------------------- 1 | $X != nil; 2 | -------------------------------------------------------------------------------- /tests/patterns/go/misc_package.sgrep: -------------------------------------------------------------------------------- 1 | package hacknews 2 | -------------------------------------------------------------------------------- /tests/patterns/go/misc_tuple_order.sgrep: -------------------------------------------------------------------------------- 1 | if $A, $B = ... ; $A { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/go/misc_type_decl.sgrep: -------------------------------------------------------------------------------- 1 | type $X struct { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/go/package_metavar.sgrep: -------------------------------------------------------------------------------- 1 | package $X; 2 | -------------------------------------------------------------------------------- /tests/patterns/go/partial_initbraces.sgrep: -------------------------------------------------------------------------------- 1 | {..., OK: $VALUE, ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/go/partial_single_field.sgrep: -------------------------------------------------------------------------------- 1 | OK: $X 2 | -------------------------------------------------------------------------------- /tests/patterns/go/regexp_caret.sgrep: -------------------------------------------------------------------------------- 1 | $SECRET := "=~/\^/i" 2 | -------------------------------------------------------------------------------- /tests/patterns/go/string_literals.sgrep: -------------------------------------------------------------------------------- 1 | "hello" 2 | -------------------------------------------------------------------------------- /tests/patterns/go/struct_tags.sgrep: -------------------------------------------------------------------------------- 1 | `...` -------------------------------------------------------------------------------- /tests/patterns/go/struct_tags_one.sgrep: -------------------------------------------------------------------------------- 1 | `json:"name"` -------------------------------------------------------------------------------- /tests/patterns/go/typing-make.sgrep: -------------------------------------------------------------------------------- 1 | ($X : a).$M() 2 | -------------------------------------------------------------------------------- /tests/patterns/hack/TODO/equivalence_eq.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X; 2 | -------------------------------------------------------------------------------- /tests/patterns/hack/anonymous_metavar.hack: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 2; -------------------------------------------------------------------------------- /tests/patterns/hack/dots_params.sgrep: -------------------------------------------------------------------------------- 1 | function foo(..., $var) { 2 | } 3 | -------------------------------------------------------------------------------- /tests/patterns/hack/metavar_cond.sgrep: -------------------------------------------------------------------------------- 1 | if ($E) { 2 | foo(); 3 | } 4 | -------------------------------------------------------------------------------- /tests/patterns/html/metavar_tag.sgrep: -------------------------------------------------------------------------------- 1 | <$X a="1"></$X> 2 | -------------------------------------------------------------------------------- /tests/patterns/java/anonymous_metavar.java: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 2; -------------------------------------------------------------------------------- /tests/patterns/java/better_import1.sgrep: -------------------------------------------------------------------------------- 1 | A.foo(...) -------------------------------------------------------------------------------- /tests/patterns/java/better_import2.sgrep: -------------------------------------------------------------------------------- 1 | A.B.foo(...) -------------------------------------------------------------------------------- /tests/patterns/java/better_import3.sgrep: -------------------------------------------------------------------------------- 1 | A.B.foo(...) -------------------------------------------------------------------------------- /tests/patterns/java/better_import4.sgrep: -------------------------------------------------------------------------------- 1 | A.B.C.D.foo(...) -------------------------------------------------------------------------------- /tests/patterns/java/cp_foreach.sgrep: -------------------------------------------------------------------------------- 1 | $X != $X 2 | -------------------------------------------------------------------------------- /tests/patterns/java/cp_is_must_analysis.sgrep: -------------------------------------------------------------------------------- 1 | X.test("hello") 2 | -------------------------------------------------------------------------------- /tests/patterns/java/cp_is_must_analysis1.sgrep: -------------------------------------------------------------------------------- 1 | X.test("hello") 2 | -------------------------------------------------------------------------------- /tests/patterns/java/cp_is_must_analysis2.sgrep: -------------------------------------------------------------------------------- 1 | X.test("goodbye") 2 | -------------------------------------------------------------------------------- /tests/patterns/java/cp_string_format.sgrep: -------------------------------------------------------------------------------- 1 | foobar("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/java/cp_switch_throw.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/java/cp_synchronized.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/java/cp_synchronized1.sgrep: -------------------------------------------------------------------------------- 1 | test("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/java/cp_try_return.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/java/dots_enum.sgrep: -------------------------------------------------------------------------------- 1 | @foo 2 | enum $A { ... } 3 | 4 | -------------------------------------------------------------------------------- /tests/patterns/java/dots_generics.sgrep: -------------------------------------------------------------------------------- 1 | class Foo<...> { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/java/dots_import.sgrep: -------------------------------------------------------------------------------- 1 | import Foo.Bar; 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/java/dots_params.sgrep: -------------------------------------------------------------------------------- 1 | void foo(...) { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/java/dots_vardef.sgrep: -------------------------------------------------------------------------------- 1 | String $VAR = "..."; 2 | -------------------------------------------------------------------------------- /tests/patterns/java/equivalence_constant_propagation.sgrep: -------------------------------------------------------------------------------- 1 | foo("password") -------------------------------------------------------------------------------- /tests/patterns/java/errors/recoverable_error1.java: -------------------------------------------------------------------------------- 1 | class X { 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/java/generics_args.sgrep: -------------------------------------------------------------------------------- 1 | (List<$TYPE> $ARGLIST) 2 | -------------------------------------------------------------------------------- /tests/patterns/java/import_metavar_fullpath.sgrep: -------------------------------------------------------------------------------- 1 | import $LIB; 2 | -------------------------------------------------------------------------------- /tests/patterns/java/less_generics.sgrep: -------------------------------------------------------------------------------- 1 | class $X { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/java/less_inheritance.sgrep: -------------------------------------------------------------------------------- 1 | class A { 2 | ... 3 | } -------------------------------------------------------------------------------- /tests/patterns/java/metavar_idspecial.sgrep: -------------------------------------------------------------------------------- 1 | $FUNC(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/java/metavar_import.sgrep: -------------------------------------------------------------------------------- 1 | import java.util.$X; -------------------------------------------------------------------------------- /tests/patterns/java/metavar_name.sgrep: -------------------------------------------------------------------------------- 1 | import $LIB; 2 | -------------------------------------------------------------------------------- /tests/patterns/java/metavar_package.sgrep: -------------------------------------------------------------------------------- 1 | package $PACKAGE; 2 | -------------------------------------------------------------------------------- /tests/patterns/java/metavar_typed.sgrep: -------------------------------------------------------------------------------- 1 | $X == (String $Y) 2 | -------------------------------------------------------------------------------- /tests/patterns/java/metavar_typed_classfield.sgrep: -------------------------------------------------------------------------------- 1 | check((int $X)) 2 | -------------------------------------------------------------------------------- /tests/patterns/java/metavar_typed_field.sgrep: -------------------------------------------------------------------------------- 1 | check((FooType $X)) 2 | -------------------------------------------------------------------------------- /tests/patterns/java/metavar_typed_function.sgrep: -------------------------------------------------------------------------------- 1 | int $A() {...} 2 | -------------------------------------------------------------------------------- /tests/patterns/java/metavar_typed_lefthand.sgrep: -------------------------------------------------------------------------------- 1 | (Bar[] $A) = $B; 2 | -------------------------------------------------------------------------------- /tests/patterns/java/metavar_typed_localvar.sgrep: -------------------------------------------------------------------------------- 1 | (Bar[] $B) 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_accent_record.sgrep: -------------------------------------------------------------------------------- 1 | class $X { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_annot.sgrep: -------------------------------------------------------------------------------- 1 | @Attr($ARG) 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_assert.sgrep: -------------------------------------------------------------------------------- 1 | assert $X; 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_at_interface.sgrep: -------------------------------------------------------------------------------- 1 | asdf(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_class_literal.sgrep: -------------------------------------------------------------------------------- 1 | Hello.class 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_constructor.sgrep: -------------------------------------------------------------------------------- 1 | MyJavaClass() { } 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_import_static.sgrep: -------------------------------------------------------------------------------- 1 | import static $CLASS; 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_precedence.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_static_block.sgrep: -------------------------------------------------------------------------------- 1 | static { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_super_call.sgrep: -------------------------------------------------------------------------------- 1 | super(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/java/misc_token_cast.sgrep: -------------------------------------------------------------------------------- 1 | (Object) this 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/java/parameterized_type.sgrep: -------------------------------------------------------------------------------- 1 | new SpecificDatumReader(...) -------------------------------------------------------------------------------- /tests/patterns/java/partial_method.sgrep: -------------------------------------------------------------------------------- 1 | void foo(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/java/try_mutli_resources.sgrep: -------------------------------------------------------------------------------- 1 | zipFileName 2 | -------------------------------------------------------------------------------- /tests/patterns/java/try_resources.sgrep: -------------------------------------------------------------------------------- 1 | HttpClients.createDefault() 2 | -------------------------------------------------------------------------------- /tests/patterns/java/visit_attribute.sgrep: -------------------------------------------------------------------------------- 1 | @SomeAnnot(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/js/aliasing_require.sgrep: -------------------------------------------------------------------------------- 1 | child_process.execSync(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/js/anonymous_metavar.js: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 2; -------------------------------------------------------------------------------- /tests/patterns/js/caching_deep.sgrep: -------------------------------------------------------------------------------- 1 | 2; 2 | ... 3 | 3; 4 | -------------------------------------------------------------------------------- /tests/patterns/js/caching_deep_metavar.sgrep: -------------------------------------------------------------------------------- 1 | $X; 2 | ... 3 | 3; 4 | -------------------------------------------------------------------------------- /tests/patterns/js/caching_flat.sgrep: -------------------------------------------------------------------------------- 1 | 2; 2 | ... 3 | 4; 4 | -------------------------------------------------------------------------------- /tests/patterns/js/caching_nested.sgrep: -------------------------------------------------------------------------------- 1 | 2; 2 | ... 3 | 4; 4 | -------------------------------------------------------------------------------- /tests/patterns/js/cp_array_destructure.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X -------------------------------------------------------------------------------- /tests/patterns/js/cp_conditional.sgrep: -------------------------------------------------------------------------------- 1 | require('...') 2 | -------------------------------------------------------------------------------- /tests/patterns/js/cp_dataflow.sgrep: -------------------------------------------------------------------------------- 1 | value = obj["..."] 2 | -------------------------------------------------------------------------------- /tests/patterns/js/cp_implicit_conversion.sgrep: -------------------------------------------------------------------------------- 1 | return 'abc1-2-3' 2 | -------------------------------------------------------------------------------- /tests/patterns/js/cp_incrdecr.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/js/cp_label.sgrep: -------------------------------------------------------------------------------- 1 | "=~/http:///" 2 | -------------------------------------------------------------------------------- /tests/patterns/js/cp_throw.sgrep: -------------------------------------------------------------------------------- 1 | return "..." 2 | -------------------------------------------------------------------------------- /tests/patterns/js/cp_undeclared.sgrep: -------------------------------------------------------------------------------- 1 | console.log("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/js/cp_undeclared1.sgrep: -------------------------------------------------------------------------------- 1 | value = obj["..."] 2 | -------------------------------------------------------------------------------- /tests/patterns/js/deep_cond.sgrep: -------------------------------------------------------------------------------- 1 | if(<... $X = true ...>) 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/js/deep_expr_vs_statement.sgrep: -------------------------------------------------------------------------------- 1 | <... a ...>; 2 | b 3 | -------------------------------------------------------------------------------- /tests/patterns/js/deep_expr_xml.sgrep: -------------------------------------------------------------------------------- 1 | <... {__html: `...`} ...> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/deep_jsx.sgrep: -------------------------------------------------------------------------------- 1 | <$TAG attr="1" /> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_container.sgrep: -------------------------------------------------------------------------------- 1 | var $X = [...]; -------------------------------------------------------------------------------- /tests/patterns/js/dots_container2.sgrep: -------------------------------------------------------------------------------- 1 | var $X = [...,1]; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_field_chaining.sgrep: -------------------------------------------------------------------------------- 1 | foo. ... .bar 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_importfrom.sgrep: -------------------------------------------------------------------------------- 1 | import jwt_decode from "..." 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_jsx_attr.sgrep: -------------------------------------------------------------------------------- 1 | <foo attr=... /> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_jsx_attr_list.sgrep: -------------------------------------------------------------------------------- 1 | <$TAG attr="1" ... /> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_jsx_body.sgrep: -------------------------------------------------------------------------------- 1 | <a href="...">...</a> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_jsx_body2.sgrep: -------------------------------------------------------------------------------- 1 | <div>...</div> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_object.sgrep: -------------------------------------------------------------------------------- 1 | var X = {..., secure:false, ...}; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_object2.sgrep: -------------------------------------------------------------------------------- 1 | var X = {...}; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_params.sgrep: -------------------------------------------------------------------------------- 1 | function foo(...) { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_regexp.js: -------------------------------------------------------------------------------- 1 | //ERROR: match 2 | const x = /abc/; 3 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_regexp.sgrep: -------------------------------------------------------------------------------- 1 | /.../ 2 | -------------------------------------------------------------------------------- /tests/patterns/js/dots_template_literals.sgrep: -------------------------------------------------------------------------------- 1 | $X = `...${...}...` 2 | -------------------------------------------------------------------------------- /tests/patterns/js/equivalence_constant_propagation2.sgrep: -------------------------------------------------------------------------------- 1 | api("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/js/equivalence_constant_propagation3.sgrep: -------------------------------------------------------------------------------- 1 | $X === $X 2 | -------------------------------------------------------------------------------- /tests/patterns/js/equivalence_keyword_args.sgrep: -------------------------------------------------------------------------------- 1 | foo({kwd2:$X, kwd1:$Y}) -------------------------------------------------------------------------------- /tests/patterns/js/equivalence_varlet.sgrep: -------------------------------------------------------------------------------- 1 | var $X = "hello"; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/eval_call.sgrep: -------------------------------------------------------------------------------- 1 | $F(x) 2 | -------------------------------------------------------------------------------- /tests/patterns/js/infer_const.sgrep: -------------------------------------------------------------------------------- 1 | console.log("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/js/infer_const_regexp.sgrep: -------------------------------------------------------------------------------- 1 | new RegExp(/a/) 2 | -------------------------------------------------------------------------------- /tests/patterns/js/less_class_complex.sgrep: -------------------------------------------------------------------------------- 1 | class A { 2 | ... 3 | } -------------------------------------------------------------------------------- /tests/patterns/js/less_xml_body.sgrep: -------------------------------------------------------------------------------- 1 | <div a="..." ></div> 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/js/metavar_import.sgrep: -------------------------------------------------------------------------------- 1 | import $X from 'foo'; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/metavar_importfrom.sgrep: -------------------------------------------------------------------------------- 1 | import jwt_decode from $X; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/metavar_jsx_attr.sgrep: -------------------------------------------------------------------------------- 1 | <foo $A="1" /> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/metavar_jsx_tag.sgrep: -------------------------------------------------------------------------------- 1 | <$XXX attr="1" /> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/metavar_jsx_val.sgrep: -------------------------------------------------------------------------------- 1 | <a href=$X>...</a> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/metavar_regexp.sgrep: -------------------------------------------------------------------------------- 1 | foo(/$X/, "$X") 2 | -------------------------------------------------------------------------------- /tests/patterns/js/metavar_template.sgrep: -------------------------------------------------------------------------------- 1 | `$LEFT${...}$RIGHT` -------------------------------------------------------------------------------- /tests/patterns/js/metavar_typed_bool.sgrep: -------------------------------------------------------------------------------- 1 | func(($VAL: boolean)) 2 | -------------------------------------------------------------------------------- /tests/patterns/js/metavar_typed_literal.sgrep: -------------------------------------------------------------------------------- 1 | func(($VAL: number)) 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_arrow.sgrep: -------------------------------------------------------------------------------- 1 | (a) => { ... } -------------------------------------------------------------------------------- /tests/patterns/js/misc_arrow2.sgrep: -------------------------------------------------------------------------------- 1 | (...) => { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_asi_pattern.sgrep: -------------------------------------------------------------------------------- 1 | foo(r => {bar(r)}) 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_empty_body.sgrep: -------------------------------------------------------------------------------- 1 | if (...) { 2 | } 3 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_expr_vs_vardef.sgrep: -------------------------------------------------------------------------------- 1 | password = "..."; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_faketok.sgrep: -------------------------------------------------------------------------------- 1 | $REQUEST(..., $REQ, ...) 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_field_vs_vardef.sgrep: -------------------------------------------------------------------------------- 1 | $Y = {$X: "..."}; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_jsx.sgrep: -------------------------------------------------------------------------------- 1 | <div a={foo()} /> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_lambda.sgrep: -------------------------------------------------------------------------------- 1 | function() { 2 | ... 3 | } -------------------------------------------------------------------------------- /tests/patterns/js/misc_method_brace_newline.sgrep: -------------------------------------------------------------------------------- 1 | return 0; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_new.js: -------------------------------------------------------------------------------- 1 | //ERROR: match 2 | var x = new A(1); 3 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_new.sgrep: -------------------------------------------------------------------------------- 1 | new $A(1) 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_notoken.sgrep: -------------------------------------------------------------------------------- 1 | $X = $Y; 2 | $X = $Z; 3 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_null_cast.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_object_directly.sgrep: -------------------------------------------------------------------------------- 1 | { fld1: $X } 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_regexp_modifier.sgrep: -------------------------------------------------------------------------------- 1 | /.../g 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_string.js: -------------------------------------------------------------------------------- 1 | //ERROR: match 2 | foo("bar") 3 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_string.sgrep: -------------------------------------------------------------------------------- 1 | foo("bar") 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_this.sgrep: -------------------------------------------------------------------------------- 1 | var $URL = $THIS.request.params; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_unicode.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/js/misc_yield_undefined.sgrep: -------------------------------------------------------------------------------- 1 | yield 2 | -------------------------------------------------------------------------------- /tests/patterns/js/object_numeric_key.sgrep: -------------------------------------------------------------------------------- 1 | {1:...} 2 | -------------------------------------------------------------------------------- /tests/patterns/js/partial_catch.sgrep: -------------------------------------------------------------------------------- 1 | catch($E) { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/js/partial_function.sgrep: -------------------------------------------------------------------------------- 1 | function foo(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/js/partial_single_field.sgrep: -------------------------------------------------------------------------------- 1 | dependencies: { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/js/regexp.js: -------------------------------------------------------------------------------- 1 | //ERROR: match 2 | const x = /abc/; 3 | -------------------------------------------------------------------------------- /tests/patterns/js/regexp.sgrep: -------------------------------------------------------------------------------- 1 | const x = /.../; 2 | -------------------------------------------------------------------------------- /tests/patterns/js/semgrep/jsx.sgrep: -------------------------------------------------------------------------------- 1 | <foo attr="1" /> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/semgrep/metavar_jsx.sgrep: -------------------------------------------------------------------------------- 1 | <$XXX attr="1" /> 2 | -------------------------------------------------------------------------------- /tests/patterns/js/switch_case_pattern.sgrep: -------------------------------------------------------------------------------- 1 | case 5: 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/js/template_string_w_metavar.sgrep: -------------------------------------------------------------------------------- 1 | `...${$X}...` -------------------------------------------------------------------------------- /tests/patterns/js/typed_metavar_assign.sgrep: -------------------------------------------------------------------------------- 1 | $O[($ARG : float)] 2 | -------------------------------------------------------------------------------- /tests/patterns/json/anonymous_metavar.json: -------------------------------------------------------------------------------- 1 | // ERROR: 2 | 2 -------------------------------------------------------------------------------- /tests/patterns/json/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | "foo": <... 42 ...> -------------------------------------------------------------------------------- /tests/patterns/json/metavar_array.sgrep: -------------------------------------------------------------------------------- 1 | { "key": $V, "var": [ ... ] } 2 | -------------------------------------------------------------------------------- /tests/patterns/json/partial_single_field.sgrep: -------------------------------------------------------------------------------- 1 | "foo": $X 2 | -------------------------------------------------------------------------------- /tests/patterns/json/partial_single_field2.sgrep: -------------------------------------------------------------------------------- 1 | "foo": { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/jsonnet/anonymous_metavar.jsonnet: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 2 -------------------------------------------------------------------------------- /tests/patterns/jsonnet/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | foo(<... 42 ...>) -------------------------------------------------------------------------------- /tests/patterns/julia/anonymous_metavar.jl: -------------------------------------------------------------------------------- 1 | 2 | # ERROR: 3 | 2 -------------------------------------------------------------------------------- /tests/patterns/julia/dots_nested_stmts.sgrep: -------------------------------------------------------------------------------- 1 | if ... 2 | ... 3 | end 4 | -------------------------------------------------------------------------------- /tests/patterns/julia/implicit_return.sgrep: -------------------------------------------------------------------------------- 1 | return $X 2 | -------------------------------------------------------------------------------- /tests/patterns/julia/import_alias.sgrep: -------------------------------------------------------------------------------- 1 | import $X as $Y -------------------------------------------------------------------------------- /tests/patterns/julia/import_import.sgrep: -------------------------------------------------------------------------------- 1 | import $X -------------------------------------------------------------------------------- /tests/patterns/julia/import_metavar.sgrep: -------------------------------------------------------------------------------- 1 | using $MODULE -------------------------------------------------------------------------------- /tests/patterns/julia/let_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | let 2 | ... 3 | end -------------------------------------------------------------------------------- /tests/patterns/julia/op_plus.jl: -------------------------------------------------------------------------------- 1 | # MATCH: 2 | 1+2 3 | 4 | 1|2 5 | -------------------------------------------------------------------------------- /tests/patterns/julia/op_plus.sgrep: -------------------------------------------------------------------------------- 1 | $A+$B 2 | -------------------------------------------------------------------------------- /tests/patterns/julia/using_alias.sgrep: -------------------------------------------------------------------------------- 1 | using $X as $Y -------------------------------------------------------------------------------- /tests/patterns/julia/using_import.sgrep: -------------------------------------------------------------------------------- 1 | using $X -------------------------------------------------------------------------------- /tests/patterns/kotlin/anonymous_metavar.kt: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 2 -------------------------------------------------------------------------------- /tests/patterns/kotlin/deep_exprstmt.sgrep: -------------------------------------------------------------------------------- 1 | foo() 2 | bar() 3 | -------------------------------------------------------------------------------- /tests/patterns/kotlin/in_class_const_prop.sgrep: -------------------------------------------------------------------------------- 1 | ($X : T).foo -------------------------------------------------------------------------------- /tests/patterns/kotlin/in_class_typing.sgrep: -------------------------------------------------------------------------------- 1 | foo(5) -------------------------------------------------------------------------------- /tests/patterns/kotlin/interpolated_ident.sgrep: -------------------------------------------------------------------------------- 1 | "...${...}..." -------------------------------------------------------------------------------- /tests/patterns/kotlin/metavar_cond.sgrep: -------------------------------------------------------------------------------- 1 | if ($E) 2 | foo() 3 | -------------------------------------------------------------------------------- /tests/patterns/kotlin/metavar_import.sgrep: -------------------------------------------------------------------------------- 1 | import java.util.$X 2 | -------------------------------------------------------------------------------- /tests/patterns/kotlin/metavar_stmt.sgrep: -------------------------------------------------------------------------------- 1 | if ($X > $Y) 2 | $S 3 | -------------------------------------------------------------------------------- /tests/patterns/kotlin/metavar_typed.sgrep: -------------------------------------------------------------------------------- 1 | $X == ($Y : String) -------------------------------------------------------------------------------- /tests/patterns/kotlin/misc_call_in_assign.sgrep: -------------------------------------------------------------------------------- 1 | $F(...).$FIELD = $VAR -------------------------------------------------------------------------------- /tests/patterns/kotlin/not_string_metavar.sgrep: -------------------------------------------------------------------------------- 1 | "hi $THERE" -------------------------------------------------------------------------------- /tests/patterns/kotlin/single_interpolated_ident.sgrep: -------------------------------------------------------------------------------- 1 | "${temp}" -------------------------------------------------------------------------------- /tests/patterns/kotlin/string_metavar.sgrep: -------------------------------------------------------------------------------- 1 | "$X" -------------------------------------------------------------------------------- /tests/patterns/lua/anonymous_metavar.lua: -------------------------------------------------------------------------------- 1 | 2 | -- ERROR: 3 | 2 -------------------------------------------------------------------------------- /tests/patterns/lua/assignment.sgrep: -------------------------------------------------------------------------------- 1 | $X = $X 2 | -------------------------------------------------------------------------------- /tests/patterns/lua/comparison.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/move_on_aptos/deep_exprstmt.sgrep: -------------------------------------------------------------------------------- 1 | foo(); 2 | bar(); -------------------------------------------------------------------------------- /tests/patterns/move_on_aptos/dots_string.sgrep: -------------------------------------------------------------------------------- 1 | foo(b"...") -------------------------------------------------------------------------------- /tests/patterns/move_on_aptos/misc_address_value.sgrep: -------------------------------------------------------------------------------- 1 | @$VAL -------------------------------------------------------------------------------- /tests/patterns/move_on_aptos/misc_vector_value.sgrep: -------------------------------------------------------------------------------- 1 | vector[...] -------------------------------------------------------------------------------- /tests/patterns/move_on_sui/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | foo(<... 42 ...>) 2 | -------------------------------------------------------------------------------- /tests/patterns/move_on_sui/deep_exprstmt.sgrep: -------------------------------------------------------------------------------- 1 | foo(); 2 | bar(); -------------------------------------------------------------------------------- /tests/patterns/move_on_sui/dots_string.sgrep: -------------------------------------------------------------------------------- 1 | foo(b"...") -------------------------------------------------------------------------------- /tests/patterns/move_on_sui/metavar_anno.sgrep: -------------------------------------------------------------------------------- 1 | fun $SOME_FUN(...) : ... -------------------------------------------------------------------------------- /tests/patterns/move_on_sui/metavar_import.sgrep: -------------------------------------------------------------------------------- 1 | use std::object::{$MEM1}; -------------------------------------------------------------------------------- /tests/patterns/ocaml/aliasing_qualified.sgrep: -------------------------------------------------------------------------------- 1 | AST_generic.fb $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/concrete_syntax.sgrep: -------------------------------------------------------------------------------- 1 | foo 1 2 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/dots_args.sgrep: -------------------------------------------------------------------------------- 1 | foo ... 5 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/dots_let_body.sgrep: -------------------------------------------------------------------------------- 1 | let $X = ... in 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/dots_nested_stmts.sgrep: -------------------------------------------------------------------------------- 1 | if ... then ... else ... 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/dots_params.sgrep: -------------------------------------------------------------------------------- 1 | let $F ... = 1 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/dots_string.sgrep: -------------------------------------------------------------------------------- 1 | foo "..." 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/equivalence_number.sgrep: -------------------------------------------------------------------------------- 1 | 1000 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/foo.sgrep: -------------------------------------------------------------------------------- 1 | Pervasives.$X 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/local_open.sgrep: -------------------------------------------------------------------------------- 1 | Foo.bar ... 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/metavar_arg.sgrep: -------------------------------------------------------------------------------- 1 | foo $X 2 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/metavar_call.sgrep: -------------------------------------------------------------------------------- 1 | $F 1 2 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/metavar_cond.sgrep: -------------------------------------------------------------------------------- 1 | if $E then foo else $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/metavar_equality_expr.sgrep: -------------------------------------------------------------------------------- 1 | $X = $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/metavar_func_def.sgrep: -------------------------------------------------------------------------------- 1 | let $X ... = ... 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/metavar_stmt.sgrep: -------------------------------------------------------------------------------- 1 | if $X > $Y then $S else $M 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/misc_ctor_one_arg.sgrep: -------------------------------------------------------------------------------- 1 | Foo $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/misc_functor.sgrep: -------------------------------------------------------------------------------- 1 | try ... with _ -> ... -------------------------------------------------------------------------------- /tests/patterns/ocaml/misc_match_case.sgrep: -------------------------------------------------------------------------------- 1 | | _ -> $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/misc_notokenloc.sgrep: -------------------------------------------------------------------------------- 1 | $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/misc_try.sgrep: -------------------------------------------------------------------------------- 1 | try ... with ... -> ... 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/misc_useless_else.sgrep: -------------------------------------------------------------------------------- 1 | if $E then $E2 else () 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/partial_if.sgrep: -------------------------------------------------------------------------------- 1 | if $X = $Y 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/partial_let.sgrep: -------------------------------------------------------------------------------- 1 | let $X = $BODY in 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/partial_match.sgrep: -------------------------------------------------------------------------------- 1 | match $E 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/partial_try.sgrep: -------------------------------------------------------------------------------- 1 | try $BODY 2 | -------------------------------------------------------------------------------- /tests/patterns/ocaml/regexp.sgrep: -------------------------------------------------------------------------------- 1 | "=~/.*\/tmp/" 2 | -------------------------------------------------------------------------------- /tests/patterns/php/backed_enum.sgrep: -------------------------------------------------------------------------------- 1 | $VAR = Suit::Clubs 2 | -------------------------------------------------------------------------------- /tests/patterns/php/case_insensitive_function_id.sgrep: -------------------------------------------------------------------------------- 1 | foo -------------------------------------------------------------------------------- /tests/patterns/php/constant_propogation.sgrep: -------------------------------------------------------------------------------- 1 | exec('...', ...) -------------------------------------------------------------------------------- /tests/patterns/php/cp_builtin.sgrep: -------------------------------------------------------------------------------- 1 | exec("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/php/cp_global.sgrep: -------------------------------------------------------------------------------- 1 | exec("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/php/cp_import.sgrep: -------------------------------------------------------------------------------- 1 | include("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/php/dots_args_in_block.sgrep: -------------------------------------------------------------------------------- 1 | do_something(...); 2 | -------------------------------------------------------------------------------- /tests/patterns/php/dots_args_isset.sgrep: -------------------------------------------------------------------------------- 1 | isset(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/php/dots_array.sgrep: -------------------------------------------------------------------------------- 1 | $ARRAY = [...]; 2 | -------------------------------------------------------------------------------- /tests/patterns/php/dots_backquote.sgrep: -------------------------------------------------------------------------------- 1 | `...`; 2 | -------------------------------------------------------------------------------- /tests/patterns/php/dots_echo.php: -------------------------------------------------------------------------------- 1 | <?php 2 | //ERROR: 3 | echo 'hello'; 4 | -------------------------------------------------------------------------------- /tests/patterns/php/dots_echo.sgrep: -------------------------------------------------------------------------------- 1 | echo ...; 2 | -------------------------------------------------------------------------------- /tests/patterns/php/dots_eval.sgrep: -------------------------------------------------------------------------------- 1 | eval(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/php/dots_include.sgrep: -------------------------------------------------------------------------------- 1 | include ... 2 | -------------------------------------------------------------------------------- /tests/patterns/php/dots_include1.sgrep: -------------------------------------------------------------------------------- 1 | include(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/php/dots_interpolated.sgrep: -------------------------------------------------------------------------------- 1 | $X = "$MSG{$VAL}..."; -------------------------------------------------------------------------------- /tests/patterns/php/foo.php: -------------------------------------------------------------------------------- 1 | <?php 2 | 3 | //ERROR: match 4 | foo(1); 5 | -------------------------------------------------------------------------------- /tests/patterns/php/foo.sgrep: -------------------------------------------------------------------------------- 1 | foo($X) 2 | -------------------------------------------------------------------------------- /tests/patterns/php/gh_5594.sgrep: -------------------------------------------------------------------------------- 1 | $this->logger->info(...); 2 | -------------------------------------------------------------------------------- /tests/patterns/php/gh_5880.sgrep: -------------------------------------------------------------------------------- 1 | die(...); 2 | -------------------------------------------------------------------------------- /tests/patterns/php/metavar_anno.sgrep: -------------------------------------------------------------------------------- 1 | #[$ATTR] 2 | class $F { ... } 3 | -------------------------------------------------------------------------------- /tests/patterns/php/metavar_underscore.sgrep: -------------------------------------------------------------------------------- 1 | $_COOKIE[$VALUE] 2 | -------------------------------------------------------------------------------- /tests/patterns/php/misc_boolean_propagation.sgrep: -------------------------------------------------------------------------------- 1 | f(false); 2 | -------------------------------------------------------------------------------- /tests/patterns/php/misc_goto.sgrep: -------------------------------------------------------------------------------- 1 | goto $X; -------------------------------------------------------------------------------- /tests/patterns/php/named_arguments.sgrep: -------------------------------------------------------------------------------- 1 | setcookie(...,secure:true) -------------------------------------------------------------------------------- /tests/patterns/php/naming_origname_use_group.sgrep: -------------------------------------------------------------------------------- 1 | Foo\Baz\fn_b 2 | -------------------------------------------------------------------------------- /tests/patterns/php/naming_rename_use_group.sgrep: -------------------------------------------------------------------------------- 1 | new Foo\Bar\ClassC() 2 | -------------------------------------------------------------------------------- /tests/patterns/php/sgrep/argref.php: -------------------------------------------------------------------------------- 1 | <?php 2 | 3 | foo($x, &$y); 4 | -------------------------------------------------------------------------------- /tests/patterns/php/sgrep/dots_in_brackets.php: -------------------------------------------------------------------------------- 1 | $foo[...] 2 | -------------------------------------------------------------------------------- /tests/patterns/php/sgrep/expr_pattern.php: -------------------------------------------------------------------------------- 1 | foo(1,2) 2 | -------------------------------------------------------------------------------- /tests/patterns/php/sgrep/foo_expr.sgrep: -------------------------------------------------------------------------------- 1 | foo() 2 | -------------------------------------------------------------------------------- /tests/patterns/php/sgrep/multi.sgrep: -------------------------------------------------------------------------------- 1 | foo() 2 | bar() 3 | -------------------------------------------------------------------------------- /tests/patterns/php/sgrep/regexp.sgrep: -------------------------------------------------------------------------------- 1 | foo('=~/.*_CONSTANT/') 2 | -------------------------------------------------------------------------------- /tests/patterns/php/sgrep/statement_pattern.php: -------------------------------------------------------------------------------- 1 | foo(1,2); 2 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/bar.exp: -------------------------------------------------------------------------------- 1 | <?php 2 | 3 | bar(2,1); 4 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/bar.php: -------------------------------------------------------------------------------- 1 | <?php 2 | 3 | foo(1,2); 4 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/bar.spatch: -------------------------------------------------------------------------------- 1 | - foo(X,Y) 2 | + bar(Y,X) 3 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/errors/missing_paren.spatch: -------------------------------------------------------------------------------- 1 | -foo ( 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/new.spatch: -------------------------------------------------------------------------------- 1 | -foo(X, Y) 2 | +foo_new(X, Y) 3 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/remove_space_between.spatch: -------------------------------------------------------------------------------- 1 | - foo(X, Y) 2 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/remove_trailing_comment.spatch: -------------------------------------------------------------------------------- 1 | - foo(X); 2 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/remove_whole_line.spatch: -------------------------------------------------------------------------------- 1 | - foo(X); 2 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/static_scalar.spatch: -------------------------------------------------------------------------------- 1 | - 1 2 | + 2 3 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/todo/1.php: -------------------------------------------------------------------------------- 1 | <?php 2 | 1; 3 | 4 | -------------------------------------------------------------------------------- /tests/patterns/php/spatch/xhp_metavar.spatch: -------------------------------------------------------------------------------- 1 | - foo(X, Y) 2 | + bar(X) 3 | -------------------------------------------------------------------------------- /tests/patterns/promql/anonymous_metavar.promql: -------------------------------------------------------------------------------- 1 | 2 | # ERROR: 3 | 2 -------------------------------------------------------------------------------- /tests/patterns/promql/binary_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | ... > ... 2 | -------------------------------------------------------------------------------- /tests/patterns/promql/func.sgrep: -------------------------------------------------------------------------------- 1 | $F(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/promql/grouping.sgrep: -------------------------------------------------------------------------------- 1 | $AGG by (..., a,...) (...) 2 | -------------------------------------------------------------------------------- /tests/patterns/promql/selector.sgrep: -------------------------------------------------------------------------------- 1 | $METRIC{..., a="b", ...} 2 | -------------------------------------------------------------------------------- /tests/patterns/promql/selector_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | {...} 2 | -------------------------------------------------------------------------------- /tests/patterns/promql/selector_with_name_label.sgrep: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /tests/patterns/promql/selector_without_labels.sgrep: -------------------------------------------------------------------------------- 1 | some_metric{} 2 | -------------------------------------------------------------------------------- /tests/patterns/promql/subquery.sgrep: -------------------------------------------------------------------------------- 1 | $F((...)[$RANGE:]) 2 | -------------------------------------------------------------------------------- /tests/patterns/promql/subquery_in_func.sgrep: -------------------------------------------------------------------------------- 1 | (...)[$D:$R] 2 | -------------------------------------------------------------------------------- /tests/patterns/promql/subquery_vs_range_selector.sgrep: -------------------------------------------------------------------------------- 1 | (...)[$D:] 2 | -------------------------------------------------------------------------------- /tests/patterns/protobuf/simple.sgrep: -------------------------------------------------------------------------------- 1 | message $X { 2 | ... 3 | } -------------------------------------------------------------------------------- /tests/patterns/python/ac_matching_dots.sgrep: -------------------------------------------------------------------------------- 1 | A & ... & B 2 | -------------------------------------------------------------------------------- /tests/patterns/python/ac_matching_dots1.sgrep: -------------------------------------------------------------------------------- 1 | A | B | ... 2 | -------------------------------------------------------------------------------- /tests/patterns/python/ac_matching_explosion.sgrep: -------------------------------------------------------------------------------- 1 | $A & $B & $C 2 | -------------------------------------------------------------------------------- /tests/patterns/python/ac_matching_explosion1.sgrep: -------------------------------------------------------------------------------- 1 | A | $B 2 | -------------------------------------------------------------------------------- /tests/patterns/python/ac_matching_free.sgrep: -------------------------------------------------------------------------------- 1 | A & B 2 | -------------------------------------------------------------------------------- /tests/patterns/python/ac_matching_free1.sgrep: -------------------------------------------------------------------------------- 1 | A | B | B 2 | -------------------------------------------------------------------------------- /tests/patterns/python/ac_matching_if1.sgrep: -------------------------------------------------------------------------------- 1 | if B | C: 2 | foo() 3 | -------------------------------------------------------------------------------- /tests/patterns/python/ac_matching_mvars.sgrep: -------------------------------------------------------------------------------- 1 | A & $X 2 | -------------------------------------------------------------------------------- /tests/patterns/python/ac_matching_mvars1.sgrep: -------------------------------------------------------------------------------- 1 | A | B | $X 2 | -------------------------------------------------------------------------------- /tests/patterns/python/ac_matching_mvars2.sgrep: -------------------------------------------------------------------------------- 1 | $X & $X 2 | -------------------------------------------------------------------------------- /tests/patterns/python/aliasing_and_direct.sgrep: -------------------------------------------------------------------------------- 1 | $F = Flask(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/python/already_resolved_with_wildcard.sgrep: -------------------------------------------------------------------------------- 1 | B.foo() -------------------------------------------------------------------------------- /tests/patterns/python/anonymous_metavar.py: -------------------------------------------------------------------------------- 1 | 2 | # ERROR: 3 | 2 -------------------------------------------------------------------------------- /tests/patterns/python/any_qualified_with_wildcard.sgrep: -------------------------------------------------------------------------------- 1 | $X.$Y -------------------------------------------------------------------------------- /tests/patterns/python/assoc_matching_bug.sgrep: -------------------------------------------------------------------------------- 1 | $D = $D or [] 2 | -------------------------------------------------------------------------------- /tests/patterns/python/assoc_matching_dots.sgrep: -------------------------------------------------------------------------------- 1 | A and ... and B 2 | -------------------------------------------------------------------------------- /tests/patterns/python/assoc_matching_dots1.sgrep: -------------------------------------------------------------------------------- 1 | ... or A or B or ... 2 | -------------------------------------------------------------------------------- /tests/patterns/python/assoc_matching_explosion.sgrep: -------------------------------------------------------------------------------- 1 | A and $X and Z 2 | -------------------------------------------------------------------------------- /tests/patterns/python/assoc_matching_free.sgrep: -------------------------------------------------------------------------------- 1 | A and B and C 2 | -------------------------------------------------------------------------------- /tests/patterns/python/assoc_matching_free1.sgrep: -------------------------------------------------------------------------------- 1 | A or B or B 2 | -------------------------------------------------------------------------------- /tests/patterns/python/assoc_matching_mvars.sgrep: -------------------------------------------------------------------------------- 1 | A and $X 2 | -------------------------------------------------------------------------------- /tests/patterns/python/assoc_matching_mvars1.sgrep: -------------------------------------------------------------------------------- 1 | A or B or $X or ... -------------------------------------------------------------------------------- /tests/patterns/python/concrete_fstring.sgrep: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /tests/patterns/python/constprop_dataflow.sgrep: -------------------------------------------------------------------------------- 1 | foo("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_concat.sgrep: -------------------------------------------------------------------------------- 1 | "password" 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_eval1.sgrep: -------------------------------------------------------------------------------- 1 | eval("...") 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_eval2.sgrep: -------------------------------------------------------------------------------- 1 | eval("...") 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_exception.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_label.sgrep: -------------------------------------------------------------------------------- 1 | "foo" 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_label1.py: -------------------------------------------------------------------------------- 1 | a = "foo" 2 | #ERROR: 3 | b[a] = 1 4 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_label1.sgrep: -------------------------------------------------------------------------------- 1 | $X["foo"] 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_method_call.sgrep: -------------------------------------------------------------------------------- 1 | "...".format(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_python_mult_string1.sgrep: -------------------------------------------------------------------------------- 1 | foo("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_rlval.sgrep: -------------------------------------------------------------------------------- 1 | "foo" 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_string_mvar.sgrep: -------------------------------------------------------------------------------- 1 | return "$X" 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_strings.sgrep: -------------------------------------------------------------------------------- 1 | return "..." 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_with.sgrep: -------------------------------------------------------------------------------- 1 | print("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/python/cp_yield.sgrep: -------------------------------------------------------------------------------- 1 | yield 42 2 | -------------------------------------------------------------------------------- /tests/patterns/python/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | foo(<... 42 ...>) 2 | -------------------------------------------------------------------------------- /tests/patterns/python/deep_exprstmt.sgrep: -------------------------------------------------------------------------------- 1 | foo() 2 | bar() -------------------------------------------------------------------------------- /tests/patterns/python/df_input.sgrep: -------------------------------------------------------------------------------- 1 | set_password("...") 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/python/dots_expr.py: -------------------------------------------------------------------------------- 1 | #ERROR: match 2 | X = 1 3 | -------------------------------------------------------------------------------- /tests/patterns/python/dots_expr_plus.sgrep: -------------------------------------------------------------------------------- 1 | $X = 1 + 2 + ... 2 | -------------------------------------------------------------------------------- /tests/patterns/python/dots_fstring.sgrep: -------------------------------------------------------------------------------- 1 | f"..." 2 | -------------------------------------------------------------------------------- /tests/patterns/python/dots_inherit.sgrep: -------------------------------------------------------------------------------- 1 | class A(...): 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/python/dots_list.sgrep: -------------------------------------------------------------------------------- 1 | [...] 2 | -------------------------------------------------------------------------------- /tests/patterns/python/dots_params.sgrep: -------------------------------------------------------------------------------- 1 | def foo(...): 2 | return 1 3 | -------------------------------------------------------------------------------- /tests/patterns/python/dots_return.sgrep: -------------------------------------------------------------------------------- 1 | return ... 2 | -------------------------------------------------------------------------------- /tests/patterns/python/dots_tuples.py: -------------------------------------------------------------------------------- 1 | #ERROR: match 2 | a = (1, 2, 3) 3 | -------------------------------------------------------------------------------- /tests/patterns/python/dots_tuples.sgrep: -------------------------------------------------------------------------------- 1 | $X = (1, ...) 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/python/equivalence_constant_propagation.sgrep: -------------------------------------------------------------------------------- 1 | bar("secret") -------------------------------------------------------------------------------- /tests/patterns/python/equivalence_interpolated_str.sgrep: -------------------------------------------------------------------------------- 1 | $X = "..." -------------------------------------------------------------------------------- /tests/patterns/python/equivalence_interpolated_str2.sgrep: -------------------------------------------------------------------------------- 1 | $FUNC("...") -------------------------------------------------------------------------------- /tests/patterns/python/equivalence_naming_import.sgrep: -------------------------------------------------------------------------------- 1 | subprocess.open(...) -------------------------------------------------------------------------------- /tests/patterns/python/import_metavar_fullpath.sgrep: -------------------------------------------------------------------------------- 1 | import $X 2 | -------------------------------------------------------------------------------- /tests/patterns/python/import_negatives.sgrep: -------------------------------------------------------------------------------- 1 | import foo.bar.baz -------------------------------------------------------------------------------- /tests/patterns/python/import_negatives2.sgrep: -------------------------------------------------------------------------------- 1 | from foo.bar import baz -------------------------------------------------------------------------------- /tests/patterns/python/imports.sgrep: -------------------------------------------------------------------------------- 1 | import foo.bar -------------------------------------------------------------------------------- /tests/patterns/python/index_tuple.sgrep: -------------------------------------------------------------------------------- 1 | 1, 2 2 | -------------------------------------------------------------------------------- /tests/patterns/python/less_inherits.sgrep: -------------------------------------------------------------------------------- 1 | class A: 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/python/less_typehint.sgrep: -------------------------------------------------------------------------------- 1 | def $F(filename): 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/python/metavar_class_def.sgrep: -------------------------------------------------------------------------------- 1 | class $X: 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/python/metavar_cond.sgrep: -------------------------------------------------------------------------------- 1 | if $E: 2 | foo() 3 | -------------------------------------------------------------------------------- /tests/patterns/python/metavar_dict.sgrep: -------------------------------------------------------------------------------- 1 | { ..., $K: $V, ...} 2 | -------------------------------------------------------------------------------- /tests/patterns/python/metavar_func_def.sgrep: -------------------------------------------------------------------------------- 1 | def $X(...): 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/python/metavar_import.sgrep: -------------------------------------------------------------------------------- 1 | import foo.$BAR -------------------------------------------------------------------------------- /tests/patterns/python/metavar_iterator.sgrep: -------------------------------------------------------------------------------- 1 | [$X for $X in $ITERATOR] -------------------------------------------------------------------------------- /tests/patterns/python/metavar_set.sgrep: -------------------------------------------------------------------------------- 1 | { ..., $X, ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/python/metavar_stmt.sgrep: -------------------------------------------------------------------------------- 1 | if var > 2: 2 | $S 3 | -------------------------------------------------------------------------------- /tests/patterns/python/metavar_tuple.py: -------------------------------------------------------------------------------- 1 | # ERROR: match 2 | x = () 3 | -------------------------------------------------------------------------------- /tests/patterns/python/metavar_tuple.sgrep: -------------------------------------------------------------------------------- 1 | x = $T 2 | -------------------------------------------------------------------------------- /tests/patterns/python/metavar_typed.sgrep: -------------------------------------------------------------------------------- 1 | foo($X: int) 2 | -------------------------------------------------------------------------------- /tests/patterns/python/misc_block_import.sgrep: -------------------------------------------------------------------------------- 1 | import foo.bar 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/python/misc_comprehension.sgrep: -------------------------------------------------------------------------------- 1 | $Z = [ $X for $X in $Y] -------------------------------------------------------------------------------- /tests/patterns/python/misc_encoded_string.sgrep: -------------------------------------------------------------------------------- 1 | url($PATH, $FUNC) -------------------------------------------------------------------------------- /tests/patterns/python/misc_fake_propa.sgrep: -------------------------------------------------------------------------------- 1 | $X = 50 2 | -------------------------------------------------------------------------------- /tests/patterns/python/misc_faketok1.sgrep: -------------------------------------------------------------------------------- 1 | click.echo(click.style($X, ...)) -------------------------------------------------------------------------------- /tests/patterns/python/misc_faketok2.sgrep: -------------------------------------------------------------------------------- 1 | "=~/.*bento.*/" -------------------------------------------------------------------------------- /tests/patterns/python/misc_faketok3.sgrep: -------------------------------------------------------------------------------- 1 | [...] 2 | -------------------------------------------------------------------------------- /tests/patterns/python/misc_match_stmt.sgrep: -------------------------------------------------------------------------------- 1 | print(...) -------------------------------------------------------------------------------- /tests/patterns/python/misc_metavar_vs_fstring.sgrep: -------------------------------------------------------------------------------- 1 | $X 2 | -------------------------------------------------------------------------------- /tests/patterns/python/misc_paren.sgrep: -------------------------------------------------------------------------------- 1 | cursor.execute("..." % ...) 2 | -------------------------------------------------------------------------------- /tests/patterns/python/misc_prefix_string.sgrep: -------------------------------------------------------------------------------- 1 | $X != $X -------------------------------------------------------------------------------- /tests/patterns/python/misc_return_empty.sgrep: -------------------------------------------------------------------------------- 1 | return $X 2 | -------------------------------------------------------------------------------- /tests/patterns/python/misc_stmts1.sgrep: -------------------------------------------------------------------------------- 1 | $X = $Y 2 | $X = $Z 3 | -------------------------------------------------------------------------------- /tests/patterns/python/misc_tuple2.sgrep: -------------------------------------------------------------------------------- 1 | return ( $ID, ($ARGS), $KWARGS ) -------------------------------------------------------------------------------- /tests/patterns/python/misc_with_no_rename.sgrep: -------------------------------------------------------------------------------- 1 | foo() 2 | -------------------------------------------------------------------------------- /tests/patterns/python/multi_import.sgrep: -------------------------------------------------------------------------------- 1 | from z import x, y 2 | -------------------------------------------------------------------------------- /tests/patterns/python/multi_qualified_wildcard.sgrep: -------------------------------------------------------------------------------- 1 | A.B.C.D.x -------------------------------------------------------------------------------- /tests/patterns/python/parenthesized_with.sgrep: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /tests/patterns/python/python2.sgrep: -------------------------------------------------------------------------------- 1 | $FOO(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/python/regexp_string_backref.sgrep: -------------------------------------------------------------------------------- 1 | $X = "=~/^(.)\1+$/" 2 | -------------------------------------------------------------------------------- /tests/patterns/python/scoped_wildcard.sgrep: -------------------------------------------------------------------------------- 1 | A.x -------------------------------------------------------------------------------- /tests/patterns/python/set_vs_dict.sgrep: -------------------------------------------------------------------------------- 1 | { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/python/set_vs_dict2.sgrep: -------------------------------------------------------------------------------- 1 | {..., "foo" : $VALUE, ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/python/set_vs_dict3.sgrep: -------------------------------------------------------------------------------- 1 | { ..., "foo", ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/python/standalone_decorator.sgrep: -------------------------------------------------------------------------------- 1 | @$NAME($...PA) 2 | -------------------------------------------------------------------------------- /tests/patterns/python/stmts_to_fields.sgrep: -------------------------------------------------------------------------------- 1 | foo() 2 | ... 3 | bar() -------------------------------------------------------------------------------- /tests/patterns/python/visitor_def.sgrep: -------------------------------------------------------------------------------- 1 | def __eq__(...): ... 2 | -------------------------------------------------------------------------------- /tests/patterns/python/wildcard_qualified.sgrep: -------------------------------------------------------------------------------- 1 | A.x -------------------------------------------------------------------------------- /tests/patterns/python/wildcard_qualified_mvar.sgrep: -------------------------------------------------------------------------------- 1 | $A.x -------------------------------------------------------------------------------- /tests/patterns/ql/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | foo(<... 42 ...>) -------------------------------------------------------------------------------- /tests/patterns/ql/dots_expr.sgrep: -------------------------------------------------------------------------------- 1 | // ERROR: 2 | 1 and ... -------------------------------------------------------------------------------- /tests/patterns/ql/dots_module.sgrep: -------------------------------------------------------------------------------- 1 | module $X { 2 | ... 3 | } -------------------------------------------------------------------------------- /tests/patterns/ql/dots_predicate.sgrep: -------------------------------------------------------------------------------- 1 | predicate foo(...) { ... } -------------------------------------------------------------------------------- /tests/patterns/ql/metavar_anno.ql: -------------------------------------------------------------------------------- 1 | // ERROR: 2 | select foo[bar](2) -------------------------------------------------------------------------------- /tests/patterns/ql/metavar_anno.sgrep: -------------------------------------------------------------------------------- 1 | foo[$Y]($Z) -------------------------------------------------------------------------------- /tests/patterns/ql/metavar_equality_expr.sgrep: -------------------------------------------------------------------------------- 1 | $X = $X -------------------------------------------------------------------------------- /tests/patterns/r/anonymous_metavar.r: -------------------------------------------------------------------------------- 1 | 2 | # ERROR: 3 | 1 -------------------------------------------------------------------------------- /tests/patterns/ruby/anonymous_metavar.rb: -------------------------------------------------------------------------------- 1 | 2 | # ERROR: 3 | 2 -------------------------------------------------------------------------------- /tests/patterns/ruby/blocks.sgrep: -------------------------------------------------------------------------------- 1 | f($X) 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/blocks1.sgrep: -------------------------------------------------------------------------------- 1 | f($X, $Y) 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/call_expr_property.sgrep: -------------------------------------------------------------------------------- 1 | foo.$X() -------------------------------------------------------------------------------- /tests/patterns/ruby/command_call_with_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | bar(foo ...) -------------------------------------------------------------------------------- /tests/patterns/ruby/cp_assign.sgrep: -------------------------------------------------------------------------------- 1 | foo("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/cp_concat.sgrep: -------------------------------------------------------------------------------- 1 | test("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/cp_interpolated.sgrep: -------------------------------------------------------------------------------- 1 | foo("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/cp_string_mutable.sgrep: -------------------------------------------------------------------------------- 1 | test("...") 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | foo(<... 42 ...>) 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/deep_exprstmt.sgrep: -------------------------------------------------------------------------------- 1 | foo() 2 | bar() -------------------------------------------------------------------------------- /tests/patterns/ruby/dots_atom.sgrep: -------------------------------------------------------------------------------- 1 | :... 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/dots_interpolated_string.sgrep: -------------------------------------------------------------------------------- 1 | x = "...#{...}..." 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/dots_multiple_interpolated.sgrep: -------------------------------------------------------------------------------- 1 | `...#{...}...` 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/dots_regexp.sgrep: -------------------------------------------------------------------------------- 1 | /.../ -------------------------------------------------------------------------------- /tests/patterns/ruby/dots_struct_new.sgrep: -------------------------------------------------------------------------------- 1 | Struct.new(...) -------------------------------------------------------------------------------- /tests/patterns/ruby/foo.sgrep: -------------------------------------------------------------------------------- 1 | puts "..." 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/implicit_return.sgrep: -------------------------------------------------------------------------------- 1 | return $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/lambda.sgrep: -------------------------------------------------------------------------------- 1 | $FOO = -> (...) {...} 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/metavar_atom.sgrep: -------------------------------------------------------------------------------- 1 | foo(:$ATOM) 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/metavar_classname.sgrep: -------------------------------------------------------------------------------- 1 | class $A 2 | end 3 | -------------------------------------------------------------------------------- /tests/patterns/ruby/metavar_cond.sgrep: -------------------------------------------------------------------------------- 1 | if $E 2 | foo() 3 | end 4 | -------------------------------------------------------------------------------- /tests/patterns/ruby/metavar_import.rb: -------------------------------------------------------------------------------- 1 | #ERROR: match 2 | require 'foo' 3 | -------------------------------------------------------------------------------- /tests/patterns/ruby/metavar_import.sgrep: -------------------------------------------------------------------------------- 1 | require $R 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/metavar_interpolated.sgrep: -------------------------------------------------------------------------------- 1 | $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/metavar_regexp.sgrep: -------------------------------------------------------------------------------- 1 | foo(/$X/, "$X") 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_backtick_interp.sgrep: -------------------------------------------------------------------------------- 1 | `...#{$VAL}...` 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_backticks.sgrep: -------------------------------------------------------------------------------- 1 | `...` 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_bitand.sgrep: -------------------------------------------------------------------------------- 1 | $A & $B 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_div0.sgrep: -------------------------------------------------------------------------------- 1 | $X / 0 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_dot_call.sgrep: -------------------------------------------------------------------------------- 1 | $FOO 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_dotaccess.sgrep: -------------------------------------------------------------------------------- 1 | generator.hex 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_empty_token1.sgrep: -------------------------------------------------------------------------------- 1 | $STR.html_safe 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_hidden_call.sgrep: -------------------------------------------------------------------------------- 1 | foo(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_kwdarg2.sgrep: -------------------------------------------------------------------------------- 1 | foo kwd1: $X, ... 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_kwdarg_dots.rb: -------------------------------------------------------------------------------- 1 | #ERROR: match 2 | foo(bar: 1) 3 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_kwdarg_dots.sgrep: -------------------------------------------------------------------------------- 1 | foo(bar:...) 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_multiple_assign.rb: -------------------------------------------------------------------------------- 1 | # ERROR: 2 | a, b = 1, 2 3 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_multiple_assign.sgrep: -------------------------------------------------------------------------------- 1 | a = 1 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_multiple_assign_uneq_lists.rb: -------------------------------------------------------------------------------- 1 | a, b = foo 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_multiple_assign_uneq_lists.sgrep: -------------------------------------------------------------------------------- 1 | a = foo 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_parsing1.sgrep: -------------------------------------------------------------------------------- 1 | FOO 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_parsing2.sgrep: -------------------------------------------------------------------------------- 1 | $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/misc_range.sgrep: -------------------------------------------------------------------------------- 1 | ($X .. $Y) 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/regexp_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | /.../ -------------------------------------------------------------------------------- /tests/patterns/ruby/regexp_literal.sgrep: -------------------------------------------------------------------------------- 1 | /a/ 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/regexp_metavar.sgrep: -------------------------------------------------------------------------------- 1 | /$V/ 2 | -------------------------------------------------------------------------------- /tests/patterns/ruby/regexp_template.sgrep: -------------------------------------------------------------------------------- 1 | /.../ 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/anonymous_metavar.rs: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 2; -------------------------------------------------------------------------------- /tests/patterns/rust/cp_expr_stmt_if.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/dots_field_chaining.sgrep: -------------------------------------------------------------------------------- 1 | s. ... .z 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/dots_macro_call.sgrep: -------------------------------------------------------------------------------- 1 | println!(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/dots_mod.sgrep: -------------------------------------------------------------------------------- 1 | mod tests { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/dots_struct.sgrep: -------------------------------------------------------------------------------- 1 | struct $FOO { 2 | ... 3 | } 4 | -------------------------------------------------------------------------------- /tests/patterns/rust/epattern_type_prop.sgrep: -------------------------------------------------------------------------------- 1 | sink(($X : T)) 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/implicit_return.sgrep: -------------------------------------------------------------------------------- 1 | return $X 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/metavar_class_def.sgrep: -------------------------------------------------------------------------------- 1 | struct $FOO { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/metavar_cond.sgrep: -------------------------------------------------------------------------------- 1 | if ($E) { 2 | foo(); 3 | } -------------------------------------------------------------------------------- /tests/patterns/rust/metavar_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | fn $FUNC() { 2 | $...X 3 | } -------------------------------------------------------------------------------- /tests/patterns/rust/metavar_func_def.sgrep: -------------------------------------------------------------------------------- 1 | fn $FOO(...) { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/metavar_import.sgrep: -------------------------------------------------------------------------------- 1 | use $X; 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/metavar_param.sgrep: -------------------------------------------------------------------------------- 1 | fn $F($X, ...) { ... } -------------------------------------------------------------------------------- /tests/patterns/rust/metavar_standalone.rs: -------------------------------------------------------------------------------- 1 | // ERROR: 2 | 4; -------------------------------------------------------------------------------- /tests/patterns/rust/metavar_standalone.sgrep: -------------------------------------------------------------------------------- 1 | $X -------------------------------------------------------------------------------- /tests/patterns/rust/misc_macrocall.sgrep: -------------------------------------------------------------------------------- 1 | $F(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/misc_return_3.sgrep: -------------------------------------------------------------------------------- 1 | 3 2 | -------------------------------------------------------------------------------- /tests/patterns/rust/misc_scoped_idents.sgrep: -------------------------------------------------------------------------------- 1 | A::$X -------------------------------------------------------------------------------- /tests/patterns/rust/misc_scoped_idents_as.sgrep: -------------------------------------------------------------------------------- 1 | A::B::f -------------------------------------------------------------------------------- /tests/patterns/scala/anonymous_metavar.scala: -------------------------------------------------------------------------------- 1 | // ERROR: 2 | 2 -------------------------------------------------------------------------------- /tests/patterns/scala/apply_as_new.sgrep: -------------------------------------------------------------------------------- 1 | new $NAME() -------------------------------------------------------------------------------- /tests/patterns/scala/catch_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | try { ... } catch { ... } -------------------------------------------------------------------------------- /tests/patterns/scala/class_params.sgrep: -------------------------------------------------------------------------------- 1 | ($OBJ : TypeName).foo -------------------------------------------------------------------------------- /tests/patterns/scala/custom_interpolated.sgrep: -------------------------------------------------------------------------------- 1 | abcd"..." -------------------------------------------------------------------------------- /tests/patterns/scala/dots_atom.sgrep: -------------------------------------------------------------------------------- 1 | '... 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/scala/dots_match.sgrep: -------------------------------------------------------------------------------- 1 | $X match { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/scala/equivalence_naming_import.sgrep: -------------------------------------------------------------------------------- 1 | subprocess.open(...) -------------------------------------------------------------------------------- /tests/patterns/scala/implicit_return.sgrep: -------------------------------------------------------------------------------- 1 | return $X 2 | -------------------------------------------------------------------------------- /tests/patterns/scala/import_metavariable.sgrep: -------------------------------------------------------------------------------- 1 | import $X -------------------------------------------------------------------------------- /tests/patterns/scala/infix_method.sgrep: -------------------------------------------------------------------------------- 1 | $XS.map($F) -------------------------------------------------------------------------------- /tests/patterns/scala/metavar_atom.sgrep: -------------------------------------------------------------------------------- 1 | '$X 2 | -------------------------------------------------------------------------------- /tests/patterns/scala/metavar_cond.sgrep: -------------------------------------------------------------------------------- 1 | if ($E) { 2 | foo() 3 | } -------------------------------------------------------------------------------- /tests/patterns/scala/metavar_func_def.sgrep: -------------------------------------------------------------------------------- 1 | def $FUNC(...) : $T = ... -------------------------------------------------------------------------------- /tests/patterns/scala/metavar_key_value.sgrep: -------------------------------------------------------------------------------- 1 | Map(..., $KEY -> $VALUE, ...) -------------------------------------------------------------------------------- /tests/patterns/scala/metavar_pat.sgrep: -------------------------------------------------------------------------------- 1 | $X match { case $V => ... } -------------------------------------------------------------------------------- /tests/patterns/scala/metavar_stmt.sgrep: -------------------------------------------------------------------------------- 1 | if ($E) { 2 | $S 3 | } -------------------------------------------------------------------------------- /tests/patterns/scala/metavar_typed.sgrep: -------------------------------------------------------------------------------- 1 | foo($X : Int) -------------------------------------------------------------------------------- /tests/patterns/scala/minus_identifier.sgrep: -------------------------------------------------------------------------------- 1 | val - = ... -------------------------------------------------------------------------------- /tests/patterns/scala/misc_symbol.sgrep: -------------------------------------------------------------------------------- 1 | 'Foo 2 | -------------------------------------------------------------------------------- /tests/patterns/scala/pat_def.sgrep: -------------------------------------------------------------------------------- 1 | val List(...) = ... -------------------------------------------------------------------------------- /tests/patterns/scala/pat_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | val List(...,bad,...) = ... -------------------------------------------------------------------------------- /tests/patterns/scala/tuple_def.sgrep: -------------------------------------------------------------------------------- 1 | val ($A,$B) = ... -------------------------------------------------------------------------------- /tests/patterns/solidity/anonymous_metavar.sol: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 1; -------------------------------------------------------------------------------- /tests/patterns/solidity/dots_contract.sgrep: -------------------------------------------------------------------------------- 1 | contract $C { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/solidity/misc_enum.sgrep: -------------------------------------------------------------------------------- 1 | enum $ENUM { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/solidity/misc_event.sgrep: -------------------------------------------------------------------------------- 1 | event $E(...); 2 | -------------------------------------------------------------------------------- /tests/patterns/solidity/misc_unchecked.sgrep: -------------------------------------------------------------------------------- 1 | unchecked { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/swift/anonymous_metavar.swift: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 2 -------------------------------------------------------------------------------- /tests/patterns/swift/class_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | class $CLASS { ... } -------------------------------------------------------------------------------- /tests/patterns/swift/class_variants.sgrep: -------------------------------------------------------------------------------- 1 | class Foo {} 2 | -------------------------------------------------------------------------------- /tests/patterns/swift/dots_nested_stmts.sgrep: -------------------------------------------------------------------------------- 1 | if ... { 2 | ... 3 | } 4 | -------------------------------------------------------------------------------- /tests/patterns/swift/if_let.sgrep: -------------------------------------------------------------------------------- 1 | if let foo = bar { } -------------------------------------------------------------------------------- /tests/patterns/swift/if_let.swift: -------------------------------------------------------------------------------- 1 | // MATCH: 2 | if let foo = bar { } -------------------------------------------------------------------------------- /tests/patterns/swift/keypath.sgrep: -------------------------------------------------------------------------------- 1 | \$X.isRecent 2 | -------------------------------------------------------------------------------- /tests/patterns/swift/match_name.sgrep: -------------------------------------------------------------------------------- 1 | foo -------------------------------------------------------------------------------- /tests/patterns/swift/semgrep_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | ... + 1 2 | -------------------------------------------------------------------------------- /tests/patterns/swift/semgrep_ellipsis_no_semi.sgrep: -------------------------------------------------------------------------------- 1 | foo 2 | ... 3 | -------------------------------------------------------------------------------- /tests/patterns/swift/typed_metavar.sgrep: -------------------------------------------------------------------------------- 1 | ($X : t) -------------------------------------------------------------------------------- /tests/patterns/swift/unbounded_range_ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | (...) + 1 2 | -------------------------------------------------------------------------------- /tests/patterns/terraform/deep_expr_operator.sgrep: -------------------------------------------------------------------------------- 1 | foo(<... 42 ...>) -------------------------------------------------------------------------------- /tests/patterns/ts/anonymous_metavar.ts: -------------------------------------------------------------------------------- 1 | 2 | // ERROR: 3 | 2; -------------------------------------------------------------------------------- /tests/patterns/ts/deep_record.sgrep: -------------------------------------------------------------------------------- 1 | return <... location.href ...> 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/dots_params.sgrep: -------------------------------------------------------------------------------- 1 | function foo(...) { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/dots_type_literal.sgrep: -------------------------------------------------------------------------------- 1 | type $X = "..." | "..." -------------------------------------------------------------------------------- /tests/patterns/ts/equivalence_decl_vs_assign.sgrep: -------------------------------------------------------------------------------- 1 | $VAR = foo(); 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/import_vN.sgrep: -------------------------------------------------------------------------------- 1 | import * as v8 from "v8"; -------------------------------------------------------------------------------- /tests/patterns/ts/import_vN.ts: -------------------------------------------------------------------------------- 1 | //ERROR: 2 | import * as v8 from "v8"; -------------------------------------------------------------------------------- /tests/patterns/ts/less_type_let.sgrep: -------------------------------------------------------------------------------- 1 | let $MSG = '...'; 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/metavar_import.sgrep: -------------------------------------------------------------------------------- 1 | import $X from 'foo'; 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/metavar_typed_class.sgrep: -------------------------------------------------------------------------------- 1 | ($X: C).f(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/metavar_typed_expr.sgrep: -------------------------------------------------------------------------------- 1 | $A == ($B : string) 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/misc_as_cast.sgrep: -------------------------------------------------------------------------------- 1 | $VAR = $EXPR as $TYPE; 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/misc_ast.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/misc_function.sgrep: -------------------------------------------------------------------------------- 1 | function foo() { 2 | ... 3 | } 4 | -------------------------------------------------------------------------------- /tests/patterns/ts/misc_method.sgrep: -------------------------------------------------------------------------------- 1 | bar() { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/misc_naming_recursion.sgrep: -------------------------------------------------------------------------------- 1 | $X 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/misc_semicolon.sgrep: -------------------------------------------------------------------------------- 1 | foo(...); 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/misc_semicolon.ts: -------------------------------------------------------------------------------- 1 | //ERROR: match 2 | foo(5); 3 | -------------------------------------------------------------------------------- /tests/patterns/ts/misc_type1.sgrep: -------------------------------------------------------------------------------- 1 | let $X : number = $Y; 2 | 3 | -------------------------------------------------------------------------------- /tests/patterns/ts/misc_type2.sgrep: -------------------------------------------------------------------------------- 1 | function $F($X: int) { ... } 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/misc_type3.sgrep: -------------------------------------------------------------------------------- 1 | class $X { $FLD: int; } 2 | -------------------------------------------------------------------------------- /tests/patterns/ts/opt_chain.sgrep: -------------------------------------------------------------------------------- 1 | x?.y -------------------------------------------------------------------------------- /tests/patterns/ts/record_functions.sgrep: -------------------------------------------------------------------------------- 1 | foo({ 2 | $THING: ... 3 | }) -------------------------------------------------------------------------------- /tests/patterns/ts/type_assert.sgrep: -------------------------------------------------------------------------------- 1 | (v8 as $T).$METH(...) 2 | -------------------------------------------------------------------------------- /tests/patterns/xml/misc_attribute_pattern.sgrep: -------------------------------------------------------------------------------- 1 | foo="true" 2 | -------------------------------------------------------------------------------- /tests/patterns/yaml/anonymous_metavar.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ERROR: 3 | "foo" -------------------------------------------------------------------------------- /tests/patterns/yaml/array_field_only.sgrep: -------------------------------------------------------------------------------- 1 | - "Job/Read" 2 | -------------------------------------------------------------------------------- /tests/patterns/yaml/empty.sgrep: -------------------------------------------------------------------------------- 1 | $X 2 | -------------------------------------------------------------------------------- /tests/patterns/yaml/metavar_field.sgrep: -------------------------------------------------------------------------------- 1 | - name: $X 2 | -------------------------------------------------------------------------------- /tests/patterns/yaml/metavar_field.yaml: -------------------------------------------------------------------------------- 1 | #ERROR: match 2 | - name: Emma 3 | -------------------------------------------------------------------------------- /tests/patterns/yaml/misc_other_formats_braces.sgrep: -------------------------------------------------------------------------------- 1 | hello: ... 2 | -------------------------------------------------------------------------------- /tests/patterns/yaml/post_unicode.sgrep: -------------------------------------------------------------------------------- 1 | other: $VALUE 2 | -------------------------------------------------------------------------------- /tests/patterns/yaml/semgrep/ellipses_only.sgrep: -------------------------------------------------------------------------------- 1 | ... 2 | -------------------------------------------------------------------------------- /tests/patterns/yaml/semgrep/field.sgrep: -------------------------------------------------------------------------------- 1 | language: $X 2 | -------------------------------------------------------------------------------- /tests/patterns/yaml/tag_literal.sgrep: -------------------------------------------------------------------------------- 1 | !thetag $X 2 | -------------------------------------------------------------------------------- /tests/patterns/yaml/tag_metavar.sgrep: -------------------------------------------------------------------------------- 1 | !$TAG $X 2 | -------------------------------------------------------------------------------- /tests/patterns/yaml/unicode.sgrep: -------------------------------------------------------------------------------- 1 | unicode: ジャパン 2 | -------------------------------------------------------------------------------- /tests/perf/bloom/stmts-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | ... 2 | foo($A); 3 | -------------------------------------------------------------------------------- /tests/perf/bloom/stmts-mv-ellipsis.sgrep: -------------------------------------------------------------------------------- 1 | $A; 2 | ... 3 | foo($A); 4 | -------------------------------------------------------------------------------- /tests/perf/eq.sgrep: -------------------------------------------------------------------------------- 1 | $X == $X -------------------------------------------------------------------------------- /tests/rules/inception.yl: -------------------------------------------------------------------------------- 1 | inception.yaml -------------------------------------------------------------------------------- /tests/rules/inception2.yl: -------------------------------------------------------------------------------- 1 | inception2.yaml -------------------------------------------------------------------------------- /tests/rules/js_no_ts.yl: -------------------------------------------------------------------------------- 1 | js_no_ts.yaml -------------------------------------------------------------------------------- /tests/rules/skip_list.txt: -------------------------------------------------------------------------------- 1 | file: lib_semgrep.jsonnet 2 | -------------------------------------------------------------------------------- /tests/rules/vardef_assign_false.js: -------------------------------------------------------------------------------- 1 | //OK:test 2 | var x = 1; 3 | -------------------------------------------------------------------------------- /tests/rules/vardef_assign_false1.js: -------------------------------------------------------------------------------- 1 | //OK:test 2 | var x = 1; 3 | -------------------------------------------------------------------------------- /tests/rules/vardef_assign_true.js: -------------------------------------------------------------------------------- 1 | //ruleid:test 2 | var x = 1; 3 | -------------------------------------------------------------------------------- /tests/rules/vardef_assign_true1.js: -------------------------------------------------------------------------------- 1 | //ruleid:test 2 | var x = 1; 3 | -------------------------------------------------------------------------------- /tests/rules/vardef_assign_true2.js: -------------------------------------------------------------------------------- 1 | //ruleid:test 2 | var x = 1; 3 | -------------------------------------------------------------------------------- /tests/rules/xml_metavar_comp2.xml: -------------------------------------------------------------------------------- 1 | <!-- ruleid: test --> 2 | <a>20</a> 3 | -------------------------------------------------------------------------------- /tests/snapshots/semgrep-core/2e75b85cd1f4/name: -------------------------------------------------------------------------------- 1 | Gitignore > unanchored 2 | -------------------------------------------------------------------------------- /tests/snapshots/semgrep-core/8128ddf1251b/stdout: -------------------------------------------------------------------------------- 1 | input list: [] 2 | -------------------------------------------------------------------------------- /tests/windows/readme.txt: -------------------------------------------------------------------------------- 1 | used in build-test-windows-x86.jsonnet 2 | -------------------------------------------------------------------------------- /tests/windows/test.py: -------------------------------------------------------------------------------- 1 | print("foo") 2 | --------------------------------------------------------------------------------