Merge branch 'main' of https://github.com/github/codeql into post-release-prep/codeql-cli-2.26.2

This commit is contained in:
Óscar San José
2026-07-30 14:09:06 +02:00
163 changed files with 3537 additions and 9611 deletions

309
Cargo.lock generated
View File

@@ -140,26 +140,6 @@ version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
name = "bindgen"
version = "0.72.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895"
dependencies = [
"bitflags 2.9.4",
"cexpr",
"clang-sys",
"itertools 0.12.1",
"log 0.4.28",
"prettyplease",
"proc-macro2",
"quote",
"regex",
"rustc-hash 2.1.1",
"shlex",
"syn",
]
[[package]]
name = "bitflags"
version = "1.3.2"
@@ -270,15 +250,6 @@ dependencies = [
"shlex",
]
[[package]]
name = "cexpr"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
dependencies = [
"nom",
]
[[package]]
name = "cfg-if"
version = "1.0.3"
@@ -378,17 +349,6 @@ dependencies = [
"windows-link 0.2.0",
]
[[package]]
name = "clang-sys"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
dependencies = [
"glob",
"libc",
"libloading",
]
[[package]]
name = "clap"
version = "4.5.48"
@@ -491,9 +451,6 @@ dependencies = [
"serde_json",
"tracing",
"tracing-subscriber",
"tree-sitter",
"tree-sitter-embedded-template",
"tree-sitter-swift",
"yeast",
]
@@ -545,15 +502,6 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
[[package]]
name = "convert_case"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "core-foundation-sys"
version = "0.8.7"
@@ -807,12 +755,6 @@ dependencies = [
"typeid",
]
[[package]]
name = "fastrand"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
[[package]]
name = "figment"
version = "0.10.19"
@@ -861,12 +803,6 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
[[package]]
name = "foldhash"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
[[package]]
name = "form_urlencoded"
version = "1.2.2"
@@ -951,18 +887,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
dependencies = [
"allocator-api2",
"equivalent",
"foldhash 0.1.5",
]
[[package]]
name = "hashbrown"
version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
dependencies = [
"allocator-api2",
"equivalent",
"foldhash 0.2.0",
"foldhash",
]
[[package]]
@@ -1167,15 +1092,6 @@ dependencies = [
"serde_core",
]
[[package]]
name = "indoc"
version = "2.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
dependencies = [
"rustversion",
]
[[package]]
name = "inlinable_string"
version = "0.1.15"
@@ -1305,16 +1221,6 @@ version = "0.2.175"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
[[package]]
name = "libloading"
version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
dependencies = [
"cfg-if",
"windows-link 0.2.0",
]
[[package]]
name = "line-index"
version = "0.1.2"
@@ -1380,12 +1286,6 @@ dependencies = [
"autocfg",
]
[[package]]
name = "minimal-lexical"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "miniz_oxide"
version = "0.8.9"
@@ -1432,16 +1332,6 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
[[package]]
name = "nom"
version = "7.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
dependencies = [
"memchr",
"minimal-lexical",
]
[[package]]
name = "notify"
version = "8.2.0"
@@ -1569,12 +1459,6 @@ dependencies = [
"windows-targets 0.52.6",
]
[[package]]
name = "pathdiff"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"
[[package]]
name = "pear"
version = "0.2.9"
@@ -1633,35 +1517,6 @@ dependencies = [
"indexmap 2.14.0",
]
[[package]]
name = "phf"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
dependencies = [
"phf_shared",
"serde",
]
[[package]]
name = "phf_generator"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
dependencies = [
"fastrand",
"phf_shared",
]
[[package]]
name = "phf_shared"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
dependencies = [
"siphasher",
]
[[package]]
name = "pin-project-lite"
version = "0.2.16"
@@ -1704,25 +1559,6 @@ dependencies = [
"zerocopy",
]
[[package]]
name = "prettyplease"
version = "0.2.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
dependencies = [
"proc-macro2",
"syn",
]
[[package]]
name = "proc-macro-crate"
version = "3.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
dependencies = [
"toml_edit 0.25.11+spec-1.1.0",
]
[[package]]
name = "proc-macro2"
version = "1.0.101"
@@ -2426,15 +2262,6 @@ version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
[[package]]
name = "relative-path"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bca40a312222d8ba74837cb474edef44b37f561da5f773981007a10bbaa992b0"
dependencies = [
"serde",
]
[[package]]
name = "rowan"
version = "0.15.15"
@@ -2448,57 +2275,6 @@ dependencies = [
"text-size",
]
[[package]]
name = "rquickjs"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a135375fbac5ba723bb6a48f432a72f81539cedde422f0121a86c7c4e96d8e0d"
dependencies = [
"rquickjs-core",
"rquickjs-macro",
]
[[package]]
name = "rquickjs-core"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bccb7121a123865c8ace4dea42e7ed84d78b90cbaf4ca32c59849d8d210c9672"
dependencies = [
"hashbrown 0.16.1",
"phf",
"relative-path",
"rquickjs-sys",
]
[[package]]
name = "rquickjs-macro"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89f93602cc3112c7f30bf5f29e722784232138692c7df4c52ebbac7e035d900d"
dependencies = [
"convert_case",
"fnv",
"ident_case",
"indexmap 2.14.0",
"phf_generator",
"phf_shared",
"proc-macro-crate",
"proc-macro2",
"quote",
"rquickjs-core",
"syn",
]
[[package]]
name = "rquickjs-sys"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57b1b6528590d4d65dc86b5159eae2d0219709546644c66408b2441696d1d725"
dependencies = [
"bindgen",
"cc",
]
[[package]]
name = "rust-extractor-macros"
version = "0.1.0"
@@ -2804,18 +2580,6 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "siphasher"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649"
[[package]]
name = "smallbitvec"
version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b0e903ee191d8f7a8fbf0d712c3a1699d19e04ceba5ad1eb673053c7d938a09"
[[package]]
name = "smallvec"
version = "1.15.1"
@@ -2972,7 +2736,7 @@ dependencies = [
"serde",
"serde_spanned 0.6.9",
"toml_datetime 0.6.11",
"toml_edit 0.22.27",
"toml_edit",
]
[[package]]
@@ -3008,15 +2772,6 @@ dependencies = [
"serde_core",
]
[[package]]
name = "toml_datetime"
version = "1.1.1+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
dependencies = [
"serde_core",
]
[[package]]
name = "toml_edit"
version = "0.22.27"
@@ -3031,18 +2786,6 @@ dependencies = [
"winnow 0.7.13",
]
[[package]]
name = "toml_edit"
version = "0.25.11+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b"
dependencies = [
"indexmap 2.14.0",
"toml_datetime 1.1.1+spec-1.1.0",
"toml_parser",
"winnow 1.0.2",
]
[[package]]
name = "toml_parser"
version = "1.1.2+spec-1.1.0"
@@ -3064,12 +2807,6 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109"
[[package]]
name = "topological-sort"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d"
[[package]]
name = "tracing"
version = "0.1.41"
@@ -3166,30 +2903,6 @@ dependencies = [
"tree-sitter-language",
]
[[package]]
name = "tree-sitter-generate"
version = "0.26.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3fb2e1bdb1d5f9d23cd5fa68cf98b3bedbd223c92a2edd60bbcf30bcf7180a5"
dependencies = [
"bitflags 2.9.4",
"dunce",
"indexmap 2.14.0",
"indoc",
"log 0.4.28",
"pathdiff",
"regex",
"regex-syntax",
"rquickjs",
"rustc-hash 2.1.1",
"semver",
"serde",
"serde_json",
"smallbitvec",
"thiserror",
"topological-sort",
]
[[package]]
name = "tree-sitter-json"
version = "0.24.8"
@@ -3236,15 +2949,6 @@ dependencies = [
"tree-sitter-language",
]
[[package]]
name = "tree-sitter-swift"
version = "0.7.2"
dependencies = [
"cc",
"tree-sitter-generate",
"tree-sitter-language",
]
[[package]]
name = "triomphe"
version = "0.1.14"
@@ -3294,12 +2998,6 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
[[package]]
name = "unicode-segmentation"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
[[package]]
name = "unicode-xid"
version = "0.2.6"
@@ -3694,9 +3392,6 @@ name = "winnow"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0"
dependencies = [
"memchr",
]
[[package]]
name = "wit-bindgen"

View File

@@ -9,7 +9,6 @@ members = [
"shared/yeast-schema",
"ruby/extractor",
"unified/extractor",
"unified/extractor/tree-sitter-swift",
"unified/swift-syntax-rs",
"rust/extractor",
"rust/extractor/macros",

View File

@@ -109,7 +109,6 @@ use_repo(
tree_sitter_extractors_deps,
"vendor_ts__anyhow-1.0.100",
"vendor_ts__argfile-0.2.1",
"vendor_ts__cc-1.2.61",
"vendor_ts__chalk-ir-0.104.0",
"vendor_ts__chrono-0.4.42",
"vendor_ts__clap-4.5.48",
@@ -157,9 +156,7 @@ use_repo(
"vendor_ts__tracing-subscriber-0.3.20",
"vendor_ts__tree-sitter-0.26.8",
"vendor_ts__tree-sitter-embedded-template-0.25.0",
"vendor_ts__tree-sitter-generate-0.26.8",
"vendor_ts__tree-sitter-json-0.24.8",
"vendor_ts__tree-sitter-language-0.1.5",
"vendor_ts__tree-sitter-python-0.23.6",
"vendor_ts__tree-sitter-ql-0.23.1",
"vendor_ts__tree-sitter-ruby-0.23.1",

View File

@@ -1,5 +1,8 @@
codeql_platform = select({
"@platforms//os:linux": "linux64",
"@platforms//os:macos": "osx64",
"@platforms//os:windows": "win64",
})
load("//misc/bazel:os.bzl", "codeql_platform_select")
codeql_platform = codeql_platform_select(
linux64 = "linux64",
linux_arm64 = "linux-arm64",
osx64 = "osx64",
win64 = "win64",
)

View File

@@ -0,0 +1,79 @@
.. _codeql-cli-2.26.2:
==========================
CodeQL 2.26.2 (2026-07-23)
==========================
.. contents:: Contents
:depth: 2
:local:
:backlinks: none
This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog <https://github.blog/tag/code-scanning/>`__, `relevant GitHub Changelog updates <https://github.blog/changelog/label/application-security/>`__, `changes in the CodeQL extension for Visual Studio Code <https://marketplace.visualstudio.com/items/GitHub.vscode-codeql/changelog>`__, and the `CodeQL Action changelog <https://github.com/github/codeql-action/blob/main/CHANGELOG.md>`__.
Security Coverage
-----------------
CodeQL 2.26.2 runs a total of 497 security queries when configured with the Default suite (covering 170 CWE). The Extended suite enables an additional 131 queries (covering 32 more CWE).
CodeQL CLI
----------
Breaking Changes
~~~~~~~~~~~~~~~~
* Removed support for parsing :code:`[[`\ -style links in alert messages. This was an undocumented legacy feature that allowed query authors to embed links inline in select clause message strings using :code:`[["text"|"url"]]` syntax. Queries should use :code:`$@` placeholder pairs instead.
Query Packs
-----------
Minor Analysis Improvements
~~~~~~~~~~~~~~~~~~~~~~~~~~~
C#
""
* :code:`System.Web.HttpRequest.RawUrl` is no longer treated as a sanitizer for :code:`cs/web/unvalidated-url-redirection`, since it contains the un-normalized request line. This may lead to more results.
Query Metadata Changes
~~~~~~~~~~~~~~~~~~~~~~
C/C++
"""""
* Added the tag :code:`external/cwe/cwe-762` to :code:`cpp/new-free-mismatch`, and removed the tag :code:`external/cwe/cwe-401`. This better matches the behavior of the query.
C#
""
* The query :code:`cs/useless-assignment-to-local` has been removed from the :code:`code-quality` suite, but it remains in the :code:`code-quality-extended` suite.
Language Libraries
------------------
Major Analysis Improvements
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Swift
"""""
* Upgraded to allow analysis of Swift 6.3.3.
Minor Analysis Improvements
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Golang
""""""
* The function :code:`Rel` in :code:`path/filepath` was incorrectly considered a sanitizer for :code:`go/path-injection` and :code:`go/zipslip`. This has now been fixed, which may lead to more results for those queries.
Java/Kotlin
"""""""""""
* Kotlin versions up to 2.4.10 are now supported.
* :code:`java.io.File.getName()` is no longer treated as a complete sanitizer for :code:`java/path-injection`, since it does not remove a :code:`..` path component (for example :code:`new File("..").getName()` returns :code:`".."`). It is now only recognized as a sanitizer when combined with a subsequent check for :code:`..` components, which may result in new alerts.
GitHub Actions
""""""""""""""
* Altered the logic of :code:`EnvironmentCheck` to make sure it is a check that protects only for non-toctou. This change will result in more results being found by the queries: :code:`actions/untrusted-checkout-toctou/high` and :code:`actions/untrusted-checkout-toctou/critical`.

View File

@@ -11,6 +11,7 @@ A list of queries for each suite and language `is available here <https://docs.g
.. toctree::
:maxdepth: 1
codeql-cli-2.26.2
codeql-cli-2.26.1
codeql-cli-2.26.0
codeql-cli-2.25.6

View File

@@ -191,6 +191,7 @@ and the CodeQL library pack ``codeql/javascript-all`` (`changelog <https://githu
react native, HTML framework
request, Network communicator
restify, Server
Sails.js Action2 controllers, Server
sequelize, Database
socket.io, Network communicator
sqlite3, Database

View File

@@ -232,13 +232,13 @@ func ExtractWithFlags(buildFlags []string, patterns []string, extractTests bool,
// This should only cause some wasted time and not inconsistency because the names for
// objects seen in this process should be the same each time.
log.Printf("Processing package %s.", pkg.PkgPath)
slog.Debug("Processing package", "package", pkg.PkgPath)
if _, ok := pkgInfos[pkg.PkgPath]; !ok {
pkgInfos[pkg.PkgPath] = toolchain.GetPkgInfo(pkg.PkgPath, modFlags...)
}
log.Printf("Extracting types for package %s.", pkg.PkgPath)
slog.Debug("Extracting types for package", "package", pkg.PkgPath)
tw, err := trap.NewWriter(pkg.PkgPath, pkg)
if err != nil {

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* Added support for treating declared `inputs` properties in Sails Action2 controller files as remote flow sources. This may improve results for security queries such as `js/path-injection`.

View File

@@ -7,4 +7,5 @@ import semmle.javascript.frameworks.Micro
import semmle.javascript.frameworks.Restify
import semmle.javascript.frameworks.Connect
import semmle.javascript.frameworks.Fastify
import semmle.javascript.frameworks.Sails
import semmle.javascript.frameworks.Spife

View File

@@ -0,0 +1,85 @@
/**
* Provides classes for working with [Sails](https://sailsjs.com/) applications.
*/
private import javascript
private import semmle.javascript.frameworks.HTTP
private import DataFlow
/**
* Provides classes for working with [Sails](https://sailsjs.com/) applications.
*/
module Sails {
/**
* A Sails Action2 action object exported from a module.
*
* For example:
*
* ```javascript
* module.exports = {
* inputs: { filename: { type: "string" } },
* fn(inputs, exits) { ... }
* };
* ```
*/
private class Action2Action extends ObjectExpr {
Action2Action() {
exists(Module mod, DataFlow::FunctionNode fn |
mod.getABulkExportedNode().getALocalSource().asExpr() = this and
this.getFile().getRelativePath().regexpMatch("(^|.*/)api/controllers/.*") and
this.getPropertyByName("inputs").getInit() instanceof ObjectExpr and
fn = DataFlow::valueNode(this.getPropertyByName("fn").getInit()).getAFunctionValue()
)
}
/**
* Gets the `fn` function that handles the action.
*/
DataFlow::FunctionNode getFunction() {
result = DataFlow::valueNode(this.getPropertyByName("fn").getInit()).getAFunctionValue()
}
/**
* Gets the name of an input declared by this action.
*/
string getADeclaredInputName() {
result = this.getPropertyByName("inputs").getInit().(ObjectExpr).getAProperty().getName()
}
}
/**
* A Sails Action2 handler function.
*/
private class Action2RouteHandler extends Http::Servers::StandardRouteHandler,
DataFlow::FunctionNode
{
Action2Action action;
Action2RouteHandler() { this = action.getFunction() }
/**
* Gets the parameter of the action handler that contains the validated action inputs.
*/
DataFlow::ParameterNode getInputsParameter() { result = this.getParameter(0) }
/**
* Gets the name of an input declared by this action.
*/
string getADeclaredInputName() { result = action.getADeclaredInputName() }
}
/**
* An access to a user-controlled Sails Action2 input.
*/
private class Action2InputAccess extends Http::RequestInputAccess {
Action2RouteHandler rh;
Action2InputAccess() {
this = rh.getInputsParameter().getAPropertyRead(rh.getADeclaredInputName())
}
override Action2RouteHandler getRouteHandler() { result = rh }
override string getKind() { result = "parameter" }
}
}

View File

@@ -0,0 +1,11 @@
const action = {
inputs: {
name: { type: "string", required: true }
},
fn(inputs, exits) {
return exits.success(inputs.name);
}
};
module.exports = action;

View File

@@ -0,0 +1,9 @@
module.exports = {
inputs: {
filename: { type: "string", required: true }
},
async fn({ filename }, exits) {
return exits.success(filename);
}
};

View File

@@ -0,0 +1,14 @@
module.exports = {
inputs: {
id: { type: "string", regex: /^[0-9]+$/, required: true },
filename: { type: "string", required: true }
},
async fn(inputs, exits) {
const id = inputs.id;
const filename = inputs.filename;
const notDeclared = inputs.notDeclared;
return exits.success({ id, filename, notDeclared });
}
};

View File

@@ -0,0 +1,9 @@
module.exports = {
inputs: {
filename: { type: "string", required: true }
},
async fn(inputs, exits) {
return exits.success(inputs.filename);
}
};

View File

@@ -0,0 +1,9 @@
module.exports = {
inputs: {
filename: { type: "string", required: true }
},
fn(inputs, exits) {
return exits.success(inputs.filename);
}
};

View File

@@ -0,0 +1,9 @@
test_routeHandler
| src/api/controllers/attachments/assigned-action.js:6:5:8:3 | (inputs ... e);\\n } |
| src/api/controllers/attachments/destructured-action.js:6:11:8:3 | ({ file ... e);\\n } |
| src/api/controllers/attachments/download-thumbnail.js:7:11:13:3 | (inputs ... });\\n } |
test_requestInputAccess
| src/api/controllers/attachments/assigned-action.js:7:26:7:36 | inputs.name | parameter |
| src/api/controllers/attachments/destructured-action.js:6:14:6:21 | filename | parameter |
| src/api/controllers/attachments/download-thumbnail.js:8:16:8:24 | inputs.id | parameter |
| src/api/controllers/attachments/download-thumbnail.js:9:22:9:36 | inputs.filename | parameter |

View File

@@ -0,0 +1,8 @@
import javascript
import semmle.javascript.frameworks.Sails
query predicate test_routeHandler(Http::RouteHandler rh) { any() }
query predicate test_requestInputAccess(Http::RequestInputAccess ria, string kind) {
kind = ria.getKind()
}

View File

@@ -47,6 +47,7 @@
| TaintedPath.js:205:31:205:69 | path.re ... '), '') | TaintedPath.js:200:24:200:30 | req.url | TaintedPath.js:205:31:205:69 | path.re ... '), '') | This path depends on a $@. | TaintedPath.js:200:24:200:30 | req.url | user-provided value |
| TaintedPath.js:214:29:214:42 | improperEscape | TaintedPath.js:212:24:212:30 | req.url | TaintedPath.js:214:29:214:42 | improperEscape | This path depends on a $@. | TaintedPath.js:212:24:212:30 | req.url | user-provided value |
| TaintedPath.js:216:29:216:43 | improperEscape2 | TaintedPath.js:212:24:212:30 | req.url | TaintedPath.js:216:29:216:43 | improperEscape2 | This path depends on a $@. | TaintedPath.js:212:24:212:30 | req.url | user-provided value |
| api/controllers/attachments/download-thumbnail.js:18:42:18:49 | filePath | api/controllers/attachments/download-thumbnail.js:15:7:15:21 | inputs.filename | api/controllers/attachments/download-thumbnail.js:18:42:18:49 | filePath | This path depends on a $@. | api/controllers/attachments/download-thumbnail.js:15:7:15:21 | inputs.filename | user-provided value |
| examples/TaintedPath.js:10:29:10:43 | ROOT + filePath | examples/TaintedPath.js:8:28:8:34 | req.url | examples/TaintedPath.js:10:29:10:43 | ROOT + filePath | This path depends on a $@. | examples/TaintedPath.js:8:28:8:34 | req.url | user-provided value |
| execa.js:9:26:9:33 | filePath | execa.js:6:30:6:36 | req.url | execa.js:9:26:9:33 | filePath | This path depends on a $@. | execa.js:6:30:6:36 | req.url | user-provided value |
| execa.js:12:37:12:44 | filePath | execa.js:6:30:6:36 | req.url | execa.js:12:37:12:44 | filePath | This path depends on a $@. | execa.js:6:30:6:36 | req.url | user-provided value |
@@ -397,6 +398,9 @@ edges
| TaintedPath.js:215:9:215:23 | improperEscape2 | TaintedPath.js:216:29:216:43 | improperEscape2 | provenance | |
| TaintedPath.js:215:27:215:40 | unescape(path) | TaintedPath.js:215:9:215:23 | improperEscape2 | provenance | |
| TaintedPath.js:215:36:215:39 | path | TaintedPath.js:215:27:215:40 | unescape(path) | provenance | Config |
| api/controllers/attachments/download-thumbnail.js:11:9:11:16 | filePath | api/controllers/attachments/download-thumbnail.js:18:42:18:49 | filePath | provenance | |
| api/controllers/attachments/download-thumbnail.js:11:20:16:5 | path.jo ... e\\n ) | api/controllers/attachments/download-thumbnail.js:11:9:11:16 | filePath | provenance | |
| api/controllers/attachments/download-thumbnail.js:15:7:15:21 | inputs.filename | api/controllers/attachments/download-thumbnail.js:11:20:16:5 | path.jo ... e\\n ) | provenance | Config |
| examples/TaintedPath.js:8:7:8:14 | filePath | examples/TaintedPath.js:10:36:10:43 | filePath | provenance | |
| examples/TaintedPath.js:8:18:8:41 | url.par ... , true) | examples/TaintedPath.js:8:18:8:47 | url.par ... ).query | provenance | Config |
| examples/TaintedPath.js:8:18:8:47 | url.par ... ).query | examples/TaintedPath.js:8:18:8:52 | url.par ... ry.path | provenance | Config |
@@ -950,6 +954,10 @@ nodes
| TaintedPath.js:215:27:215:40 | unescape(path) | semmle.label | unescape(path) |
| TaintedPath.js:215:36:215:39 | path | semmle.label | path |
| TaintedPath.js:216:29:216:43 | improperEscape2 | semmle.label | improperEscape2 |
| api/controllers/attachments/download-thumbnail.js:11:9:11:16 | filePath | semmle.label | filePath |
| api/controllers/attachments/download-thumbnail.js:11:20:16:5 | path.jo ... e\\n ) | semmle.label | path.jo ... e\\n ) |
| api/controllers/attachments/download-thumbnail.js:15:7:15:21 | inputs.filename | semmle.label | inputs.filename |
| api/controllers/attachments/download-thumbnail.js:18:42:18:49 | filePath | semmle.label | filePath |
| examples/TaintedPath.js:8:7:8:14 | filePath | semmle.label | filePath |
| examples/TaintedPath.js:8:18:8:41 | url.par ... , true) | semmle.label | url.par ... , true) |
| examples/TaintedPath.js:8:18:8:47 | url.par ... ).query | semmle.label | url.par ... ).query |

View File

@@ -0,0 +1,25 @@
var fs = require("fs");
var path = require("path");
module.exports = {
inputs: {
id: { type: "string", regex: /^[0-9]+$/, required: true },
filename: { type: "string", required: true }
},
async fn(inputs, exits) {
var filePath = path.join(
"/srv/app/attachments",
"42",
"thumbnails",
inputs.filename // $ Source
);
return exits.success(fs.readFileSync(filePath)); // $ Alert
}
};
function localInputsAreNotRequests(inputs) {
var filePath = path.join("/srv/app/attachments", inputs.filename);
return fs.readFileSync(filePath);
}

View File

@@ -55,18 +55,6 @@ alias(
tags = ["manual"],
)
alias(
name = "cc-1.2.61",
actual = "@vendor_ts__cc-1.2.61//:cc",
tags = ["manual"],
)
alias(
name = "cc",
actual = "@vendor_ts__cc-1.2.61//:cc",
tags = ["manual"],
)
alias(
name = "chalk-ir-0.104.0",
actual = "@vendor_ts__chalk-ir-0.104.0//:chalk_ir",
@@ -649,18 +637,6 @@ alias(
tags = ["manual"],
)
alias(
name = "tree-sitter-generate-0.26.8",
actual = "@vendor_ts__tree-sitter-generate-0.26.8//:tree_sitter_generate",
tags = ["manual"],
)
alias(
name = "tree-sitter-generate",
actual = "@vendor_ts__tree-sitter-generate-0.26.8//:tree_sitter_generate",
tags = ["manual"],
)
alias(
name = "tree-sitter-json-0.24.8",
actual = "@vendor_ts__tree-sitter-json-0.24.8//:tree_sitter_json",
@@ -673,18 +649,6 @@ alias(
tags = ["manual"],
)
alias(
name = "tree-sitter-language-0.1.5",
actual = "@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language",
tags = ["manual"],
)
alias(
name = "tree-sitter-language",
actual = "@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language",
tags = ["manual"],
)
alias(
name = "tree-sitter-python-0.23.6",
actual = "@vendor_ts__tree-sitter-python-0.23.6//:tree_sitter_python",
@@ -721,18 +685,6 @@ alias(
tags = ["manual"],
)
alias(
name = "tree-sitter-swift-0.7.2",
actual = "@vendor_ts__tree-sitter-swift-0.7.2//:tree_sitter_swift",
tags = ["manual"],
)
alias(
name = "tree-sitter-swift",
actual = "@vendor_ts__tree-sitter-swift-0.7.2//:tree_sitter_swift",
tags = ["manual"],
)
alias(
name = "triomphe-0.1.14",
actual = "@vendor_ts__triomphe-0.1.14//:triomphe",

View File

@@ -1,190 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load(
"@rules_rust//cargo:defs.bzl",
"cargo_build_script",
"cargo_toml_env_vars",
)
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "bindgen",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"default",
"logging",
"prettyplease",
"runtime",
],
crate_root = "lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=bindgen",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.72.1",
deps = [
"@vendor_ts__bindgen-0.72.1//:build_script_build",
"@vendor_ts__bitflags-2.9.4//:bitflags",
"@vendor_ts__cexpr-0.6.0//:cexpr",
"@vendor_ts__clang-sys-1.8.1//:clang_sys",
"@vendor_ts__itertools-0.12.1//:itertools",
"@vendor_ts__log-0.4.28//:log",
"@vendor_ts__prettyplease-0.2.37//:prettyplease",
"@vendor_ts__proc-macro2-1.0.101//:proc_macro2",
"@vendor_ts__quote-1.0.41//:quote",
"@vendor_ts__regex-1.11.3//:regex",
"@vendor_ts__rustc-hash-2.1.1//:rustc_hash",
"@vendor_ts__shlex-1.3.0//:shlex",
"@vendor_ts__syn-2.0.106//:syn",
],
)
cargo_build_script(
name = "_bs",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
"**/*.rs",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"default",
"logging",
"prettyplease",
"runtime",
],
crate_name = "build_script_build",
crate_root = "build.rs",
data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
edition = "2021",
link_deps = [
"@vendor_ts__clang-sys-1.8.1//:clang_sys",
"@vendor_ts__prettyplease-0.2.37//:prettyplease",
],
pkg_name = "bindgen",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=bindgen",
"manual",
"noclippy",
"norustfmt",
],
version = "0.72.1",
visibility = ["//visibility:private"],
)
alias(
name = "build_script_build",
actual = ":_bs",
tags = ["manual"],
)

View File

@@ -1,100 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "cexpr",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2018",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=cexpr",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.6.0",
deps = [
"@vendor_ts__nom-7.1.3//:nom",
],
)

View File

@@ -1,203 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load(
"@rules_rust//cargo:defs.bzl",
"cargo_build_script",
"cargo_toml_env_vars",
)
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "clang_sys",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"clang_10_0",
"clang_11_0",
"clang_3_5",
"clang_3_6",
"clang_3_7",
"clang_3_8",
"clang_3_9",
"clang_4_0",
"clang_5_0",
"clang_6_0",
"clang_7_0",
"clang_8_0",
"clang_9_0",
"libloading",
"runtime",
],
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=clang-sys",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "1.8.1",
deps = [
"@vendor_ts__clang-sys-1.8.1//:build_script_build",
"@vendor_ts__glob-0.3.3//:glob",
"@vendor_ts__libc-0.2.175//:libc",
"@vendor_ts__libloading-0.8.9//:libloading",
],
)
cargo_build_script(
name = "_bs",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
"**/*.rs",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"clang_10_0",
"clang_11_0",
"clang_3_5",
"clang_3_6",
"clang_3_7",
"clang_3_8",
"clang_3_9",
"clang_4_0",
"clang_5_0",
"clang_6_0",
"clang_7_0",
"clang_8_0",
"clang_9_0",
"libloading",
"runtime",
],
crate_name = "build_script_build",
crate_root = "build.rs",
data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
edition = "2021",
links = "clang",
pkg_name = "clang-sys",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=clang-sys",
"manual",
"noclippy",
"norustfmt",
],
version = "1.8.1",
visibility = ["//visibility:private"],
deps = [
"@vendor_ts__glob-0.3.3//:glob",
],
)
alias(
name = "build_script_build",
actual = ":_bs",
tags = ["manual"],
)

View File

@@ -1,100 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "convert_case",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=convert_case",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.8.0",
deps = [
"@vendor_ts__unicode-segmentation-1.13.2//:unicode_segmentation",
],
)

View File

@@ -1,97 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "fastrand",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2018",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=fastrand",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "2.4.1",
)

View File

@@ -1,97 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "foldhash",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=foldhash",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.2.0",
)

View File

@@ -1,110 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "hashbrown",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"allocator-api2",
"default",
"default-hasher",
"equivalent",
"inline-more",
"raw-entry",
],
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=hashbrown",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.16.1",
deps = [
"@vendor_ts__allocator-api2-0.2.21//:allocator_api2",
"@vendor_ts__equivalent-1.0.2//:equivalent",
"@vendor_ts__foldhash-0.2.0//:foldhash",
],
)

View File

@@ -1,97 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_proc_macro")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_proc_macro(
name = "indoc",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=indoc",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "2.0.7",
)

View File

@@ -1,190 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "libloading",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2015",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=libloading",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.8.9",
deps = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:aarch64-apple-ios": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:aarch64-linux-android": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
"@vendor_ts__windows-link-0.2.0//:windows_link", # cfg(windows)
],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:armv7-linux-androideabi": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:i686-apple-darwin": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:i686-linux-android": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [
"@vendor_ts__windows-link-0.2.0//:windows_link", # cfg(windows)
],
"@rules_rust//rust/platform:i686-unknown-freebsd": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:x86_64-apple-darwin": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:x86_64-apple-ios": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:x86_64-linux-android": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
"@vendor_ts__windows-link-0.2.0//:windows_link", # cfg(windows)
],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
"@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix)
],
"//conditions:default": [],
}),
)

View File

@@ -1,100 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "minimal_lexical",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"std",
],
crate_root = "src/lib.rs",
edition = "2018",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=minimal-lexical",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.2.1",
)

View File

@@ -1,105 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "nom",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"alloc",
"std",
],
crate_root = "src/lib.rs",
edition = "2018",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=nom",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "7.1.3",
deps = [
"@vendor_ts__memchr-2.7.5//:memchr",
"@vendor_ts__minimal-lexical-0.2.1//:minimal_lexical",
],
)

View File

@@ -1,97 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "pathdiff",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2018",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=pathdiff",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.2.3",
)

View File

@@ -1,104 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "phf",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"default",
"std",
],
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=phf",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.13.1",
deps = [
"@vendor_ts__phf_shared-0.13.1//:phf_shared",
],
)

View File

@@ -1,101 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "phf_generator",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=phf_generator",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.13.1",
deps = [
"@vendor_ts__fastrand-2.4.1//:fastrand",
"@vendor_ts__phf_shared-0.13.1//:phf_shared",
],
)

View File

@@ -1,104 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "phf_shared",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"default",
"std",
],
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=phf_shared",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.13.1",
deps = [
"@vendor_ts__siphasher-1.0.3//:siphasher",
],
)

View File

@@ -1,171 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load(
"@rules_rust//cargo:defs.bzl",
"cargo_build_script",
"cargo_toml_env_vars",
)
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "prettyplease",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"verbatim",
],
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=prettyplease",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.2.37",
deps = [
"@vendor_ts__prettyplease-0.2.37//:build_script_build",
"@vendor_ts__proc-macro2-1.0.101//:proc_macro2",
"@vendor_ts__syn-2.0.106//:syn",
],
)
cargo_build_script(
name = "_bs",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
"**/*.rs",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"verbatim",
],
crate_name = "build_script_build",
crate_root = "build.rs",
data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
edition = "2021",
links = "prettyplease02",
pkg_name = "prettyplease",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=prettyplease",
"manual",
"noclippy",
"norustfmt",
],
version = "0.2.37",
visibility = ["//visibility:private"],
)
alias(
name = "build_script_build",
actual = ":_bs",
tags = ["manual"],
)

View File

@@ -1,100 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "proc_macro_crate",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=proc-macro-crate",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "3.5.0",
deps = [
"@vendor_ts__toml_edit-0.25.11-spec-1.1.0//:toml_edit",
],
)

View File

@@ -1,101 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "relative_path",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"alloc",
"std",
],
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=relative-path",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "2.0.1",
)

View File

@@ -1,112 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "rquickjs",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"bindgen",
"default",
"loader",
"macro",
"phf",
"rquickjs-macro",
"std",
],
crate_root = "src/lib.rs",
edition = "2021",
proc_macro_deps = [
"@vendor_ts__rquickjs-macro-0.10.0//:rquickjs_macro",
],
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=rquickjs",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.10.0",
deps = [
"@vendor_ts__rquickjs-core-0.10.0//:rquickjs_core",
],
)

View File

@@ -1,110 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "rquickjs_core",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"bindgen",
"loader",
"phf",
"relative-path",
"std",
],
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=rquickjs-core",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.10.0",
deps = [
"@vendor_ts__hashbrown-0.16.1//:hashbrown",
"@vendor_ts__phf-0.13.1//:phf",
"@vendor_ts__relative-path-2.0.1//:relative_path",
"@vendor_ts__rquickjs-sys-0.10.0//:rquickjs_sys",
],
)

View File

@@ -1,116 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_proc_macro")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_proc_macro(
name = "rquickjs_macro",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"bindgen",
"phf",
"phf_generator",
"phf_shared",
],
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=rquickjs-macro",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.10.0",
deps = [
"@vendor_ts__convert_case-0.8.0//:convert_case",
"@vendor_ts__fnv-1.0.7//:fnv",
"@vendor_ts__ident_case-1.0.1//:ident_case",
"@vendor_ts__indexmap-2.14.0//:indexmap",
"@vendor_ts__phf_generator-0.13.1//:phf_generator",
"@vendor_ts__phf_shared-0.13.1//:phf_shared",
"@vendor_ts__proc-macro-crate-3.5.0//:proc_macro_crate",
"@vendor_ts__proc-macro2-1.0.101//:proc_macro2",
"@vendor_ts__quote-1.0.41//:quote",
"@vendor_ts__rquickjs-core-0.10.0//:rquickjs_core",
"@vendor_ts__syn-2.0.106//:syn",
],
)

View File

@@ -1,177 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load(
"@rules_rust//cargo:defs.bzl",
"cargo_build_script",
"cargo_toml_env_vars",
)
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "rquickjs_sys",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"bindgen",
"bindgen-rs",
],
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=rquickjs-sys",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.10.0",
deps = [
"@vendor_ts__rquickjs-sys-0.10.0//:build_script_build",
],
)
cargo_build_script(
name = "_bs",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
aliases = {
"@vendor_ts__bindgen-0.72.1//:bindgen": "bindgen_rs",
},
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
"**/*.rs",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"bindgen",
"bindgen-rs",
],
crate_name = "build_script_build",
crate_root = "build.rs",
data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
edition = "2021",
pkg_name = "rquickjs-sys",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=rquickjs-sys",
"manual",
"noclippy",
"norustfmt",
],
version = "0.10.0",
visibility = ["//visibility:private"],
deps = [
"@vendor_ts__bindgen-0.72.1//:bindgen",
"@vendor_ts__cc-1.2.61//:cc",
],
)
alias(
name = "build_script_build",
actual = ":_bs",
tags = ["manual"],
)

View File

@@ -1,101 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "siphasher",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"default",
"std",
],
crate_root = "src/lib.rs",
edition = "2018",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=siphasher",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "1.0.3",
)

View File

@@ -1,97 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "smallbitvec",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=smallbitvec",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "2.6.1",
)

View File

@@ -1,102 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "toml_datetime",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"alloc",
"default",
"std",
],
crate_root = "src/lib.rs",
edition = "2024",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=toml_datetime",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "1.1.1+spec-1.1.0",
)

View File

@@ -1,106 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "toml_edit",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"parse",
],
crate_root = "src/lib.rs",
edition = "2024",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=toml_edit",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.25.11+spec-1.1.0",
deps = [
"@vendor_ts__indexmap-2.14.0//:indexmap",
"@vendor_ts__toml_datetime-1.1.1-spec-1.1.0//:toml_datetime",
"@vendor_ts__toml_parser-1.1.2-spec-1.1.0//:toml_parser",
"@vendor_ts__winnow-1.0.2//:winnow",
],
)

View File

@@ -37,54 +37,7 @@ rust_library(
crate_features = [
"alloc",
"std",
] + select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [
"default", # aarch64-apple-darwin
],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
"default", # aarch64-pc-windows-msvc
],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
"default", # aarch64-unknown-linux-gnu
],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
"default", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
"default", # arm-unknown-linux-gnueabi
],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [
"default", # i686-pc-windows-msvc
],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [
"default", # i686-unknown-linux-gnu
],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
"default", # powerpc-unknown-linux-gnu
],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [
"default", # riscv64gc-unknown-linux-gnu
],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
"default", # s390x-unknown-linux-gnu
],
"@rules_rust//rust/platform:x86_64-apple-darwin": [
"default", # x86_64-apple-darwin
],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
"default", # x86_64-pc-windows-msvc
],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [
"default", # x86_64-unknown-freebsd
],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
"default", # x86_64-unknown-linux-gnu
],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
"default", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
],
"//conditions:default": [],
}),
],
crate_root = "src/lib.rs",
edition = "2024",
rustc_env_files = [

View File

@@ -1,97 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "topological_sort",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2018",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=topological-sort",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.2.2",
)

View File

@@ -1,124 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "tree_sitter_generate",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_features = [
"default",
"load",
"pathdiff",
"qjs-rt",
"rquickjs",
],
crate_root = "src/generate.rs",
edition = "2021",
proc_macro_deps = [
"@vendor_ts__indoc-2.0.7//:indoc",
],
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=tree-sitter-generate",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "0.26.8",
deps = [
"@vendor_ts__bitflags-2.9.4//:bitflags",
"@vendor_ts__dunce-1.0.5//:dunce",
"@vendor_ts__indexmap-2.14.0//:indexmap",
"@vendor_ts__log-0.4.28//:log",
"@vendor_ts__pathdiff-0.2.3//:pathdiff",
"@vendor_ts__regex-1.11.3//:regex",
"@vendor_ts__regex-syntax-0.8.6//:regex_syntax",
"@vendor_ts__rquickjs-0.10.0//:rquickjs",
"@vendor_ts__rustc-hash-2.1.1//:rustc_hash",
"@vendor_ts__semver-1.0.28//:semver",
"@vendor_ts__serde-1.0.228//:serde",
"@vendor_ts__serde_json-1.0.145//:serde_json",
"@vendor_ts__smallbitvec-2.6.1//:smallbitvec",
"@vendor_ts__thiserror-2.0.18//:thiserror",
"@vendor_ts__topological-sort-0.2.2//:topological_sort",
],
)

View File

@@ -1,97 +0,0 @@
###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors
###############################################################################
load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars")
load("@rules_rust//rust:defs.bzl", "rust_library")
package(default_visibility = ["//visibility:public"])
cargo_toml_env_vars(
name = "cargo_toml_env_vars",
src = "Cargo.toml",
)
rust_library(
name = "unicode_segmentation",
srcs = glob(
include = ["**/*.rs"],
allow_empty = True,
),
compile_data = glob(
include = ["**"],
allow_empty = True,
exclude = [
"**/* *",
".tmp_git_root/**/*",
"BUILD",
"BUILD.bazel",
"WORKSPACE",
"WORKSPACE.bazel",
],
),
crate_root = "src/lib.rs",
edition = "2018",
rustc_env_files = [
":cargo_toml_env_vars",
],
rustc_flags = [
"--cap-lints=allow",
],
tags = [
"cargo-bazel",
"crate-name=unicode-segmentation",
"manual",
"noclippy",
"norustfmt",
],
target_compatible_with = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [],
"@rules_rust//rust/platform:aarch64-apple-ios": [],
"@rules_rust//rust/platform:aarch64-apple-ios-sim": [],
"@rules_rust//rust/platform:aarch64-linux-android": [],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [],
"@rules_rust//rust/platform:aarch64-unknown-fuchsia": [],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [],
"@rules_rust//rust/platform:aarch64-unknown-uefi": [],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:arm-unknown-linux-musleabi": [],
"@rules_rust//rust/platform:armv7-linux-androideabi": [],
"@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [],
"@rules_rust//rust/platform:i686-apple-darwin": [],
"@rules_rust//rust/platform:i686-linux-android": [],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [],
"@rules_rust//rust/platform:i686-unknown-freebsd": [],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [],
"@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [],
"@rules_rust//rust/platform:thumbv7em-none-eabi": [],
"@rules_rust//rust/platform:thumbv8m.main-none-eabi": [],
"@rules_rust//rust/platform:wasm32-unknown-emscripten": [],
"@rules_rust//rust/platform:wasm32-unknown-unknown": [],
"@rules_rust//rust/platform:wasm32-wasip1": [],
"@rules_rust//rust/platform:wasm32-wasip1-threads": [],
"@rules_rust//rust/platform:wasm32-wasip2": [],
"@rules_rust//rust/platform:x86_64-apple-darwin": [],
"@rules_rust//rust/platform:x86_64-apple-ios": [],
"@rules_rust//rust/platform:x86_64-linux-android": [],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [],
"@rules_rust//rust/platform:x86_64-unknown-fuchsia": [],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [],
"@rules_rust//rust/platform:x86_64-unknown-none": [],
"@rules_rust//rust/platform:x86_64-unknown-uefi": [],
"//conditions:default": ["@platforms//:incompatible"],
}),
version = "1.13.2",
)

View File

@@ -34,129 +34,6 @@ rust_library(
"WORKSPACE.bazel",
],
),
crate_features = select({
"@rules_rust//rust/platform:aarch64-apple-darwin": [
"alloc", # aarch64-apple-darwin
"ascii", # aarch64-apple-darwin
"binary", # aarch64-apple-darwin
"default", # aarch64-apple-darwin
"parser", # aarch64-apple-darwin
"std", # aarch64-apple-darwin
],
"@rules_rust//rust/platform:aarch64-pc-windows-msvc": [
"alloc", # aarch64-pc-windows-msvc
"ascii", # aarch64-pc-windows-msvc
"binary", # aarch64-pc-windows-msvc
"default", # aarch64-pc-windows-msvc
"parser", # aarch64-pc-windows-msvc
"std", # aarch64-pc-windows-msvc
],
"@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [
"alloc", # aarch64-unknown-linux-gnu
"ascii", # aarch64-unknown-linux-gnu
"binary", # aarch64-unknown-linux-gnu
"default", # aarch64-unknown-linux-gnu
"parser", # aarch64-unknown-linux-gnu
"std", # aarch64-unknown-linux-gnu
],
"@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [
"alloc", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
"ascii", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
"binary", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
"default", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
"parser", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
"std", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu
],
"@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [
"alloc", # arm-unknown-linux-gnueabi
"ascii", # arm-unknown-linux-gnueabi
"binary", # arm-unknown-linux-gnueabi
"default", # arm-unknown-linux-gnueabi
"parser", # arm-unknown-linux-gnueabi
"std", # arm-unknown-linux-gnueabi
],
"@rules_rust//rust/platform:i686-pc-windows-msvc": [
"alloc", # i686-pc-windows-msvc
"ascii", # i686-pc-windows-msvc
"binary", # i686-pc-windows-msvc
"default", # i686-pc-windows-msvc
"parser", # i686-pc-windows-msvc
"std", # i686-pc-windows-msvc
],
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [
"alloc", # i686-unknown-linux-gnu
"ascii", # i686-unknown-linux-gnu
"binary", # i686-unknown-linux-gnu
"default", # i686-unknown-linux-gnu
"parser", # i686-unknown-linux-gnu
"std", # i686-unknown-linux-gnu
],
"@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [
"alloc", # powerpc-unknown-linux-gnu
"ascii", # powerpc-unknown-linux-gnu
"binary", # powerpc-unknown-linux-gnu
"default", # powerpc-unknown-linux-gnu
"parser", # powerpc-unknown-linux-gnu
"std", # powerpc-unknown-linux-gnu
],
"@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [
"alloc", # riscv64gc-unknown-linux-gnu
"ascii", # riscv64gc-unknown-linux-gnu
"binary", # riscv64gc-unknown-linux-gnu
"default", # riscv64gc-unknown-linux-gnu
"parser", # riscv64gc-unknown-linux-gnu
"std", # riscv64gc-unknown-linux-gnu
],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
"alloc", # s390x-unknown-linux-gnu
"ascii", # s390x-unknown-linux-gnu
"binary", # s390x-unknown-linux-gnu
"default", # s390x-unknown-linux-gnu
"parser", # s390x-unknown-linux-gnu
"std", # s390x-unknown-linux-gnu
],
"@rules_rust//rust/platform:x86_64-apple-darwin": [
"alloc", # x86_64-apple-darwin
"ascii", # x86_64-apple-darwin
"binary", # x86_64-apple-darwin
"default", # x86_64-apple-darwin
"parser", # x86_64-apple-darwin
"std", # x86_64-apple-darwin
],
"@rules_rust//rust/platform:x86_64-pc-windows-msvc": [
"alloc", # x86_64-pc-windows-msvc
"ascii", # x86_64-pc-windows-msvc
"binary", # x86_64-pc-windows-msvc
"default", # x86_64-pc-windows-msvc
"parser", # x86_64-pc-windows-msvc
"std", # x86_64-pc-windows-msvc
],
"@rules_rust//rust/platform:x86_64-unknown-freebsd": [
"alloc", # x86_64-unknown-freebsd
"ascii", # x86_64-unknown-freebsd
"binary", # x86_64-unknown-freebsd
"default", # x86_64-unknown-freebsd
"parser", # x86_64-unknown-freebsd
"std", # x86_64-unknown-freebsd
],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
"alloc", # x86_64-unknown-linux-gnu
"ascii", # x86_64-unknown-linux-gnu
"binary", # x86_64-unknown-linux-gnu
"default", # x86_64-unknown-linux-gnu
"parser", # x86_64-unknown-linux-gnu
"std", # x86_64-unknown-linux-gnu
],
"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [
"alloc", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
"ascii", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
"binary", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
"default", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
"parser", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
"std", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu
],
"//conditions:default": [],
}),
crate_root = "src/lib.rs",
edition = "2021",
rustc_env_files = [

View File

@@ -420,13 +420,6 @@ _NORMAL_DEPENDENCIES = {
"serde_json": Label("@vendor_ts__serde_json-1.0.145//:serde_json"),
"tracing": Label("@vendor_ts__tracing-0.1.41//:tracing"),
"tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.20//:tracing_subscriber"),
"tree-sitter": Label("@vendor_ts__tree-sitter-0.26.8//:tree_sitter"),
"tree-sitter-embedded-template": Label("@vendor_ts__tree-sitter-embedded-template-0.25.0//:tree_sitter_embedded_template"),
},
},
"unified/extractor/tree-sitter-swift": {
_COMMON_CONDITION: {
"tree-sitter-language": Label("@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language"),
},
},
"unified/swift-syntax-rs": {
@@ -475,10 +468,6 @@ _NORMAL_ALIASES = {
_COMMON_CONDITION: {
},
},
"unified/extractor/tree-sitter-swift": {
_COMMON_CONDITION: {
},
},
"unified/swift-syntax-rs": {
_COMMON_CONDITION: {
},
@@ -511,8 +500,6 @@ _NORMAL_DEV_DEPENDENCIES = {
},
"unified/extractor": {
},
"unified/extractor/tree-sitter-swift": {
},
"unified/swift-syntax-rs": {
},
}
@@ -540,8 +527,6 @@ _NORMAL_DEV_ALIASES = {
},
"unified/extractor": {
},
"unified/extractor/tree-sitter-swift": {
},
"unified/swift-syntax-rs": {
},
}
@@ -567,8 +552,6 @@ _PROC_MACRO_DEPENDENCIES = {
},
"unified/extractor": {
},
"unified/extractor/tree-sitter-swift": {
},
"unified/swift-syntax-rs": {
},
}
@@ -594,8 +577,6 @@ _PROC_MACRO_ALIASES = {
},
"unified/extractor": {
},
"unified/extractor/tree-sitter-swift": {
},
"unified/swift-syntax-rs": {
},
}
@@ -621,8 +602,6 @@ _PROC_MACRO_DEV_DEPENDENCIES = {
},
"unified/extractor": {
},
"unified/extractor/tree-sitter-swift": {
},
"unified/swift-syntax-rs": {
},
}
@@ -650,8 +629,6 @@ _PROC_MACRO_DEV_ALIASES = {
},
"unified/extractor": {
},
"unified/extractor/tree-sitter-swift": {
},
"unified/swift-syntax-rs": {
},
}
@@ -677,12 +654,6 @@ _BUILD_DEPENDENCIES = {
},
"unified/extractor": {
},
"unified/extractor/tree-sitter-swift": {
_COMMON_CONDITION: {
"cc": Label("@vendor_ts__cc-1.2.61//:cc"),
"tree-sitter-generate": Label("@vendor_ts__tree-sitter-generate-0.26.8//:tree_sitter_generate"),
},
},
"unified/swift-syntax-rs": {
},
}
@@ -708,10 +679,6 @@ _BUILD_ALIASES = {
},
"unified/extractor": {
},
"unified/extractor/tree-sitter-swift": {
_COMMON_CONDITION: {
},
},
"unified/swift-syntax-rs": {
},
}
@@ -737,8 +704,6 @@ _BUILD_PROC_MACRO_DEPENDENCIES = {
},
"unified/extractor": {
},
"unified/extractor/tree-sitter-swift": {
},
"unified/swift-syntax-rs": {
},
}
@@ -764,8 +729,6 @@ _BUILD_PROC_MACRO_ALIASES = {
},
"unified/extractor": {
},
"unified/extractor/tree-sitter-swift": {
},
"unified/swift-syntax-rs": {
},
}
@@ -1009,16 +972,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.base64-0.22.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__bindgen-0.72.1",
sha256 = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895",
type = "tar.gz",
urls = ["https://static.crates.io/crates/bindgen/0.72.1/download"],
strip_prefix = "bindgen-0.72.1",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.bindgen-0.72.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__bitflags-1.3.2",
@@ -1139,16 +1092,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cc-1.2.61.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__cexpr-0.6.0",
sha256 = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766",
type = "tar.gz",
urls = ["https://static.crates.io/crates/cexpr/0.6.0/download"],
strip_prefix = "cexpr-0.6.0",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cexpr-0.6.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__cfg-if-1.0.3",
@@ -1239,16 +1182,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chrono-0.4.42.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__clang-sys-1.8.1",
sha256 = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4",
type = "tar.gz",
urls = ["https://static.crates.io/crates/clang-sys/1.8.1/download"],
strip_prefix = "clang-sys-1.8.1",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clang-sys-1.8.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__clap-4.5.48",
@@ -1299,16 +1232,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.colorchoice-1.0.4.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__convert_case-0.8.0",
sha256 = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f",
type = "tar.gz",
urls = ["https://static.crates.io/crates/convert_case/0.8.0/download"],
strip_prefix = "convert_case-0.8.0",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.convert_case-0.8.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__core-foundation-sys-0.8.7",
@@ -1599,16 +1522,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.erased-serde-0.4.6.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__fastrand-2.4.1",
sha256 = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6",
type = "tar.gz",
urls = ["https://static.crates.io/crates/fastrand/2.4.1/download"],
strip_prefix = "fastrand-2.4.1",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.fastrand-2.4.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__figment-0.10.19",
@@ -1669,16 +1582,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.foldhash-0.1.5.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__foldhash-0.2.0",
sha256 = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb",
type = "tar.gz",
urls = ["https://static.crates.io/crates/foldhash/0.2.0/download"],
strip_prefix = "foldhash-0.2.0",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.foldhash-0.2.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__form_urlencoded-1.2.2",
@@ -1779,16 +1682,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.hashbrown-0.15.5.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__hashbrown-0.16.1",
sha256 = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100",
type = "tar.gz",
urls = ["https://static.crates.io/crates/hashbrown/0.16.1/download"],
strip_prefix = "hashbrown-0.16.1",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.hashbrown-0.16.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__hashbrown-0.17.1",
@@ -1989,16 +1882,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.indexmap-2.14.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__indoc-2.0.7",
sha256 = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706",
type = "tar.gz",
urls = ["https://static.crates.io/crates/indoc/2.0.7/download"],
strip_prefix = "indoc-2.0.7",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.indoc-2.0.7.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__inlinable_string-0.1.15",
@@ -2159,16 +2042,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.libc-0.2.175.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__libloading-0.8.9",
sha256 = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55",
type = "tar.gz",
urls = ["https://static.crates.io/crates/libloading/0.8.9/download"],
strip_prefix = "libloading-0.8.9",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.libloading-0.8.9.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__line-index-0.1.2",
@@ -2249,16 +2122,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.memoffset-0.9.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__minimal-lexical-0.2.1",
sha256 = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a",
type = "tar.gz",
urls = ["https://static.crates.io/crates/minimal-lexical/0.2.1/download"],
strip_prefix = "minimal-lexical-0.2.1",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.minimal-lexical-0.2.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__miniz_oxide-0.8.9",
@@ -2309,16 +2172,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.nohash-hasher-0.2.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__nom-7.1.3",
sha256 = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a",
type = "tar.gz",
urls = ["https://static.crates.io/crates/nom/7.1.3/download"],
strip_prefix = "nom-7.1.3",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.nom-7.1.3.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__notify-8.2.0",
@@ -2459,16 +2312,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.parking_lot_core-0.9.11.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__pathdiff-0.2.3",
sha256 = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3",
type = "tar.gz",
urls = ["https://static.crates.io/crates/pathdiff/0.2.3/download"],
strip_prefix = "pathdiff-0.2.3",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.pathdiff-0.2.3.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__pear-0.2.9",
@@ -2529,36 +2372,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.petgraph-0.6.5.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__phf-0.13.1",
sha256 = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf",
type = "tar.gz",
urls = ["https://static.crates.io/crates/phf/0.13.1/download"],
strip_prefix = "phf-0.13.1",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.phf-0.13.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__phf_generator-0.13.1",
sha256 = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737",
type = "tar.gz",
urls = ["https://static.crates.io/crates/phf_generator/0.13.1/download"],
strip_prefix = "phf_generator-0.13.1",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.phf_generator-0.13.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__phf_shared-0.13.1",
sha256 = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266",
type = "tar.gz",
urls = ["https://static.crates.io/crates/phf_shared/0.13.1/download"],
strip_prefix = "phf_shared-0.13.1",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.phf_shared-0.13.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__pin-project-lite-0.2.16",
@@ -2619,26 +2432,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ppv-lite86-0.2.21.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__prettyplease-0.2.37",
sha256 = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b",
type = "tar.gz",
urls = ["https://static.crates.io/crates/prettyplease/0.2.37/download"],
strip_prefix = "prettyplease-0.2.37",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.prettyplease-0.2.37.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__proc-macro-crate-3.5.0",
sha256 = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f",
type = "tar.gz",
urls = ["https://static.crates.io/crates/proc-macro-crate/3.5.0/download"],
strip_prefix = "proc-macro-crate-3.5.0",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.proc-macro-crate-3.5.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__proc-macro2-1.0.101",
@@ -3119,16 +2912,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.regex-syntax-0.8.6.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__relative-path-2.0.1",
sha256 = "bca40a312222d8ba74837cb474edef44b37f561da5f773981007a10bbaa992b0",
type = "tar.gz",
urls = ["https://static.crates.io/crates/relative-path/2.0.1/download"],
strip_prefix = "relative-path-2.0.1",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.relative-path-2.0.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__rowan-0.15.15",
@@ -3139,46 +2922,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rowan-0.15.15.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__rquickjs-0.10.0",
sha256 = "a135375fbac5ba723bb6a48f432a72f81539cedde422f0121a86c7c4e96d8e0d",
type = "tar.gz",
urls = ["https://static.crates.io/crates/rquickjs/0.10.0/download"],
strip_prefix = "rquickjs-0.10.0",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rquickjs-0.10.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__rquickjs-core-0.10.0",
sha256 = "bccb7121a123865c8ace4dea42e7ed84d78b90cbaf4ca32c59849d8d210c9672",
type = "tar.gz",
urls = ["https://static.crates.io/crates/rquickjs-core/0.10.0/download"],
strip_prefix = "rquickjs-core-0.10.0",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rquickjs-core-0.10.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__rquickjs-macro-0.10.0",
sha256 = "89f93602cc3112c7f30bf5f29e722784232138692c7df4c52ebbac7e035d900d",
type = "tar.gz",
urls = ["https://static.crates.io/crates/rquickjs-macro/0.10.0/download"],
strip_prefix = "rquickjs-macro-0.10.0",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rquickjs-macro-0.10.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__rquickjs-sys-0.10.0",
sha256 = "57b1b6528590d4d65dc86b5159eae2d0219709546644c66408b2441696d1d725",
type = "tar.gz",
urls = ["https://static.crates.io/crates/rquickjs-sys/0.10.0/download"],
strip_prefix = "rquickjs-sys-0.10.0",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rquickjs-sys-0.10.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__rustc-hash-1.1.0",
@@ -3479,26 +3222,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.shlex-1.3.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__siphasher-1.0.3",
sha256 = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649",
type = "tar.gz",
urls = ["https://static.crates.io/crates/siphasher/1.0.3/download"],
strip_prefix = "siphasher-1.0.3",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.siphasher-1.0.3.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__smallbitvec-2.6.1",
sha256 = "9b0e903ee191d8f7a8fbf0d712c3a1699d19e04ceba5ad1eb673053c7d938a09",
type = "tar.gz",
urls = ["https://static.crates.io/crates/smallbitvec/2.6.1/download"],
strip_prefix = "smallbitvec-2.6.1",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.smallbitvec-2.6.1.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__smallvec-1.15.1",
@@ -3709,16 +3432,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_datetime-0.7.2.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__toml_datetime-1.1.1-spec-1.1.0",
sha256 = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7",
type = "tar.gz",
urls = ["https://static.crates.io/crates/toml_datetime/1.1.1+spec-1.1.0/download"],
strip_prefix = "toml_datetime-1.1.1+spec-1.1.0",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_datetime-1.1.1+spec-1.1.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__toml_edit-0.22.27",
@@ -3729,16 +3442,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_edit-0.22.27.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__toml_edit-0.25.11-spec-1.1.0",
sha256 = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b",
type = "tar.gz",
urls = ["https://static.crates.io/crates/toml_edit/0.25.11+spec-1.1.0/download"],
strip_prefix = "toml_edit-0.25.11+spec-1.1.0",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_edit-0.25.11+spec-1.1.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__toml_parser-1.1.2-spec-1.1.0",
@@ -3769,16 +3472,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_writer-1.0.3.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__topological-sort-0.2.2",
sha256 = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d",
type = "tar.gz",
urls = ["https://static.crates.io/crates/topological-sort/0.2.2/download"],
strip_prefix = "topological-sort-0.2.2",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.topological-sort-0.2.2.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__tracing-0.1.41",
@@ -3859,16 +3552,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tree-sitter-embedded-template-0.25.0.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__tree-sitter-generate-0.26.8",
sha256 = "c3fb2e1bdb1d5f9d23cd5fa68cf98b3bedbd223c92a2edd60bbcf30bcf7180a5",
type = "tar.gz",
urls = ["https://static.crates.io/crates/tree-sitter-generate/0.26.8/download"],
strip_prefix = "tree-sitter-generate-0.26.8",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tree-sitter-generate-0.26.8.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__tree-sitter-json-0.24.8",
@@ -3989,16 +3672,6 @@ def crate_repositories():
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.unicode-properties-0.1.3.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__unicode-segmentation-1.13.2",
sha256 = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c",
type = "tar.gz",
urls = ["https://static.crates.io/crates/unicode-segmentation/1.13.2/download"],
strip_prefix = "unicode-segmentation-1.13.2",
build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.unicode-segmentation-1.13.2.bazel"),
)
maybe(
http_archive,
name = "vendor_ts__unicode-xid-0.2.6",
@@ -4632,7 +4305,6 @@ def crate_repositories():
return [
struct(repo = "vendor_ts__anyhow-1.0.100", is_dev_dep = False),
struct(repo = "vendor_ts__argfile-0.2.1", is_dev_dep = False),
struct(repo = "vendor_ts__cc-1.2.61", is_dev_dep = False),
struct(repo = "vendor_ts__chalk-ir-0.104.0", is_dev_dep = False),
struct(repo = "vendor_ts__chrono-0.4.42", is_dev_dep = False),
struct(repo = "vendor_ts__clap-4.5.48", is_dev_dep = False),
@@ -4679,8 +4351,6 @@ def crate_repositories():
struct(repo = "vendor_ts__tracing-subscriber-0.3.20", is_dev_dep = False),
struct(repo = "vendor_ts__tree-sitter-0.26.8", is_dev_dep = False),
struct(repo = "vendor_ts__tree-sitter-embedded-template-0.25.0", is_dev_dep = False),
struct(repo = "vendor_ts__tree-sitter-generate-0.26.8", is_dev_dep = False),
struct(repo = "vendor_ts__tree-sitter-language-0.1.5", is_dev_dep = False),
struct(repo = "vendor_ts__tree-sitter-python-0.23.6", is_dev_dep = False),
struct(repo = "vendor_ts__tree-sitter-ruby-0.23.1", is_dev_dep = False),
struct(repo = "vendor_ts__triomphe-0.1.14", is_dev_dep = False),

View File

@@ -1,5 +1,16 @@
load("@rules_shell//shell:sh_library.bzl", "sh_library")
# Matches the Linux arm64 target, used to give it a distinct `CODEQL_PLATFORM` string
# (`linux-arm64`). Every other configuration keeps its OS-only string.
config_setting(
name = "linux_arm64",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:arm64",
],
visibility = ["//visibility:public"],
)
sh_library(
name = "sh_runfiles",
srcs = ["runfiles.sh"],

View File

@@ -1,38 +1,88 @@
""" Os detection facilities. """
def codeql_platform_select(
ctx = None,
*,
linux64 = None,
linux_arm64 = None,
osx64 = None,
win64 = None,
otherwise = None):
"""
Choose a value based on the target CodeQL platform, discriminating the four platforms CodeQL
knows about: `linux64` (Linux on x86_64), `linux_arm64` (Linux on arm64), `osx64` (macOS, any
architecture) and `win64` (Windows on x86_64). Any platform left unspecified uses `otherwise`.
There is deliberately no fallback between `linux64` and `linux_arm64`: if you want the same value
for both (i.e. you only care about the OS, not the architecture), use `os_select` instead.
This works both in a macro context (`ctx = None`, returning a `select`) and in a rule context
(passing `ctx`, which then needs `OS_DETECTION_ATTRS` on the rule attributes).
"""
def _or_otherwise(value):
return value if value != None else otherwise
linux_arm64_setting = Label("//misc/bazel:linux_arm64")
choices = {
linux_arm64_setting: _or_otherwise(linux_arm64),
"@platforms//os:linux": _or_otherwise(linux64),
"@platforms//os:macos": _or_otherwise(osx64),
"@platforms//os:windows": _or_otherwise(win64),
}
if not ctx:
return select({
setting: v
for setting, v in choices.items()
if v != None
})
def has(constraint):
return ctx.target_platform_has_constraint(getattr(ctx.attr, "_%s_constraint" % constraint)[platform_common.ConstraintValueInfo])
if has("linux"):
result = choices[linux_arm64_setting] if has("arm64") else choices["@platforms//os:linux"]
elif has("macos"):
result = choices["@platforms//os:macos"]
elif has("windows"):
result = choices["@platforms//os:windows"]
else:
fail("Unknown OS detected")
if result == None:
fail("platform not supported by %s" % ctx.label)
return result
def os_select(
ctx = None,
*,
linux = None,
windows = None,
macos = None,
posix = None,
default = None):
"""
This can work both in a macro and a rule context to choose something based on the current OS.
If used in a rule implementation, you need to pass `ctx` and add `OS_DETECTION_ATTRS` to the
rule attributes.
Choose a value based on the target OS, ignoring the architecture. This is a thin, OS-only wrapper
around `codeql_platform_select` (Linux gets the same value on both x86_64 and arm64).
`posix` is a convenience for the value shared by `linux` and `macos`; it is mutually exclusive
with both. See `codeql_platform_select` for macro vs rule usage.
"""
choices = {
"linux": linux or default,
"windows": windows or default,
"macos": macos or default,
}
if not ctx:
return select({
"@platforms//os:%s" % os: v
for os, v in choices.items()
if v != None
})
for os, v in choices.items():
if ctx.target_platform_has_constraint(getattr(ctx.attr, "_%s_constraint" % os)[platform_common.ConstraintValueInfo]):
if v == None:
fail("%s not supported by %s" % (os, ctx.label))
return v
fail("Unknown OS detected")
if posix != None:
if linux != None or macos != None:
fail("`posix` is mutually exclusive with `linux` and `macos`")
linux = posix
macos = posix
return codeql_platform_select(
ctx,
linux64 = linux,
linux_arm64 = linux,
osx64 = macos,
win64 = windows,
otherwise = default,
)
OS_DETECTION_ATTRS = {
"_windows_constraint": attr.label(default = "@platforms//os:windows"),
"_macos_constraint": attr.label(default = "@platforms//os:macos"),
"_linux_constraint": attr.label(default = "@platforms//os:linux"),
"_arm64_constraint": attr.label(default = "@platforms//cpu:arm64"),
}

View File

@@ -8,7 +8,7 @@ load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_filegroup", "pkg_fil
load("@rules_pkg//pkg:pkg.bzl", "pkg_zip")
load("@rules_pkg//pkg:providers.bzl", "PackageFilegroupInfo", "PackageFilesInfo")
load("@rules_python//python:defs.bzl", "py_binary", "py_test")
load("//misc/bazel:os.bzl", "OS_DETECTION_ATTRS", "os_select")
load("//misc/bazel:os.bzl", "OS_DETECTION_ATTRS", "codeql_platform_select")
def _make_internal(name):
def internal(suffix = "internal", *args):
@@ -26,7 +26,13 @@ def _expand_path(path, platform):
return ("common", path)
def _detect_platform(ctx = None):
return os_select(ctx, linux = "linux64", macos = "osx64", windows = "win64")
return codeql_platform_select(
ctx,
linux64 = "linux64",
linux_arm64 = "linux-arm64",
osx64 = "osx64",
win64 = "win64",
)
def codeql_pkg_files(
*,
@@ -458,12 +464,12 @@ def codeql_pack(
`zips` is a map from `.zip` files to prefixes to import.
The distinction between arch-specific and common contents is made based on whether the paths (including possible
prefixes added by rules) contain the special `{CODEQL_PLATFORM}` placeholder, which in case it is present will also
be replaced by the appropriate platform (`linux64`, `win64` or `osx64`).
be replaced by the appropriate platform (`linux64`, `linux-arm64`, `win64` or `osx64`).
Specific file paths can be placed in the arch-specific package by adding them to `arch_overrides`, even if their
path doesn't contain the `CODEQL_PLATFORM` placeholder.
The codeql pack rules will expand the `{CODEQL_PLATFORM}` marker in paths, and use that to split the files into a common and an arch-specific part.
This placeholder will be replaced by the appropriate platform (`linux64`, `win64` or `osx64`).
This placeholder will be replaced by the appropriate platform (`linux64`, `linux-arm64`, `win64` or `osx64`).
`arch_overrides` is a list of files that should be included in the arch-specific bits of the pack, even if their path doesn't
contain the `{CODEQL_PLATFORM}` marker.
All files in the pack will be prefixed with `name`, unless `pack_prefix` is set, then is used instead.

View File

@@ -20,9 +20,11 @@ predicate localFlowStep(Node nodeFrom, Node nodeTo) {
FlowSummaryImpl::Private::Steps::summaryThroughStepValue(nodeFrom, nodeTo, _)
}
private predicate localFlowStepPlus(Node node1, Node node2) = fastTC(localFlowStep/2)(node1, node2)
/**
* Holds if data flows from `source` to `sink` in zero or more local
* (intra-procedural) steps.
*/
pragma[inline]
predicate localFlow(Node source, Node sink) { localFlowStep*(source, sink) }
predicate localFlow(Node source, Node sink) { source = sink or localFlowStepPlus(source, sink) }

View File

@@ -47,8 +47,35 @@ pub fn query(input: TokenStream) -> TokenStream {
/// `Option<Id>`, iterator chains) splice
/// their elements
/// field: {expr} - extend a named field with `{expr}`'s ids
/// field: (kind ...)? - set the field only if every `#{expr}`
/// beneath it has a value (see below)
/// ```
///
/// # Optional fields
///
/// A `?` on a field's value makes that field fallible: if a `#{expr}`
/// anywhere beneath it interpolates an absent value — an `Option` that is
/// `None` — the subtree is abandoned and the field is left unset. This
/// replaces the surrounding `Option::map` that would otherwise be needed:
///
/// ```text
/// (break_expr label: {lbl.map(|l| tree!((identifier #{l})))}) // before
/// (break_expr label: (identifier #{lbl})?) // after
/// ```
///
/// The value may be nested arbitrarily deeply, and a nested `?` catches
/// first, so an inner absent value need not discard the outer node:
///
/// ```text
/// (parameter pattern: (name_pattern identifier: (identifier #{name}))? type: {ty})
/// ```
///
/// Only `#{expr}` propagates absence. A `{expr}` splice is unaffected, since
/// yielding no ids already leaves a field unset, and `?` is rejected on one.
/// Outside a `?`, interpolating an `Option` with `#{expr}` remains a compile
/// error, so the choice between "unset the field" and "unwrap it" stays
/// explicit.
///
/// Can be called with an explicit context or using the implicit context
/// from an enclosing `rule!`:
///

View File

@@ -1,10 +1,44 @@
use proc_macro2::{Delimiter, Ident, Literal, Span, TokenStream, TokenTree};
use quote::quote;
use std::iter::Peekable;
use std::sync::atomic::{AtomicUsize, Ordering};
use syn::Lifetime;
type Tokens = Peekable<proc_macro2::token_stream::IntoIter>;
type Result<T> = std::result::Result<T, syn::Error>;
/// Mints the block label a fallible field breaks out of. Labels must be unique
/// along a nesting chain, since a `?` nested inside another `?` has to break out
/// of the inner field only.
fn fresh_fallible_label() -> Lifetime {
static COUNTER: AtomicUsize = AtomicUsize::new(0);
let n = COUNTER.fetch_add(1, Ordering::Relaxed);
Lifetime::new(&format!("'__yeast_field_{n}"), Span::call_site())
}
/// Rejects a `?` in a position where there is no field for it to leave unset.
///
/// The advice depends on what precedes it: on a `{...}` splice a `?` is
/// redundant, and anywhere else it belongs on a field's value. Other
/// quantifiers need no handling — `*` and `+` have never been valid in a
/// template, and the existing check for stray tokens already rejects them.
fn reject_stray_optional(tokens: &mut Tokens, after_splice: bool) -> Result<()> {
let Some(TokenTree::Punct(p)) = tokens.peek() else {
return Ok(());
};
if p.as_char() != '?' {
return Ok(());
}
let msg = if after_splice {
"`?` is not valid on a `{...}` splice; a splice that yields no value \
already leaves its field unset"
} else {
"`?` is only valid on the value of a named field, as in \
`label: (identifier #{lbl})?`"
};
Err(syn::Error::new_spanned(p.clone(), msg))
}
// ---------------------------------------------------------------------------
// Query parsing
// ---------------------------------------------------------------------------
@@ -318,8 +352,9 @@ pub fn parse_tree_top(input: TokenStream) -> Result<TokenStream> {
let mut tokens = input.into_iter().peekable();
let ctx = parse_ctx_or_implicit(&mut tokens);
let first = parse_direct_node(&mut tokens, &ctx)?;
let first = parse_direct_node(&mut tokens, &ctx, None)?;
reject_stray_optional(&mut tokens, false)?;
if let Some(tok) = tokens.next() {
return Err(syn::Error::new_spanned(
tok,
@@ -352,7 +387,15 @@ pub fn parse_trees_top(input: TokenStream) -> Result<TokenStream> {
/// Parse a single node template and generate code that returns an `Id`.
/// Handles: `(kind fields... children...)` and `{expr}`.
fn parse_direct_node(tokens: &mut Tokens, ctx: &Ident) -> Result<TokenStream> {
///
/// `scope` is the enclosing fallible field's label, if any: inside one, a
/// `#{expr}` that interpolates an absent value breaks out to it, leaving that
/// field unset. See [`parse_direct_node_inner`].
fn parse_direct_node(
tokens: &mut Tokens,
ctx: &Ident,
scope: Option<&Lifetime>,
) -> Result<TokenStream> {
match tokens.peek() {
Some(TokenTree::Group(g)) if g.delimiter() == Delimiter::Brace => {
let group = expect_group(tokens, Delimiter::Brace)?;
@@ -362,7 +405,7 @@ fn parse_direct_node(tokens: &mut Tokens, ctx: &Ident) -> Result<TokenStream> {
Some(TokenTree::Group(g)) if g.delimiter() == Delimiter::Parenthesis => {
let group = expect_group(tokens, Delimiter::Parenthesis)?;
let mut inner = group.stream().into_iter().peekable();
parse_direct_node_inner(&mut inner, ctx)
parse_direct_node_inner(&mut inner, ctx, scope)
}
Some(tok) => Err(syn::Error::new_spanned(
tok.clone(),
@@ -377,7 +420,11 @@ fn parse_direct_node(tokens: &mut Tokens, ctx: &Ident) -> Result<TokenStream> {
/// Parse the inside of a parenthesized node: `kind fields... children...`
/// or `kind "literal"` or `kind $fresh`.
fn parse_direct_node_inner(tokens: &mut Tokens, ctx: &Ident) -> Result<TokenStream> {
fn parse_direct_node_inner(
tokens: &mut Tokens,
ctx: &Ident,
scope: Option<&Lifetime>,
) -> Result<TokenStream> {
let kind = expect_ident(tokens, "expected node kind")?;
let kind_str = kind.to_string();
@@ -392,6 +439,28 @@ fn parse_direct_node_inner(tokens: &mut Tokens, ctx: &Ident) -> Result<TokenStre
tokens.next(); // consume #
let group = expect_group(tokens, Delimiter::Brace)?;
let expr = group.stream();
// Inside a fallible field the value is routed through `MaybeYeastValue`,
// so an absent one abandons the whole surrounding node and leaves the
// field unset. Outside one, `YeastDisplay` is used directly, which is
// what makes interpolating an `Option` without a `?` a compile error.
if let Some(label) = scope {
return Ok(quote! {
{
let __expr = { #expr };
let ::std::option::Option::Some(__value_ref) =
yeast::MaybeYeastValue::maybe_yeast_value(&__expr)
else {
break #label ::std::option::Option::None;
};
let __value = yeast::YeastDisplay::yeast_to_string(__value_ref, &*#ctx.ast);
let __source_range =
yeast::YeastSourceRange::yeast_source_range(__value_ref, &*#ctx.ast);
#ctx.literal_with_source_range(#kind_str, &__value, __source_range)
}
});
}
return Ok(quote! {
{
let __expr = { #expr };
@@ -433,6 +502,7 @@ fn parse_direct_node_inner(tokens: &mut Tokens, ctx: &Ident) -> Result<TokenStre
// Plain `field: {expr}` — trait-dispatched extend.
if peek_is_group(tokens, Delimiter::Brace) {
let group = expect_group(tokens, Delimiter::Brace)?;
reject_stray_optional(tokens, true)?;
let expr = group.stream();
stmts.push(quote! {
let mut #temp: Vec<yeast::Id> = Vec::new();
@@ -446,7 +516,47 @@ fn parse_direct_node_inner(tokens: &mut Tokens, ctx: &Ident) -> Result<TokenStre
continue;
}
let value = parse_direct_node(tokens, ctx)?;
// `field: (node)`, optionally suffixed with `?` to make the field
// fallible: if a `#{expr}` anywhere beneath it interpolates an absent
// value, the whole subtree is abandoned and the field is left unset.
if peek_is_group(tokens, Delimiter::Parenthesis) {
let group = expect_group(tokens, Delimiter::Parenthesis)?;
let optional = peek_is_punct(tokens, '?');
if optional {
tokens.next();
}
let mut inner = group.stream().into_iter().peekable();
if optional {
let label = fresh_fallible_label();
let value = parse_direct_node_inner(&mut inner, ctx, Some(&label))?;
// The label goes unused when nothing beneath the `?` can
// actually fail, which is not worth diagnosing: whether a given
// `#{expr}` is optional is a property of its type, which is not
// visible here.
stmts.push(quote! {
#[allow(unused_labels)]
let #temp: ::std::option::Option<yeast::Id> = #label: {
::std::option::Option::Some(#value)
};
});
field_args.push(quote! {
if let ::std::option::Option::Some(__id) = #temp {
__fields.push((#field_str, vec![__id]));
}
});
} else {
// No `?` of its own, so failures beneath it belong to whichever
// fallible field encloses this one, if any.
let value = parse_direct_node_inner(&mut inner, ctx, scope)?;
stmts.push(quote! { let #temp: yeast::Id = #value; });
field_args.push(quote! { __fields.push((#field_str, vec![#temp])); });
}
continue;
}
// Neither form matched; delegate for a consistent error message.
let value = parse_direct_node(tokens, ctx, scope)?;
stmts.push(quote! { let #temp: yeast::Id = #value; });
field_args.push(quote! { __fields.push((#field_str, vec![#temp])); });
}
@@ -486,7 +596,8 @@ fn parse_direct_list(tokens: &mut Tokens, ctx: &Ident) -> Result<Vec<TokenStream
}
// Regular node
let node = parse_direct_node_inner(&mut inner, ctx)?;
let node = parse_direct_node_inner(&mut inner, ctx, None)?;
reject_stray_optional(tokens, false)?;
items.push(quote! { __nodes.push(#node); });
continue;
}
@@ -495,6 +606,7 @@ fn parse_direct_list(tokens: &mut Tokens, ctx: &Ident) -> Result<Vec<TokenStream
// single ids and iterables uniformly.
if peek_is_group(tokens, Delimiter::Brace) {
let group = expect_group(tokens, Delimiter::Brace)?;
reject_stray_optional(tokens, true)?;
let expr = group.stream();
items.push(quote! {
yeast::IntoFieldIds::extend_into({ #expr }, &mut __nodes);
@@ -967,6 +1079,10 @@ fn peek_is_group(tokens: &mut Tokens, delim: Delimiter) -> bool {
matches!(tokens.peek(), Some(TokenTree::Group(g)) if g.delimiter() == delim)
}
fn peek_is_punct(tokens: &mut Tokens, ch: char) -> bool {
matches!(tokens.peek(), Some(TokenTree::Punct(p)) if p.as_char() == ch)
}
fn peek_is_repetition(tokens: &mut Tokens) -> bool {
matches!(tokens.peek(), Some(TokenTree::Punct(p)) if matches!(p.as_char(), '*' | '+' | '?'))
}

View File

@@ -235,6 +235,48 @@ yeast::trees!(ctx,
(identifier #{name}) // an identifier from a Rust variable
```
### Optional fields (`?`)
A `?` on a field's value makes that field fallible. If a `#{expr}` anywhere
beneath it interpolates an absent value — an `Option` that is `None` — the
subtree is abandoned and the field is left unset:
```rust
rule!((breakStmt label: _? @@lbl) => (break_expr label: (identifier #{lbl})?))
```
Here an optional capture is being wrapped in a leaf, which without `?` needs
an `Option::map` to build the leaf only in the `Some` case:
```rust
// Equivalent, but the intent is buried in the closure:
(break_expr label: {lbl.map(|l| tree!((identifier #{l})))})
```
The marker mirrors the query language, where a quantifier likewise follows the
value it applies to (`label: _? @@lbl`). Note that the schema puts it on the
other side of the colon — `external_name?: identifier` — because it is
*declaring* a field's cardinality rather than supplying a value for it.
Absence propagates outwards through as many levels as necessary, and a nested
`?` catches first, so an inner absent value need not discard the outer node:
```rust
// If `name` is absent, `pattern` is left unset — but `type` is still set.
(parameter pattern: (name_pattern identifier: (identifier #{name}))? type: {ty})
```
Only `#{expr}` propagates absence, because it supplies a node's *content*: with
no value there is no leaf to build. A `{expr}` splice supplies *children*, where
yielding nothing already leaves the field unset (see below), so `?` is rejected
on one. Repetition has no marker at all, in templates or elsewhere: how many
children a `{expr}` contributes is a property of the expression rather than of
the syntax.
Outside a `?`, interpolating an `Option` with `#{expr}` remains a compile error.
That is deliberate: it keeps the choice between "leave the field unset" and
"unwrap it" explicit at every interpolation.
### Fresh identifiers
`(kind $name)` creates a leaf node with an auto-generated unique name. All
@@ -279,6 +321,11 @@ yeast::trees!(ctx,
)
```
Because an `Option<Id>` splices as zero or one id, `field: {opt}` already
leaves the field unset when `opt` is `None`. Use [`?`](#optional-fields-)
instead when the optional value has to be *wrapped* in a node first, so that
there is nothing to wrap when it is absent.
The contents of `{…}` are treated as a Rust block, so multi-statement
expressions (with `let` bindings) work too:

View File

@@ -117,6 +117,11 @@ where
/// All standard primitive and string types implement [`YeastDisplay`] via
/// the [`impl_yeast_display_via_display`] macro below. Coherence prevents a
/// blanket `impl<T: Display>`, so additional types must be added explicitly.
#[diagnostic::on_unimplemented(
message = "`{Self}` cannot be interpolated with `#{{...}}`",
note = "if the value is optional, mark the enclosing field's value with `?` to leave \
that field unset when it is absent, as in `label: (identifier #{{lbl}})?`"
)]
pub trait YeastDisplay {
fn yeast_to_string(&self, ast: &Ast) -> String;
}
@@ -183,6 +188,81 @@ impl<T: YeastSourceRange + ?Sized> YeastSourceRange for &T {
}
}
/// Normalizes a `#{expr}` interpolation to an optional value, so that a
/// fallible field — `field: (kind #{expr})?` — can tell "there is a value to
/// interpolate" apart from "there is none, so leave the field unset".
///
/// Implemented for every [`YeastDisplay`] type, which always yields a value,
/// and for `Option` of the same, which yields one only when it is `Some`.
///
/// The implementations are enumerated rather than blanket: a blanket
/// `impl<T: YeastDisplay>` would overlap with the `Option<T>` impl, since
/// coherence cannot rule out a future `impl YeastDisplay for Option<T>`.
/// [`YeastDisplay`] itself is enumerated for the same reason.
///
/// Note that this is used *only* inside a fallible field. Elsewhere `#{expr}`
/// still goes directly through [`YeastDisplay`], so interpolating an `Option`
/// without a `?` remains a compile error rather than silently dropping a node.
pub trait MaybeYeastValue {
/// The interpolated value's type, which knows how to render itself.
type Value: YeastDisplay + YeastSourceRange + ?Sized;
/// Returns the value to interpolate, or `None` to leave the field unset.
fn maybe_yeast_value(&self) -> Option<&Self::Value>;
}
macro_rules! impl_maybe_yeast_value {
($($t:ty),* $(,)?) => {
$(
impl MaybeYeastValue for $t {
type Value = $t;
fn maybe_yeast_value(&self) -> Option<&$t> {
Some(self)
}
}
impl MaybeYeastValue for Option<$t> {
type Value = $t;
fn maybe_yeast_value(&self) -> Option<&$t> {
self.as_ref()
}
}
)*
};
}
impl_maybe_yeast_value! {
Id,
i8, i16, i32, i64, i128, isize,
u8, u16, u32, u64, u128, usize,
f32, f64,
bool, char,
String,
}
// `str` is unsized, so it has no `Option<str>` counterpart; `Option<&str>` is
// covered by the reference impls below.
impl MaybeYeastValue for str {
type Value = str;
fn maybe_yeast_value(&self) -> Option<&str> {
Some(self)
}
}
impl<T: MaybeYeastValue + ?Sized> MaybeYeastValue for &T {
type Value = T::Value;
fn maybe_yeast_value(&self) -> Option<&T::Value> {
(**self).maybe_yeast_value()
}
}
impl<T: MaybeYeastValue + ?Sized> MaybeYeastValue for Option<&T> {
type Value = T::Value;
fn maybe_yeast_value(&self) -> Option<&T::Value> {
(*self).and_then(MaybeYeastValue::maybe_yeast_value)
}
}
#[derive(Debug)]
pub struct AstCursor<'a> {
ast: &'a Ast,

View File

@@ -674,6 +674,117 @@ fn test_tree_builder() {
);
}
/// Builds `(assignment left: … right: (integer #{value})?)`, where a `None`
/// `value` leaves `right` unset rather than producing an `integer` with no
/// content.
fn build_optional_right(ast: &mut Ast, value: Option<yeast::Id>) -> (yeast::Id, yeast::Id) {
let captures = yeast::captures::Captures::new();
let fresh = yeast::tree_builder::FreshScope::new();
let mut user_ctx = ();
let mut ctx = yeast::build::BuildCtx::new(ast, &captures, &fresh, &mut user_ctx);
let left = yeast::tree!(ctx, (identifier "x"));
let root = yeast::tree!(ctx,
(assignment
left: {left}
right: (integer #{value})?
)
);
(root, left)
}
#[test]
fn test_optional_field_is_set_when_the_value_is_present() {
let runner: Runner = Runner::new(tree_sitter_ruby::LANGUAGE.into(), &[]);
let mut ast = runner.run("x = 1").unwrap();
// Any node will do as the interpolated value; `#{…}` renders its source text.
let mut cursor = AstCursor::new(&ast);
cursor.goto_first_child();
let some = cursor.node_id();
let (root, _) = build_optional_right(&mut ast, Some(some));
assert_dump_eq(
&dump_ast(&ast, root, "x = 1"),
r#"
assignment
left: identifier "x"
right: integer "x = 1"
"#,
);
}
#[test]
fn test_optional_field_is_unset_when_the_value_is_absent() {
let runner: Runner = Runner::new(tree_sitter_ruby::LANGUAGE.into(), &[]);
let mut ast = runner.run("x = 1").unwrap();
let (root, _) = build_optional_right(&mut ast, None);
assert_dump_eq(
&dump_ast(&ast, root, "x = 1"),
r#"
assignment
left: identifier "x"
"#,
);
}
#[test]
fn test_optional_field_propagates_through_nested_nodes() {
let runner: Runner = Runner::new(tree_sitter_ruby::LANGUAGE.into(), &[]);
let mut ast = runner.run("x = 1").unwrap();
let captures = yeast::captures::Captures::new();
let fresh = yeast::tree_builder::FreshScope::new();
let mut user_ctx = ();
let mut ctx = yeast::build::BuildCtx::new(&mut ast, &captures, &fresh, &mut user_ctx);
// The absent value sits two levels below the `?`, so the whole
// `left_assignment_list` subtree is abandoned along with it.
let absent: Option<yeast::Id> = None;
let right = yeast::tree!(ctx, (integer "1"));
let root = yeast::tree!(ctx,
(assignment
left: (left_assignment_list child: (identifier #{absent}))?
right: {right}
)
);
assert_dump_eq(
&dump_ast(&ast, root, "x = 1"),
r#"
assignment
right: integer "1"
"#,
);
}
#[test]
fn test_innermost_optional_field_catches_first() {
let runner: Runner = Runner::new(tree_sitter_ruby::LANGUAGE.into(), &[]);
let mut ast = runner.run("x = 1").unwrap();
let captures = yeast::captures::Captures::new();
let fresh = yeast::tree_builder::FreshScope::new();
let mut user_ctx = ();
let mut ctx = yeast::build::BuildCtx::new(&mut ast, &captures, &fresh, &mut user_ctx);
// The inner `?` catches, so only `child` is dropped; `left` survives.
let absent: Option<yeast::Id> = None;
let root = yeast::tree!(ctx,
(assignment
left: (left_assignment_list child: (identifier #{absent})?)?
)
);
assert_dump_eq(
&dump_ast(&ast, root, "x = 1"),
r#"
assignment
left: left_assignment_list
"#,
);
}
// ---- Rule tests ----
// These rules use field names from node-types.yml, which extends the

View File

@@ -1,6 +1,5 @@
#include "swift/extractor/mangler/SwiftMangler.h"
#include "swift/extractor/infra/SwiftDispatcher.h"
#include "swift/extractor/trap/generated/decl/TrapClasses.h"
#include "swift/logging/SwiftLogging.h"
#include <swift/AST/Module.h>
@@ -170,15 +169,12 @@ void SwiftMangler::indexExtensionsAndFilePrivateValues(llvm::ArrayRef<swift::Dec
}
}
void SwiftMangler::indexClangExtensionsAndFilePrivateValues(
uint32_t SwiftMangler::indexClangSubmoduleExtensionsAndFilePrivateValues(
const clang::Module* clangModule,
swift::ClangModuleLoader* moduleLoader) {
if (!moduleLoader) {
return;
}
auto index = 0u;
swift::ClangModuleLoader* moduleLoader,
uint32_t index) {
for (const auto& submodule : clangModule->submodules()) {
index = indexClangSubmoduleExtensionsAndFilePrivateValues(submodule, moduleLoader, index);
if (auto* swiftSubmodule = moduleLoader->getWrapperForModule(submodule)) {
llvm::SmallVector<swift::Decl*> children;
swiftSubmodule->getTopLevelDecls(children);
@@ -191,6 +187,17 @@ void SwiftMangler::indexClangExtensionsAndFilePrivateValues(
}
}
}
return index;
}
void SwiftMangler::indexClangExtensionsAndFilePrivateValues(
const clang::Module* clangModule,
swift::ClangModuleLoader* moduleLoader) {
if (!moduleLoader) {
return;
}
indexClangSubmoduleExtensionsAndFilePrivateValues(clangModule, moduleLoader, 0u);
}
SwiftMangledName SwiftMangler::visitGenericTypeParamDecl(const swift::GenericTypeParamDecl* decl) {

View File

@@ -126,6 +126,9 @@ class SwiftMangler : private swift::TypeVisitor<SwiftMangler, SwiftMangledName>,
bool isExtensionOrFilePrivateValue(const swift::Decl* decl);
void indexExtensionsAndFilePrivateValues(llvm::ArrayRef<swift::Decl*> siblings);
uint32_t indexClangSubmoduleExtensionsAndFilePrivateValues(const clang::Module* clangModule,
swift::ClangModuleLoader* moduleLoader,
uint32_t index);
void indexClangExtensionsAndFilePrivateValues(const clang::Module* clangModule,
swift::ClangModuleLoader* moduleLoader);
ExtensionOrFilePrivateValueIndex getExtensionOrFilePrivateValueIndex(const swift::Decl* decl,

View File

@@ -1,23 +1,32 @@
# Agent instructions
This is a CodeQL extractor based on tree-sitter.
This is a CodeQL extractor that maps a language's parse tree onto a shared AST
using the `yeast` desugaring engine. Swift, the only language so far, is parsed
by Apple's swift-syntax rather than by tree-sitter.
## Building
- To build the extractor, run `scripts/create-extractor-pack.sh`
## Swift Parser
- The Swift parser is defined by `extractor/tree-sitter-swift/grammar.js` and can be edited if needed.
- Swift source is parsed by `swift-syntax-parse`, a small Swift/Rust binary in
`swift-syntax-rs` that wraps Apple's swift-syntax and emits the parse tree as
JSON. There is no grammar in this repository to edit.
- After editing the grammar, always run `scripts/regenerate-grammar.sh`.
- `extractor/src/languages/swift/adapter.rs` converts that JSON into a yeast AST.
- The raw parse tree is described by `extractor/tree-sitter-swift/node-types.yml` and should be reviewed after grammar changes.
- The raw parse tree's shape is described by `extractor/swift_node_types.yml`,
which is maintained by hand.
## AST Mapping
- The target AST shape is described by `extractor/ast_types.yml`.
- The mapping from the parse tree to the target AST is found in `extractor/src/languages/swift/swift.rs`
- To run tests for the parser and mapping, run `cargo test` in the `extractor` directory.
- To run tests for the parser and mapping, run `cargo test` in the `extractor`
directory. The tests need the `swift-syntax-parse` binary: point
`CODEQL_EXTRACTOR_UNIFIED_SWIFT_SYNTAX_PARSE` at it, or put it on `PATH`.
Corpus tests skip themselves when it cannot be found, so check for skips
before concluding a change is clean.
- Extractor test cases are located at `extractor/tests/corpus/swift/*/*.swift`.

View File

@@ -20,6 +20,5 @@ codeql_rust_binary(
) + [
"//shared/tree-sitter-extractor",
"//shared/yeast",
"//unified/extractor/tree-sitter-swift",
],
)

View File

@@ -7,9 +7,6 @@ edition = "2024"
# When updating these dependencies, run `misc/bazel/3rdparty/update_cargo_deps.sh`
[dependencies]
tree-sitter = ">= 0.23.0"
tree-sitter-embedded-template = "0.25.0"
tree-sitter-swift = { path = "tree-sitter-swift" }
clap = { version = "4.5", features = ["derive"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3.20", features = ["env-filter"] }

View File

@@ -49,6 +49,7 @@ supertypes:
- tuple_pattern
- constructor_pattern
- or_pattern
- conditional_pattern
- ignore_pattern
- expr_equality_pattern
- bulk_importing_pattern
@@ -56,9 +57,6 @@ supertypes:
# A statement is anything that can appear in a block.
# This type contains all of 'expr' and has partial overlap with 'member'.
# For example, type_alias_declaration can appear either as a stmt or member.
# constructor_declaration and destructor_declaration appear here because
# tree-sitter-swift's error recovery for #if/#endif in class bodies can place
# init/deinit declarations at the wrong (statement) level.
stmt:
- expr
- variable_declaration
@@ -369,7 +367,6 @@ named:
catch_clause:
modifier*: modifier
pattern?: pattern
guard?: expr
body: block
# `switch value { case pattern: body case ...: default: body }`
@@ -381,11 +378,9 @@ named:
# A single `case ...:` (or `default:`) entry in a switch.
# An entry with multiple `case p1, p2:` patterns uses an `or_pattern`.
# A `default:` entry has no pattern.
# An optional `guard` corresponds to a `where`-clause on the case.
switch_case:
modifier*: modifier
pattern?: pattern
guard?: expr
body: block
# Evaluate 'expr' and match its result against 'pattern', and return true if it matches.
@@ -446,6 +441,14 @@ named:
modifier*: modifier
pattern*: pattern
# A pattern that matches against a nested pattern, and subsequently checks a condition.
# The match is rejected if the condition does not hold.
# Variables bound in the nested pattern are in scope within the condition.
conditional_pattern:
modifier*: modifier
condition: expr
pattern: pattern
# A pattern with an optional associated name.
pattern_element:
modifier*: modifier

View File

@@ -17,9 +17,8 @@
//! * Collection nodes are already elided to JSON arrays upstream, so a
//! list-valued field maps directly to that field holding several children.
//!
//! Note: this preserves swift-syntax's own kind/field names. Aligning those
//! names with the tree-sitter-swift schema (so the rewrite rules in
//! [`super::swift`] fire) is done incrementally in the rules.
//! Note: this preserves swift-syntax's own kind/field names; the rewrite rules
//! in [`super::swift`] match those names directly.
use std::collections::BTreeMap;

View File

@@ -77,8 +77,8 @@ fn chained_modifier(ctx: &mut yeast::build::BuildCtx<'_, SwiftContext>) -> Optio
/// Combine a list of boolean sub-conditions into a single expression by
/// left-folding with the infix `&&` operator. Used by control-flow
/// rules (`if`, `guard`, `while`, `repeat-while`) whose tree-sitter
/// nodes carry one or more comma-separated conditions that the target
/// rules (`if`, `guard`, `while`, `repeat-while`), which carry one or
/// more comma-separated conditions that the target
/// AST represents as a single `condition:` field. Panics on an empty
/// input because every caller's grammar guarantees at least one
/// condition.
@@ -94,6 +94,19 @@ fn and_chain(
.expect("control-flow statement must have at least one condition")
}
/// Return the only pattern unchanged when there is exactly one, otherwise
/// wrap the list in an `or_pattern`.
fn make_or_pattern(
ctx: &mut yeast::build::BuildCtx<'_, SwiftContext>,
items: Vec<yeast::Id>,
) -> yeast::Id {
if items.len() == 1 {
items[0]
} else {
tree!((or_pattern pattern: {items}))
}
}
/// Translate a multi-part identifier (for example `Foo.Bar.Baz`) into a
/// `member_access_expr` chain rooted at a `name_expr` over the first
/// part. Panics on an empty input because the grammar's `_+` quantifier
@@ -144,7 +157,7 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
// ---- Literals ----
// swift-syntax does not distinguish the lexical integer/string forms
// (hex/binary/octal, single- vs multi-line, raw): each is a single
// `*LiteralExpr` kind, so the tree-sitter variants collapse to one rule.
// `*LiteralExpr` kind, so one rule per literal type suffices.
rule!((integerLiteralExpr) => (int_literal)),
rule!((floatLiteralExpr) => (float_literal)),
rule!((booleanLiteralExpr) => (boolean_literal)),
@@ -169,8 +182,8 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
rule!((declReferenceExpr baseName: @name) => (name_expr identifier: (identifier #{name}))),
// A discard `_` used as an expression — e.g. the target of a discarding
// assignment `_ = x`. swift-syntax models it as a `discardAssignmentExpr`;
// the tree-sitter path treated the bare `_` as a name, so map it to a
// `name_expr` too.
// the target AST has no expression-level discard (only `ignore_pattern`,
// which is a pattern), so it becomes a `name_expr` over the `_` token.
rule!((discardAssignmentExpr wildcard: @@w) => (name_expr identifier: (identifier #{w}))),
// ---- Operators ----
// The parser front-end folds operator chains into nested
@@ -205,6 +218,28 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
=>
(assign_expr target: {l} value: {r})
),
// In an unresolved `sequenceExpr` (below) the operator positions are not
// only `binaryOperatorExpr`s: a plain assignment (`=`), an `as`/`is` cast
// and the ternary `?:` can also appear unfolded. Map each to an
// `infix_operator` (keeping its spelling) so the sequence stays a clean
// alternation of operands and operators instead of dropping the operator
// to an opaque `unsupported_node`. These bare nodes only occur inside an
// unresolved sequence — folded forms are handled by the dedicated rules
// above (assignment) and below (`ternaryExpr`).
rule!((assignmentExpr) @op => (infix_operator #{op})),
rule!((unresolvedAsExpr) @op => (infix_operator #{op})),
rule!((unresolvedIsExpr) @op => (infix_operator #{op})),
// The ternary is a three-part operator (`? thenExpr :`) that *wraps* a
// nested expression. Splice it into `?`, the then-expression, `:` so the
// then-expression survives as a real (traversable) operand rather than
// being buried in an opaque token.
rule!(
(unresolvedTernaryExpr questionMark: @@q thenExpression: @then colon: @@c)
=>
expr_or_operator* {
vec![tree!((infix_operator #{q})), then, tree!((infix_operator #{c}))]
}
),
// Escape hatch: an operator chain the front-end could not resolve
// (because it uses an operator of unknown precedence, e.g. imported from
// another module) stays a flat `sequenceExpr`. Preserve it as an
@@ -244,10 +279,9 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
accessor_kind: (accessor_kind "get")
body: (block stmt: {body}))
),
// A property with an explicit accessor block. The two shapes differ only
// by the presence of an initializer (tree-sitter split them into distinct
// `willset_didset_block` vs computed-accessor node types; swift-syntax
// makes both plain `accessorDecl`s):
// A property with an explicit accessor block. swift-syntax makes both
// shapes plain `accessorDecl`s, so they are told apart by the presence
// of an initializer:
//
// * With an initializer (`var x: T = e { willSet {…} didSet {…} }`) it is
// a *stored* property with observers: emit the backing
@@ -391,15 +425,15 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
rule!(
(enumCaseParameter firstName: _? @@name type: @ty)
=>
(parameter pattern: {name.map(|name| tree!((name_pattern identifier: (identifier #{name}))))} type: {ty})
(parameter pattern: (name_pattern identifier: (identifier #{name}))? type: {ty})
),
// An enum element with associated values (`case circle(radius: Double)`)
// becomes a nested `class_like_declaration` whose constructor carries the
// payload parameters; an element with a raw value (`case a = 1`) or a
// plain element (`case north`) becomes a `variable_declaration`. All
// carry the shared case modifiers / chained tag from `ctx` (set by the
// `enumCaseDecl` rule below) and are tagged `enum_case` (after any
// `chained_declaration` tag, matching the tree-sitter modifier order).
// `enumCaseDecl` rule below) and are tagged `enum_case`, after any
// `chained_declaration` tag.
rule!(
(enumCaseElement name: @name parameterClause: (enumCaseParameterClause parameters: _* @params))
=>
@@ -432,8 +466,8 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
// Enum cases. A single `case` declaration may carry modifiers
// (e.g. `indirect`) and list several comma-separated elements; each
// becomes its own declaration carrying those shared modifiers, and
// non-first ones are tagged `chained_declaration` (mirroring the
// tree-sitter `enum_entry` rule). The modifiers are published into `ctx`
// non-first ones are tagged `chained_declaration`. The modifiers are
// published into `ctx`
// for the element rules above, which build the actual declaration.
rule!(
(enumCaseDecl modifiers: _* @mods elements: _* @@cases)
@@ -487,9 +521,9 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
// key; unlabelled elements have no key.
rule!((tuplePattern elements: _* @els) => (tuple_pattern element: {els})),
rule!(
(tuplePatternElement label: _? @label pattern: @p)
(tuplePatternElement label: _? @@label pattern: @p)
=>
(pattern_element key: {label.map(|l| tree!((identifier #{l})))} pattern: {p})
(pattern_element key: (identifier #{label})? pattern: {p})
),
// A type-casting pattern (`case is T`). Not yet supported, so it is
// mapped to `unsupported_node` — an explicit reminder that this needs
@@ -530,7 +564,7 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
// A function declaration (parameters/return type/body optional). The
// parameters and return type nest under `signature`; the body is a
// `codeBlock`. A bodyless function (a protocol requirement) still emits
// an empty `block`, matching the tree-sitter path.
// an empty `block`.
rule!(
(functionDecl
name: @name
@@ -560,17 +594,13 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
),
// A function parameter. With two names (`firstName`+`secondName`) the
// first is the external argument label and the second the internal name;
// with one name it is just the internal name. The default value is
// optional.
//
// PARITY: the declared type is intentionally dropped. In the tree-sitter
// path the untyped-parameter rule was ordered before the typed one and
// shadowed it (first match wins), so the baseline emits no parameter
// type; emitting one here would diverge from it.
// with one name it is just the internal name. The declared type is
// emitted; the default value is optional.
rule!(
(functionParameter
firstName: @@first
secondName: _? @@second
type: @ty
defaultValue: (initializerClause value: @val)?)
=>
parameter {
@@ -581,6 +611,7 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
tree!((parameter
external_name: {external}
pattern: (name_pattern identifier: (identifier #{name}))
type: {ty}
default: {val}))
}
),
@@ -608,26 +639,25 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
// The pattern-only shapes (`patternExpr`, `discardAssignmentExpr`) are
// matched first; they never occur as ordinary call arguments.
rule!(
(labeledExpr label: _? @lbl expression: (patternExpr pattern: @p))
(labeledExpr label: _? @@lbl expression: (patternExpr pattern: @p))
=>
(pattern_element key: {lbl.map(|l| tree!((identifier #{l})))} pattern: {p})
(pattern_element key: (identifier #{lbl})? pattern: {p})
),
rule!(
(labeledExpr label: _? @lbl expression: (discardAssignmentExpr) @@wildcard)
(labeledExpr label: _? @@lbl expression: (discardAssignmentExpr) @@wildcard)
=>
(pattern_element key: {lbl.map(|l| tree!((identifier #{l})))} pattern: (ignore_pattern #{wildcard}))
(pattern_element key: (identifier #{lbl})? pattern: (ignore_pattern #{wildcard}))
),
rule!(
(labeledExpr label: _? @lbl expression: @val)
(labeledExpr label: _? @@lbl expression: @val)
=>
argument {
let key = lbl.map(|l| tree!((identifier #{l})));
if ctx.in_pattern {
tree!((pattern_element
key: {key}
key: (identifier #{lbl})?
pattern: (expr_equality_pattern expr: {val})))
} else {
tree!((argument name: {key} value: {val}))
tree!((argument name: (identifier #{lbl})? value: {val}))
}
}
),
@@ -649,8 +679,8 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
// value; `break` / `continue` an optional target label; `throw` its
// thrown expression.
rule!((returnStmt expression: _? @val) => (return_expr value: {val})),
rule!((breakStmt label: _? @@lbl) => (break_expr label: {lbl.map(|l| tree!((identifier #{l})))})),
rule!((continueStmt label: _? @@lbl) => (continue_expr label: {lbl.map(|l| tree!((identifier #{l})))})),
rule!((breakStmt label: _? @@lbl) => (break_expr label: (identifier #{lbl})?)),
rule!((continueStmt label: _? @@lbl) => (continue_expr label: (identifier #{lbl})?)),
rule!((throwStmt expression: @val) => (throw_expr value: {val})),
// ---- Closures ----
// A closure (`{ (x: Int) -> Int in … }`) becomes a `function_expr`. The
@@ -686,7 +716,7 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
initializer: (initializerClause value: @val)?)
=>
(variable_declaration
modifier: {spec.map(|s| tree!((modifier #{s})))}
modifier: (modifier #{spec})?
pattern: (name_pattern identifier: (identifier #{name}))
value: {val})
),
@@ -726,8 +756,7 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
condition: {and_chain(&mut ctx, cond)}
else: {else_stmts})
),
// Ternary (`c ? a : b`) desugars to an `if_expr`, as in the tree-sitter
// path.
// Ternary (`c ? a : b`) desugars to an `if_expr`.
rule!(
(ternaryExpr condition: @cond thenExpression: @then_val elseExpression: @else_val)
=>
@@ -746,22 +775,17 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
rule!(
(switchCase label: (switchCaseLabel caseItems: _* @items) statements: _* @body)
=>
switch_case {
let pattern = if items.len() == 1 {
items[0]
} else {
tree!((or_pattern pattern: {items}))
};
tree!((switch_case pattern: {pattern} body: (block stmt: {body})))
}
(switch_case
pattern: {make_or_pattern(&mut ctx, items)}
body: (block stmt: {body}))
),
rule!(
(switchCase label: (switchDefaultLabel) statements: _* @body)
=>
(switch_case body: (block stmt: {body}))
),
// A single case item unwraps to its pattern (used as an `or_pattern`
// element).
// A single case item unwraps to its pattern, possibly boxed in conditional_pattern
rule!((switchCaseItem pattern: @p whereClause: (whereClause condition: @cond)) => (conditional_pattern pattern: { p } condition: {cond})),
rule!((switchCaseItem pattern: @p) => pattern { p }),
// A pattern-matching condition (`if case let x = e`, `if case .foo(let x)
// = e`) becomes a `pattern_guard_expr`: the matched pattern and the
@@ -772,8 +796,8 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
(pattern_guard_expr pattern: {pat} value: {val})
),
// Optional binding (`if let x = foo`, or shorthand `if let x`) desugars
// to a `pattern_guard_expr` matching `Optional.some(x)`, exactly as the
// tree-sitter path does. The initialized form is matched first.
// to a `pattern_guard_expr` matching `Optional.some(x)`. The initialized
// form is matched first.
rule!(
(optionalBindingCondition
pattern: (identifierPattern identifier: @name)
@@ -848,10 +872,12 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
),
rule!((arrayElement expression: @e) => expr { e }),
// A dictionary literal (`["a": 1]`) is kept as an opaque `map_literal`
// leaf (its source span), matching the tree-sitter path.
// leaf (its source span).
rule!((dictionaryExpr) => (map_literal)),
// A subscript access (`xs[0]`) is modelled as a call, exactly as the
// tree-sitter grammar does (it parses `xs[0]` like `xs(0)`).
// A subscript access (`xs[0]`) is modelled as a call. swift-syntax does
// report a distinct `subscriptCallExpr`, so giving
// subscripts their own shape needs only a `subscript_expr` node in
// ast_types.yml and a remap here.
rule!(
(subscriptCallExpr calledExpression: @callee arguments: _* @args)
=>
@@ -877,17 +903,24 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
body: {body}
catch_clause: {catches})
),
// Catch block with bound identifier; optional where-clause guard.
rule!(
(catchItem pattern: @pattern whereClause: (whereClause condition: @guard))
=>
(conditional_pattern pattern: {pattern} condition: {guard})
),
rule!(
(catchItem pattern: @pattern)
=>
pattern {pattern}
),
// Catch block with one or more patterns (which have been translated by the catchItem rules)
rule!(
(catchClause
catchItems: (catchItem
pattern: @pattern
whereClause: (whereClause condition: @guard)?)
catchItems: _+ @patterns
body: @body)
=>
(catch_clause
pattern: {pattern}
guard: {guard}
pattern: {make_or_pattern(&mut ctx, patterns)}
body: {body})
),
// Catch block without error binding
@@ -901,9 +934,8 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
rule!((isExpr expression: @val type: @ty) => (type_test_expr expr: {val} operator: (infix_operator "is") type: {ty})),
// Await expression → unary_expr with operator "await"
rule!((awaitExpr expression: @val) => (unary_expr operator: (prefix_operator "await") operand: {val})),
// Force-unwrap (`x!`) → postfix unary_expr. swift-syntax has a dedicated
// `forceUnwrapExpr` node (the tree-sitter path used the generic postfix
// operator rule instead).
// Force-unwrap (`x!`) → postfix unary_expr, via swift-syntax's dedicated
// `forceUnwrapExpr` node.
rule!((forceUnwrapExpr expression: @e) => (unary_expr operator: (postfix_operator "!") operand: {e})),
// ---- Imports ----
// An import declaration. The dotted path (a list of
@@ -930,7 +962,7 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
None => tree!((bulk_importing_pattern)),
};
tree!((import_declaration
modifier: {kind.map(|k| tree!((modifier #{k})))}
modifier: (modifier #{kind})?
modifier: {attrs}
modifier: {mods}
pattern: {pattern}
@@ -947,20 +979,25 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
// an ordinary `declReferenceExpr`, already mapped to a `name_expr`.)
rule!((superExpr) => (super_expr)),
// Type expressions. A generic type applied with explicit arguments
// (`Set<Int>`) is represented opaquely, using the whole source text as
// the name (PARITY(tree-sitter): the generic arguments are not
// structured `type_argument`s). Matched before the plain `identifierType`
// rule, which would otherwise drop the arguments.
// (`Set<Int>`) becomes a `generic_type_expr` whose `base` is the type
// name and whose `type_argument`s are the (structured) arguments — the
// same shape the sugared `?`/`[]`/`[:]` types desugar to. Matched before
// the plain `identifierType` rule, which would otherwise drop the
// arguments.
rule!(
(identifierType genericArgumentClause: (genericArgumentClause)) @@ty
(identifierType
name: @@name
genericArgumentClause: (genericArgumentClause arguments: (genericArgument argument: @args)*))
=>
(named_type_expr name: (identifier #{ty}))
(generic_type_expr
base: (named_type_expr name: (identifier #{name}))
type_argument: {args})
),
// A named type (`Int`). `identifierType.name` is the type-name token.
rule!((identifierType name: @@n) => (named_type_expr name: (identifier #{n}))),
// A qualified type (`Outer.Inner`, `NSString.CompareOptions`). swift-syntax
// nests these as `memberType` nodes; like the old tree-sitter `user_type`
// rule, we keep the whole dotted path as the opaque `named_type_expr` name.
// nests these as `memberType` nodes; we keep the whole dotted path as the
// opaque `named_type_expr` name.
rule!((memberType) @ty => (named_type_expr name: (identifier #{ty}))),
// Sugared types desugar to `generic_type_expr`: `T?` -> Optional<T>,
// `[T]` -> Array<T>, `[K: V]` -> Dictionary<K, V>.
@@ -1014,11 +1051,10 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
(tupleTypeElement firstName: _? @@name type: @ty)
=>
tuple_type_element {
let name = name.map(|n| tree!((identifier #{n})));
if ctx.in_function_type {
tree!((parameter external_name: {name} type: {ty}))
tree!((parameter external_name: (identifier #{name})? type: {ty}))
} else {
tree!((tuple_type_element name: {name} type: {ty}))
tree!((tuple_type_element name: (identifier #{name})? type: {ty}))
}
}
),
@@ -1026,81 +1062,107 @@ fn translation_rules() -> Vec<Rule<SwiftContext>> {
// (swift-syntax represents `#selector`/`#keyPath` and other macro
// expansions uniformly as a `macroExpansionExpr`).
rule!((macroExpansionExpr) => (unsupported_node)),
// PARITY(tree-sitter): a nominal type's `inheritanceClause` (`: Base,
// Proto`) is not emitted as a `base_type` — the tree-sitter path drops
// it (no corpus target has a `base_type`). swift-syntax exposes it
// cleanly, so emitting `base_type` is a correctness improvement to make
// once tree-sitter is retired. Each declaration keyword gets its own
// rule; the bodies are identical but for the keyword.
// A nominal type's `inheritanceClause` (`: Base, Proto`) becomes a list
// of `base_type`s, one per inherited type. Each declaration keyword
// gets its own rule; the bodies are identical but for the keyword.
// Class declaration with body containing members
rule!(
(classDecl classKeyword: @kind modifiers: _* @mods name: @name memberBlock: (memberBlock members: _* @members))
(classDecl
classKeyword: @kind
modifiers: _* @mods
name: @name
inheritanceClause: (inheritanceClause inheritedTypes: (inheritedType type: @bases)*)?
memberBlock: (memberBlock members: _* @members))
=>
(class_like_declaration
modifier: (modifier #{kind})
modifier: {mods}
name: (identifier #{name})
base_type: {bases.into_iter().map(|ty| tree!((base_type type: {ty})))}
member: {members})
),
// Enum class declaration: same as a regular class but with an enum body.
rule!(
(enumDecl enumKeyword: @kind modifiers: _* @mods name: @name memberBlock: (memberBlock members: _* @members))
(enumDecl
enumKeyword: @kind
modifiers: _* @mods
name: @name
inheritanceClause: (inheritanceClause inheritedTypes: (inheritedType type: @bases)*)?
memberBlock: (memberBlock members: _* @members))
=>
(class_like_declaration
modifier: (modifier #{kind})
modifier: {mods}
name: (identifier #{name})
base_type: {bases.into_iter().map(|ty| tree!((base_type type: {ty})))}
member: {members})
),
// A `struct` declaration.
rule!(
(structDecl structKeyword: @kind modifiers: _* @mods name: @name memberBlock: (memberBlock members: _* @members))
(structDecl
structKeyword: @kind
modifiers: _* @mods
name: @name
inheritanceClause: (inheritanceClause inheritedTypes: (inheritedType type: @bases)*)?
memberBlock: (memberBlock members: _* @members))
=>
(class_like_declaration
modifier: (modifier #{kind})
modifier: {mods}
name: (identifier #{name})
base_type: {bases.into_iter().map(|ty| tree!((base_type type: {ty})))}
member: {members})
),
// Protocol declaration
rule!(
(protocolDecl protocolKeyword: @kind modifiers: _* @mods name: @name memberBlock: (memberBlock members: _* @members))
(protocolDecl
protocolKeyword: @kind
modifiers: _* @mods
name: @name
inheritanceClause: (inheritanceClause inheritedTypes: (inheritedType type: @bases)*)?
memberBlock: (memberBlock members: _* @members))
=>
(class_like_declaration
modifier: (modifier #{kind})
modifier: {mods}
name: (identifier #{name})
base_type: {bases.into_iter().map(|ty| tree!((base_type type: {ty})))}
member: {members})
),
// An `extension Foo { … }` is likewise a `class_like_declaration`, named
// by the extended type. The extended type is captured opaquely (as its
// source text) so that qualified names (`extension String.Interpolation`,
// a `memberType`) name the declaration just like simple ones, matching the
// old tree-sitter `user_type` behaviour.
// a `memberType`) name the declaration just like simple ones.
rule!(
(extensionDecl extensionKeyword: @kind modifiers: _* @mods extendedType: @@name memberBlock: (memberBlock members: _* @members))
(extensionDecl
extensionKeyword: @kind
modifiers: _* @mods
extendedType: @@name
inheritanceClause: (inheritanceClause inheritedTypes: (inheritedType type: @bases)*)?
memberBlock: (memberBlock members: _* @members))
=>
(class_like_declaration
modifier: (modifier #{kind})
modifier: {mods}
name: (identifier #{name})
base_type: {bases.into_iter().map(|ty| tree!((base_type type: {ty})))}
member: {members})
),
// A member of a type declaration unwraps to the contained declaration.
rule!((memberBlockItem decl: _* @d) => member* { d }),
// Init declaration → constructor_declaration. Body statements optional;
// body itself is also optional (protocol requirement).
//
// PARITY(tree-sitter): the parameters are not emitted, because the
// tree-sitter path dropped them (its `(parameter)*` capture missed the
// field-attached parameters). Emitting them is a future improvement.
// body itself is also optional (protocol requirement). The parameters
// nest under `signature` (as for `functionDecl`).
rule!(
(initializerDecl
modifiers: _* @mods
signature: (functionSignature
parameterClause: (functionParameterClause parameters: _* @params))
body: (codeBlock statements: _* @body_stmts)?)
=>
(constructor_declaration
modifier: {mods}
parameter: {params}
body: (block stmt: {body_stmts}))
),
// Deinit declaration → destructor_declaration. Body statements optional.

View File

@@ -66,8 +66,13 @@ top_level
name_pattern
identifier: identifier "s"
type:
named_type_expr
name: identifier "Set<Int>"
generic_type_expr
base:
named_type_expr
name: identifier "Set"
type_argument:
named_type_expr
name: identifier "Int"
value:
array_literal
element:

View File

@@ -1,6 +1,6 @@
// TODO: tree-sitter-swift parses `xs[0]` as a call_expression (same shape
// as `xs(0)`), so the mapping currently produces a call_expr. Update the
// parser / add a separate subscript_expr node and remap when fixed.
// TODO: `xs[0]` is mapped to a call_expr, even though swift-syntax reports a
// distinct subscriptCallExpr. Giving subscripts their own shape needs only a
// subscript_expr node in ast_types.yml and a remap.
let first = xs[0]
---

View File

@@ -1,4 +1,4 @@
// TODO: tree-sitter-swift parses `xs[0]` as a call_expression (same shape
// as `xs(0)`), so the mapping currently produces a call_expr. Update the
// parser / add a separate subscript_expr node and remap when fixed.
// TODO: `xs[0]` is mapped to a call_expr, even though swift-syntax reports a
// distinct subscriptCallExpr. Giving subscripts their own shape needs only a
// subscript_expr node in ast_types.yml and a remap.
let first = xs[0]

View File

@@ -0,0 +1,94 @@
func withCleanup() {
defer { print("cleanup") }
print("work")
}
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
functionDecl
attributes:
body:
codeBlock
leftBrace: {
rightBrace: }
statements:
codeBlockItem
item:
deferStmt
body:
codeBlock
leftBrace: {
rightBrace: }
statements:
codeBlockItem
item:
functionCallExpr
leftParen: (
rightParen: )
arguments:
labeledExpr
expression:
stringLiteralExpr
closingQuote: "
openingQuote: "
segments:
stringSegment
content: stringSegment "cleanup"
additionalTrailingClosures:
calledExpression:
declReferenceExpr
baseName: identifier "print"
deferKeyword: defer
codeBlockItem
item:
functionCallExpr
leftParen: (
rightParen: )
arguments:
labeledExpr
expression:
stringLiteralExpr
closingQuote: "
openingQuote: "
segments:
stringSegment
content: stringSegment "work"
additionalTrailingClosures:
calledExpression:
declReferenceExpr
baseName: identifier "print"
name: identifier "withCleanup"
modifiers:
signature:
functionSignature
parameterClause:
functionParameterClause
leftParen: (
rightParen: )
parameters:
funcKeyword: func
---
top_level
body:
block
stmt:
function_declaration
name: identifier "withCleanup"
body:
block
stmt:
unsupported_node "defer { print(\"cleanup\") }"
call_expr
callee:
name_expr
identifier: identifier "print"
argument:
argument
value: string_literal "\"work\""

View File

@@ -0,0 +1,4 @@
func withCleanup() {
defer { print("cleanup") }
print("work")
}

View File

@@ -0,0 +1,81 @@
struct Resource: ~Copyable {
consuming func close() {
discard self
}
}
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
structDecl
attributes:
name: identifier "Resource"
inheritanceClause:
inheritanceClause
colon: :
inheritedTypes:
inheritedType
type:
suppressedType
type:
identifierType
name: identifier "Copyable"
withoutTilde: prefixOperator "~"
memberBlock:
memberBlock
leftBrace: {
rightBrace: }
members:
memberBlockItem
decl:
functionDecl
attributes:
body:
codeBlock
leftBrace: {
rightBrace: }
statements:
codeBlockItem
item:
discardStmt
expression:
declReferenceExpr
baseName: self
discardKeyword: discard
name: identifier "close"
modifiers:
declModifier
name: consuming
signature:
functionSignature
parameterClause:
functionParameterClause
leftParen: (
rightParen: )
parameters:
funcKeyword: func
modifiers:
structKeyword: struct
---
top_level
body:
block
stmt:
class_like_declaration
modifier: modifier "struct"
name: identifier "Resource"
base_type:
base_type
type: unsupported_node "~Copyable"
member:
function_declaration
name: identifier "close"
body:
block
stmt: unsupported_node "discard self"

View File

@@ -0,0 +1,5 @@
struct Resource: ~Copyable {
consuming func close() {
discard self
}
}

View File

@@ -0,0 +1,118 @@
func classify(_ x: Int) {
switch x {
case 1:
fallthrough
default:
break
}
}
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
functionDecl
attributes:
body:
codeBlock
leftBrace: {
rightBrace: }
statements:
codeBlockItem
item:
expressionStmt
expression:
switchExpr
leftBrace: {
rightBrace: }
cases:
switchCase
label:
switchCaseLabel
colon: :
caseKeyword: case
caseItems:
switchCaseItem
pattern:
expressionPattern
expression:
integerLiteralExpr
literal: integerLiteral "1"
statements:
codeBlockItem
item:
fallThroughStmt
fallthroughKeyword: fallthrough
switchCase
label:
switchDefaultLabel
colon: :
defaultKeyword: default
statements:
codeBlockItem
item:
breakStmt
breakKeyword: break
subject:
declReferenceExpr
baseName: identifier "x"
switchKeyword: switch
name: identifier "classify"
modifiers:
signature:
functionSignature
parameterClause:
functionParameterClause
leftParen: (
rightParen: )
parameters:
functionParameter
colon: :
attributes:
modifiers:
type:
identifierType
name: identifier "Int"
firstName: _
secondName: identifier "x"
funcKeyword: func
---
top_level
body:
block
stmt:
function_declaration
name: identifier "classify"
parameter:
parameter
external_name: identifier "_"
type:
named_type_expr
name: identifier "Int"
pattern:
name_pattern
identifier: identifier "x"
body:
block
stmt:
switch_expr
value:
name_expr
identifier: identifier "x"
case:
switch_case
pattern:
expr_equality_pattern
expr: int_literal "1"
body:
block
stmt: unsupported_node "fallthrough"
switch_case
body:
block
stmt: break_expr "break"

View File

@@ -0,0 +1,8 @@
func classify(_ x: Int) {
switch x {
case 1:
fallthrough
default:
break
}
}

View File

@@ -0,0 +1,222 @@
switch n {
case let x where x > 0:
print("positive")
case let y where y < 0, 0:
print("non-positive")
default:
print("other")
}
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
expressionStmt
expression:
switchExpr
leftBrace: {
rightBrace: }
cases:
switchCase
label:
switchCaseLabel
colon: :
caseKeyword: case
caseItems:
switchCaseItem
pattern:
valueBindingPattern
pattern:
identifierPattern
identifier: identifier "x"
bindingSpecifier: let
whereClause:
whereClause
condition:
infixOperatorExpr
operator:
binaryOperatorExpr
operator: binaryOperator ">"
leftOperand:
declReferenceExpr
baseName: identifier "x"
rightOperand:
integerLiteralExpr
literal: integerLiteral "0"
whereKeyword: where
statements:
codeBlockItem
item:
functionCallExpr
leftParen: (
rightParen: )
arguments:
labeledExpr
expression:
stringLiteralExpr
closingQuote: "
openingQuote: "
segments:
stringSegment
content: stringSegment "positive"
additionalTrailingClosures:
calledExpression:
declReferenceExpr
baseName: identifier "print"
switchCase
label:
switchCaseLabel
colon: :
caseKeyword: case
caseItems:
switchCaseItem
trailingComma: ,
pattern:
valueBindingPattern
pattern:
identifierPattern
identifier: identifier "y"
bindingSpecifier: let
whereClause:
whereClause
condition:
infixOperatorExpr
operator:
binaryOperatorExpr
operator: binaryOperator "<"
leftOperand:
declReferenceExpr
baseName: identifier "y"
rightOperand:
integerLiteralExpr
literal: integerLiteral "0"
whereKeyword: where
switchCaseItem
pattern:
expressionPattern
expression:
integerLiteralExpr
literal: integerLiteral "0"
statements:
codeBlockItem
item:
functionCallExpr
leftParen: (
rightParen: )
arguments:
labeledExpr
expression:
stringLiteralExpr
closingQuote: "
openingQuote: "
segments:
stringSegment
content: stringSegment "non-positive"
additionalTrailingClosures:
calledExpression:
declReferenceExpr
baseName: identifier "print"
switchCase
label:
switchDefaultLabel
colon: :
defaultKeyword: default
statements:
codeBlockItem
item:
functionCallExpr
leftParen: (
rightParen: )
arguments:
labeledExpr
expression:
stringLiteralExpr
closingQuote: "
openingQuote: "
segments:
stringSegment
content: stringSegment "other"
additionalTrailingClosures:
calledExpression:
declReferenceExpr
baseName: identifier "print"
subject:
declReferenceExpr
baseName: identifier "n"
switchKeyword: switch
---
top_level
body:
block
stmt:
switch_expr
value:
name_expr
identifier: identifier "n"
case:
switch_case
pattern:
conditional_pattern
condition:
binary_expr
left:
name_expr
identifier: identifier "x"
operator: infix_operator ">"
right: int_literal "0"
pattern:
name_pattern
identifier: identifier "x"
body:
block
stmt:
call_expr
callee:
name_expr
identifier: identifier "print"
argument:
argument
value: string_literal "\"positive\""
switch_case
pattern:
or_pattern
pattern:
conditional_pattern
condition:
binary_expr
left:
name_expr
identifier: identifier "y"
operator: infix_operator "<"
right: int_literal "0"
pattern:
name_pattern
identifier: identifier "y"
expr_equality_pattern
expr: int_literal "0"
body:
block
stmt:
call_expr
callee:
name_expr
identifier: identifier "print"
argument:
argument
value: string_literal "\"non-positive\""
switch_case
body:
block
stmt:
call_expr
callee:
name_expr
identifier: identifier "print"
argument:
argument
value: string_literal "\"other\""

View File

@@ -0,0 +1,8 @@
switch n {
case let x where x > 0:
print("positive")
case let y where y < 0, 0:
print("non-positive")
default:
print("other")
}

View File

@@ -0,0 +1,85 @@
let original = [1, 2, 3]
let consumed = consume original
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
variableDecl
attributes:
modifiers:
bindingSpecifier: let
bindings:
patternBinding
initializer:
initializerClause
equal: =
value:
arrayExpr
elements:
arrayElement
expression:
integerLiteralExpr
literal: integerLiteral "1"
trailingComma: ,
arrayElement
expression:
integerLiteralExpr
literal: integerLiteral "2"
trailingComma: ,
arrayElement
expression:
integerLiteralExpr
literal: integerLiteral "3"
leftSquare: [
rightSquare: ]
pattern:
identifierPattern
identifier: identifier "original"
codeBlockItem
item:
variableDecl
attributes:
modifiers:
bindingSpecifier: let
bindings:
patternBinding
initializer:
initializerClause
equal: =
value:
consumeExpr
expression:
declReferenceExpr
baseName: identifier "original"
consumeKeyword: consume
pattern:
identifierPattern
identifier: identifier "consumed"
---
top_level
body:
block
stmt:
variable_declaration
modifier: modifier "let"
pattern:
name_pattern
identifier: identifier "original"
value:
array_literal
element:
int_literal "1"
int_literal "2"
int_literal "3"
variable_declaration
modifier: modifier "let"
pattern:
name_pattern
identifier: identifier "consumed"
value: unsupported_node "consume original"

View File

@@ -0,0 +1,2 @@
let original = [1, 2, 3]
let consumed = consume original

View File

@@ -0,0 +1,85 @@
let original = [1, 2, 3]
let copied = copy original
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
variableDecl
attributes:
modifiers:
bindingSpecifier: let
bindings:
patternBinding
initializer:
initializerClause
equal: =
value:
arrayExpr
elements:
arrayElement
expression:
integerLiteralExpr
literal: integerLiteral "1"
trailingComma: ,
arrayElement
expression:
integerLiteralExpr
literal: integerLiteral "2"
trailingComma: ,
arrayElement
expression:
integerLiteralExpr
literal: integerLiteral "3"
leftSquare: [
rightSquare: ]
pattern:
identifierPattern
identifier: identifier "original"
codeBlockItem
item:
variableDecl
attributes:
modifiers:
bindingSpecifier: let
bindings:
patternBinding
initializer:
initializerClause
equal: =
value:
copyExpr
expression:
declReferenceExpr
baseName: identifier "original"
copyKeyword: copy
pattern:
identifierPattern
identifier: identifier "copied"
---
top_level
body:
block
stmt:
variable_declaration
modifier: modifier "let"
pattern:
name_pattern
identifier: identifier "original"
value:
array_literal
element:
int_literal "1"
int_literal "2"
int_literal "3"
variable_declaration
modifier: modifier "let"
pattern:
name_pattern
identifier: identifier "copied"
value: unsupported_node "copy original"

View File

@@ -0,0 +1,2 @@
let original = [1, 2, 3]
let copied = copy original

View File

@@ -0,0 +1,56 @@
let numbers = Array<Int>()
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
variableDecl
attributes:
modifiers:
bindingSpecifier: let
bindings:
patternBinding
initializer:
initializerClause
equal: =
value:
functionCallExpr
leftParen: (
rightParen: )
arguments:
additionalTrailingClosures:
calledExpression:
genericSpecializationExpr
expression:
declReferenceExpr
baseName: identifier "Array"
genericArgumentClause:
genericArgumentClause
arguments:
genericArgument
argument:
identifierType
name: identifier "Int"
leftAngle: <
rightAngle: >
pattern:
identifierPattern
identifier: identifier "numbers"
---
top_level
body:
block
stmt:
variable_declaration
modifier: modifier "let"
pattern:
name_pattern
identifier: identifier "numbers"
value:
call_expr
callee: unsupported_node "Array<Int>"

View File

@@ -0,0 +1 @@
let numbers = Array<Int>()

View File

@@ -0,0 +1,48 @@
let keyPath = \String.count
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
variableDecl
attributes:
modifiers:
bindingSpecifier: let
bindings:
patternBinding
initializer:
initializerClause
equal: =
value:
keyPathExpr
backslash: \
components:
keyPathComponent
period: .
component:
keyPathPropertyComponent
declName:
declReferenceExpr
baseName: identifier "count"
root:
identifierType
name: identifier "String"
pattern:
identifierPattern
identifier: identifier "keyPath"
---
top_level
body:
block
stmt:
variable_declaration
modifier: modifier "let"
pattern:
name_pattern
identifier: identifier "keyPath"
value: unsupported_node "\\String.count"

View File

@@ -0,0 +1 @@
let keyPath = \String.count

View File

@@ -0,0 +1,51 @@
func doWork() {}
unsafe doWork()
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
functionDecl
attributes:
body:
codeBlock
leftBrace: {
rightBrace: }
statements:
name: identifier "doWork"
modifiers:
signature:
functionSignature
parameterClause:
functionParameterClause
leftParen: (
rightParen: )
parameters:
funcKeyword: func
codeBlockItem
item:
unsafeExpr
expression:
functionCallExpr
leftParen: (
rightParen: )
arguments:
additionalTrailingClosures:
calledExpression:
declReferenceExpr
baseName: identifier "doWork"
unsafeKeyword: unsafe
---
top_level
body:
block
stmt:
function_declaration
name: identifier "doWork"
body: block "func doWork() {}"
unsupported_node "unsafe doWork()"

View File

@@ -0,0 +1,2 @@
func doWork() {}
unsafe doWork()

View File

@@ -0,0 +1,96 @@
var a = 1
var b = 2
swap(&a, &b)
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
variableDecl
attributes:
modifiers:
bindingSpecifier: var
bindings:
patternBinding
initializer:
initializerClause
equal: =
value:
integerLiteralExpr
literal: integerLiteral "1"
pattern:
identifierPattern
identifier: identifier "a"
codeBlockItem
item:
variableDecl
attributes:
modifiers:
bindingSpecifier: var
bindings:
patternBinding
initializer:
initializerClause
equal: =
value:
integerLiteralExpr
literal: integerLiteral "2"
pattern:
identifierPattern
identifier: identifier "b"
codeBlockItem
item:
functionCallExpr
leftParen: (
rightParen: )
arguments:
labeledExpr
expression:
inOutExpr
expression:
declReferenceExpr
baseName: identifier "a"
ampersand: &
trailingComma: ,
labeledExpr
expression:
inOutExpr
expression:
declReferenceExpr
baseName: identifier "b"
ampersand: &
additionalTrailingClosures:
calledExpression:
declReferenceExpr
baseName: identifier "swap"
---
top_level
body:
block
stmt:
variable_declaration
modifier: modifier "var"
pattern:
name_pattern
identifier: identifier "a"
value: int_literal "1"
variable_declaration
modifier: modifier "var"
pattern:
name_pattern
identifier: identifier "b"
value: int_literal "2"
call_expr
callee:
name_expr
identifier: identifier "swap"
argument:
argument
value: unsupported_node "&a"
argument
value: unsupported_node "&b"

View File

@@ -0,0 +1,3 @@
var a = 1
var b = 2
swap(&a, &b)

View File

@@ -69,6 +69,9 @@ top_level
name: identifier "greet"
parameter:
parameter
type:
named_type_expr
name: identifier "String"
pattern:
name_pattern
identifier: identifier "name"

View File

@@ -0,0 +1,81 @@
func increment(_ x: inout Int) {
x += 1
}
---
sourceFile
endOfFileToken: endOfFile
statements:
codeBlockItem
item:
functionDecl
attributes:
body:
codeBlock
leftBrace: {
rightBrace: }
statements:
codeBlockItem
item:
infixOperatorExpr
operator:
binaryOperatorExpr
operator: binaryOperator "+="
leftOperand:
declReferenceExpr
baseName: identifier "x"
rightOperand:
integerLiteralExpr
literal: integerLiteral "1"
name: identifier "increment"
modifiers:
signature:
functionSignature
parameterClause:
functionParameterClause
leftParen: (
rightParen: )
parameters:
functionParameter
colon: :
attributes:
modifiers:
type:
attributedType
attributes:
baseType:
identifierType
name: identifier "Int"
lateSpecifiers:
specifiers:
simpleTypeSpecifier
specifier: inout
firstName: _
secondName: identifier "x"
funcKeyword: func
---
top_level
body:
block
stmt:
function_declaration
name: identifier "increment"
parameter:
parameter
external_name: identifier "_"
type: unsupported_node "inout Int"
pattern:
name_pattern
identifier: identifier "x"
body:
block
stmt:
compound_assign_expr
target:
name_expr
identifier: identifier "x"
operator: infix_operator "+="
value: int_literal "1"

View File

@@ -0,0 +1,3 @@
func increment(_ x: inout Int) {
x += 1
}

View File

@@ -61,6 +61,9 @@ top_level
parameter:
parameter
external_name: identifier "person"
type:
named_type_expr
name: identifier "String"
pattern:
name_pattern
identifier: identifier "name"

View File

@@ -78,11 +78,17 @@ top_level
parameter:
parameter
external_name: identifier "_"
type:
named_type_expr
name: identifier "Int"
pattern:
name_pattern
identifier: identifier "a"
parameter
external_name: identifier "_"
type:
named_type_expr
name: identifier "Int"
pattern:
name_pattern
identifier: identifier "b"

View File

@@ -68,6 +68,9 @@ top_level
parameter:
parameter
external_name: identifier "_"
type:
named_type_expr
name: identifier "T"
pattern:
name_pattern
identifier: identifier "x"

View File

@@ -82,6 +82,9 @@ top_level
parameter:
parameter
external_name: identifier "_"
type:
named_type_expr
name: identifier "Int"
pattern:
name_pattern
identifier: identifier "values"

Some files were not shown because too many files have changed in this diff Show More