diff --git a/CLAUDE.md b/CLAUDE.md index ca36f9d05..dfbabc638 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -32,7 +32,7 @@ make test-unit make test-integration # Run a single test -uv --directory kmir run pytest kmir/src/tests/integration/test_prove.py::test_prove_rs -k "test_name" +uv --directory kmir run pytest kmir/src/tests/integration/test_prove.py::test_prove -k "test_name" # Generate and parse SMIR for test files make smir-parse-tests @@ -61,7 +61,7 @@ source kmir/.venv/bin/activate uv --directory kmir run kmir # Prove Rust code directly (recommended) -uv --directory kmir run kmir prove-rs path/to/file.rs --verbose +uv --directory kmir run kmir prove path/to/file.rs --verbose # Generate SMIR JSON from Rust ./scripts/generate-smir-json.sh file.rs output_dir @@ -79,7 +79,7 @@ uv --directory kmir run kmir show proof_id --proof-dir ./proof_dir - `smir.py` - SMIR JSON parsing and info extraction - `kdist/mir-semantics/` - K semantics definitions - `src/tests/` - Test suites - - `integration/data/prove-rs/` - Rust test programs for prove-rs + - `integration/data/prove-rs/` - Rust test programs for prove - `integration/data/exec-smir/` - Rust programs for execution tests ### Key K Semantics Files @@ -105,17 +105,17 @@ Intrinsic functions (like `black_box`, `raw_eq`) don't have regular function bod ## Testing Patterns -### prove-rs Tests +### prove Tests Tests in `kmir/src/tests/integration/data/prove-rs/` follow this pattern: - Simple Rust programs with assertions - File naming: `test-name.rs` (passes), `test-name-fail.rs` (expected to fail) -- Tests run via `kmir prove-rs` command +- Tests run via `kmir prove` command - Generate SMIR automatically during test execution ### Adding New Tests 1. Add Rust file to `prove-rs/` directory 2. Use assertions to verify behavior -3. Run with: `uv --directory kmir run kmir prove-rs your-test.rs` +3. Run with: `uv --directory kmir run kmir prove your-test.rs` ## Development Workflow diff --git a/Makefile b/Makefile index 503257b9b..9bd7f8f2d 100644 --- a/Makefile +++ b/Makefile @@ -56,6 +56,11 @@ test-integration: stable-mir-json build $(UV_RUN) pytest $(TOP_DIR)/kmir/src/tests/integration --maxfail=1 --verbose \ --durations=0 --numprocesses=$(PARALLEL) --dist=worksteal $(TEST_ARGS) +.PHONY: test-stable-mir-ui +test-stable-mir-ui: stable-mir-json build + @test -n "$(RUST_DIR_ROOT)" || (echo "RUST_DIR_ROOT is required. Example: RUST_DIR_ROOT=/path/to/rust make test-stable-mir-ui"; exit 2) + $(UV_RUN) pytest $(TOP_DIR)/kmir/src/tests/external/test_stable_mir_ui_pass.py --maxfail=1 --verbose $(TEST_ARGS) + # Checks and formatting format: autoflake isort black nix-fmt diff --git a/README.md b/README.md index 1bb56c483..2d8b17566 100644 --- a/README.md +++ b/README.md @@ -1,245 +1,162 @@ # MIR Semantics -In this repository, we provide a model of the semantics of Rust's Stable MIR in K to enable symbolic execution of Rust programs and proofs of program properties. +`mir-semantics` models the semantics of Rust Stable MIR in K. The repository also ships `kmir`, a Python CLI for building the semantics, running programs, generating specs, and inspecting proofs. -Also included is the `kmir` tool, a python script that acts as a front-end to the semantics. +For semantics details and specialized workflows, see [Further Reading](#further-reading). +## Quick Start -## For Developers +### Prerequisites -### KMIR Setup - -Pre-requisites: -- `python >= 3.10` +- [Python](https://www.python.org/) `>= 3.10` - [`uv`](https://docs.astral.sh/uv/) -- `pip >= 20.0.2` -- `gcc >= 11.4.0` -- `cargo == nightly-2024-11-29` -- K. The required K version is specified in `deps/k_release`. To install K, follow the steps available in [K's Quick Start instructions](https://github.com/runtimeverification/k?tab=readme-ov-file#quick-start). +- [`pip`](https://pip.pypa.io/) `>= 20.0.2` +- [`gcc`](https://gcc.gnu.org/) `>= 11.4.0` +- [Rust](https://rustup.rs/) via `rustup` +- [K Framework](https://github.com/runtimeverification/k?tab=readme-ov-file#quick-start), using the version pinned in [`deps/k_release`](deps/k_release) -```bash -make build -``` +### Clone and set up -Use `make` to run common tasks (see the [Makefile](Makefile) for a complete list of available targets). +```bash +git clone --recurse-submodules https://github.com/runtimeverification/mir-semantics.git +cd mir-semantics -For interactive use, first sync the environment with `uv --directory kmir sync`, then either: -- Run Python directly: `uv --directory kmir run python` -- Activate the virtual environment: `source kmir/.venv/bin/activate` (on Unix/macOS) or `kmir\.venv\Scripts\activate` (on Windows) -- Or directly run commands from `mir-semantics` root: `uv --directory kmir run kmir ` +# If you cloned without --recurse-submodules: +git submodule update --init --recursive +``` -### Stable-MIR-JSON Setup +### Build -To interact with some of KMIR functionalities, it is necessary to provide the tool with a serialized JSON of a Rust program's Stable MIR. To be able to extract these serialized SMIR JSONs, you can use the `Stable-MIR-JSON` tool. +The pinned Rust toolchain and components are declared in [`rust-toolchain.toml`](rust-toolchain.toml) and installed automatically by `rustup` on first use. -#### Quick Start ```bash -git submodule update --init --recursive +# Build K semantics definitions (required for kmir) +make build + +# Build stable-mir-json (required for SMIR generation, integration tests) make stable-mir-json ``` -#### Generating SMIR JSON Files +`uv` will create and use the Python environment for the `kmir` project automatically. -After setting up stable-mir-json, you can generate SMIR JSON files from Rust source code: +### Verify the setup -**Using the stable-mir-json tool directly:** ```bash -# For single files -deps/.stable-mir-json/debug.sh -Zno-codegen your_file.rs +# Just kmir +uv --project kmir run kmir --help -# For cargo projects -RUSTC=deps/.stable-mir-json/debug.sh cargo build +# Full contributor check +make smir-parse-tests ``` -**Using the convenience script:** -```bash -# Generate JSON file -./scripts/generate-smir-json.sh your_file.rs . +## Common Workflows -# Generate with visualization (PNG, PDF, DOT) -./scripts/generate-smir-json.sh your_file.rs . png -./scripts/generate-smir-json.sh your_file.rs . pdf -./scripts/generate-smir-json.sh your_file.rs . dot -``` +### Task-to-command map -For more information on testing, installation, and general usage of this tool, please check [Stable-MIR-JSON's repository](https://github.com/runtimeverification/stable-mir-json/). +| Task | Command | Notes | +| --- | --- | --- | +| Build the semantics | `make build` | Requires K and the Python prerequisites. | +| Build `stable-mir-json` in-tree | `make stable-mir-json` | Requires initialized submodules and the pinned Rust nightly. | +| Run unit tests | `make test-unit` | Python-only tests under `kmir/src/tests/unit`. | +| Run integration tests | `make test-integration` | Depends on `stable-mir-json` and `build`. | +| Check Stable MIR parsing | `make smir-parse-tests` | Compiles Rust test programs to SMIR JSON and parses them with `kmir`. | -## Usage +`make test-integration` already depends on `make stable-mir-json` and `make build`, so it is the full contributor path for integration coverage. -Use `--help` with each command for more details. +## Using `kmir` -### Basic Commands +Every subcommand supports `--help` for the full option list. -**`kmir run`** - Execute a Rust program from SMIR JSON or directly from source -```bash -# Run from SMIR JSON file -uv --project kmir run kmir run --file path/to/program.smir.json +| Command | Purpose | +| --- | --- | +| `kmir run` | Execute a Rust program from SMIR JSON | +| `kmir prove` | Prove properties of a Rust source file (recommended entry point) | +| `kmir show` | Inspect a proof graph — nodes, deltas, rules, statistics | +| `kmir view` | Interactive proof viewer | +| `kmir prune` | Remove a node (and its subtree) from a proof | +| `kmir section-edge` | Split a proof edge into finer sections | +| `kmir link` | Link multiple SMIR JSON files into one | +| `kmir info` | Show type information from a SMIR JSON file | -# Run with verbose output -uv --project kmir run kmir run --file path/to/program.smir.json --verbose -``` +### Typical proof workflow -**`kmir prove-rs`** - Directly prove properties of Rust source code (recommended) ```bash -# Basic proof -uv --project kmir run kmir prove-rs path/to/program.rs +# 1. Run a proof +uv --project kmir run kmir prove program.rs --proof-dir ./proofs --verbose -# Detailed proof with output -uv --project kmir run kmir prove-rs path/to/program.rs --verbose --proof-dir ./proof_dir -``` +# 2. Overview — see all leaves and statistics +uv --project kmir run kmir show proof_id --proof-dir ./proofs --leaves --statistics -**`kmir gen-spec`** - Generate K specification from SMIR JSON -```bash -uv --project kmir run kmir gen-spec path/to/program.smir.json --output-file path/to/spec.k -``` +# 3. Zoom into specific nodes / transitions +uv --project kmir run kmir show proof_id --proof-dir ./proofs --nodes "4,5" --node-deltas "4:5" -**`kmir link`** - Link together multiple SMIR JSON files -```bash -# Link multiple SMIR JSON files into a single output file -uv --project kmir run kmir link file1.smir.json file2.smir.json file3.smir.json --output-file linked.smir.json +# 4. See which K rules fired on an edge +uv --project kmir run kmir show proof_id --proof-dir ./proofs --rules "4:5" -# Use default output filename (linker_output.smir.json) -uv --project kmir run kmir link file1.smir.json file2.smir.json +# 5. Full detail for deep debugging +uv --project kmir run kmir show proof_id --proof-dir ./proofs --nodes "5" \ + --full-printer --no-omit-static-info --no-omit-current-body ``` -**`kmir info`** - Inspect SMIR JSON metadata (currently: types) -```bash -# Show information about specific type IDs in a SMIR JSON -uv --project kmir run kmir info path/to/program.smir.json --types "1,2,3" - -# Notes -# - The --types option accepts a comma-separated list of numeric Stable MIR type IDs. -# - Output format: one line per requested type, e.g.: -# Type Ty(1): Int(....) -# Type Ty(2): StructT(name=..., adt_def=..., fields=[...]) -# - If --types is omitted, the command currently produces no output. -``` +### Debugging a stuck or failing proof -### Analysis Commands +When a proof does not close, the typical cycle is **inspect → refine → re-prove**: -**`kmir show`** - Display proof information with advanced filtering options ```bash -# Basic usage -uv --project kmir run kmir show proof_id --proof-dir ./proof_dir - -# Show specific nodes only -uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --nodes "1,2,3" - -# Show node deltas (transitions between specific nodes) -uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --node-deltas "1:2,3:4" +# Narrow down where things go wrong — break on every function call +uv --project kmir run kmir prove program.rs --proof-dir ./proofs \ + --break-on-calls --max-depth 200 -# Show additional deltas after the main output, and also print rules for those edges -uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --node-deltas "1:2" --node-deltas-pro "3:4" +# Or break only when a specific function is entered +uv --project kmir run kmir prove program.rs --proof-dir ./proofs \ + --break-on-function "my_module::suspect_fn" -# Display full node information (default is compact) -uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --full-printer +# Split a large edge to find the exact divergence point +uv --project kmir run kmir section-edge proof_id "4,5" --proof-dir ./proofs --sections 4 -# Show static information cells (functions, types, etc.) -uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --no-omit-static-info +# Prune a bad subtree and re-run +uv --project kmir run kmir prune proof_id 5 --proof-dir ./proofs +uv --project kmir run kmir prove program.rs --proof-dir ./proofs -# Show current body cell content -uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --no-omit-current-body - -# Omit specific cells from output -uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --omit-cells "cell1,cell2" - -# Combine multiple options for detailed analysis -uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --full-printer --no-omit-static-info --nodes "1,2" --verbose +# Export a proof subgraph as a reusable K module +uv --project kmir run kmir show proof_id --proof-dir ./proofs --to-module lemma.json --minimize-proof +# then re-prove with the lemma +uv --project kmir run kmir prove program.rs --proof-dir ./proofs --add-module lemma.json ``` -**`kmir view`** - Detailed view of proof results -```bash -uv --project kmir run kmir view proof_id --proof-dir ./proof_dir --verbose -``` +Other useful `prove` break flags: `--break-every-step`, `--break-every-terminator`, `--break-on-thunk`, `--terminate-on-thunk`. -**Rules within `kmir show`** - Show rules applied between nodes -```bash -uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --rules "SOURCE:TARGET[,SOURCE:TARGET...]" -``` - -### Recommended Workflow - -1. **Setup Environment**: - ```bash - make stable-mir-json # Setup stable-mir-json - make build # Build K definitions - ``` - -2. **Direct Proof** (Recommended): - ```bash - uv --project kmir run kmir prove-rs your_file.rs --verbose --proof-dir ./proof_dir - ``` - -3. **View Results**: - ```bash - # Quick overview (compact format, static info hidden) - uv --project kmir run kmir show proof_id --proof-dir ./proof_dir - - # Detailed analysis with full information - uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --full-printer --no-omit-static-info - - # Focus on specific nodes - uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --nodes "1,2,3" - - # Interactive view - uv --project kmir run kmir view proof_id --proof-dir ./proof_dir --verbose - ``` - -4. **Analyze Rules**: - ```bash - uv --project kmir run kmir show proof_id --proof-dir ./proof_dir --rules "1:3" - ``` - -### Advanced Show Usage Examples - -**Debugging workflow:** -```bash -# 1. Start with a quick overview -uv --project kmir run kmir show my_proof --proof-dir ./proofs +### Generate Stable MIR JSON manually -# 2. Focus on problematic nodes (e.g., nodes 5, 6, 7) -uv --project kmir run kmir show my_proof --proof-dir ./proofs --nodes "5,6,7" +After `make stable-mir-json`: -# 3. Examine transitions between specific nodes -uv --project kmir run kmir show my_proof --proof-dir ./proofs --node-deltas "5:6,6:7" - -# 4. Get full details for deep debugging -uv --project kmir run kmir show my_proof --proof-dir ./proofs --nodes "6" --full-printer --no-omit-static-info --no-omit-current-body -``` - -**Performance analysis:** ```bash -# Hide verbose cells but show execution flow -uv --project kmir run kmir show my_proof --proof-dir ./proofs --omit-cells "locals,heap" --verbose +# Single file +deps/.stable-mir-json/debug.sh -Zno-codegen your_file.rs + +# Cargo project +RUSTC=deps/.stable-mir-json/debug.sh cargo build -# Focus on function calls and type information -uv --project kmir run kmir show my_proof --proof-dir ./proofs --no-omit-static-info --omit-cells "currentBody" +# Convenience script (also supports png/pdf/dot visualization) +./scripts/generate-smir-json.sh [png|pdf|dot] ``` -### Command Options +## Troubleshooting -Most commands support: -- `--verbose, -v`: Detailed output -- `--debug`: Debug information -- `--proof-dir DIR`: Directory for proof results -- `--max-depth DEPTH`: Maximum execution depth -- `--max-iterations ITERATIONS`: Maximum iterations +- **Rust toolchain errors**: The toolchain is declared in [`rust-toolchain.toml`](rust-toolchain.toml) and should install automatically on first use. If not, run `rustup toolchain install nightly-2024-11-29 --component llvm-tools --component rustc-dev --component rust-src`. +- **`deps/stable-mir-json` is missing**: Run `git submodule update --init --recursive`. +- **Not sure which `make` target to run**: `make build` for basic `kmir`; add `make stable-mir-json` for SMIR generation; `make test-integration` for the full suite. -**`kmir show` specific options:** -- `--nodes NODES`: Comma separated list of node IDs to show (e.g., "1,2,3") -- `--node-deltas DELTAS`: Comma separated list of node deltas in format "source:target" (e.g., "1:2,3:4") -- `--node-deltas-pro DELTAS`: Additional node deltas (same format as `--node-deltas`). Equivalent to "print the corresponding deltas again, and automatically print the rules for these edges". -- `--rules EDGES`: Comma separated list of edges in format "source:target". Prints rules for each edge in Markdown link format `[label](file:///abs/path#LstartLine)` when available -- `--omit-cells CELLS`: Comma separated list of cell names to omit from output -- `--full-printer`: Display the full node in output (default is compact) -- `--no-omit-static-info`: Display static information cells (functions, start-symbol, types, adt-to-ty) -- `--no-omit-current-body`: Display the `` cell completely -- `--smir-info SMIR_INFO`: Path to SMIR JSON file to improve debug messaging +## Further Reading -For complete options, use `--help` with each command. +- [docs/semantics-of-mir.md](docs/semantics-of-mir.md) +- [docs/example-mir-execution-flow.md](docs/example-mir-execution-flow.md) +- [docs/dev/adding-intrinsics.md](docs/dev/adding-intrinsics.md) +- [docs/feature-checklist.md](docs/feature-checklist.md) +- [Stable-MIR-JSON repository](https://github.com/runtimeverification/stable-mir-json/) -### Supporters +## Supporters -KMIR / mir-semantics is supported by funding from the following sources: +KMIR / mir-semantics is supported by funding from: - [Polkadot Open Gov](https://polkadot.subsquare.io/referenda/749) - Solana diff --git a/deps/stable-mir-json b/deps/stable-mir-json index 047ca6ac0..7da8e3bcd 160000 --- a/deps/stable-mir-json +++ b/deps/stable-mir-json @@ -1 +1 @@ -Subproject commit 047ca6ac01786e1b616e13a216d70268b9785e17 +Subproject commit 7da8e3bcd0aee1410be9c63cb92dd499f70e8fcc diff --git a/deps/stable-mir-json_release b/deps/stable-mir-json_release index b3e6006b7..958d4d781 100644 --- a/deps/stable-mir-json_release +++ b/deps/stable-mir-json_release @@ -1 +1 @@ -047ca6ac01786e1b616e13a216d70268b9785e17 +7da8e3bcd0aee1410be9c63cb92dd499f70e8fcc diff --git a/flake.lock b/flake.lock index 48334eacc..616d9303b 100644 --- a/flake.lock +++ b/flake.lock @@ -213,11 +213,11 @@ }, "nixpkgs-unstable_2": { "locked": { - "lastModified": 1772433332, - "narHash": "sha256-izhTDFKsg6KeVBxJS9EblGeQ8y+O8eCa6RcW874vxEc=", + "lastModified": 1772773019, + "narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cf59864ef8aa2e178cccedbe2c178185b0365705", + "rev": "aca4d95fce4914b3892661bcb80b8087293536c6", "type": "github" }, "original": { @@ -556,17 +556,17 @@ "rv-nix-tools": "rv-nix-tools_4" }, "locked": { - "lastModified": 1772509622, - "narHash": "sha256-4xrcFDb+Vy310S9Sli/7/BiCsf0Jfdp/qqEBLHjCOzE=", + "lastModified": 1772637901, + "narHash": "sha256-uq53kxlc97BdGWcNlgrcFkW5tkGfCHIhCYJSS8EGFYs=", "owner": "runtimeverification", "repo": "stable-mir-json", - "rev": "047ca6ac01786e1b616e13a216d70268b9785e17", + "rev": "7da8e3bcd0aee1410be9c63cb92dd499f70e8fcc", "type": "github" }, "original": { "owner": "runtimeverification", "repo": "stable-mir-json", - "rev": "047ca6ac01786e1b616e13a216d70268b9785e17", + "rev": "7da8e3bcd0aee1410be9c63cb92dd499f70e8fcc", "type": "github" } }, diff --git a/flake.nix b/flake.nix index dd0ff52ec..fe44dfbd1 100644 --- a/flake.nix +++ b/flake.nix @@ -6,7 +6,7 @@ flake-utils.url = "github:numtide/flake-utils"; - stable-mir-json-flake.url = "github:runtimeverification/stable-mir-json/047ca6ac01786e1b616e13a216d70268b9785e17"; + stable-mir-json-flake.url = "github:runtimeverification/stable-mir-json/7da8e3bcd0aee1410be9c63cb92dd499f70e8fcc"; stable-mir-json-flake = { inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "flake-utils"; diff --git a/kmir/pyproject.toml b/kmir/pyproject.toml index 585012ab7..63097fe25 100644 --- a/kmir/pyproject.toml +++ b/kmir/pyproject.toml @@ -42,6 +42,7 @@ dev = [ "pytest", "pytest-cov", "pytest-mock", + "pytest-timeout", "pytest-xdist", "pyupgrade", ] diff --git a/kmir/src/kmir/__init__.py b/kmir/src/kmir/__init__.py index 966d0c2a4..5c6683953 100644 --- a/kmir/src/kmir/__init__.py +++ b/kmir/src/kmir/__init__.py @@ -2,4 +2,4 @@ from typing import Final __version__: Final = version('kmir') -__smir_version__: Final = '047ca6ac01786e1b616e13a216d70268b9785e17' +__smir_version__: Final = '7da8e3bcd0aee1410be9c63cb92dd499f70e8fcc' diff --git a/kmir/src/kmir/__main__.py b/kmir/src/kmir/__main__.py index 0f9fff0db..b2ace6887 100644 --- a/kmir/src/kmir/__main__.py +++ b/kmir/src/kmir/__main__.py @@ -21,7 +21,7 @@ from .options import ( InfoOpts, LinkOpts, - ProveRSOpts, + ProveOpts, PruneOpts, RunOpts, SectionEdgeOpts, @@ -72,8 +72,8 @@ def run(target_dir: Path): run(target_dir=Path(target_dir)) -def _kmir_prove_rs(opts: ProveRSOpts) -> None: - proof = KMIR.prove_rs(opts) +def _kmir_prove(opts: ProveOpts) -> None: + proof = KMIR.prove_program(opts) print(str(proof.summary)) if not proof.passed: sys.exit(1) @@ -268,8 +268,8 @@ def kmir(args: Sequence[str]) -> None: _kmir_prune(opts) case SectionEdgeOpts(): _kmir_section_edge(opts) - case ProveRSOpts(): - _kmir_prove_rs(opts) + case ProveOpts(): + _kmir_prove(opts) case LinkOpts(): _kmir_link(opts) case _: @@ -284,10 +284,14 @@ def _arg_parser() -> ArgumentParser: run_parser = command_parser.add_parser('run', help='run stable MIR programs', parents=[kcli_args.logging_args]) run_target_selection = run_parser.add_mutually_exclusive_group() - run_target_selection.add_argument('--bin', metavar='TARGET', help='Target to run') - run_target_selection.add_argument('--file', metavar='SMIR', help='SMIR json file to execute') + run_target_selection.add_argument( + '--bin', metavar='TARGET', help='Cargo binary target name to run (mutually exclusive with --file)' + ) + run_target_selection.add_argument( + '--file', metavar='SMIR', help='SMIR JSON file to execute (mutually exclusive with --bin)' + ) run_parser.add_argument('--target-dir', type=Path, metavar='TARGET_DIR', help='SMIR kompilation target directory') - run_parser.add_argument('--depth', type=int, metavar='DEPTH', help='Depth to execute') + run_parser.add_argument('--depth', type=int, metavar='DEPTH', help='Maximum number of execution steps') run_parser.add_argument( '--start-symbol', type=str, metavar='SYMBOL', default='main', help='Symbol name to begin execution from' ) @@ -300,18 +304,29 @@ def _arg_parser() -> ArgumentParser: 'info', help='Show information about a SMIR JSON file', parents=[kcli_args.logging_args] ) info_parser.add_argument('smir_file', metavar='FILE', help='SMIR JSON file to analyze') - info_parser.add_argument('--types', metavar='TYPES', help='Comma separated list of type IDs to show details for') + info_parser.add_argument( + '--types', + metavar='TYPES', + help='Comma separated list of type IDs to show (e.g. "1,2,3"). Output: one line per type, e.g. "Type Ty(1): Int(...)". Omit to produce no output.', + ) prove_args = ArgumentParser(add_help=False) prove_args.add_argument('--proof-dir', metavar='DIR', help='Proof directory') prove_args.add_argument('--haskell-target', metavar='TARGET', help='Haskell target to use') prove_args.add_argument('--llvm-lib-target', metavar='TARGET', help='LLVM lib target to use') prove_args.add_argument('--bug-report', metavar='PATH', help='path to optional bug report') - prove_args.add_argument('--max-depth', metavar='DEPTH', type=int, help='max steps to take between nodes in kcfg') + prove_args.add_argument( + '--max-depth', + metavar='DEPTH', + type=int, + help='Maximum K rewrite steps to take on a single KCFG edge before creating a new node', + ) prove_args.add_argument( '--max-iterations', metavar='ITERATIONS', type=int, help='max number of proof iterations to take' ) - prove_args.add_argument('--reload', action='store_true', help='Force restarting proof') + prove_args.add_argument( + '--reload', action='store_true', help='Discard any existing proof progress and restart from scratch' + ) prove_args.add_argument( '--fail-fast', dest='fail_fast', @@ -415,11 +430,11 @@ def _arg_parser() -> ArgumentParser: dest='break_on_function', action='append', default=None, - help='Break when calling functions / intrinsics matching this name (repeatable)', + help='Break when calling a function or intrinsic whose name contains this string (repeatable)', ) proof_args = ArgumentParser(add_help=False) - proof_args.add_argument('id', metavar='PROOF_ID', help='The id of the proof to view') + proof_args.add_argument('id', metavar='PROOF_ID', help='The id of the proof to operate on') proof_args.add_argument('--proof-dir', metavar='DIR', help='Proof directory') display_args = ArgumentParser(add_help=False) @@ -428,7 +443,7 @@ def _arg_parser() -> ArgumentParser: dest='full_printer', action='store_true', default=False, - help='Display the full node in output.', + help='Display full K configuration for each node (default: compact view).', ) display_args.add_argument( '--smir-info', @@ -455,7 +470,9 @@ def _arg_parser() -> ArgumentParser: '--node-deltas', metavar='DELTAS', help='Comma separated list of node deltas in format "source:target"' ) show_parser.add_argument( - '--node-deltas-pro', metavar='DELTAS', help='Extra node deltas (printed after main output)' + '--node-deltas-pro', + metavar='DELTAS', + help='Extra node deltas in format "source:target" (printed after main output, also prints rules for these edges)', ) show_parser.add_argument( '--omit-cells', metavar='CELLS', help='Comma separated list of cell names to omit from output' @@ -485,7 +502,11 @@ def _arg_parser() -> ArgumentParser: help='Print the cell for each leaf node in the proof graph', ) - show_parser.add_argument('--rules', metavar='EDGES', help='Comma separated list of edges in format "source:target"') + show_parser.add_argument( + '--rules', + metavar='EDGES', + help='Comma separated list of edges in format "source:target". Prints the K rules applied on each edge as Markdown links.', + ) show_parser.add_argument( '--to-module', type=Path, @@ -495,7 +516,7 @@ def _arg_parser() -> ArgumentParser: show_parser.add_argument( '--minimize-proof', action='store_true', - help='Minimize the proof KCFG before exporting to module', + help='Minimize the proof KCFG before exporting to module (only used with --to-module)', ) command_parser.add_parser( @@ -505,13 +526,15 @@ def _arg_parser() -> ArgumentParser: prune_parser = command_parser.add_parser( 'prune', help='Prune a proof from a given node', parents=[kcli_args.logging_args, proof_args] ) - prune_parser.add_argument('node_id', metavar='NODE', type=int, help='The node to prune') + prune_parser.add_argument( + 'node_id', metavar='NODE', type=int, help='The node to prune (removes this node and its entire subtree)' + ) section_edge_parser = command_parser.add_parser( 'section-edge', help='Break an edge into sections', parents=[kcli_args.logging_args, proof_args] ) section_edge_parser.add_argument( - 'edge', type=lambda s: tuple(s.split(',')), help='Edge to section in CFG (format: `source,target`)' + 'edge', type=lambda s: tuple(s.split(',')), help='Edge to split in the KCFG (format: "source,target")' ) section_edge_parser.add_argument( '--sections', type=int, default=2, help='Number of sections to make from edge (>= 2, default: 2)' @@ -519,26 +542,24 @@ def _arg_parser() -> ArgumentParser: section_edge_parser.add_argument('--haskell-target', metavar='TARGET', help='Haskell target to use') section_edge_parser.add_argument('--llvm-lib-target', metavar='TARGET', help='LLVM lib target to use') - prove_rs_parser = command_parser.add_parser( - 'prove-rs', help='Prove a rust program', parents=[kcli_args.logging_args, prove_args] - ) - prove_rs_parser.add_argument( - 'rs_file', type=Path, metavar='FILE', help='Rust file with the spec function (e.g. main)' + prove_parser = command_parser.add_parser( + 'prove', help='Prove a Rust program', aliases=['prove-rs'], parents=[kcli_args.logging_args, prove_args] ) - prove_rs_parser.add_argument( + prove_parser.add_argument('rs_file', type=Path, metavar='FILE', help='Rust file with the spec function (e.g. main)') + prove_parser.add_argument( '--save-smir', action='store_true', help='Do not delete the intermediate generated SMIR JSON file.' ) - prove_rs_parser.add_argument('--smir', action='store_true', help='Treat the input file as a smir json.') - prove_rs_parser.add_argument( + prove_parser.add_argument('--smir', action='store_true', help='Treat the input file as a smir json.') + prove_parser.add_argument( '--start-symbol', type=str, metavar='SYMBOL', default='main', help='Symbol name to begin execution from' ) - prove_rs_parser.add_argument( + prove_parser.add_argument( '--add-module', type=Path, metavar='FILE', help='K module file to include (.json format from --to-module)', ) - prove_rs_parser.add_argument( + prove_parser.add_argument( '--max-workers', metavar='N', type=int, help='Maximum number of workers for parallel exploration' ) @@ -547,7 +568,11 @@ def _arg_parser() -> ArgumentParser: ) link_parser.add_argument('smir_files', nargs='+', metavar='SMIR_JSON', help='SMIR JSON files to link') link_parser.add_argument( - '--output-file', '-o', metavar='FILE', help='Output file', default='linker_output.smir.json' + '--output-file', + '-o', + metavar='FILE', + help='Output file (default: linker_output.smir.json)', + default='linker_output.smir.json', ) return parser @@ -613,8 +638,8 @@ def _parse_args(ns: Namespace) -> KMirOpts: haskell_target=ns.haskell_target, llvm_lib_target=ns.llvm_lib_target, ) - case 'prove-rs': - return ProveRSOpts( + case 'prove' | 'prove-rs': + return ProveOpts( rs_file=Path(ns.rs_file), proof_dir=ns.proof_dir, haskell_target=ns.haskell_target, diff --git a/kmir/src/kmir/_prove.py b/kmir/src/kmir/_prove.py index 45c6966b5..de729adf8 100644 --- a/kmir/src/kmir/_prove.py +++ b/kmir/src/kmir/_prove.py @@ -25,13 +25,13 @@ from pyk.kast.inner import KInner - from .options import ProveRSOpts + from .options import ProveOpts _LOGGER: Final = logging.getLogger(__name__) -def prove_rs(opts: ProveRSOpts) -> APRProof: +def prove(opts: ProveOpts) -> APRProof: if not opts.rs_file.is_file(): raise ValueError(f'Input file does not exist: {opts.rs_file}') @@ -42,14 +42,14 @@ def prove_rs(opts: ProveRSOpts) -> APRProof: if opts.proof_dir is not None: target_path = opts.proof_dir / label - return _prove_rs(opts, target_path, label) + return _prove(opts, target_path, label) with tempfile.TemporaryDirectory() as tmp_dir: target_path = Path(tmp_dir) - return _prove_rs(opts, target_path, label) + return _prove(opts, target_path, label) -def _prove_rs(opts: ProveRSOpts, target_path: Path, label: str) -> APRProof: +def _prove(opts: ProveOpts, target_path: Path, label: str) -> APRProof: if not opts.reload and opts.proof_dir is not None and APRProof.proof_data_exists(label, opts.proof_dir): _LOGGER.info(f'Reading proof from disc: {opts.proof_dir}, {label}') proof = APRProof.read_proof_data(opts.proof_dir, label) @@ -67,7 +67,9 @@ def _prove_rs(opts: ProveRSOpts, target_path: Path, label: str) -> APRProof: ) else: _LOGGER.info(f'Constructing initial proof: {label}') - if opts.smir: + if opts.parsed_smir is not None: + smir_info = SMIRInfo(opts.parsed_smir) + elif opts.smir: smir_info = SMIRInfo.from_file(opts.rs_file) else: smir_info = SMIRInfo(cargo_get_smir_json(opts.rs_file, save_smir=opts.save_smir)) @@ -138,7 +140,7 @@ def _prove_parallel( kmir: KMIR, proof: APRProof, *, - opts: ProveRSOpts, + opts: ProveOpts, label: str, cut_point_rules: list[str], ) -> None: @@ -192,7 +194,7 @@ def _prove_sequential( kmir: KMIR, proof: APRProof, *, - opts: ProveRSOpts, + opts: ProveOpts, label: str, cut_point_rules: list[str], ) -> None: diff --git a/kmir/src/kmir/kdist/mir-semantics/intrinsics.md b/kmir/src/kmir/kdist/mir-semantics/intrinsics.md index 5da5a85f2..8788d9861 100644 --- a/kmir/src/kmir/kdist/mir-semantics/intrinsics.md +++ b/kmir/src/kmir/kdist/mir-semantics/intrinsics.md @@ -143,6 +143,26 @@ write the value to that location. ... ``` +#### Volatile Load (`std::intrinsics::volatile_load`, `std::ptr::read_volatile`) + +The `volatile_load` intrinsic reads a value from a memory location through a pointer, ensuring the read is not +optimised away by the compiler. Unlike normal loads, volatile loads are guaranteed to occur exactly once and +in order with respect to other volatile operations. In the semantics, this is equivalent to a regular load +through a dereferenced pointer. We extract the place from the pointer operand, add a deref projection, and +read the value from that location into the destination. Since `#setLocalValue` is strict in its second argument, +the dereferenced operand is evaluated (i.e., the value is read from memory) before being written to `DEST`. + +```k + rule #execIntrinsic(IntrinsicFunction(symbol("volatile_load")), operandCopy(place(LOCAL, PROJ)) .Operands, DEST, _SPAN) + => #setLocalValue(DEST, operandCopy(place(LOCAL, appendP(PROJ, projectionElemDeref .ProjectionElems)))) + ... + + // for `operandMove` the pointer is moved, but the pointed-to value is copied (read, not consumed) + rule #execIntrinsic(IntrinsicFunction(symbol("volatile_load")), operandMove(place(LOCAL, PROJ)) .Operands, DEST, _SPAN) + => #setLocalValue(DEST, operandCopy(place(LOCAL, appendP(PROJ, projectionElemDeref .ProjectionElems)))) + ... +``` + #### Ptr Offset Computations (`std::intrinsics::ptr_offset_from`, `std::intrinsics::ptr_offset_from_unsigned`) The `ptr_offset_from[_unsigned]` calculates the distance between two pointers within the same allocation, diff --git a/kmir/src/kmir/kdist/mir-semantics/kmir.md b/kmir/src/kmir/kdist/mir-semantics/kmir.md index c80f91a76..f7c3fb480 100644 --- a/kmir/src/kmir/kdist/mir-semantics/kmir.md +++ b/kmir/src/kmir/kdist/mir-semantics/kmir.md @@ -318,11 +318,23 @@ where the returned result should go. ... - rule #execTerminator(terminator(terminatorKindCall(operandMove(place(local(I), .ProjectionElems)), ARGS, DEST, TARGET, UNWIND), SPAN)) - => #execTerminatorCall(tyOfLocal(getLocal(LOCALS, I)), lookupFunction(tyOfLocal(getLocal(LOCALS, I))), ARGS, DEST, TARGET, UNWIND, SPAN) + rule #execTerminator(terminator(terminatorKindCall(operandMove(place(local(I), PROJS)), ARGS, DEST, TARGET, UNWIND), SPAN)) + => #execTerminatorCall({#projectedCallTy(I, PROJS, LOCALS)}:>Ty, lookupFunction({#projectedCallTy(I, PROJS, LOCALS)}:>Ty), ARGS, DEST, TARGET, UNWIND, SPAN) ... LOCALS + requires isTy(#projectedCallTy(I, PROJS, LOCALS)) + [preserves-definedness] // valid local indexing checked, projected call target must resolve to a Ty + + syntax MaybeTy ::= #projectedCallTy(Int, ProjectionElems, List) [function, total] + + rule #projectedCallTy(I, PROJS, LOCALS) + => getTyOf(tyOfLocal({LOCALS[I]}:>TypedLocal), PROJS) + requires 0 <=Int I andBool I TyUnknown [owise] // Intrinsic function call - execute directly without state switching rule [termCallIntrinsic]: diff --git a/kmir/src/kmir/kmir.py b/kmir/src/kmir/kmir.py index 396c5407a..d283d5ba0 100644 --- a/kmir/src/kmir/kmir.py +++ b/kmir/src/kmir/kmir.py @@ -33,7 +33,7 @@ from pyk.proof.reachability import APRProof from pyk.utils import BugReport - from .options import DisplayOpts, ProveRSOpts + from .options import DisplayOpts, ProveOpts _LOGGER: Final = logging.getLogger(__name__) @@ -121,10 +121,10 @@ def run_smir( return result @staticmethod - def prove_rs(opts: ProveRSOpts) -> APRProof: - from ._prove import prove_rs + def prove_program(opts: ProveOpts) -> APRProof: + from ._prove import prove - return prove_rs(opts) + return prove(opts) class KMIRSemantics(DefaultSemantics): diff --git a/kmir/src/kmir/options.py b/kmir/src/kmir/options.py index addc13a1f..2a65d20dc 100644 --- a/kmir/src/kmir/options.py +++ b/kmir/src/kmir/options.py @@ -61,15 +61,22 @@ class ProofOpts(KMirOpts): @dataclass class ProveOpts(KMirOpts): + rs_file: Path proof_dir: Path | None haskell_target: str | None llvm_lib_target: str | None bug_report: Path | None max_depth: int | None max_iterations: int | None + max_workers: int | None reload: bool fail_fast: bool maintenance_rate: int + save_smir: bool + smir: bool + parsed_smir: dict | None + start_symbol: str + add_module: Path | None break_on_calls: bool break_on_function_calls: bool break_on_intrinsic_calls: bool @@ -87,71 +94,6 @@ class ProveOpts(KMirOpts): terminate_on_thunk: bool break_on_function: list[str] - def __init__( - self, - *, - proof_dir: Path | str | None = None, - haskell_target: str | None = None, - llvm_lib_target: str | None = None, - bug_report: Path | None = None, - max_depth: int | None = None, - max_iterations: int | None = None, - reload: bool = False, - fail_fast: bool = False, - maintenance_rate: int = 1, - break_on_calls: bool = False, - break_on_function_calls: bool = False, - break_on_intrinsic_calls: bool = False, - break_on_thunk: bool = False, - break_every_statement: bool = False, - break_on_terminator_goto: bool = False, - break_on_terminator_switch_int: bool = False, - break_on_terminator_return: bool = False, - break_on_terminator_call: bool = False, - break_on_terminator_assert: bool = False, - break_on_terminator_drop: bool = False, - break_on_terminator_unreachable: bool = False, - break_every_terminator: bool = False, - break_every_step: bool = False, - terminate_on_thunk: bool = False, - break_on_function: list[str] | None = None, - ) -> None: - self.proof_dir = Path(proof_dir).resolve() if proof_dir is not None else None - self.haskell_target = haskell_target - self.llvm_lib_target = llvm_lib_target - self.bug_report = bug_report - self.max_depth = max_depth - self.max_iterations = max_iterations - self.reload = reload - self.fail_fast = fail_fast - self.maintenance_rate = maintenance_rate - self.break_on_calls = break_on_calls - self.break_on_function_calls = break_on_function_calls - self.break_on_intrinsic_calls = break_on_intrinsic_calls - self.break_on_thunk = break_on_thunk - self.break_every_statement = break_every_statement - self.break_on_terminator_goto = break_on_terminator_goto - self.break_on_terminator_switch_int = break_on_terminator_switch_int - self.break_on_terminator_return = break_on_terminator_return - self.break_on_terminator_call = break_on_terminator_call - self.break_on_terminator_assert = break_on_terminator_assert - self.break_on_terminator_drop = break_on_terminator_drop - self.break_on_terminator_unreachable = break_on_terminator_unreachable - self.break_every_terminator = break_every_terminator - self.break_every_step = break_every_step - self.terminate_on_thunk = terminate_on_thunk - self.break_on_function = break_on_function if break_on_function is not None else [] - - -@dataclass -class ProveRSOpts(ProveOpts): - rs_file: Path - save_smir: bool - smir: bool - start_symbol: str - add_module: Path | None - max_workers: int | None - def __init__( self, rs_file: Path, @@ -168,6 +110,7 @@ def __init__( maintenance_rate: int = 1, save_smir: bool = False, smir: bool = False, + parsed_smir: dict | None = None, start_symbol: str = 'main', break_on_calls: bool = False, break_on_function_calls: bool = False, @@ -200,6 +143,7 @@ def __init__( self.maintenance_rate = maintenance_rate self.save_smir = save_smir self.smir = smir + self.parsed_smir = parsed_smir self.start_symbol = start_symbol self.break_on_calls = break_on_calls self.break_on_function_calls = break_on_function_calls diff --git a/kmir/src/tests/external/conftest.py b/kmir/src/tests/external/conftest.py new file mode 100644 index 000000000..301eac9f3 --- /dev/null +++ b/kmir/src/tests/external/conftest.py @@ -0,0 +1,22 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +import pytest + +if TYPE_CHECKING: + from pytest import FixtureRequest, Parser + + +def pytest_addoption(parser: Parser) -> None: + parser.addoption( + '--update-skip', + action='store_true', + default=False, + help='Shrink stable-mir-ui skip entries by rerunning only current skip.txt cases.', + ) + + +@pytest.fixture(scope='session') +def update_skip_mode(request: FixtureRequest) -> bool: + return request.config.getoption('--update-skip') diff --git a/kmir/src/tests/external/data/stable-mir-ui/skip.txt b/kmir/src/tests/external/data/stable-mir-ui/skip.txt new file mode 100644 index 000000000..440b825b8 --- /dev/null +++ b/kmir/src/tests/external/data/stable-mir-ui/skip.txt @@ -0,0 +1,2859 @@ +tests/ui/abi/abi-sysv64-arg-passing.rs +tests/ui/abi/anon-extern-mod.rs +tests/ui/abi/c-stack-as-value.rs +tests/ui/abi/c-stack-returning-int64.rs +tests/ui/abi/cabi-int-widening.rs +tests/ui/abi/extern/extern-call-deep.rs +tests/ui/abi/extern/extern-call-deep2.rs +tests/ui/abi/extern/extern-call-direct.rs +tests/ui/abi/extern/extern-call-indirect.rs +tests/ui/abi/extern/extern-call-scrub.rs +tests/ui/abi/extern/extern-pass-char.rs +tests/ui/abi/extern/extern-pass-double.rs +tests/ui/abi/extern/extern-pass-empty.rs +tests/ui/abi/extern/extern-pass-FiveU16s.rs +tests/ui/abi/extern/extern-pass-TwoU16s.rs +tests/ui/abi/extern/extern-pass-TwoU32s.rs +tests/ui/abi/extern/extern-pass-TwoU64s.rs +tests/ui/abi/extern/extern-pass-TwoU8s.rs +tests/ui/abi/extern/extern-pass-u32.rs +tests/ui/abi/extern/extern-pass-u64.rs +tests/ui/abi/extern/extern-return-FiveU16s.rs +tests/ui/abi/extern/extern-return-TwoU16s.rs +tests/ui/abi/extern/extern-return-TwoU32s.rs +tests/ui/abi/extern/extern-return-TwoU64s.rs +tests/ui/abi/extern/extern-return-TwoU8s.rs +tests/ui/abi/foreign/foreign-fn-with-byval.rs +tests/ui/abi/homogenous-floats-target-feature-mixup.rs +tests/ui/abi/issue-28676.rs +tests/ui/abi/issues/issue-62350-sysv-neg-reg-counts.rs +tests/ui/abi/issues/issue-97463-broken-abi-leaked-uninit-data.rs +tests/ui/abi/lib-defaults.rs +tests/ui/abi/mir/mir_codegen_calls_variadic.rs +tests/ui/abi/nullable-pointer-ffi-compat.rs +tests/ui/abi/numbers-arithmetic/i128-ffi.rs +tests/ui/abi/numbers-arithmetic/return-float.rs +tests/ui/abi/segfault-no-out-of-stack.rs +tests/ui/abi/stack-probes.rs +tests/ui/abi/stack-protector.rs +tests/ui/abi/statics/static-mut-foreign.rs +tests/ui/abi/struct-enums/struct-return.rs +tests/ui/abi/union/union-c-interop.rs +tests/ui/abi/variadic-ffi.rs +tests/ui/abi/x86stdcall2.rs +tests/ui/alias-uninit-value.rs +tests/ui/alloc-error/default-alloc-error-hook.rs +tests/ui/allocator/dyn-compatible.rs +tests/ui/array-slice-vec/array_const_index-2.rs +tests/ui/array-slice-vec/box-of-array-of-drop-1.rs +tests/ui/array-slice-vec/box-of-array-of-drop-2.rs +tests/ui/array-slice-vec/byte-literals.rs +tests/ui/array-slice-vec/cast-in-array-size.rs +tests/ui/array-slice-vec/check-static-slice.rs +tests/ui/array-slice-vec/copy-out-of-array-1.rs +tests/ui/array-slice-vec/destructure-array-1.rs +tests/ui/array-slice-vec/empty-mutable-vec.rs +tests/ui/array-slice-vec/estr-slice.rs +tests/ui/array-slice-vec/evec-slice.rs +tests/ui/array-slice-vec/fixed_length_copy.rs +tests/ui/array-slice-vec/huge-largest-array.rs +tests/ui/array-slice-vec/issue-15730.rs +tests/ui/array-slice-vec/issue-18425.rs +tests/ui/array-slice-vec/ivec-pass-by-value.rs +tests/ui/array-slice-vec/mut-vstore-expr.rs +tests/ui/array-slice-vec/mutability-inherits-through-fixed-length-vec.rs +tests/ui/array-slice-vec/mutable-alias-vec.rs +tests/ui/array-slice-vec/nested-vec-1.rs +tests/ui/array-slice-vec/nested-vec-2.rs +tests/ui/array-slice-vec/nested-vec-3.rs +tests/ui/array-slice-vec/new-style-fixed-length-vec.rs +tests/ui/array-slice-vec/rcvr-borrowed-to-slice.rs +tests/ui/array-slice-vec/repeated-vector-syntax.rs +tests/ui/array-slice-vec/show-boxed-slice.rs +tests/ui/array-slice-vec/slice_binary_search.rs +tests/ui/array-slice-vec/slice-of-zero-size-elements.rs +tests/ui/array-slice-vec/slice-panic-1.rs +tests/ui/array-slice-vec/slice-panic-2.rs +tests/ui/array-slice-vec/slice.rs +tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs +tests/ui/array-slice-vec/subslice-patterns-const-eval.rs +tests/ui/array-slice-vec/variance-vec-covariant.rs +tests/ui/array-slice-vec/vec-dst.rs +tests/ui/array-slice-vec/vec-fixed-length.rs +tests/ui/array-slice-vec/vec-late-init.rs +tests/ui/array-slice-vec/vec-macro-rvalue-scope.rs +tests/ui/array-slice-vec/vec-macro-with-brackets.rs +tests/ui/array-slice-vec/vec-macro-with-trailing-comma.rs +tests/ui/array-slice-vec/vec-matching-autoslice.rs +tests/ui/array-slice-vec/vec-matching-fixed.rs +tests/ui/array-slice-vec/vec-matching-fold.rs +tests/ui/array-slice-vec/vec-matching-legal-tail-element-borrow.rs +tests/ui/array-slice-vec/vec-matching.rs +tests/ui/array-slice-vec/vec-repeat-with-cast.rs +tests/ui/array-slice-vec/vec-tail-matching.rs +tests/ui/array-slice-vec/vector-no-ann-2.rs +tests/ui/artificial-block.rs +tests/ui/as-precedence.rs +tests/ui/asm/aarch64/const.rs +tests/ui/asm/aarch64/may_unwind.rs +tests/ui/asm/may_unwind.rs +tests/ui/asm/x86_64/const.rs +tests/ui/asm/x86_64/goto.rs +tests/ui/asm/x86_64/may_unwind.rs +tests/ui/asm/x86_64/multiple-clobber-abi.rs +tests/ui/asm/x86_64/sym.rs +tests/ui/assign-assign.rs +tests/ui/assoc-oddities-3.rs +tests/ui/associated-consts/assoc-const.rs +tests/ui/associated-consts/associated-const-const-eval.rs +tests/ui/associated-consts/associated-const-in-global-const.rs +tests/ui/associated-consts/associated-const-inherent-impl.rs +tests/ui/associated-consts/associated-const-marks-live-code.rs +tests/ui/associated-consts/associated-const-overwrite-default.rs +tests/ui/associated-consts/associated-const-public-impl.rs +tests/ui/associated-consts/associated-const-range-match-patterns.rs +tests/ui/associated-consts/associated-const-resolution-order.rs +tests/ui/associated-consts/associated-const-self-type.rs +tests/ui/associated-consts/associated-const-type-parameters.rs +tests/ui/associated-consts/associated-const-ufcs-infer-trait.rs +tests/ui/associated-consts/associated-const-use-default.rs +tests/ui/associated-consts/associated-const-use-impl-of-same-trait.rs +tests/ui/associated-consts/associated-const.rs +tests/ui/associated-consts/defaults-cyclic-pass.rs +tests/ui/associated-consts/defaults-not-assumed-pass.rs +tests/ui/associated-consts/mismatched_impl_ty_1.rs +tests/ui/associated-consts/mismatched_impl_ty_2.rs +tests/ui/associated-consts/mismatched_impl_ty_3.rs +tests/ui/associated-type-bounds/enum-bounds.rs +tests/ui/associated-type-bounds/rpit.rs +tests/ui/associated-type-bounds/struct-bounds.rs +tests/ui/associated-type-bounds/trait-alias-impl-trait.rs +tests/ui/associated-type-bounds/union-bounds.rs +tests/ui/associated-types/associated-item-long-paths.rs +tests/ui/associated-types/associated-types-basic.rs +tests/ui/associated-types/associated-types-binding-in-trait.rs +tests/ui/associated-types/associated-types-binding-in-where-clause.rs +tests/ui/associated-types/associated-types-bound.rs +tests/ui/associated-types/associated-types-conditional-dispatch.rs +tests/ui/associated-types/associated-types-constant-type.rs +tests/ui/associated-types/associated-types-doubleendediterator-object.rs +tests/ui/associated-types/associated-types-duplicate-binding-in-env-hrtb.rs +tests/ui/associated-types/associated-types-duplicate-binding-in-env.rs +tests/ui/associated-types/associated-types-enum-field-named.rs +tests/ui/associated-types/associated-types-enum-field-numbered.rs +tests/ui/associated-types/associated-types-eq-obj.rs +tests/ui/associated-types/associated-types-from-supertrait.rs +tests/ui/associated-types/associated-types-in-default-method.rs +tests/ui/associated-types/associated-types-in-fn.rs +tests/ui/associated-types/associated-types-in-impl-generics.rs +tests/ui/associated-types/associated-types-in-inherent-method.rs +tests/ui/associated-types/associated-types-issue-20220.rs +tests/ui/associated-types/associated-types-issue-21212.rs +tests/ui/associated-types/associated-types-iterator-binding.rs +tests/ui/associated-types/associated-types-method.rs +tests/ui/associated-types/associated-types-nested-projections.rs +tests/ui/associated-types/associated-types-normalize-unifield-struct.rs +tests/ui/associated-types/associated-types-project-from-type-param-via-bound-in-where.rs +tests/ui/associated-types/associated-types-projection-from-known-type-in-impl.rs +tests/ui/associated-types/associated-types-projection-in-supertrait.rs +tests/ui/associated-types/associated-types-projection-in-where-clause.rs +tests/ui/associated-types/associated-types-ref-from-struct.rs +tests/ui/associated-types/associated-types-ref-in-struct-literal.rs +tests/ui/associated-types/associated-types-region-erasure-issue-20582.rs +tests/ui/associated-types/associated-types-return.rs +tests/ui/associated-types/associated-types-simple.rs +tests/ui/associated-types/associated-types-stream.rs +tests/ui/associated-types/associated-types-struct-field-named.rs +tests/ui/associated-types/associated-types-struct-field-numbered.rs +tests/ui/associated-types/associated-types-sugar-path.rs +tests/ui/associated-types/default-associated-types.rs +tests/ui/associated-types/issue-18655.rs +tests/ui/associated-types/issue-22828.rs +tests/ui/associated-types/issue-23208.rs +tests/ui/associated-types/issue-25339.rs +tests/ui/associated-types/issue-25700-1.rs +tests/ui/associated-types/issue-25700-2.rs +tests/ui/associated-types/issue-27901.rs +tests/ui/associated-types/issue-47139-1.rs +tests/ui/associated-types/issue-47139-2.rs +tests/ui/associated-types/issue-54182-1.rs +tests/ui/associated-types/issue-54467.rs +tests/ui/associated-types/issue-55846.rs +tests/ui/associated-types/object-method-numbering.rs +tests/ui/async-await/context-is-sorta-unwindsafe.rs +tests/ui/attributes/tool_attributes.rs +tests/ui/augmented-assignments-rpass.rs +tests/ui/auto-instantiate.rs +tests/ui/auto-traits/auto-is-contextual.rs +tests/ui/auto-traits/auto-traits.rs +tests/ui/autoref-autoderef/auto-ref-bounded-ty-param.rs +tests/ui/autoref-autoderef/auto-ref-sliceable.rs +tests/ui/autoref-autoderef/auto-ref.rs +tests/ui/autoref-autoderef/autoderef-and-borrow-method-receiver.rs +tests/ui/autoref-autoderef/autoderef-method-on-trait.rs +tests/ui/autoref-autoderef/autoderef-method-priority.rs +tests/ui/autoref-autoderef/autoderef-method-twice-but-not-thrice.rs +tests/ui/autoref-autoderef/autoderef-method-twice.rs +tests/ui/autoref-autoderef/autoderef-method.rs +tests/ui/autoref-autoderef/autoderef-privacy.rs +tests/ui/autoref-autoderef/autoref-intermediate-types-issue-3585.rs +tests/ui/backtrace/apple-no-dsymutil.rs +tests/ui/backtrace/backtrace.rs +tests/ui/backtrace/std-backtrace.rs +tests/ui/backtrace/synchronized-panic-handler.rs +tests/ui/bare-fn-implements-fn-mut.rs +tests/ui/bare-static-string.rs +tests/ui/bench/issue-32062.rs +tests/ui/big-literals.rs +tests/ui/bind-by-move.rs +tests/ui/binding/bind-field-short-with-modifiers.rs +tests/ui/binding/borrowed-ptr-pattern-2.rs +tests/ui/binding/borrowed-ptr-pattern-3.rs +tests/ui/binding/borrowed-ptr-pattern-infallible.rs +tests/ui/binding/borrowed-ptr-pattern-option.rs +tests/ui/binding/borrowed-ptr-pattern.rs +tests/ui/binding/empty-types-in-patterns.rs +tests/ui/binding/exhaustive-bool-match-sanity.rs +tests/ui/binding/expr-match-generic-unique1.rs +tests/ui/binding/expr-match-generic-unique2.rs +tests/ui/binding/expr-match-generic.rs +tests/ui/binding/expr-match-panic-all.rs +tests/ui/binding/expr-match-panic.rs +tests/ui/binding/expr-match-unique.rs +tests/ui/binding/expr-match.rs +tests/ui/binding/fat-arrow-match.rs +tests/ui/binding/fn-arg-incomplete-pattern-drop-order.rs +tests/ui/binding/fn-pattern-expected-type-2.rs +tests/ui/binding/fn-pattern-expected-type.rs +tests/ui/binding/func-arg-incomplete-pattern.rs +tests/ui/binding/func-arg-ref-pattern.rs +tests/ui/binding/func-arg-wild-pattern.rs +tests/ui/binding/if-let.rs +tests/ui/binding/inferred-suffix-in-pattern-range.rs +tests/ui/binding/irrefutable-slice-patterns.rs +tests/ui/binding/let-assignability.rs +tests/ui/binding/let-destruct-ref.rs +tests/ui/binding/let-var-hygiene.rs +tests/ui/binding/match-arm-statics.rs +tests/ui/binding/match-beginning-vert.rs +tests/ui/binding/match-borrowed_str.rs +tests/ui/binding/match-bot-2.rs +tests/ui/binding/match-bot.rs +tests/ui/binding/match-byte-array-patterns.rs +tests/ui/binding/match-enum-struct-0.rs +tests/ui/binding/match-enum-struct-1.rs +tests/ui/binding/match-implicit-copy-unique.rs +tests/ui/binding/match-in-macro.rs +tests/ui/binding/match-join.rs +tests/ui/binding/match-larger-const.rs +tests/ui/binding/match-naked-record-expr.rs +tests/ui/binding/match-naked-record.rs +tests/ui/binding/match-pattern-bindings.rs +tests/ui/binding/match-pattern-lit.rs +tests/ui/binding/match-phi.rs +tests/ui/binding/match-pipe-binding.rs +tests/ui/binding/match-range-infer.rs +tests/ui/binding/match-range-static.rs +tests/ui/binding/match-range.rs +tests/ui/binding/match-reassign.rs +tests/ui/binding/match-ref-binding-in-guard-3256.rs +tests/ui/binding/match-ref-binding-mut-option.rs +tests/ui/binding/match-ref-binding-mut.rs +tests/ui/binding/match-ref-binding.rs +tests/ui/binding/match-ref-unsized.rs +tests/ui/binding/match-str.rs +tests/ui/binding/match-struct-0.rs +tests/ui/binding/match-tag.rs +tests/ui/binding/match-unique-bind.rs +tests/ui/binding/match-unsized.rs +tests/ui/binding/match-value-binding-in-guard-3291.rs +tests/ui/binding/match-var-hygiene.rs +tests/ui/binding/match-vec-alternatives.rs +tests/ui/binding/match-vec-rvalue.rs +tests/ui/binding/match-with-ret-arm.rs +tests/ui/binding/multi-let.rs +tests/ui/binding/mut-in-ident-patterns.rs +tests/ui/binding/nested-matchs.rs +tests/ui/binding/nested-pattern.rs +tests/ui/binding/nil-pattern.rs +tests/ui/binding/nullary-or-pattern.rs +tests/ui/binding/optional_comma_in_match_arm.rs +tests/ui/binding/or-pattern.rs +tests/ui/binding/order-drop-with-match.rs +tests/ui/binding/pat-ranges.rs +tests/ui/binding/pat-tuple-1.rs +tests/ui/binding/pat-tuple-2.rs +tests/ui/binding/pat-tuple-3.rs +tests/ui/binding/pat-tuple-4.rs +tests/ui/binding/pat-tuple-5.rs +tests/ui/binding/pat-tuple-6.rs +tests/ui/binding/pat-tuple-7.rs +tests/ui/binding/pattern-bound-var-in-for-each.rs +tests/ui/binding/pattern-in-closure.rs +tests/ui/binding/range-inclusive-pattern-precedence.rs +tests/ui/binding/shadow.rs +tests/ui/binding/simple-generic-match.rs +tests/ui/binding/use-uninit-match.rs +tests/ui/binding/use-uninit-match2.rs +tests/ui/binding/zero_sized_subslice_match.rs +tests/ui/binop/binary-minus-without-space.rs +tests/ui/binop/binary-op-on-fn-ptr-eq.rs +tests/ui/binop/binops-issue-22743.rs +tests/ui/binop/binops.rs +tests/ui/binop/issue-25916.rs +tests/ui/binop/operator-multidispatch.rs +tests/ui/binop/operator-overloading.rs +tests/ui/binop/structured-compare.rs +tests/ui/bitwise.rs +tests/ui/borrow-by-val-method-receiver.rs +tests/ui/borrowck/borrowck-assign-to-subfield.rs +tests/ui/borrowck/borrowck-binding-mutbl.rs +tests/ui/borrowck/borrowck-borrow-from-expr-block.rs +tests/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs +tests/ui/borrowck/borrowck-box-sensitivity.rs +tests/ui/borrowck/borrowck-closures-slice-patterns-ok.rs +tests/ui/borrowck/borrowck-closures-two-imm.rs +tests/ui/borrowck/borrowck-field-sensitivity-rpass.rs +tests/ui/borrowck/borrowck-fixed-length-vecs.rs +tests/ui/borrowck/borrowck-freeze-frozen-mut.rs +tests/ui/borrowck/borrowck-lend-args.rs +tests/ui/borrowck/borrowck-move-by-capture-ok.rs +tests/ui/borrowck/borrowck-multiple-borrows-interior-boxes.rs +tests/ui/borrowck/borrowck-mut-uniq.rs +tests/ui/borrowck/borrowck-mut-vec-as-imm-slice.rs +tests/ui/borrowck/borrowck-pat-enum.rs +tests/ui/borrowck/borrowck-pat-reassign-no-binding.rs +tests/ui/borrowck/borrowck-rvalues-mutable.rs +tests/ui/borrowck/borrowck-scope-of-deref-issue-4666.rs +tests/ui/borrowck/borrowck-slice-pattern-element-loan-rpass.rs +tests/ui/borrowck/borrowck-static-item-in-fn.rs +tests/ui/borrowck/borrowck-trait-lifetime.rs +tests/ui/borrowck/borrowck-uniq-via-ref.rs +tests/ui/borrowck/borrowck-univariant-enum.rs +tests/ui/borrowck/borrowck-unsafe-static-mutable-borrows.rs +tests/ui/borrowck/borrowck-unused-mut-locals.rs +tests/ui/borrowck/borrowck-use-mut-borrow-rpass.rs +tests/ui/borrowck/fsu-moves-and-copies.rs +tests/ui/borrowck/issue-23338-params-outlive-temps-of-body.rs +tests/ui/borrowck/issue-29166.rs +tests/ui/borrowck/issue-46095.rs +tests/ui/borrowck/issue-51348-multi-ref-mut-in-guard.rs +tests/ui/borrowck/issue-52967-edition-2018-needs-two-phase-borrows.rs +tests/ui/borrowck/lazy-init.rs +tests/ui/borrowck/two-phase-baseline.rs +tests/ui/borrowck/two-phase-bin-ops.rs +tests/ui/borrowck/two-phase-control-flow-split-before-activation.rs +tests/ui/borrowck/two-phase-method-receivers.rs +tests/ui/borrowck/two-phase-multiple-activations.rs +tests/ui/box/alloc-unstable.rs +tests/ui/box/into-boxed-slice.rs +tests/ui/box/new-box-syntax.rs +tests/ui/box/new-box.rs +tests/ui/box/new.rs +tests/ui/box/unit/expr-block-generic-unique1.rs +tests/ui/box/unit/expr-block-generic-unique2.rs +tests/ui/box/unit/expr-if-unique.rs +tests/ui/box/unit/unique-assign-copy.rs +tests/ui/box/unit/unique-assign-drop.rs +tests/ui/box/unit/unique-assign-generic.rs +tests/ui/box/unit/unique-assign.rs +tests/ui/box/unit/unique-autoderef-field.rs +tests/ui/box/unit/unique-autoderef-index.rs +tests/ui/box/unit/unique-cmp.rs +tests/ui/box/unit/unique-containing-tag.rs +tests/ui/box/unit/unique-create.rs +tests/ui/box/unit/unique-decl-init-copy.rs +tests/ui/box/unit/unique-decl-init.rs +tests/ui/box/unit/unique-decl-move.rs +tests/ui/box/unit/unique-decl.rs +tests/ui/box/unit/unique-deref.rs +tests/ui/box/unit/unique-destructure.rs +tests/ui/box/unit/unique-drop-complex.rs +tests/ui/box/unit/unique-ffi-symbols.rs +tests/ui/box/unit/unique-fn-arg-move.rs +tests/ui/box/unit/unique-fn-arg-mut.rs +tests/ui/box/unit/unique-fn-arg.rs +tests/ui/box/unit/unique-fn-ret.rs +tests/ui/box/unit/unique-in-tag.rs +tests/ui/box/unit/unique-in-vec-copy.rs +tests/ui/box/unit/unique-in-vec.rs +tests/ui/box/unit/unique-init.rs +tests/ui/box/unit/unique-kinds.rs +tests/ui/box/unit/unique-log.rs +tests/ui/box/unit/unique-move-drop.rs +tests/ui/box/unit/unique-move-temp.rs +tests/ui/box/unit/unique-move.rs +tests/ui/box/unit/unique-mutable.rs +tests/ui/box/unit/unique-object-move.rs +tests/ui/box/unit/unique-pat-2.rs +tests/ui/box/unit/unique-pat-3.rs +tests/ui/box/unit/unique-pat.rs +tests/ui/box/unit/unique-rec.rs +tests/ui/box/unit/unique-send-2.rs +tests/ui/box/unit/unique-send.rs +tests/ui/box/unit/unique-swap.rs +tests/ui/box/unit/unwind-unique.rs +tests/ui/builtin-clone-unwind.rs +tests/ui/builtin-superkinds/builtin-superkinds-capabilities-transitive.rs +tests/ui/builtin-superkinds/builtin-superkinds-capabilities.rs +tests/ui/cancel-clean-via-immediate-rvalue-ref.rs +tests/ui/cast/cast-does-fallback.rs +tests/ui/cast/cast-region-to-uint.rs +tests/ui/cast/cast-rfc0401-vtable-kinds.rs +tests/ui/cast/cast-rfc0401.rs +tests/ui/cast/cast-to-infer-ty.rs +tests/ui/cast/cast.rs +tests/ui/cast/fat-ptr-cast-rpass.rs +tests/ui/cast/supported-cast.rs +tests/ui/catch-unwind-bang.rs +tests/ui/cfg/cfg_stmt_expr.rs +tests/ui/cfg/cfg-macros-foo.rs +tests/ui/cfg/cfg-macros-notfoo.rs +tests/ui/cfg/cfg-target-abi.rs +tests/ui/cfg/cfg-target-compact.rs +tests/ui/cfg/cfg-target-vendor.rs +tests/ui/cfg/conditional-compile.rs +tests/ui/cfg/true-false.rs +tests/ui/cfguard-run.rs +tests/ui/char.rs +tests/ui/cleanup-rvalue-for-scope.rs +tests/ui/cleanup-rvalue-scopes.rs +tests/ui/cleanup-rvalue-temp-during-incomplete-alloc.rs +tests/ui/cleanup-shortcircuit.rs +tests/ui/close-over-big-then-small-data.rs +tests/ui/closures/2229_closure_analysis/match/issue-87097.rs +tests/ui/closures/2229_closure_analysis/match/issue-87426.rs +tests/ui/closures/2229_closure_analysis/match/issue-87988.rs +tests/ui/closures/2229_closure_analysis/migrations/insignificant_drop_attr_no_migrations.rs +tests/ui/closures/2229_closure_analysis/migrations/issue-78720.rs +tests/ui/closures/2229_closure_analysis/migrations/no_migrations.rs +tests/ui/closures/2229_closure_analysis/migrations/precise_no_migrations.rs +tests/ui/closures/2229_closure_analysis/migrations/unpin_no_migration.rs +tests/ui/closures/2229_closure_analysis/preserve_field_drop_order2.rs +tests/ui/closures/2229_closure_analysis/run_pass/by_value.rs +tests/ui/closures/2229_closure_analysis/run_pass/disjoint-capture-in-same-closure.rs +tests/ui/closures/2229_closure_analysis/run_pass/fru_syntax.rs +tests/ui/closures/2229_closure_analysis/run_pass/issue-88372.rs +tests/ui/closures/2229_closure_analysis/run_pass/move_closure.rs +tests/ui/closures/2229_closure_analysis/run_pass/multilevel-path-3.rs +tests/ui/closures/2229_closure_analysis/run_pass/mut_ref_struct_mem.rs +tests/ui/closures/2229_closure_analysis/run_pass/mut_ref.rs +tests/ui/closures/2229_closure_analysis/run_pass/unsafe_ptr.rs +tests/ui/closures/closure_no_cap_coerce_many_run_pass.rs +tests/ui/closures/closure_no_cap_coerce_many_unsafe_1.rs +tests/ui/closures/issue-10682.rs +tests/ui/closures/issue-1460.rs +tests/ui/closures/issue-22864-1.rs +tests/ui/closures/issue-22864-2.rs +tests/ui/closures/issue-42463.rs +tests/ui/closures/issue-5239-2.rs +tests/ui/closures/issue-868.rs +tests/ui/closures/old-closure-arg-call-as.rs +tests/ui/closures/old-closure-arg.rs +tests/ui/closures/old-closure-explicit-types.rs +tests/ui/closures/old-closure-expr-precedence.rs +tests/ui/closures/old-closure-fn-coerce.rs +tests/ui/closures/old-closure-iter-1.rs +tests/ui/closures/old-closure-iter-2.rs +tests/ui/closures/once-move-out-on-heap.rs +tests/ui/closures/semistatement-in-lambda.rs +tests/ui/codegen/equal-pointers-unequal/as-cast/basic.rs +tests/ui/codegen/equal-pointers-unequal/as-cast/function.rs +tests/ui/codegen/equal-pointers-unequal/as-cast/inline1.rs +tests/ui/codegen/equal-pointers-unequal/as-cast/inline2.rs +tests/ui/codegen/equal-pointers-unequal/as-cast/print.rs +tests/ui/codegen/equal-pointers-unequal/as-cast/print3.rs +tests/ui/codegen/equal-pointers-unequal/as-cast/segfault.rs +tests/ui/codegen/equal-pointers-unequal/as-cast/zero.rs +tests/ui/codegen/equal-pointers-unequal/exposed-provenance/basic.rs +tests/ui/codegen/equal-pointers-unequal/exposed-provenance/function.rs +tests/ui/codegen/equal-pointers-unequal/exposed-provenance/inline1.rs +tests/ui/codegen/equal-pointers-unequal/exposed-provenance/inline2.rs +tests/ui/codegen/equal-pointers-unequal/exposed-provenance/print.rs +tests/ui/codegen/equal-pointers-unequal/exposed-provenance/print3.rs +tests/ui/codegen/equal-pointers-unequal/exposed-provenance/segfault.rs +tests/ui/codegen/equal-pointers-unequal/exposed-provenance/zero.rs +tests/ui/codegen/equal-pointers-unequal/strict-provenance/basic.rs +tests/ui/codegen/equal-pointers-unequal/strict-provenance/function.rs +tests/ui/codegen/equal-pointers-unequal/strict-provenance/inline1.rs +tests/ui/codegen/equal-pointers-unequal/strict-provenance/inline2.rs +tests/ui/codegen/equal-pointers-unequal/strict-provenance/print.rs +tests/ui/codegen/equal-pointers-unequal/strict-provenance/print3.rs +tests/ui/codegen/equal-pointers-unequal/strict-provenance/segfault.rs +tests/ui/codegen/equal-pointers-unequal/strict-provenance/zero.rs +tests/ui/codegen/init-large-type.rs +tests/ui/codegen/issue-101585-128bit-repeat.rs +tests/ui/codegen/issue-16602-1.rs +tests/ui/codegen/issue-16602-2.rs +tests/ui/codegen/issue-16602-3.rs +tests/ui/codegen/issue-27859.rs +tests/ui/codegen/issue-28950.rs +tests/ui/codegen/issue-55976.rs +tests/ui/codegen/issue-63787.rs +tests/ui/codegen/issue-79865-llvm-miscompile.rs +tests/ui/codegen/issue-82833-slice-miscompile.rs +tests/ui/codegen/issue-82859-slice-miscompile.rs +tests/ui/codegen/subtyping-impacts-selection-1.rs +tests/ui/codegen/subtyping-impacts-selection-2.rs +tests/ui/coercion/coerce-expect-unsized.rs +tests/ui/coercion/coerce-reborrow-imm-ptr-rcvr.rs +tests/ui/coercion/coerce-reborrow-imm-vec-rcvr.rs +tests/ui/coercion/coerce-reborrow-mut-ptr-arg.rs +tests/ui/coercion/coerce-reborrow-mut-ptr-rcvr.rs +tests/ui/coercion/coerce-reborrow-mut-vec-arg.rs +tests/ui/coercion/coerce-reborrow-mut-vec-rcvr.rs +tests/ui/coercion/coerce-unify-return.rs +tests/ui/coercion/coerce-unify.rs +tests/ui/coercion/issue-14589.rs +tests/ui/coercion/issue-26905-rpass.rs +tests/ui/coercion/issue-3794.rs +tests/ui/coercion/unsafe-coercion.rs +tests/ui/coherence/coherence-impl-in-fn.rs +tests/ui/coherence/coherence-rfc447-constrained.rs +tests/ui/coherence/coherence-where-clause.rs +tests/ui/command/command-argv0.rs +tests/ui/command/command-current-dir.rs +tests/ui/command/command-exec.rs +tests/ui/command/command-pre-exec.rs +tests/ui/command/command-setgroups.rs +tests/ui/command/command-uid-gid.rs +tests/ui/command/issue-10626.rs +tests/ui/compiletest-self-test/test-aux-bin.rs +tests/ui/complex.rs +tests/ui/const_prop/apfloat-f64-roundtrip.rs +tests/ui/const_prop/apfloat-remainder-regression.rs +tests/ui/const_prop/const-prop-ice3.rs +tests/ui/const_prop/dont-propagate-generic-instance-2.rs +tests/ui/const_prop/overwrite_with_const_with_params.rs +tests/ui/const-generics/array-wrapper-struct-ctor.rs +tests/ui/const-generics/coerce_unsized_array.rs +tests/ui/const-generics/concrete-const-as-fn-arg.rs +tests/ui/const-generics/concrete-const-impl-method.rs +tests/ui/const-generics/const-arg-in-fn.rs +tests/ui/const-generics/const-fn-with-const-param.rs +tests/ui/const-generics/const-generic-type_name.rs +tests/ui/const-generics/core-types.rs +tests/ui/const-generics/defaults/complex-unord-param.rs +tests/ui/const-generics/defaults/const-default.rs +tests/ui/const-generics/defaults/const-param-as-default-value.rs +tests/ui/const-generics/defaults/const-param-in-ty-defaults.rs +tests/ui/const-generics/defaults/rp_impl_trait.rs +tests/ui/const-generics/defaults/trait_objects.rs +tests/ui/const-generics/dyn-supertraits.rs +tests/ui/const-generics/early/const-param-hygiene.rs +tests/ui/const-generics/generic_arg_infer/array-repeat-expr.rs +tests/ui/const-generics/generic_arg_infer/dont-use-defaults.rs +tests/ui/const-generics/generic_const_exprs/associated-consts.rs +tests/ui/const-generics/generic_const_exprs/division.rs +tests/ui/const-generics/generic_const_exprs/dyn-compatibility-ok.rs +tests/ui/const-generics/generic_const_exprs/elaborate-trait-pred.rs +tests/ui/const-generics/generic_const_exprs/fn_call.rs +tests/ui/const-generics/generic_const_exprs/from-sig.rs +tests/ui/const-generics/generic_const_exprs/infer-too-generic.rs +tests/ui/const-generics/generic_const_exprs/issue-73899.rs +tests/ui/const-generics/generic_const_exprs/less_than.rs +tests/ui/const-generics/generic_const_exprs/nested_uneval_unification-1.rs +tests/ui/const-generics/generic_const_exprs/nested_uneval_unification-2.rs +tests/ui/const-generics/generic_const_exprs/nested-abstract-consts-1.rs +tests/ui/const-generics/generic_const_exprs/nested-abstract-consts-2.rs +tests/ui/const-generics/generic_const_exprs/subexprs_are_const_evalutable.rs +tests/ui/const-generics/generic_const_exprs/unop.rs +tests/ui/const-generics/impl-const-generic-struct.rs +tests/ui/const-generics/infer_arg_from_pat.rs +tests/ui/const-generics/inhabited-assoc-ty-ice-1.rs +tests/ui/const-generics/inhabited-assoc-ty-ice-2.rs +tests/ui/const-generics/issue-102124.rs +tests/ui/const-generics/issues/issue-61432.rs +tests/ui/const-generics/issues/issue-62187-encountered-polymorphic-const.rs +tests/ui/const-generics/issues/issue-69654-run-pass.rs +tests/ui/const-generics/issues/issue-70125-1.rs +tests/ui/const-generics/issues/issue-70125-2.rs +tests/ui/const-generics/issues/issue-75299.rs +tests/ui/const-generics/min_const_generics/const_fn_in_generics.rs +tests/ui/const-generics/min_const_generics/inferred_const.rs +tests/ui/const-generics/min_const_generics/macro.rs +tests/ui/const-generics/min_const_generics/type_and_const_defaults.rs +tests/ui/const-generics/promotion.rs +tests/ui/const-generics/slice-const-param.rs +tests/ui/const-generics/transmute.rs +tests/ui/const-generics/type_of_anon_const.rs +tests/ui/const-generics/type-dependent/const-arg-in-const-arg.rs +tests/ui/const-generics/type-dependent/issue-61936.rs +tests/ui/const-generics/type-dependent/issue-63695.rs +tests/ui/const-generics/type-dependent/issue-69816.rs +tests/ui/const-generics/type-dependent/issue-70507.rs +tests/ui/const-generics/type-dependent/issue-71805.rs +tests/ui/const-generics/type-dependent/qpath.rs +tests/ui/const-generics/type-dependent/simple.rs +tests/ui/const-generics/uninferred-consts-during-codegen-1.rs +tests/ui/const-generics/uninferred-consts-during-codegen-2.rs +tests/ui/consts/assoc-const.rs +tests/ui/consts/bswap-const.rs +tests/ui/consts/cast-discriminant-zst-enum.rs +tests/ui/consts/check_const-feature-gated.rs +tests/ui/consts/const_constructor/const_constructor_qpath.rs +tests/ui/consts/const_constructor/const-construct-call.rs +tests/ui/consts/const_discriminant.rs +tests/ui/consts/const_fn_unsize.rs +tests/ui/consts/const_in_pattern/accept_structural.rs +tests/ui/consts/const_in_pattern/custom-eq-branch-pass.rs +tests/ui/consts/const_in_pattern/issue-62614.rs +tests/ui/consts/const_in_pattern/issue-73431.rs +tests/ui/consts/const_in_pattern/null-raw-ptr-issue-119270.rs +tests/ui/consts/const_let_eq_float.rs +tests/ui/consts/const_let_eq.rs +tests/ui/consts/const_let_promote.rs +tests/ui/consts/const_refs_to_static.rs +tests/ui/consts/const_unsafe_unreachable.rs +tests/ui/consts/const-adt-align-mismatch.rs +tests/ui/consts/const-autoderef.rs +tests/ui/consts/const-big-enum.rs +tests/ui/consts/const-binops.rs +tests/ui/consts/const-bitshift-rhs-inference.rs +tests/ui/consts/const-block-item-macro-codegen.rs +tests/ui/consts/const-block-item.rs +tests/ui/consts/const-block-non-item-statement-3.rs +tests/ui/consts/const-block-non-item-statement-rpass.rs +tests/ui/consts/const-block.rs +tests/ui/consts/const-blocks/const-repeat.rs +tests/ui/consts/const-blocks/run-pass.rs +tests/ui/consts/const-bound.rs +tests/ui/consts/const-byte-str-cast.rs +tests/ui/consts/const-cast-ptr-int.rs +tests/ui/consts/const-cast.rs +tests/ui/consts/const-compare-bytes.rs +tests/ui/consts/const-const.rs +tests/ui/consts/const-contents.rs +tests/ui/consts/const-deref.rs +tests/ui/consts/const-endianess.rs +tests/ui/consts/const-enum-byref-self.rs +tests/ui/consts/const-enum-byref.rs +tests/ui/consts/const-enum-cast.rs +tests/ui/consts/const-enum-ptr.rs +tests/ui/consts/const-enum-struct.rs +tests/ui/consts/const-enum-struct2.rs +tests/ui/consts/const-enum-structlike.rs +tests/ui/consts/const-enum-tuple.rs +tests/ui/consts/const-enum-tuple2.rs +tests/ui/consts/const-enum-tuplestruct.rs +tests/ui/consts/const-enum-tuplestruct2.rs +tests/ui/consts/const-enum-vec-index.rs +tests/ui/consts/const-enum-vec-ptr.rs +tests/ui/consts/const-enum-vector.rs +tests/ui/consts/const-err-rpass.rs +tests/ui/consts/const-eval/enum_discr.rs +tests/ui/consts/const-eval/float_methods.rs +tests/ui/consts/const-eval/heap/alloc_intrinsic_nontransient.rs +tests/ui/consts/const-eval/heap/alloc_intrinsic_transient.rs +tests/ui/consts/const-eval/heap/alloc_intrinsic_zero_sized.rs +tests/ui/consts/const-eval/heap/dealloc_intrinsic_zero_sized.rs +tests/ui/consts/const-eval/heap/dealloc_intrinsic.rs +tests/ui/consts/const-eval/issue-64908.rs +tests/ui/consts/const-eval/issue-64970.rs +tests/ui/consts/const-eval/nrvo.rs +tests/ui/consts/const-eval/simd/insert_extract.rs +tests/ui/consts/const-eval/strlen.rs +tests/ui/consts/const-eval/write-to-uninhabited-enum-variant.rs +tests/ui/consts/const-expr-in-fixed-length-vec.rs +tests/ui/consts/const-expr-in-vec-repeat.rs +tests/ui/consts/const-extern-fn/const-extern-fn.rs +tests/ui/consts/const-extern-function.rs +tests/ui/consts/const-fields-and-indexing.rs +tests/ui/consts/const-fn-method.rs +tests/ui/consts/const-fn-nested.rs +tests/ui/consts/const-fn-type-name-any.rs +tests/ui/consts/const-fn-type-name.rs +tests/ui/consts/const-fn-val.rs +tests/ui/consts/const-fn.rs +tests/ui/consts/const-index-feature-gate.rs +tests/ui/consts/const-int-arithmetic.rs +tests/ui/consts/const-int-conversion-rpass.rs +tests/ui/consts/const-int-overflowing-rpass.rs +tests/ui/consts/const-int-pow-rpass.rs +tests/ui/consts/const-int-rotate-rpass.rs +tests/ui/consts/const-int-saturating-arith.rs +tests/ui/consts/const-int-sign-rpass.rs +tests/ui/consts/const-int-wrapping-rpass.rs +tests/ui/consts/const-meth-pattern.rs +tests/ui/consts/const-needs_drop.rs +tests/ui/consts/const-negation.rs +tests/ui/consts/const-negative.rs +tests/ui/consts/const-nullary-enum.rs +tests/ui/consts/const-nullary-univariant-enum.rs +tests/ui/consts/const-pattern-variant.rs +tests/ui/consts/const-ptr-nonnull-rpass.rs +tests/ui/consts/const-ptr-unique-rpass.rs +tests/ui/consts/const-rec-and-tup.rs +tests/ui/consts/const-region-ptrs-noncopy.rs +tests/ui/consts/const-region-ptrs.rs +tests/ui/consts/const-repeated-values.rs +tests/ui/consts/const-size_of_val-align_of_val.rs +tests/ui/consts/const-size_of-align_of.rs +tests/ui/consts/const-struct.rs +tests/ui/consts/const-tuple-struct.rs +tests/ui/consts/const-typeid-of-rpass.rs +tests/ui/consts/const-unit-struct.rs +tests/ui/consts/const-unsafe-fn.rs +tests/ui/consts/const-variant-count.rs +tests/ui/consts/const-vec-of-fns.rs +tests/ui/consts/const-vec-syntax.rs +tests/ui/consts/const-vecs-and-slices.rs +tests/ui/consts/const.rs +tests/ui/consts/consts-in-patterns.rs +tests/ui/consts/control-flow/basics.rs +tests/ui/consts/control-flow/short-circuit-let.rs +tests/ui/consts/control-flow/short-circuit.rs +tests/ui/consts/deref_in_pattern.rs +tests/ui/consts/ice-48279.rs +tests/ui/consts/is_val_statically_known.rs +tests/ui/consts/issue-105536-const-val-roundtrip-ptr-eq.rs +tests/ui/consts/issue-13902.rs +tests/ui/consts/issue-17074.rs +tests/ui/consts/issue-17718-borrow-interior.rs +tests/ui/consts/issue-17756.rs +tests/ui/consts/issue-19244.rs +tests/ui/consts/issue-21721.rs +tests/ui/consts/issue-23833.rs +tests/ui/consts/issue-23968-const-not-overflow.rs +tests/ui/consts/issue-27890.rs +tests/ui/consts/issue-29914-2.rs +tests/ui/consts/issue-29914-3.rs +tests/ui/consts/issue-29914.rs +tests/ui/consts/issue-29927-1.rs +tests/ui/consts/issue-29927.rs +tests/ui/consts/issue-33537.rs +tests/ui/consts/issue-37222.rs +tests/ui/consts/issue-37991.rs +tests/ui/consts/issue-44255.rs +tests/ui/consts/issue-46553.rs +tests/ui/consts/issue-58435-ice-with-assoc-const.rs +tests/ui/consts/issue-64059.rs +tests/ui/consts/issue-66345.rs +tests/ui/consts/issue-67529.rs +tests/ui/consts/issue-67640.rs +tests/ui/consts/issue-67641.rs +tests/ui/consts/issue-67862.rs +tests/ui/consts/issue-69532.rs +tests/ui/consts/issue-70773-mir-typeck-lt-norm.rs +tests/ui/consts/issue-90762.rs +tests/ui/consts/issue-broken-mir.rs +tests/ui/consts/load-preserves-partial-init.rs +tests/ui/consts/locals-in-const-fn.rs +tests/ui/consts/match-const-fn-structs.rs +tests/ui/consts/min_const_fn/allow_const_fn_ptr_run_pass.rs +tests/ui/consts/miri_unleashed/slice_eq.rs +tests/ui/consts/mozjs-error.rs +tests/ui/consts/mut-ptr-to-static.rs +tests/ui/consts/non-scalar-cast.rs +tests/ui/consts/offset_from.rs +tests/ui/consts/offset.rs +tests/ui/consts/packed_pattern.rs +tests/ui/consts/packed_pattern2.rs +tests/ui/consts/promote_borrowed_field.rs +tests/ui/consts/promoted_const_call4.rs +tests/ui/consts/promotion-mutable-ref.rs +tests/ui/consts/references.rs +tests/ui/consts/repeat_match.rs +tests/ui/consts/return-in-const-fn.rs +tests/ui/consts/rvalue-static-promotion.rs +tests/ui/consts/signed_enum_discr.rs +tests/ui/consts/static-mut-refs.rs +tests/ui/consts/static-raw-pointer-interning.rs +tests/ui/consts/static-raw-pointer-interning2.rs +tests/ui/consts/std/iter.rs +tests/ui/consts/trait_specialization.rs +tests/ui/consts/transmute-const.rs +tests/ui/consts/tuple-struct-constructors.rs +tests/ui/consts/write_to_mut_ref_dest.rs +tests/ui/consts/zst_no_llvm_alloc.rs +tests/ui/coroutine/addassign-yield.rs +tests/ui/coroutine/borrow-in-tail-expr.rs +tests/ui/coroutine/conditional-drop.rs +tests/ui/coroutine/control-flow.rs +tests/ui/coroutine/discriminant.rs +tests/ui/coroutine/drop-and-replace.rs +tests/ui/coroutine/drop-env.rs +tests/ui/coroutine/drop-track-addassign-yield.rs +tests/ui/coroutine/issue-44197.rs +tests/ui/coroutine/issue-52398.rs +tests/ui/coroutine/issue-57084.rs +tests/ui/coroutine/issue-58888.rs +tests/ui/coroutine/issue-69039.rs +tests/ui/coroutine/iterator-count.rs +tests/ui/coroutine/live-upvar-across-yield.rs +tests/ui/coroutine/match-bindings.rs +tests/ui/coroutine/nested_coroutine.rs +tests/ui/coroutine/niche-in-coroutine.rs +tests/ui/coroutine/non-static-is-unpin.rs +tests/ui/coroutine/overlap-locals.rs +tests/ui/coroutine/panic-drops-resume.rs +tests/ui/coroutine/panic-drops.rs +tests/ui/coroutine/panic-safe.rs +tests/ui/coroutine/pin-box-coroutine.rs +tests/ui/coroutine/resume-after-return.rs +tests/ui/coroutine/resume-arg-size.rs +tests/ui/coroutine/resume-live-across-yield.rs +tests/ui/coroutine/size-moved-locals.rs +tests/ui/coroutine/smoke-resume-args.rs +tests/ui/coroutine/static-coroutine.rs +tests/ui/coroutine/too-live-local-in-immovable-gen.rs +tests/ui/coroutine/uninhabited-field.rs +tests/ui/coroutine/yield-in-initializer.rs +tests/ui/crate-leading-sep.rs +tests/ui/debuginfo/issue-105386-debuginfo-ub.rs +tests/ui/debuginfo/msvc-strip-debuginfo.rs +tests/ui/debuginfo/msvc-strip-symbols.rs +tests/ui/deep.rs +tests/ui/default-method-simple.rs +tests/ui/delegation/explicit-paths-in-traits-pass.rs +tests/ui/delegation/explicit-paths-pass.rs +tests/ui/delegation/explicit-paths-signature-pass.rs +tests/ui/delegation/generics/free-fn-to-free-fn-pass.rs +tests/ui/delegation/generics/free-fn-to-trait-method-pass.rs +tests/ui/delegation/generics/impl-to-free-fn-pass.rs +tests/ui/delegation/generics/impl-trait-to-trait-method-pass.rs +tests/ui/delegation/generics/inherent-impl-to-trait-method-pass.rs +tests/ui/delegation/generics/trait-method-to-other-pass.rs +tests/ui/delegation/method-call-priority.rs +tests/ui/delegation/self-coercion.rs +tests/ui/delegation/target-expr-pass.rs +tests/ui/deprecation/deprecated-macro_escape-inner.rs +tests/ui/deref-patterns/basic.rs +tests/ui/deref-rc.rs +tests/ui/deref.rs +tests/ui/derives/derive-Debug-use-ufcs-struct.rs +tests/ui/derives/derive-Debug-use-ufcs-tuple.rs +tests/ui/derives/derive-partial-ord.rs +tests/ui/deriving/derive-partialord-correctness.rs +tests/ui/deriving/deriving-associated-types.rs +tests/ui/deriving/deriving-clone-enum.rs +tests/ui/deriving/deriving-clone-generic-enum.rs +tests/ui/deriving/deriving-clone-generic-struct.rs +tests/ui/deriving/deriving-clone-generic-tuple-struct.rs +tests/ui/deriving/deriving-cmp-generic-enum.rs +tests/ui/deriving/deriving-cmp-generic-struct-enum.rs +tests/ui/deriving/deriving-cmp-generic-struct.rs +tests/ui/deriving/deriving-cmp-generic-tuple-struct.rs +tests/ui/deriving/deriving-cmp-shortcircuit.rs +tests/ui/deriving/deriving-coerce-pointee.rs +tests/ui/deriving/deriving-copyclone.rs +tests/ui/deriving/deriving-default-box.rs +tests/ui/deriving/deriving-default-enum.rs +tests/ui/deriving/deriving-eq-ord-boxed-slice.rs +tests/ui/deriving/deriving-hash.rs +tests/ui/deriving/deriving-in-fn.rs +tests/ui/deriving/deriving-meta-multiple.rs +tests/ui/deriving/deriving-meta.rs +tests/ui/deriving/deriving-self-lifetime-totalord-totaleq.rs +tests/ui/deriving/deriving-show-2.rs +tests/ui/deriving/deriving-show.rs +tests/ui/deriving/deriving-via-extension-c-enum.rs +tests/ui/deriving/deriving-via-extension-enum.rs +tests/ui/deriving/deriving-via-extension-struct-empty.rs +tests/ui/deriving/deriving-via-extension-struct-like-enum-variant.rs +tests/ui/deriving/deriving-via-extension-struct-tuple.rs +tests/ui/deriving/deriving-via-extension-struct.rs +tests/ui/deriving/deriving-via-extension-type-params.rs +tests/ui/deriving/deriving-with-repr-packed.rs +tests/ui/deriving/issue-15689-1.rs +tests/ui/deriving/issue-19358.rs +tests/ui/deriving/issue-3935.rs +tests/ui/dest-prop/skeptic-miscompile.rs +tests/ui/destructuring-assignment/drop-order.rs +tests/ui/destructuring-assignment/nested_destructure.rs +tests/ui/destructuring-assignment/slice_destructure.rs +tests/ui/destructuring-assignment/struct_destructure.rs +tests/ui/destructuring-assignment/tuple_destructure.rs +tests/ui/destructuring-assignment/tuple_struct_destructure.rs +tests/ui/destructuring-assignment/warn-unused-duplication.rs +tests/ui/diverging-fallback-method-chain.rs +tests/ui/diverging-fallback-option.rs +tests/ui/drop-bounds/drop-bounds-impl-drop.rs +tests/ui/drop/drop_order_if_let_rescope.rs +tests/ui/drop/drop_order.rs +tests/ui/drop/drop-on-empty-block-exit.rs +tests/ui/drop/drop-on-ret.rs +tests/ui/drop/drop-struct-as-object.rs +tests/ui/drop/drop-trait-enum.rs +tests/ui/drop/drop-trait-generic.rs +tests/ui/drop/drop-trait.rs +tests/ui/drop/drop-with-type-ascription-1.rs +tests/ui/drop/drop-with-type-ascription-2.rs +tests/ui/drop/dropck_legal_cycles.rs +tests/ui/drop/dropck-eyepatch-reorder.rs +tests/ui/drop/dropck-eyepatch.rs +tests/ui/drop/dynamic-drop.rs +tests/ui/drop/issue-21486.rs +tests/ui/drop/issue-23338-ensure-param-drop-order.rs +tests/ui/drop/issue-23611-enum-swap-in-drop.rs +tests/ui/drop/issue-2734.rs +tests/ui/drop/issue-2735-2.rs +tests/ui/drop/issue-2735-3.rs +tests/ui/drop/issue-2735.rs +tests/ui/drop/issue-30018-nopanic.rs +tests/ui/drop/issue-48962.rs +tests/ui/drop/issue-90752-raw-ptr-shenanigans.rs +tests/ui/drop/issue-90752.rs +tests/ui/drop/issue-979.rs +tests/ui/drop/no-drop-flag-size.rs +tests/ui/drop/nondrop-cycle.rs +tests/ui/drop/repeat-drop.rs +tests/ui/drop/static-issue-17302.rs +tests/ui/drop/terminate-in-initializer.rs +tests/ui/dropck/cleanup-arm-conditional.rs +tests/ui/dropck/dropck_traits.rs +tests/ui/dropck/issue-24805-dropck-itemless.rs +tests/ui/dropck/issue-28498-ugeh-with-lifetime-param.rs +tests/ui/dropck/issue-28498-ugeh-with-passed-to-fn.rs +tests/ui/dropck/issue-28498-ugeh-with-trait-bound.rs +tests/ui/dropck/issue-29844.rs +tests/ui/dropck/issue-34053.rs +tests/ui/dyn-star/const.rs +tests/ui/dyn-star/dont-unsize-coerce-dyn-star.rs +tests/ui/dyn-star/drop.rs +tests/ui/dyn-star/make-dyn-star.rs +tests/ui/dyn-star/method.rs +tests/ui/dynamically-sized-types/dst-coerce-custom.rs +tests/ui/dynamically-sized-types/dst-coerce-rc.rs +tests/ui/dynamically-sized-types/dst-coercions.rs +tests/ui/dynamically-sized-types/dst-deref-mut.rs +tests/ui/dynamically-sized-types/dst-deref.rs +tests/ui/dynamically-sized-types/dst-field-align.rs +tests/ui/dynamically-sized-types/dst-index.rs +tests/ui/dynamically-sized-types/dst-irrefutable-bind.rs +tests/ui/dynamically-sized-types/dst-raw.rs +tests/ui/dynamically-sized-types/dst-struct-sole.rs +tests/ui/dynamically-sized-types/dst-struct.rs +tests/ui/dynamically-sized-types/dst-trait-tuple.rs +tests/ui/dynamically-sized-types/dst-trait.rs +tests/ui/dynamically-sized-types/dst-tuple-no-reorder.rs +tests/ui/dynamically-sized-types/dst-tuple-sole.rs +tests/ui/dynamically-sized-types/dst-tuple-zst-offsets.rs +tests/ui/dynamically-sized-types/dst-tuple.rs +tests/ui/editions/never-type-fallback.rs +tests/ui/else-if.rs +tests/ui/empty-allocation-non-null.rs +tests/ui/empty-allocation-rvalue-non-null.rs +tests/ui/empty-type-parameter-list.rs +tests/ui/enum-discriminant/actually_not_an_enum-discriminant.rs +tests/ui/enum-discriminant/arbitrary_enum_discriminant.rs +tests/ui/enum-discriminant/discriminant_size.rs +tests/ui/enum-discriminant/discriminant_value-wrapper.rs +tests/ui/enum-discriminant/discriminant_value.rs +tests/ui/enum-discriminant/get_discr.rs +tests/ui/enum-discriminant/issue-104519.rs +tests/ui/enum-discriminant/issue-43398.rs +tests/ui/enum-discriminant/issue-50689.rs +tests/ui/enum-discriminant/issue-51582.rs +tests/ui/enum-discriminant/issue-61696.rs +tests/ui/enum-discriminant/issue-70509-partial_eq.rs +tests/ui/enum-discriminant/issue-90038.rs +tests/ui/enum-discriminant/niche-prefer-zero.rs +tests/ui/enum-discriminant/niche.rs +tests/ui/enum-discriminant/repr128.rs +tests/ui/enum/issue-19340-2.rs +tests/ui/enum/issue-23304-1.rs +tests/ui/enum/issue-23304-2.rs +tests/ui/enum/issue-42747.rs +tests/ui/env-macro/option_env-not-defined.rs +tests/ui/errors/remap-path-prefix-macro.rs +tests/ui/explicit-i-suffix.rs +tests/ui/explicit-tail-calls/ctfe-collatz-multi-rec.rs +tests/ui/expr/block-fn.rs +tests/ui/expr/block-generic.rs +tests/ui/expr/block.rs +tests/ui/expr/compound-assignment/eval-order.rs +tests/ui/expr/copy.rs +tests/ui/expr/if-bot.rs +tests/ui/expr/if-generic.rs +tests/ui/expr/if-panic-all.rs +tests/ui/expr/if/attrs/gate-whole-expr.rs +tests/ui/expr/if/expr-if-panic-pass.rs +tests/ui/expr/if/expr-if.rs +tests/ui/expr/if/if-check.rs +tests/ui/expr/if/if-ret.rs +tests/ui/expr/scope.rs +tests/ui/ext-expand-inner-exprs.rs +tests/ui/extern/extern-1.rs +tests/ui/extern/extern-compare-with-return-type.rs +tests/ui/extern/extern-prelude-no-speculative.rs +tests/ui/extern/extern-prelude-std.rs +tests/ui/extern/extern-types-manual-sync-send.rs +tests/ui/extern/extern-types-pointer-cast.rs +tests/ui/extern/extern-types-thin-pointer.rs +tests/ui/extern/extern-types-trait-impl.rs +tests/ui/extern/extern-vectorcall.rs +tests/ui/extern/issue-10025.rs +tests/ui/extern/issue-13655.rs +tests/ui/extern/issue-64655-allow-unwind-when-calling-panic-directly.rs +tests/ui/extern/issue-64655-extern-rust-must-allow-unwind.rs +tests/ui/fact.rs +tests/ui/feature-gates/version_check.rs +tests/ui/filter-block-view-items.rs +tests/ui/float/classify-runtime-const.rs +tests/ui/float/conv-bits-runtime-const.rs +tests/ui/float/int-to-float-miscompile-issue-105626.rs +tests/ui/fmt/fmt_debug/full.rs +tests/ui/fmt/fmt_debug/shallow.rs +tests/ui/fmt/format-args-capture-macro-hygiene-pass.rs +tests/ui/fmt/format-args-capture.rs +tests/ui/fmt/issue-23781.rs +tests/ui/fn/dyn-fn-alignment.rs +tests/ui/fn/expr-fn.rs +tests/ui/fn/fun-call-variants.rs +tests/ui/fn/issue-1451.rs +tests/ui/fn/issue-3904.rs +tests/ui/fn/nested-function-names-issue-8587.rs +tests/ui/for-loop-while/auto-loop.rs +tests/ui/for-loop-while/break-value.rs +tests/ui/for-loop-while/break.rs +tests/ui/for-loop-while/cleanup-rvalue-during-if-and-while.rs +tests/ui/for-loop-while/for-destruct.rs +tests/ui/for-loop-while/for-loop-goofiness.rs +tests/ui/for-loop-while/for-loop-has-unit-body.rs +tests/ui/for-loop-while/for-loop-into-iterator.rs +tests/ui/for-loop-while/for-loop-lifetime-of-unbound-values.rs +tests/ui/for-loop-while/for-loop-macro.rs +tests/ui/for-loop-while/for-loop-mut-ref-element.rs +tests/ui/for-loop-while/for-loop-panic.rs +tests/ui/for-loop-while/for-loop-unconstrained-element-type-i32-fallback.rs +tests/ui/for-loop-while/foreach-external-iterators-break.rs +tests/ui/for-loop-while/foreach-external-iterators-hashmap-break-restart.rs +tests/ui/for-loop-while/foreach-external-iterators-hashmap.rs +tests/ui/for-loop-while/foreach-external-iterators-loop.rs +tests/ui/for-loop-while/foreach-external-iterators-nested.rs +tests/ui/for-loop-while/foreach-external-iterators.rs +tests/ui/for-loop-while/foreach-nested.rs +tests/ui/for-loop-while/foreach-put-structured.rs +tests/ui/for-loop-while/foreach-simple-outer-slot.rs +tests/ui/for-loop-while/issue-1257.rs +tests/ui/for-loop-while/issue-2216.rs +tests/ui/for-loop-while/issue-51345.rs +tests/ui/for-loop-while/issue-69841.rs +tests/ui/for-loop-while/label_break_value.rs +tests/ui/for-loop-while/labeled-break.rs +tests/ui/for-loop-while/linear-for-loop.rs +tests/ui/for-loop-while/liveness-assign-imm-local-after-loop.rs +tests/ui/for-loop-while/liveness-loop-break.rs +tests/ui/for-loop-while/long-while.rs +tests/ui/for-loop-while/loop-break-cont-1.rs +tests/ui/for-loop-while/loop-break-cont.rs +tests/ui/for-loop-while/loop-break-value.rs +tests/ui/for-loop-while/loop-diverges.rs +tests/ui/for-loop-while/loop-label-shadowing.rs +tests/ui/for-loop-while/loop-labeled-break-value.rs +tests/ui/for-loop-while/loop-no-reinit-needed-post-bot.rs +tests/ui/for-loop-while/loop-scope.rs +tests/ui/for-loop-while/while-cont.rs +tests/ui/for-loop-while/while-flow-graph.rs +tests/ui/for-loop-while/while-label.rs +tests/ui/for-loop-while/while-let-2.rs +tests/ui/for-loop-while/while-let.rs +tests/ui/for-loop-while/while-loop-constraints-2.rs +tests/ui/for-loop-while/while-prelude-drop.rs +tests/ui/for-loop-while/while-with-break.rs +tests/ui/for-loop-while/while.rs +tests/ui/foreign/foreign-fn-linkname.rs +tests/ui/foreign/foreign-truncated-arguments.rs +tests/ui/fun-indirect-call.rs +tests/ui/function-pointer/function-pointer-comparison-issue-54685.rs +tests/ui/functions-closures/call-closure-from-overloaded-op.rs +tests/ui/functions-closures/capture-clauses-boxed-closures.rs +tests/ui/functions-closures/capture-clauses-unboxed-closures.rs +tests/ui/functions-closures/clone-closure.rs +tests/ui/functions-closures/closure_to_fn_coercion-expected-types.rs +tests/ui/functions-closures/closure-bounds-can-capture-chan.rs +tests/ui/functions-closures/closure-expected-type/issue-38714.rs +tests/ui/functions-closures/closure-expected-type/supply-just-return-type.rs +tests/ui/functions-closures/closure-expected-type/supply-nothing.rs +tests/ui/functions-closures/closure-immediate.rs +tests/ui/functions-closures/closure-inference.rs +tests/ui/functions-closures/closure-inference2.rs +tests/ui/functions-closures/closure-reform.rs +tests/ui/functions-closures/closure-returning-closure.rs +tests/ui/functions-closures/closure-to-fn-coercion.rs +tests/ui/functions-closures/copy-closure.rs +tests/ui/functions-closures/fn-bare-assign.rs +tests/ui/functions-closures/fn-bare-coerce-to-block.rs +tests/ui/functions-closures/fn-bare-item.rs +tests/ui/functions-closures/fn-bare-size.rs +tests/ui/functions-closures/fn-bare-spawn.rs +tests/ui/functions-closures/fn-coerce-field.rs +tests/ui/functions-closures/fn-item-type-cast.rs +tests/ui/functions-closures/fn-item-type-coerce.rs +tests/ui/functions-closures/fn-item-type-zero-sized.rs +tests/ui/functions-closures/fn-lval.rs +tests/ui/functions-closures/fn-type-infer.rs +tests/ui/functions-closures/implied-bounds-closure-arg-outlives.rs +tests/ui/functions-closures/nullable-pointer-opt-closures.rs +tests/ui/functions-closures/parallel-codegen-closures.rs +tests/ui/functions-closures/return-from-closure.rs +tests/ui/generic-associated-types/collections.rs +tests/ui/generic-associated-types/const-generics-gat-in-trait-return-type-1.rs +tests/ui/generic-associated-types/const-generics-gat-in-trait-return-type-2.rs +tests/ui/generic-associated-types/const-generics-gat-in-trait-return-type-3.rs +tests/ui/generic-associated-types/generic-associated-type-bounds.rs +tests/ui/generic-associated-types/issue-76826.rs +tests/ui/generic-associated-types/iterable.rs +tests/ui/generic-associated-types/streaming_iterator.rs +tests/ui/generics/autobind.rs +tests/ui/generics/generic-alias-unique.rs +tests/ui/generics/generic-default-type-params.rs +tests/ui/generics/generic-derived-type.rs +tests/ui/generics/generic-exterior-unique.rs +tests/ui/generics/generic-extern-mangle.rs +tests/ui/generics/generic-fn-infer.rs +tests/ui/generics/generic-fn-twice.rs +tests/ui/generics/generic-fn-unique.rs +tests/ui/generics/generic-fn.rs +tests/ui/generics/generic-ivec-leak.rs +tests/ui/generics/generic-newtype-struct.rs +tests/ui/generics/generic-object.rs +tests/ui/generics/generic-recursive-tag.rs +tests/ui/generics/generic-static-methods.rs +tests/ui/generics/generic-tag-corruption.rs +tests/ui/generics/generic-tag-local.rs +tests/ui/generics/generic-tag-match.rs +tests/ui/generics/generic-tag-values.rs +tests/ui/generics/generic-tag.rs +tests/ui/generics/generic-temporary.rs +tests/ui/generics/generic-tup.rs +tests/ui/generics/generic-type.rs +tests/ui/generics/generic-unique.rs +tests/ui/generics/issue-1112.rs +tests/ui/generics/issue-2936.rs +tests/ui/generics/issue-32498.rs +tests/ui/generics/issue-333.rs +tests/ui/generics/issue-94923.rs +tests/ui/generics/mid-path-type-params.rs +tests/ui/global-scope.rs +tests/ui/half-open-range-patterns/half-open-range-pats-semantics.rs +tests/ui/half-open-range-patterns/range_pat_interactions0.rs +tests/ui/half-open-range-patterns/slice_pattern_syntax_problem2.rs +tests/ui/hashmap/hashmap-memory.rs +tests/ui/hello.rs +tests/ui/higher-ranked/leak-check/leak-check-in-selection-1.rs +tests/ui/higher-ranked/trait-bounds/hrtb-fn-like-trait-object.rs +tests/ui/higher-ranked/trait-bounds/hrtb-fn-like-trait.rs +tests/ui/higher-ranked/trait-bounds/hrtb-parse.rs +tests/ui/higher-ranked/trait-bounds/hrtb-resolve-lifetime.rs +tests/ui/higher-ranked/trait-bounds/hrtb-trait-object-paren-notation.rs +tests/ui/higher-ranked/trait-bounds/hrtb-unboxed-closure-trait.rs +tests/ui/higher-ranked/trait-bounds/issue-36139-normalize-closure-sig.rs +tests/ui/higher-ranked/trait-bounds/issue-39292.rs +tests/ui/hygiene/hygiene-dodging-1.rs +tests/ui/hygiene/hygiene.rs +tests/ui/hygiene/hygienic-labels-in-let.rs +tests/ui/hygiene/hygienic-labels.rs +tests/ui/hygiene/issue-15221.rs +tests/ui/hygiene/issue-29746.rs +tests/ui/hygiene/issue-40847.rs +tests/ui/hygiene/lambda-var-hygiene.rs +tests/ui/hygiene/macro-metavars-legacy.rs +tests/ui/hygiene/macro-metavars-transparent.rs +tests/ui/hygiene/specialization.rs +tests/ui/hygiene/thread-local-not-in-prelude.rs +tests/ui/impl-header-lifetime-elision/bare_type.rs +tests/ui/impl-header-lifetime-elision/explicit-and-elided-same-header.rs +tests/ui/impl-header-lifetime-elision/path-underscore.rs +tests/ui/impl-header-lifetime-elision/ref-underscore.rs +tests/ui/impl-header-lifetime-elision/trait-underscore.rs +tests/ui/impl-inherent-non-conflict.rs +tests/ui/impl-not-adjacent-to-type.rs +tests/ui/impl-trait/auto-trait-leak-rpass.rs +tests/ui/impl-trait/closure-in-impl-trait-arg.rs +tests/ui/impl-trait/closure-in-impl-trait.rs +tests/ui/impl-trait/equality-rpass.rs +tests/ui/impl-trait/example-calendar.rs +tests/ui/impl-trait/example-st.rs +tests/ui/impl-trait/impl_fn_associativity.rs +tests/ui/impl-trait/issue-36792.rs +tests/ui/impl-trait/issue-49685.rs +tests/ui/impl-trait/issue-51185.rs +tests/ui/impl-trait/nesting.rs +tests/ui/impl-trait/universal_hrtb_anon.rs +tests/ui/impl-trait/universal_hrtb_named.rs +tests/ui/impl-trait/universal_in_adt_in_parameters.rs +tests/ui/impl-trait/universal_in_impl_trait_in_parameters.rs +tests/ui/impl-trait/universal_in_trait_defn_parameters.rs +tests/ui/impl-trait/universal_multiple_bounds.rs +tests/ui/imports/export-multi.rs +tests/ui/imports/extern-crate-self/extern-crate-self-macro-alias.rs +tests/ui/imports/extern-crate-self/extern-crate-self-macro-self.rs +tests/ui/imports/import-from.rs +tests/ui/imports/import-glob-0-rpass.rs +tests/ui/imports/import-glob-crate.rs +tests/ui/imports/import-in-block.rs +tests/ui/imports/import-prefix-macro.rs +tests/ui/imports/import-rename.rs +tests/ui/imports/import-rpass.rs +tests/ui/imports/import-trailing-comma.rs +tests/ui/imports/import2-rpass.rs +tests/ui/imports/import3-rpass.rs +tests/ui/imports/import4-rpass.rs +tests/ui/imports/import5.rs +tests/ui/imports/import6.rs +tests/ui/imports/import7.rs +tests/ui/imports/import8.rs +tests/ui/imports/issue-4865-1.rs +tests/ui/imports/issue-4865-2.rs +tests/ui/imports/issue-4865-3.rs +tests/ui/imports/reexport-star.rs +tests/ui/imports/use-mod.rs +tests/ui/include-macros/normalization.rs +tests/ui/indexing/indexing-spans-caller-location.rs +tests/ui/inference/issue-36053.rs +tests/ui/inference/issue-3743.rs +tests/ui/inference/lambda-infer-unresolved.rs +tests/ui/inference/lub-glb-with-unbound-infer-var.rs +tests/ui/inference/newlambdas-ret-infer.rs +tests/ui/inference/newlambdas-ret-infer2.rs +tests/ui/inference/range-type-infer.rs +tests/ui/inference/simple-infer.rs +tests/ui/inline-const/const-expr-basic.rs +tests/ui/inline-const/const-expr-lifetime.rs +tests/ui/inline-const/const-expr-macro.rs +tests/ui/inline-const/const-expr-reference.rs +tests/ui/inline-const/const-match-pat-lifetime.rs +tests/ui/inline-const/const-match-pat.rs +tests/ui/inner-attrs-on-impl.rs +tests/ui/inner-module.rs +tests/ui/intrinsics/always-gets-overridden.rs +tests/ui/intrinsics/const-eval-select-x86_64.rs +tests/ui/intrinsics/const-eval-select.rs +tests/ui/intrinsics/intrinsic-alignment.rs +tests/ui/intrinsics/intrinsic-assume.rs +tests/ui/intrinsics/intrinsic-atomics.rs +tests/ui/intrinsics/intrinsic-fmuladd.rs +tests/ui/intrinsics/intrinsic-nearby.rs +tests/ui/intrinsics/intrinsic-raw_eq-const.rs +tests/ui/intrinsics/intrinsic-unreachable.rs +tests/ui/intrinsics/intrinsic-volatile.rs +tests/ui/intrinsics/intrinsics-integer.rs +tests/ui/intrinsics/intrinsics-math.rs +tests/ui/intrinsics/panic-uninitialized-zeroed.rs +tests/ui/issue-11881.rs +tests/ui/issue-15924.rs +tests/ui/issues/issue-10228.rs +tests/ui/issues/issue-10436.rs +tests/ui/issues/issue-10638.rs +tests/ui/issues/issue-10683.rs +tests/ui/issues/issue-10718.rs +tests/ui/issues/issue-10734.rs +tests/ui/issues/issue-10767.rs +tests/ui/issues/issue-10802.rs +tests/ui/issues/issue-10806.rs +tests/ui/issues/issue-11047.rs +tests/ui/issues/issue-11085.rs +tests/ui/issues/issue-11267.rs +tests/ui/issues/issue-11382.rs +tests/ui/issues/issue-11552.rs +tests/ui/issues/issue-11677.rs +tests/ui/issues/issue-11709.rs +tests/ui/issues/issue-11820.rs +tests/ui/issues/issue-11958.rs +tests/ui/issues/issue-12033.rs +tests/ui/issues/issue-12285.rs +tests/ui/issues/issue-12677.rs +tests/ui/issues/issue-12744.rs +tests/ui/issues/issue-12860.rs +tests/ui/issues/issue-12909.rs +tests/ui/issues/issue-13027.rs +tests/ui/issues/issue-13204.rs +tests/ui/issues/issue-13259-windows-tcb-trash.rs +tests/ui/issues/issue-13264.rs +tests/ui/issues/issue-13323.rs +tests/ui/issues/issue-13434.rs +tests/ui/issues/issue-13665.rs +tests/ui/issues/issue-13763.rs +tests/ui/issues/issue-13808.rs +tests/ui/issues/issue-13867.rs +tests/ui/issues/issue-14229.rs +tests/ui/issues/issue-14308.rs +tests/ui/issues/issue-14382.rs +tests/ui/issues/issue-14393.rs +tests/ui/issues/issue-14399.rs +tests/ui/issues/issue-14821.rs +tests/ui/issues/issue-14865.rs +tests/ui/issues/issue-14875.rs +tests/ui/issues/issue-14919.rs +tests/ui/issues/issue-15043.rs +tests/ui/issues/issue-15063.rs +tests/ui/issues/issue-15104.rs +tests/ui/issues/issue-15129-rpass.rs +tests/ui/issues/issue-15189.rs +tests/ui/issues/issue-15444.rs +tests/ui/issues/issue-15523-big.rs +tests/ui/issues/issue-15523.rs +tests/ui/issues/issue-15571.rs +tests/ui/issues/issue-15673.rs +tests/ui/issues/issue-15734.rs +tests/ui/issues/issue-15763.rs +tests/ui/issues/issue-15774.rs +tests/ui/issues/issue-15793.rs +tests/ui/issues/issue-15858.rs +tests/ui/issues/issue-16151.rs +tests/ui/issues/issue-16256.rs +tests/ui/issues/issue-16278.rs +tests/ui/issues/issue-16441.rs +tests/ui/issues/issue-16452.rs +tests/ui/issues/issue-16492.rs +tests/ui/issues/issue-16530.rs +tests/ui/issues/issue-16560.rs +tests/ui/issues/issue-16648.rs +tests/ui/issues/issue-16671.rs +tests/ui/issues/issue-16739.rs +tests/ui/issues/issue-16745.rs +tests/ui/issues/issue-16774.rs +tests/ui/issues/issue-16783.rs +tests/ui/issues/issue-16819.rs +tests/ui/issues/issue-16922-rpass.rs +tests/ui/issues/issue-17068.rs +tests/ui/issues/issue-17216.rs +tests/ui/issues/issue-17322.rs +tests/ui/issues/issue-17351.rs +tests/ui/issues/issue-17361.rs +tests/ui/issues/issue-17503.rs +tests/ui/issues/issue-17734.rs +tests/ui/issues/issue-17771.rs +tests/ui/issues/issue-17816.rs +tests/ui/issues/issue-17877.rs +tests/ui/issues/issue-17897.rs +tests/ui/issues/issue-17905.rs +tests/ui/issues/issue-18110.rs +tests/ui/issues/issue-18232.rs +tests/ui/issues/issue-18352.rs +tests/ui/issues/issue-18353.rs +tests/ui/issues/issue-18464.rs +tests/ui/issues/issue-18539.rs +tests/ui/issues/issue-18685.rs +tests/ui/issues/issue-18767.rs +tests/ui/issues/issue-18845.rs +tests/ui/issues/issue-18859.rs +tests/ui/issues/issue-18952.rs +tests/ui/issues/issue-19001.rs +tests/ui/issues/issue-19127.rs +tests/ui/issues/issue-19135.rs +tests/ui/issues/issue-19367.rs +tests/ui/issues/issue-19499.rs +tests/ui/issues/issue-19811-escape-unicode.rs +tests/ui/issues/issue-20055-box-trait.rs +tests/ui/issues/issue-20055-box-unsized-array.rs +tests/ui/issues/issue-20174.rs +tests/ui/issues/issue-20544.rs +tests/ui/issues/issue-20575.rs +tests/ui/issues/issue-20676.rs +tests/ui/issues/issue-2074.rs +tests/ui/issues/issue-20803.rs +tests/ui/issues/issue-20847.rs +tests/ui/issues/issue-20953.rs +tests/ui/issues/issue-21033.rs +tests/ui/issues/issue-21291.rs +tests/ui/issues/issue-21306.rs +tests/ui/issues/issue-21361.rs +tests/ui/issues/issue-21384.rs +tests/ui/issues/issue-21400.rs +tests/ui/issues/issue-21655.rs +tests/ui/issues/issue-2190-1.rs +tests/ui/issues/issue-21922.rs +tests/ui/issues/issue-22008.rs +tests/ui/issues/issue-22036.rs +tests/ui/issues/issue-2214.rs +tests/ui/issues/issue-22258.rs +tests/ui/issues/issue-22346.rs +tests/ui/issues/issue-22403.rs +tests/ui/issues/issue-22426.rs +tests/ui/issues/issue-22577.rs +tests/ui/issues/issue-22629.rs +tests/ui/issues/issue-2284.rs +tests/ui/issues/issue-2288.rs +tests/ui/issues/issue-22992-2.rs +tests/ui/issues/issue-22992.rs +tests/ui/issues/issue-23036.rs +tests/ui/issues/issue-23261.rs +tests/ui/issues/issue-23311.rs +tests/ui/issues/issue-23336.rs +tests/ui/issues/issue-23433.rs +tests/ui/issues/issue-23485.rs +tests/ui/issues/issue-23491.rs +tests/ui/issues/issue-23699.rs +tests/ui/issues/issue-23808.rs +tests/ui/issues/issue-2383.rs +tests/ui/issues/issue-23891.rs +tests/ui/issues/issue-23898.rs +tests/ui/issues/issue-23958.rs +tests/ui/issues/issue-23992.rs +tests/ui/issues/issue-24086.rs +tests/ui/issues/issue-2428.rs +tests/ui/issues/issue-24308.rs +tests/ui/issues/issue-24353.rs +tests/ui/issues/issue-2445-b.rs +tests/ui/issues/issue-2445.rs +tests/ui/issues/issue-24533.rs +tests/ui/issues/issue-24589.rs +tests/ui/issues/issue-2463.rs +tests/ui/issues/issue-24779.rs +tests/ui/issues/issue-24945-repeat-dash-opts.rs +tests/ui/issues/issue-24947.rs +tests/ui/issues/issue-24954.rs +tests/ui/issues/issue-25089.rs +tests/ui/issues/issue-25145.rs +tests/ui/issues/issue-25279.rs +tests/ui/issues/issue-25343.rs +tests/ui/issues/issue-25497.rs +tests/ui/issues/issue-2550.rs +tests/ui/issues/issue-25515.rs +tests/ui/issues/issue-25549-multiple-drop.rs +tests/ui/issues/issue-25679.rs +tests/ui/issues/issue-25693.rs +tests/ui/issues/issue-25746-bool-transmute.rs +tests/ui/issues/issue-25757.rs +tests/ui/issues/issue-25810.rs +tests/ui/issues/issue-26127.rs +tests/ui/issues/issue-2642.rs +tests/ui/issues/issue-26468.rs +tests/ui/issues/issue-26484.rs +tests/ui/issues/issue-26655.rs +tests/ui/issues/issue-26709.rs +tests/ui/issues/issue-26802.rs +tests/ui/issues/issue-26805.rs +tests/ui/issues/issue-27054-primitive-binary-ops.rs +tests/ui/issues/issue-2708.rs +tests/ui/issues/issue-27240.rs +tests/ui/issues/issue-27268.rs +tests/ui/issues/issue-27401-dropflag-reinit.rs +tests/ui/issues/issue-27639.rs +tests/ui/issues/issue-27949.rs +tests/ui/issues/issue-27997.rs +tests/ui/issues/issue-28181.rs +tests/ui/issues/issue-28498-must-work-ex1.rs +tests/ui/issues/issue-28498-must-work-ex2.rs +tests/ui/issues/issue-28498-ugeh-ex1.rs +tests/ui/issues/issue-28550.rs +tests/ui/issues/issue-28777.rs +tests/ui/issues/issue-28828.rs +tests/ui/issues/issue-28839.rs +tests/ui/issues/issue-2895.rs +tests/ui/issues/issue-28983.rs +tests/ui/issues/issue-29053.rs +tests/ui/issues/issue-29071-2.rs +tests/ui/issues/issue-29092.rs +tests/ui/issues/issue-29147-rpass.rs +tests/ui/issues/issue-2935.rs +tests/ui/issues/issue-29466.rs +tests/ui/issues/issue-29522.rs +tests/ui/issues/issue-29663.rs +tests/ui/issues/issue-29668.rs +tests/ui/issues/issue-2989.rs +tests/ui/issues/issue-29948.rs +tests/ui/issues/issue-30018-panic.rs +tests/ui/issues/issue-30081.rs +tests/ui/issues/issue-3026.rs +tests/ui/issues/issue-3037.rs +tests/ui/issues/issue-30371.rs +tests/ui/issues/issue-3052.rs +tests/ui/issues/issue-30530.rs +tests/ui/issues/issue-30615.rs +tests/ui/issues/issue-30756.rs +tests/ui/issues/issue-30891.rs +tests/ui/issues/issue-3091.rs +tests/ui/issues/issue-3109.rs +tests/ui/issues/issue-3121.rs +tests/ui/issues/issue-31267-additional.rs +tests/ui/issues/issue-31267.rs +tests/ui/issues/issue-31299.rs +tests/ui/issues/issue-31776.rs +tests/ui/issues/issue-32008.rs +tests/ui/issues/issue-3220.rs +tests/ui/issues/issue-32292.rs +tests/ui/issues/issue-32389.rs +tests/ui/issues/issue-32805.rs +tests/ui/issues/issue-3290.rs +tests/ui/issues/issue-33202.rs +tests/ui/issues/issue-33387.rs +tests/ui/issues/issue-33461.rs +tests/ui/issues/issue-33687.rs +tests/ui/issues/issue-33770.rs +tests/ui/issues/issue-3389.rs +tests/ui/issues/issue-3429.rs +tests/ui/issues/issue-34427.rs +tests/ui/issues/issue-3447.rs +tests/ui/issues/issue-34503.rs +tests/ui/issues/issue-34569.rs +tests/ui/issues/issue-34571.rs +tests/ui/issues/issue-3500.rs +tests/ui/issues/issue-35423.rs +tests/ui/issues/issue-3556.rs +tests/ui/issues/issue-3559.rs +tests/ui/issues/issue-35600.rs +tests/ui/issues/issue-3574.rs +tests/ui/issues/issue-35815.rs +tests/ui/issues/issue-36023.rs +tests/ui/issues/issue-36036-associated-type-layout.rs +tests/ui/issues/issue-36260.rs +tests/ui/issues/issue-36278-prefix-nesting.rs +tests/ui/issues/issue-36474.rs +tests/ui/issues/issue-36744-bitcast-args-if-needed.rs +tests/ui/issues/issue-36786-resolve-call.rs +tests/ui/issues/issue-36816.rs +tests/ui/issues/issue-36856.rs +tests/ui/issues/issue-36936.rs +tests/ui/issues/issue-3702.rs +tests/ui/issues/issue-37109.rs +tests/ui/issues/issue-3753.rs +tests/ui/issues/issue-37686.rs +tests/ui/issues/issue-38437.rs +tests/ui/issues/issue-3847.rs +tests/ui/issues/issue-38556.rs +tests/ui/issues/issue-38763.rs +tests/ui/issues/issue-38942.rs +tests/ui/issues/issue-3895.rs +tests/ui/issues/issue-38987.rs +tests/ui/issues/issue-39367.rs +tests/ui/issues/issue-39548.rs +tests/ui/issues/issue-39709.rs +tests/ui/issues/issue-3979.rs +tests/ui/issues/issue-39808.rs +tests/ui/issues/issue-39827.rs +tests/ui/issues/issue-40235.rs +tests/ui/issues/issue-40408.rs +tests/ui/issues/issue-40883.rs +tests/ui/issues/issue-40951.rs +tests/ui/issues/issue-41213.rs +tests/ui/issues/issue-41479.rs +tests/ui/issues/issue-41498.rs +tests/ui/issues/issue-41604.rs +tests/ui/issues/issue-41677.rs +tests/ui/issues/issue-41696.rs +tests/ui/issues/issue-41744.rs +tests/ui/issues/issue-41849-variance-req.rs +tests/ui/issues/issue-41888.rs +tests/ui/issues/issue-42148.rs +tests/ui/issues/issue-42210.rs +tests/ui/issues/issue-4228.rs +tests/ui/issues/issue-42453.rs +tests/ui/issues/issue-4252.rs +tests/ui/issues/issue-42552.rs +tests/ui/issues/issue-43205.rs +tests/ui/issues/issue-43291.rs +tests/ui/issues/issue-4333.rs +tests/ui/issues/issue-43692.rs +tests/ui/issues/issue-43853.rs +tests/ui/issues/issue-4387.rs +tests/ui/issues/issue-43910.rs +tests/ui/issues/issue-43923.rs +tests/ui/issues/issue-4541.rs +tests/ui/issues/issue-4542.rs +tests/ui/issues/issue-45510.rs +tests/ui/issues/issue-46069.rs +tests/ui/issues/issue-46855.rs +tests/ui/issues/issue-4734.rs +tests/ui/issues/issue-4735.rs +tests/ui/issues/issue-47364.rs +tests/ui/issues/issue-4759-1.rs +tests/ui/issues/issue-4759.rs +tests/ui/issues/issue-47638.rs +tests/ui/issues/issue-48006.rs +tests/ui/issues/issue-48132.rs +tests/ui/issues/issue-48159.rs +tests/ui/issues/issue-4875.rs +tests/ui/issues/issue-49632.rs +tests/ui/issues/issue-49854.rs +tests/ui/issues/issue-49955.rs +tests/ui/issues/issue-49973.rs +tests/ui/issues/issue-50415.rs +tests/ui/issues/issue-50442.rs +tests/ui/issues/issue-50811.rs +tests/ui/issues/issue-51907.rs +tests/ui/issues/issue-5192.rs +tests/ui/issues/issue-5280.rs +tests/ui/issues/issue-5315.rs +tests/ui/issues/issue-5321-immediates-with-bare-self.rs +tests/ui/issues/issue-53333.rs +tests/ui/issues/issue-53728.rs +tests/ui/issues/issue-53843.rs +tests/ui/issues/issue-54462-mutable-noalias-correctness.rs +tests/ui/issues/issue-54477-reduced-2.rs +tests/ui/issues/issue-54696.rs +tests/ui/issues/issue-55380.rs +tests/ui/issues/issue-5550.rs +tests/ui/issues/issue-5554.rs +tests/ui/issues/issue-56237.rs +tests/ui/issues/issue-5666.rs +tests/ui/issues/issue-5688.rs +tests/ui/issues/issue-5708.rs +tests/ui/issues/issue-5718.rs +tests/ui/issues/issue-57198-pass.rs +tests/ui/issues/issue-5741.rs +tests/ui/issues/issue-58463.rs +tests/ui/issues/issue-59020.rs +tests/ui/issues/issue-5917.rs +tests/ui/issues/issue-5988.rs +tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997.rs +tests/ui/issues/issue-6117.rs +tests/ui/issues/issue-6130.rs +tests/ui/issues/issue-61475.rs +tests/ui/issues/issue-6153.rs +tests/ui/issues/issue-61894.rs +tests/ui/issues/issue-6318.rs +tests/ui/issues/issue-6344-let.rs +tests/ui/issues/issue-6344-match.rs +tests/ui/issues/issue-68696-catch-during-unwind.rs +tests/ui/issues/issue-6892.rs +tests/ui/issues/issue-7012.rs +tests/ui/issues/issue-70673.rs +tests/ui/issues/issue-7344.rs +tests/ui/issues/issue-7519-match-unit-in-arg.rs +tests/ui/issues/issue-7563.rs +tests/ui/issues/issue-7575.rs +tests/ui/issues/issue-76042.rs +tests/ui/issues/issue-7660.rs +tests/ui/issues/issue-7663.rs +tests/ui/issues/issue-7784.rs +tests/ui/issues/issue-78192.rs +tests/ui/issues/issue-7911.rs +tests/ui/issues/issue-8248.rs +tests/ui/issues/issue-8249.rs +tests/ui/issues/issue-8391.rs +tests/ui/issues/issue-8498.rs +tests/ui/issues/issue-8783.rs +tests/ui/issues/issue-8860.rs +tests/ui/issues/issue-8898.rs +tests/ui/issues/issue-9047.rs +tests/ui/issues/issue-9129.rs +tests/ui/issues/issue-9259.rs +tests/ui/issues/issue-9382.rs +tests/ui/issues/issue-9446.rs +tests/ui/issues/issue-9737.rs +tests/ui/issues/issue-9837.rs +tests/ui/issues/issue-9918.rs +tests/ui/issues/issue-9942.rs +tests/ui/issues/issue-9951.rs +tests/ui/issues/issue-99838.rs +tests/ui/iterators/iter-cloned-type-inference.rs +tests/ui/iterators/iter-count-overflow-debug.rs +tests/ui/iterators/iter-count-overflow-ndebug.rs +tests/ui/iterators/iter-map-fold-type-length.rs +tests/ui/iterators/iter-position-overflow-debug.rs +tests/ui/iterators/iter-position-overflow-ndebug.rs +tests/ui/iterators/iter-range.rs +tests/ui/iterators/iter-step-overflow-debug.rs +tests/ui/iterators/iter-step-overflow-ndebug.rs +tests/ui/iterators/iter-sum-overflow-debug.rs +tests/ui/iterators/iter-sum-overflow-ndebug.rs +tests/ui/iterators/iter-sum-overflow-overflow-checks.rs +tests/ui/iterators/skip-count-overflow.rs +tests/ui/last-use-in-cap-clause.rs +tests/ui/last-use-is-capture.rs +tests/ui/late-bound-lifetimes/issue-36381.rs +tests/ui/layout/aggregate-lang/struct-align.rs +tests/ui/layout/aggregate-lang/struct-size.rs +tests/ui/layout/aggregate-lang/union-align.rs +tests/ui/layout/aggregate-lang/union-offsets.rs +tests/ui/layout/aggregate-lang/union-size.rs +tests/ui/layout/big-type-no-err.rs +tests/ui/layout/issue-112048-unsizing-field-order.rs +tests/ui/layout/issue-112048-unsizing-niche.rs +tests/ui/layout/issue-60431-unsized-tail-behind-projection.rs +tests/ui/lazy-and-or.rs +tests/ui/let-else/const-fn.rs +tests/ui/let-else/issue-99975.rs +tests/ui/let-else/let-else-bindings.rs +tests/ui/let-else/let-else-drop-order.rs +tests/ui/let-else/let-else-non-copy.rs +tests/ui/let-else/let-else-run-pass.rs +tests/ui/let-else/let-else-source-expr-nomove-pass.rs +tests/ui/let-else/let-else-temp-borrowck.rs +tests/ui/let-else/let-else-temporary-lifetime.rs +tests/ui/let-else/let-else.rs +tests/ui/lexer/lex-bare-cr-nondoc-comment.rs +tests/ui/lexer/lexer-crlf-line-endings-string-literal-doc-comment.rs +tests/ui/lexical-scoping.rs +tests/ui/lifetimes/issue-84604.rs +tests/ui/lifetimes/tail-expr-lock-poisoning.rs +tests/ui/lifetimes/temporary-lifetime-extension.rs +tests/ui/link-section.rs +tests/ui/lint/dead-code/alias-in-pat.rs +tests/ui/lint/dead-code/associated-type.rs +tests/ui/lint/dead-code/enum-variants.rs +tests/ui/lint/dead-code/with-impl.rs +tests/ui/lint/improper_ctypes/allow-phantomdata-in-ffi.rs +tests/ui/lint/issue-20343.rs +tests/ui/lint/issue-49588-non-shorthand-field-patterns-in-pattern-macro.rs +tests/ui/lint/lint-expr-stmt-attrs-for-early-lints.rs +tests/ui/lint/unused/no-unused-parens-return-block.rs +tests/ui/list.rs +tests/ui/liveness/liveness-assign-imm-local-after-ret.rs +tests/ui/log-err-phi.rs +tests/ui/log-knows-the-names-of-variants.rs +tests/ui/log-poly.rs +tests/ui/logging-only-prints-once.rs +tests/ui/loops/issue-1974.rs +tests/ui/lowering/issue-96847.rs +tests/ui/lto/all-crates.rs +tests/ui/lto/fat-lto.rs +tests/ui/lto/lto-many-codegen-units.rs +tests/ui/lto/lto-still-runs-thread-dtors.rs +tests/ui/lto/thin-lto-inlines.rs +tests/ui/lto/weak-works.rs +tests/ui/macros/assert-eq-macro-success.rs +tests/ui/macros/assert-eq-macro-unsized.rs +tests/ui/macros/assert-format-lazy.rs +tests/ui/macros/assert-ne-macro-success.rs +tests/ui/macros/assert-ne-macro-unsized.rs +tests/ui/macros/colorful-write-macros.rs +tests/ui/macros/concat-bytes.rs +tests/ui/macros/concat-rpass.rs +tests/ui/macros/conditional-debug-macro-on.rs +tests/ui/macros/die-macro.rs +tests/ui/macros/html-literals.rs +tests/ui/macros/issue-25274.rs +tests/ui/macros/issue-26322.rs +tests/ui/macros/issue-33185.rs +tests/ui/macros/issue-37175.rs +tests/ui/macros/issue-40770.rs +tests/ui/macros/issue-41803.rs +tests/ui/macros/issue-44127.rs +tests/ui/macros/issue-5060.rs +tests/ui/macros/issue-52169.rs +tests/ui/macros/issue-8709.rs +tests/ui/macros/issue-8851.rs +tests/ui/macros/log_syntax-trace_macros-macro-locations.rs +tests/ui/macros/macro-2.rs +tests/ui/macros/macro-as-fn-body.rs +tests/ui/macros/macro-at-most-once-rep-2015-rpass.rs +tests/ui/macros/macro-at-most-once-rep-2018-rpass.rs +tests/ui/macros/macro-attribute-expansion.rs +tests/ui/macros/macro-attributes.rs +tests/ui/macros/macro-block-nonterminal.rs +tests/ui/macros/macro-crate-use.rs +tests/ui/macros/macro-deep_expansion.rs +tests/ui/macros/macro-delimiter-significance.rs +tests/ui/macros/macro-doc-raw-str-hashes.rs +tests/ui/macros/macro-first-set.rs +tests/ui/macros/macro-include-items.rs +tests/ui/macros/macro-invocation-in-count-expr-fixed-array-type.rs +tests/ui/macros/macro-lifetime-used-with-bound.rs +tests/ui/macros/macro-lifetime-used-with-labels.rs +tests/ui/macros/macro-lifetime-used-with-static.rs +tests/ui/macros/macro-lifetime.rs +tests/ui/macros/macro-literal.rs +tests/ui/macros/macro-metavar-expr-concat/allowed-operations.rs +tests/ui/macros/macro-metavar-expr-concat/repetitions.rs +tests/ui/macros/macro-metavar-expr-concat/unicode-expansion.rs +tests/ui/macros/macro-method-issue-4621.rs +tests/ui/macros/macro-multiple-items.rs +tests/ui/macros/macro-named-default.rs +tests/ui/macros/macro-nested_definition_issue-31946.rs +tests/ui/macros/macro-nested_expr.rs +tests/ui/macros/macro-nested_stmt_macros.rs +tests/ui/macros/macro-nt-list.rs +tests/ui/macros/macro-of-higher-order.rs +tests/ui/macros/macro-pat-follow-2018.rs +tests/ui/macros/macro-pat-follow.rs +tests/ui/macros/macro-pat-neg-lit.rs +tests/ui/macros/macro-pat-pattern-followed-by-or.rs +tests/ui/macros/macro-pat.rs +tests/ui/macros/macro-path.rs +tests/ui/macros/macro-seq-followed-by-seq.rs +tests/ui/macros/macro-stmt_macro_in_expr_macro.rs +tests/ui/macros/macro-stmt.rs +tests/ui/macros/macro-tt-followed-by-seq.rs +tests/ui/macros/macro-with-attrs1.rs +tests/ui/macros/macro-with-attrs2.rs +tests/ui/macros/macro-with-braces-in-expr-position.rs +tests/ui/macros/macros-in-extern.rs +tests/ui/macros/meta-variable-misuse.rs +tests/ui/macros/pub-item-inside-macro.rs +tests/ui/macros/pub-method-inside-macro.rs +tests/ui/macros/rfc-2011-nicer-assert-messages/all-expr-kinds.rs +tests/ui/macros/rfc-2011-nicer-assert-messages/assert-with-custom-errors-does-not-create-unnecessary-code.rs +tests/ui/macros/rfc-2011-nicer-assert-messages/feature-gate-generic_assert.rs +tests/ui/macros/rfc-3086-metavar-expr/count-and-length-are-distinct.rs +tests/ui/macros/rfc-3086-metavar-expr/dollar-dollar-has-correct-behavior.rs +tests/ui/macros/rfc-3086-metavar-expr/feature-gate-macro_metavar_expr.rs +tests/ui/macros/rfc-3086-metavar-expr/macro-expansion.rs +tests/ui/macros/semi-after-macro-ty.rs +tests/ui/macros/stmt_expr_attr_macro_parse.rs +tests/ui/macros/syntax-extension-cfg.rs +tests/ui/macros/syntax-extension-source-utils.rs +tests/ui/macros/try-macro.rs +tests/ui/macros/type-macros-hlist.rs +tests/ui/macros/type-macros-simple.rs +tests/ui/macros/typeck-macro-interaction-issue-8852.rs +tests/ui/marker_trait_attr/overlap-doesnt-conflict-with-specialization.rs +tests/ui/marker_trait_attr/overlap-permitted-for-annotated-marker-traits.rs +tests/ui/match/guards.rs +tests/ui/match/issue-113012.rs +tests/ui/match/issue-114691.rs +tests/ui/match/issue-115681.rs +tests/ui/match/issue-11940.rs +tests/ui/match/issue-18060.rs +tests/ui/match/issue-26251.rs +tests/ui/match/issue-33498.rs +tests/ui/match/issue-36401.rs +tests/ui/match/issue-42679.rs +tests/ui/match/issue-46920-byte-array-patterns.rs +tests/ui/match/issue-5530.rs +tests/ui/match/issue-72680.rs +tests/ui/match/match-float.rs +tests/ui/match/match-on-negative-integer-ranges.rs +tests/ui/match/match-ref-mut-stability.rs +tests/ui/match/pattern-deref-miscompile.rs +tests/ui/match/postfix-match/pf-match-chain.rs +tests/ui/match/postfix-match/postfix-match.rs +tests/ui/max-min-classes.rs +tests/ui/maximal_mir_to_hir_coverage.rs +tests/ui/methods/method-argument-inference-associated-type.rs +tests/ui/methods/method-early-bound-lifetimes-on-self.rs +tests/ui/methods/method-mut-self-modifies-mut-slice-lvalue.rs +tests/ui/methods/method-probe-no-guessing-dyn-trait.rs +tests/ui/methods/method-projection.rs +tests/ui/methods/method-recursive-blanket-impl.rs +tests/ui/methods/method-self-arg-trait.rs +tests/ui/methods/method-self-arg.rs +tests/ui/methods/method-two-trait-defer-resolution-1.rs +tests/ui/methods/method-two-trait-defer-resolution-2.rs +tests/ui/methods/method-two-traits-distinguished-via-where-clause.rs +tests/ui/methods/method-where-clause.rs +tests/ui/mir/alignment/addrof_alignment.rs +tests/ui/mir/alignment/i686-pc-windows-msvc.rs +tests/ui/mir/alignment/packed.rs +tests/ui/mir/alignment/place_computation.rs +tests/ui/mir/alignment/place_without_read.rs +tests/ui/mir/clone-canonicalization-miscompile-132353.rs +tests/ui/mir/debug-ref-undef.rs +tests/ui/mir/dyn_metadata_sroa.rs +tests/ui/mir/issue-29227.rs +tests/ui/mir/issue-46845.rs +tests/ui/mir/issue-66851.rs +tests/ui/mir/issue-74739.rs +tests/ui/mir/issue-76740-copy-propagation.rs +tests/ui/mir/issue-76803-branches-not-same.rs +tests/ui/mir/issue-77002.rs +tests/ui/mir/issue-77359-simplify-arm-identity.rs +tests/ui/mir/issue-78496.rs +tests/ui/mir/issue-89485.rs +tests/ui/mir/mir_adt_construction.rs +tests/ui/mir/mir_ascription_coercion.rs +tests/ui/mir/mir_assign_eval_order.rs +tests/ui/mir/mir_augmented_assignments.rs +tests/ui/mir/mir_autoderef.rs +tests/ui/mir/mir_build_match_comparisons.rs +tests/ui/mir/mir_call_with_associated_type.rs +tests/ui/mir/mir_calls_to_shims.rs +tests/ui/mir/mir_cast_fn_ret.rs +tests/ui/mir/mir_codegen_array_2.rs +tests/ui/mir/mir_codegen_array.rs +tests/ui/mir/mir_codegen_call_converging.rs +tests/ui/mir/mir_codegen_calls.rs +tests/ui/mir/mir_codegen_spike1.rs +tests/ui/mir/mir_codegen_switch.rs +tests/ui/mir/mir_codegen_switchint.rs +tests/ui/mir/mir_coercion_casts.rs +tests/ui/mir/mir_coercions.rs +tests/ui/mir/mir_const_prop_identity.rs +tests/ui/mir/mir_constval_adts.rs +tests/ui/mir/mir_drop_order.rs +tests/ui/mir/mir_early_return_scope.rs +tests/ui/mir/mir_fat_ptr_drop.rs +tests/ui/mir/mir_fat_ptr.rs +tests/ui/mir/mir_heavy_promoted.rs +tests/ui/mir/mir_let_chains_drop_order.rs +tests/ui/mir/mir_match_arm_guard.rs +tests/ui/mir/mir_match_test.rs +tests/ui/mir/mir_misc_casts.rs +tests/ui/mir/mir_overflow_off.rs +tests/ui/mir/mir_raw_fat_ptr.rs +tests/ui/mir/mir_small_agg_arg.rs +tests/ui/mir/mir_static_subtype.rs +tests/ui/mir/mir_struct_with_assoc_ty.rs +tests/ui/mir/mir_temp_promotions.rs +tests/ui/mir/mir_void_return_2.rs +tests/ui/mir/mir_void_return.rs +tests/ui/mir/mir-inlining/ice-issue-45493.rs +tests/ui/mir/mir-inlining/ice-issue-45885.rs +tests/ui/mir/mir-inlining/ice-issue-68347.rs +tests/ui/mir/mir-inlining/ice-issue-77306-1.rs +tests/ui/mir/mir-inlining/ice-issue-77306-2.rs +tests/ui/mir/mir-inlining/ice-issue-77564.rs +tests/ui/mir/mir-inlining/no-trait-method-issue-40473.rs +tests/ui/mir/mir-inlining/var-debuginfo-issue-67586.rs +tests/ui/mir/mir-typeck-normalize-fn-sig.rs +tests/ui/mir/simplify-branch-same.rs +tests/ui/mir/validate/needs-reveal-all.rs +tests/ui/modules/mod_dir_implicit.rs +tests/ui/modules/mod_dir_path_multi.rs +tests/ui/modules/mod_dir_path.rs +tests/ui/modules/mod_dir_path2.rs +tests/ui/modules/mod_dir_path3.rs +tests/ui/modules/mod_dir_recursive.rs +tests/ui/modules/mod_dir_simple.rs +tests/ui/modules/mod_file_with_path_attr.rs +tests/ui/modules/mod_file.rs +tests/ui/modules/mod-inside-fn.rs +tests/ui/modules/mod-view-items.rs +tests/ui/monomorphize-abi-alignment.rs +tests/ui/moves/issue-22536-copy-mustnt-zero.rs +tests/ui/moves/move-1-unique.rs +tests/ui/moves/move-2-unique.rs +tests/ui/moves/move-2.rs +tests/ui/moves/move-3-unique.rs +tests/ui/moves/move-4-unique.rs +tests/ui/moves/move-4.rs +tests/ui/moves/move-arg-2-unique.rs +tests/ui/moves/move-arg-2.rs +tests/ui/moves/move-arg.rs +tests/ui/moves/move-nullary-fn.rs +tests/ui/moves/move-out-of-field.rs +tests/ui/moves/move-scalar.rs +tests/ui/moves/moves-based-on-type-capture-clause.rs +tests/ui/msvc-opt-minsize.rs +tests/ui/multibyte.rs +tests/ui/mut-function-arguments.rs +tests/ui/mut/no-mut-lint-for-desugared-mut.rs +tests/ui/myriad-closures.rs +tests/ui/nested-block-comment.rs +tests/ui/nested-class.rs +tests/ui/never_type/impl-for-never.rs +tests/ui/never_type/never_coercions.rs +tests/ui/never_type/never-result.rs +tests/ui/never_type/try_from.rs +tests/ui/new-impl-syntax.rs +tests/ui/new-import-syntax.rs +tests/ui/new-style-constants.rs +tests/ui/new-unicode-escapes.rs +tests/ui/newlambdas.rs +tests/ui/newtype-polymorphic.rs +tests/ui/newtype.rs +tests/ui/nll/borrow-use-issue-46875.rs +tests/ui/nll/borrowck-thread-local-static-mut-borrow-outlives-fn.rs +tests/ui/nll/issue-24535-allow-mutable-borrow-in-match-guard.rs +tests/ui/nll/issue-45696-long-live-borrows-in-boxes.rs +tests/ui/nll/issue-45696-no-variant-box-recur.rs +tests/ui/nll/issue-47589.rs +tests/ui/nll/issue-48070.rs +tests/ui/nll/issue-50343.rs +tests/ui/nll/issue-50461-used-mut-from-moves.rs +tests/ui/nll/issue-53123-raw-pointer-cast.rs +tests/ui/nll/issue-57960.rs +tests/ui/nll/mutating_references.rs +tests/ui/nll/process_or_insert_default.rs +tests/ui/nll/rc-loop.rs +tests/ui/no-core-1.rs +tests/ui/non_modrs_mods/non_modrs_mods.rs +tests/ui/nul-characters.rs +tests/ui/nullable-pointer-iotareduction.rs +tests/ui/nullable-pointer-size.rs +tests/ui/numbers-arithmetic/apfloat-modulo-wrong.rs +tests/ui/numbers-arithmetic/arith-unsigned.rs +tests/ui/numbers-arithmetic/div-mod.rs +tests/ui/numbers-arithmetic/f16-f128-lit.rs +tests/ui/numbers-arithmetic/float_math.rs +tests/ui/numbers-arithmetic/float-int-invalid-const-cast.rs +tests/ui/numbers-arithmetic/float-literal-inference.rs +tests/ui/numbers-arithmetic/float-nan.rs +tests/ui/numbers-arithmetic/float-signature.rs +tests/ui/numbers-arithmetic/float.rs +tests/ui/numbers-arithmetic/float2.rs +tests/ui/numbers-arithmetic/floatlits.rs +tests/ui/numbers-arithmetic/i128.rs +tests/ui/numbers-arithmetic/i32-sub.rs +tests/ui/numbers-arithmetic/i8-incr.rs +tests/ui/numbers-arithmetic/int-abs-overflow.rs +tests/ui/numbers-arithmetic/int.rs +tests/ui/numbers-arithmetic/integer-literal-radix.rs +tests/ui/numbers-arithmetic/integer-literal-suffix-inference-2.rs +tests/ui/numbers-arithmetic/integer-literal-suffix-inference-3.rs +tests/ui/numbers-arithmetic/integer-literal-suffix-inference.rs +tests/ui/numbers-arithmetic/issue-8460.rs +tests/ui/numbers-arithmetic/next-power-of-two-overflow-debug.rs +tests/ui/numbers-arithmetic/next-power-of-two-overflow-ndebug.rs +tests/ui/numbers-arithmetic/num-wrapping.rs +tests/ui/numbers-arithmetic/numeric-method-autoexport.rs +tests/ui/numbers-arithmetic/overflow-attribute-works-1.rs +tests/ui/numbers-arithmetic/overflow-attribute-works-2.rs +tests/ui/numbers-arithmetic/saturating-float-casts-wasm.rs +tests/ui/numbers-arithmetic/saturating-float-casts.rs +tests/ui/numbers-arithmetic/shift-near-oflo.rs +tests/ui/numbers-arithmetic/shift-various-types.rs +tests/ui/numbers-arithmetic/shift.rs +tests/ui/numbers-arithmetic/signed-shift-const-eval.rs +tests/ui/numbers-arithmetic/u128-as-f32.rs +tests/ui/numbers-arithmetic/u128.rs +tests/ui/numbers-arithmetic/u32-decr.rs +tests/ui/numbers-arithmetic/u8-incr-decr.rs +tests/ui/numbers-arithmetic/u8-incr.rs +tests/ui/numbers-arithmetic/uint.rs +tests/ui/numbers-arithmetic/unary-minus-suffix-inference.rs +tests/ui/object-lifetime/object-lifetime-default-default-to-static.rs +tests/ui/object-lifetime/object-lifetime-default-from-ref-struct.rs +tests/ui/object-lifetime/object-lifetime-default-from-rptr-box.rs +tests/ui/object-lifetime/object-lifetime-default-from-rptr-mut.rs +tests/ui/object-lifetime/object-lifetime-default-from-rptr-struct.rs +tests/ui/object-lifetime/object-lifetime-default-from-rptr.rs +tests/ui/object-lifetime/object-lifetime-default-inferred.rs +tests/ui/objects-coerce-freeze-borrored.rs +tests/ui/offset-of/offset-of-slice-normalized.rs +tests/ui/offset-of/offset-of-slice.rs +tests/ui/offset-of/offset-of-tuple-nested.rs +tests/ui/oom_unwind.rs +tests/ui/op-assign-builtins-by-ref.rs +tests/ui/opeq.rs +tests/ui/or-patterns/basic-switch.rs +tests/ui/or-patterns/basic-switchint.rs +tests/ui/or-patterns/bindings-runpass-1.rs +tests/ui/or-patterns/bindings-runpass-2.rs +tests/ui/or-patterns/box-patterns.rs +tests/ui/or-patterns/for-loop.rs +tests/ui/or-patterns/if-let-while-let.rs +tests/ui/or-patterns/issue-70413-no-unreachable-pat-and-guard.rs +tests/ui/or-patterns/let-pattern.rs +tests/ui/or-patterns/mix-with-wild.rs +tests/ui/or-patterns/search-via-bindings.rs +tests/ui/or-patterns/simplification_subtleties.rs +tests/ui/or-patterns/slice-patterns.rs +tests/ui/or-patterns/struct-like.rs +tests/ui/out-pointer-aliasing.rs +tests/ui/output-slot-variants.rs +tests/ui/over-constrained-vregs.rs +tests/ui/overloaded/issue-14958.rs +tests/ui/overloaded/overloaded_deref_with_ref_pattern_issue15609.rs +tests/ui/overloaded/overloaded_deref_with_ref_pattern.rs +tests/ui/overloaded/overloaded-autoderef-count.rs +tests/ui/overloaded/overloaded-autoderef-indexing.rs +tests/ui/overloaded/overloaded-autoderef-order.rs +tests/ui/overloaded/overloaded-autoderef-vtable.rs +tests/ui/overloaded/overloaded-autoderef.rs +tests/ui/overloaded/overloaded-calls-object-one-arg.rs +tests/ui/overloaded/overloaded-calls-object-two-args.rs +tests/ui/overloaded/overloaded-calls-object-zero-args.rs +tests/ui/overloaded/overloaded-calls-param-vtables.rs +tests/ui/overloaded/overloaded-calls-simple.rs +tests/ui/overloaded/overloaded-calls-zero-args.rs +tests/ui/overloaded/overloaded-deref-count.rs +tests/ui/overloaded/overloaded-deref.rs +tests/ui/overloaded/overloaded-index-assoc-list.rs +tests/ui/overloaded/overloaded-index-autoderef.rs +tests/ui/overloaded/overloaded-index-in-field.rs +tests/ui/overloaded/overloaded-index.rs +tests/ui/packed/dyn-trait.rs +tests/ui/packed/issue-118537-field-offset-ice.rs +tests/ui/packed/issue-118537-field-offset.rs +tests/ui/packed/issue-46152.rs +tests/ui/packed/packed-struct-address-of-element.rs +tests/ui/packed/packed-struct-drop-aligned.rs +tests/ui/packed/packed-struct-generic-layout.rs +tests/ui/packed/packed-struct-generic-size.rs +tests/ui/packed/packed-struct-layout.rs +tests/ui/packed/packed-struct-match.rs +tests/ui/packed/packed-struct-optimized-enum.rs +tests/ui/packed/packed-struct-size.rs +tests/ui/packed/packed-struct-vec.rs +tests/ui/packed/packed-tuple-struct-layout.rs +tests/ui/packed/packed-tuple-struct-size.rs +tests/ui/packed/packed-with-inference-vars-issue-61402.rs +tests/ui/panic-runtime/abort.rs +tests/ui/panic-runtime/link-to-unwind.rs +tests/ui/panic-runtime/lto-abort.rs +tests/ui/panic-runtime/lto-unwind.rs +tests/ui/panic-while-printing.rs +tests/ui/panics/abort-on-panic.rs +tests/ui/panics/nested_panic_caught.rs +tests/ui/panics/panic-handler-chain-update-hook.rs +tests/ui/panics/panic-handler-chain.rs +tests/ui/panics/panic-handler-flail-wildly.rs +tests/ui/panics/panic-handler-set-twice.rs +tests/ui/panics/panic-in-dtor-drops-fields.rs +tests/ui/panics/panic-recover-propagate.rs +tests/ui/parallel-rustc/hello_world.rs +tests/ui/parallel-rustc/read-stolen-value-issue-111520.rs +tests/ui/parser/issues/issue-17718-parse-const.rs +tests/ui/parser/issues/issue-21475.rs +tests/ui/parser/issues/issue-48508.rs +tests/ui/parser/issues/issue-65846-rollback-gating-failing-matcher.rs +tests/ui/parser/issues/issue-7222.rs +tests/ui/parser/macro/statement-boundaries.rs +tests/ui/parser/operator-associativity.rs +tests/ui/parser/parser-unicode-whitespace.rs +tests/ui/parser/ranges-precedence.rs +tests/ui/parser/slowparse-bstring.rs +tests/ui/parser/slowparse-string.rs +tests/ui/parser/utf8_idents-rpass.rs +tests/ui/path.rs +tests/ui/paths-containing-nul.rs +tests/ui/pattern/bindings-after-at/bind-by-copy.rs +tests/ui/pattern/bindings-after-at/box-patterns.rs +tests/ui/pattern/bindings-after-at/nested-patterns.rs +tests/ui/pattern/bindings-after-at/or-patterns-box-patterns.rs +tests/ui/pattern/bindings-after-at/or-patterns-slice-patterns.rs +tests/ui/pattern/bindings-after-at/or-patterns.rs +tests/ui/pattern/bindings-after-at/slice-patterns.rs +tests/ui/pattern/deref-patterns/bindings.rs +tests/ui/pattern/deref-patterns/branch.rs +tests/ui/pattern/deref-patterns/closure_capture.rs +tests/ui/pattern/ignore-all-the-things.rs +tests/ui/pattern/inc-range-pat.rs +tests/ui/pattern/integer-range-binding.rs +tests/ui/pattern/issue-10392.rs +tests/ui/pattern/issue-110508.rs +tests/ui/pattern/issue-11577.rs +tests/ui/pattern/issue-12582.rs +tests/ui/pattern/issue-15080.rs +tests/ui/pattern/issue-22546.rs +tests/ui/pattern/issue-27320.rs +tests/ui/pattern/issue-6449.rs +tests/ui/pattern/issue-8351-1.rs +tests/ui/pattern/issue-8351-2.rs +tests/ui/pattern/move-ref-patterns/move-ref-patterns-dynamic-semantics.rs +tests/ui/pattern/no_ref_mut_behind_and.rs +tests/ui/pattern/size-and-align.rs +tests/ui/pattern/usefulness/integer-ranges/regression-switchint-sorting-with-ranges.rs +tests/ui/pattern/usefulness/irrefutable-let-patterns.rs +tests/ui/pattern/usefulness/irrefutable-unit.rs +tests/ui/pattern/usefulness/issue-30240-rpass.rs +tests/ui/pattern/usefulness/nested-exhaustive-match.rs +tests/ui/polymorphization/promoted-function-3.rs +tests/ui/polymorphization/promoted-function.rs +tests/ui/precondition-checks/cfg-ub-checks-default.rs +tests/ui/precondition-checks/cfg-ub-checks-no.rs +tests/ui/precondition-checks/cfg-ub-checks-yes.rs +tests/ui/precondition-checks/zero-size-null.rs +tests/ui/primitive-binop-lhs-mut.rs +tests/ui/print-stdout-eprint-stderr.rs +tests/ui/privacy/privacy-ns.rs +tests/ui/privacy/private-class-field.rs +tests/ui/privacy/private-method-rpass.rs +tests/ui/privacy/pub-extern-privacy.rs +tests/ui/process-termination/process-termination-blocking-io.rs +tests/ui/process-termination/process-termination-simple.rs +tests/ui/process/env-args-reverse-iterator.rs +tests/ui/process/env-funky-keys.rs +tests/ui/process/env-vars.rs +tests/ui/process/exec-env.rs +tests/ui/process/fds-are-cloexec.rs +tests/ui/process/inherit-env.rs +tests/ui/process/issue-13304.rs +tests/ui/process/issue-14456.rs +tests/ui/process/issue-14940.rs +tests/ui/process/issue-16272.rs +tests/ui/process/issue-30490.rs +tests/ui/process/multi-panic.rs +tests/ui/process/no-stdio.rs +tests/ui/process/nofile-limit.rs +tests/ui/process/println-with-broken-pipe.rs +tests/ui/process/process-envs.rs +tests/ui/process/process-exit.rs +tests/ui/process/process-panic-after-fork.rs +tests/ui/process/process-remove-from-env.rs +tests/ui/process/process-sigpipe.rs +tests/ui/process/process-spawn-nonexistent.rs +tests/ui/process/process-spawn-with-unicode-params.rs +tests/ui/process/process-status-inherits-stdin.rs +tests/ui/process/signal-exit-status.rs +tests/ui/process/sigpipe-should-be-ignored.rs +tests/ui/process/try-wait.rs +tests/ui/project-cache-issue-31849.rs +tests/ui/ptr_ops/issue-80309-safe.rs +tests/ui/ptr_ops/issue-80309.rs +tests/ui/ptr-coercion-rpass.rs +tests/ui/range/range_inclusive.rs +tests/ui/raw-ref-op/raw-ref-op.rs +tests/ui/raw-str.rs +tests/ui/realloc-16687.rs +tests/ui/recursion_limit/issue-40003.rs +tests/ui/recursion/instantiable.rs +tests/ui/regions/init-res-into-things.rs +tests/ui/regions/issue-5243.rs +tests/ui/regions/issue-6157.rs +tests/ui/regions/owned-implies-static.rs +tests/ui/regions/rcvr-borrowed-to-region.rs +tests/ui/regions/regions-addr-of-interior-of-unique-box.rs +tests/ui/regions/regions-addr-of-ret.rs +tests/ui/regions/regions-borrow-at.rs +tests/ui/regions/regions-borrow-evec-fixed.rs +tests/ui/regions/regions-borrow-evec-uniq.rs +tests/ui/regions/regions-borrow-uniq.rs +tests/ui/regions/regions-bot.rs +tests/ui/regions/regions-close-over-type-parameter-successfully.rs +tests/ui/regions/regions-copy-closure.rs +tests/ui/regions/regions-creating-enums2.rs +tests/ui/regions/regions-creating-enums5.rs +tests/ui/regions/regions-dependent-addr-of.rs +tests/ui/regions/regions-dependent-autofn.rs +tests/ui/regions/regions-dependent-autoslice.rs +tests/ui/regions/regions-dependent-let-ref.rs +tests/ui/regions/regions-early-bound-trait-param.rs +tests/ui/regions/regions-early-bound-used-in-bound-method.rs +tests/ui/regions/regions-early-bound-used-in-bound.rs +tests/ui/regions/regions-early-bound-used-in-type-param.rs +tests/ui/regions/regions-escape-into-other-fn.rs +tests/ui/regions/regions-fn-subtyping-2.rs +tests/ui/regions/regions-fn-subtyping.rs +tests/ui/regions/regions-infer-borrow-scope-addr-of.rs +tests/ui/regions/regions-infer-borrow-scope-view.rs +tests/ui/regions/regions-infer-borrow-scope-within-loop-ok.rs +tests/ui/regions/regions-infer-borrow-scope.rs +tests/ui/regions/regions-infer-call-2.rs +tests/ui/regions/regions-infer-call.rs +tests/ui/regions/regions-infer-contravariance-due-to-ret.rs +tests/ui/regions/regions-infer-reborrow-ref-mut-recurse.rs +tests/ui/regions/regions-infer-static-from-proc.rs +tests/ui/regions/regions-lifetime-nonfree-late-bound.rs +tests/ui/regions/regions-lifetime-static-items-enclosing-scopes.rs +tests/ui/regions/regions-mock-codegen.rs +tests/ui/regions/regions-params.rs +tests/ui/regions/regions-reassign-let-bound-pointer.rs +tests/ui/regions/regions-reassign-match-bound-pointer.rs +tests/ui/regions/regions-refcell.rs +tests/ui/regions/regions-relate-bound-regions-on-closures-to-inference-variables.rs +tests/ui/regions/regions-return-interior-of-option.rs +tests/ui/regions/regions-self-impls.rs +tests/ui/regions/regions-self-in-enums.rs +tests/ui/regions/regions-simple.rs +tests/ui/regions/regions-static-bound-rpass.rs +tests/ui/regions/regions-static-closure.rs +tests/ui/regions/regions-trait-object-1.rs +tests/ui/repeat-expr/repeat-expr-in-static.rs +tests/ui/repr/align-with-extern-c-fn.rs +tests/ui/repr/aligned_enum_cast.rs +tests/ui/repr/repr_c_int_align.rs +tests/ui/resolve/blind-item-local-shadow.rs +tests/ui/resolve/blind-item-mixed-use-item.rs +tests/ui/resolve/no-std-1.rs +tests/ui/resolve/no-std-2.rs +tests/ui/resolve/no-std-3.rs +tests/ui/resolve/primitive-usage.rs +tests/ui/resolve/resolve-issue-2428.rs +tests/ui/resolve/resolve-pseudo-shadowing.rs +tests/ui/resource-assign-is-not-copy.rs +tests/ui/resource-destruct.rs +tests/ui/return/ret-bang.rs +tests/ui/return/return-nil.rs +tests/ui/rfcs/rfc-0107-bind-by-move-pattern-guards/bind-by-move-no-guards.rs +tests/ui/rfcs/rfc-0107-bind-by-move-pattern-guards/rfc-basic-examples.rs +tests/ui/rfcs/rfc-1014-stdout-existential-crisis/rfc-1014-2.rs +tests/ui/rfcs/rfc-1014-stdout-existential-crisis/rfc-1014.rs +tests/ui/rfcs/rfc-1445-restrict-constants-in-patterns/allow-use-behind-cousin-variant.rs +tests/ui/rfcs/rfc-1445-restrict-constants-in-patterns/match-empty-array-allowed-without-eq-issue-62336.rs +tests/ui/rfcs/rfc-1445-restrict-constants-in-patterns/phantom-data-is-structurally-matchable.rs +tests/ui/rfcs/rfc-1445-restrict-constants-in-patterns/rfc1445/eq-allows-match-on-ty-in-macro.rs +tests/ui/rfcs/rfc-1445-restrict-constants-in-patterns/rfc1445/eq-allows-match.rs +tests/ui/rfcs/rfc-1623-static/rfc1623.rs +tests/ui/rfcs/rfc-1717-dllimport/1717-dllimport/library-override.rs +tests/ui/rfcs/rfc-1789-as-cell/from-mut.rs +tests/ui/rfcs/rfc-1857-stabilize-drop-order/drop-order.rs +tests/ui/rfcs/rfc-1937-termination-trait/termination-trait-for-box-dyn-error-ok.rs +tests/ui/rfcs/rfc-1937-termination-trait/termination-trait-for-exitcode.rs +tests/ui/rfcs/rfc-1937-termination-trait/termination-trait-for-impl-termination.rs +tests/ui/rfcs/rfc-1937-termination-trait/termination-trait-for-result-box-error_ok.rs +tests/ui/rfcs/rfc-1937-termination-trait/termination-trait-for-result.rs +tests/ui/rfcs/rfc-1937-termination-trait/termination-trait-for-str-ok.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/box.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/constref.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/enum-ok.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/for-ok.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/general.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/lit-ok.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/range.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/ref-region.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/reset-mode.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/slice-ok.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/struct.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/tuple-struct.rs +tests/ui/rfcs/rfc-2005-default-binding-mode/tuple.rs +tests/ui/rfcs/rfc-2008-non-exhaustive/enum_same_crate.rs +tests/ui/rfcs/rfc-2008-non-exhaustive/structs_same_crate.rs +tests/ui/rfcs/rfc-2008-non-exhaustive/variants_same_crate.rs +tests/ui/rfcs/rfc-2027-dyn-compatible-for-dispatch/manual-self-impl-for-unsafe-obj.rs +tests/ui/rfcs/rfc-2091-track-caller/call-chain.rs +tests/ui/rfcs/rfc-2091-track-caller/caller-location-intrinsic.rs +tests/ui/rfcs/rfc-2091-track-caller/const-caller-location.rs +tests/ui/rfcs/rfc-2091-track-caller/intrinsic-wrapper.rs +tests/ui/rfcs/rfc-2091-track-caller/mir-inlined-macro.rs +tests/ui/rfcs/rfc-2091-track-caller/pass.rs +tests/ui/rfcs/rfc-2091-track-caller/std-panic-locations.rs +tests/ui/rfcs/rfc-2091-track-caller/track-caller-attribute.rs +tests/ui/rfcs/rfc-2091-track-caller/track-caller-ffi.rs +tests/ui/rfcs/rfc-2091-track-caller/tracked-closure.rs +tests/ui/rfcs/rfc-2091-track-caller/tracked-trait-impls.rs +tests/ui/rfcs/rfc-2091-track-caller/tracked-trait-obj.rs +tests/ui/rfcs/rfc-2151-raw-identifiers/attr.rs +tests/ui/rfcs/rfc-2151-raw-identifiers/basic.rs +tests/ui/rfcs/rfc-2151-raw-identifiers/items.rs +tests/ui/rfcs/rfc-2151-raw-identifiers/macros.rs +tests/ui/rfcs/rfc-2175-or-if-while-let/basic.rs +tests/ui/rfcs/rfc-2294-if-let-guard/drop-order.rs +tests/ui/rfcs/rfc-2294-if-let-guard/run-pass.rs +tests/ui/rfcs/rfc-2294-if-let-guard/scope.rs +tests/ui/rfcs/rfc-2302-self-struct-ctor/rfc-2302-self-struct-ctor.rs +tests/ui/rfcs/rfc-2361-dbg-macro/dbg-macro-expected-behavior.rs +tests/ui/rfcs/rfc-2421-unreserve-pure-offsetof-sizeof-alignof/offsetof-alignof-sizeof-pure-can-be-used-as-idents.rs +tests/ui/rfcs/rfc-2497-if-let-chains/ast-lowering-does-not-wrap-let-chains.rs +tests/ui/rfcs/rfc-2497-if-let-chains/protect-precedences.rs +tests/ui/rfcs/rfc-2497-if-let-chains/then-else-blocks.rs +tests/ui/runtime/atomic-print.rs +tests/ui/runtime/backtrace-debuginfo.rs +tests/ui/runtime/on-broken-pipe/inherit.rs +tests/ui/runtime/out-of-stack.rs +tests/ui/runtime/rt-explody-panic-payloads.rs +tests/ui/runtime/signal-alternate-stack-cleanup.rs +tests/ui/runtime/stdout-before-main.rs +tests/ui/runtime/stdout-during-shutdown-unix.rs +tests/ui/runtime/stdout-during-shutdown-windows.rs +tests/ui/sanitizer/cfi/complex-receiver.rs +tests/ui/sanitizer/cfi/drop-in-place.rs +tests/ui/sanitizer/cfi/fn-ptr.rs +tests/ui/sanitizer/cfi/self-ref.rs +tests/ui/sanitizer/cfi/sized-associated-ty.rs +tests/ui/sanitizer/cfi/supertraits.rs +tests/ui/sanitizer/cfi/virtual-auto.rs +tests/ui/sanitizer/issue-72154-address-lifetime-markers.rs +tests/ui/self/arbitrary_self_types_nested.rs +tests/ui/self/arbitrary_self_types_pointers_and_wrappers.rs +tests/ui/self/arbitrary_self_types_raw_pointer_struct.rs +tests/ui/self/arbitrary_self_types_raw_pointer_trait.rs +tests/ui/self/arbitrary_self_types_silly.rs +tests/ui/self/arbitrary_self_types_stdlib_pointers.rs +tests/ui/self/arbitrary_self_types_struct.rs +tests/ui/self/arbitrary_self_types_trait.rs +tests/ui/self/arbitrary_self_types_unsized_struct.rs +tests/ui/self/builtin-superkinds-self-type.rs +tests/ui/self/by-value-self-in-mut-slot.rs +tests/ui/self/dyn-compatibility-sized-self-by-value-self.rs +tests/ui/self/dyn-compatibility-sized-self-generic-method.rs +tests/ui/self/dyn-compatibility-sized-self-return-Self.rs +tests/ui/self/explicit-self-generic.rs +tests/ui/self/explicit-self-objects-uniq.rs +tests/ui/self/explicit-self.rs +tests/ui/self/move-self.rs +tests/ui/self/objects-owned-object-owned-method.rs +tests/ui/self/self-impl-2.rs +tests/ui/self/self-in-mut-slot-default-method.rs +tests/ui/self/self-in-mut-slot-immediate-value.rs +tests/ui/self/self-re-assign.rs +tests/ui/self/self-shadowing-import.rs +tests/ui/self/string-self-append.rs +tests/ui/self/ufcs-explicit-self.rs +tests/ui/self/uniq-self-in-mut-slot.rs +tests/ui/self/where-for-self.rs +tests/ui/sepcomp/sepcomp-fns-backwards.rs +tests/ui/sepcomp/sepcomp-fns.rs +tests/ui/sepcomp/sepcomp-statics.rs +tests/ui/sepcomp/sepcomp-unwind.rs +tests/ui/shadowed-use-visibility.rs +tests/ui/simd/array-type.rs +tests/ui/simd/generics.rs +tests/ui/simd/intrinsic/float-math-pass.rs +tests/ui/simd/intrinsic/float-minmax-pass.rs +tests/ui/simd/intrinsic/generic-arithmetic-pass.rs +tests/ui/simd/intrinsic/generic-arithmetic-saturating-pass.rs +tests/ui/simd/intrinsic/generic-as.rs +tests/ui/simd/intrinsic/generic-bitmask-pass.rs +tests/ui/simd/intrinsic/generic-bswap-byte.rs +tests/ui/simd/intrinsic/generic-cast-pass.rs +tests/ui/simd/intrinsic/generic-cast-pointer-width.rs +tests/ui/simd/intrinsic/generic-comparison-pass.rs +tests/ui/simd/intrinsic/generic-elements-pass.rs +tests/ui/simd/intrinsic/generic-gather-pass.rs +tests/ui/simd/intrinsic/generic-reduction-pass.rs +tests/ui/simd/intrinsic/generic-select-pass.rs +tests/ui/simd/intrinsic/inlining-issue67557-ice.rs +tests/ui/simd/intrinsic/inlining-issue67557.rs +tests/ui/simd/intrinsic/ptr-cast.rs +tests/ui/simd/issue-105439.rs +tests/ui/simd/issue-17170.rs +tests/ui/simd/issue-32947.rs +tests/ui/simd/issue-39720.rs +tests/ui/simd/issue-85915-simd-ptrs.rs +tests/ui/simd/issue-89193.rs +tests/ui/simd/libm_std_can_float.rs +tests/ui/simd/masked-load-store.rs +tests/ui/simd/repr_packed.rs +tests/ui/simd/shuffle.rs +tests/ui/simd/simd-bitmask-notpow2.rs +tests/ui/simd/simd-bitmask.rs +tests/ui/simd/size-align.rs +tests/ui/simd/target-feature-mixup.rs +tests/ui/simd/type-generic-monomorphisation-extern-nonnull-ptr.rs +tests/ui/simd/type-generic-monomorphisation-power-of-two.rs +tests/ui/sized/coinductive-2.rs +tests/ui/specialization/defaultimpl/projection.rs +tests/ui/specialization/defaultimpl/specialization-trait-item-not-implemented-rpass.rs +tests/ui/specialization/issue-50452.rs +tests/ui/specialization/soundness/partial_eq_range_inclusive.rs +tests/ui/specialization/soundness/partial_ord_slice.rs +tests/ui/specialization/specialization-assoc-fns.rs +tests/ui/specialization/specialization-basics.rs +tests/ui/specialization/specialization-default-methods.rs +tests/ui/specialization/specialization-projection-alias.rs +tests/ui/specialization/specialization-projection.rs +tests/ui/specialization/specialization-translate-projections-with-lifetimes.rs +tests/ui/specialization/specialization-translate-projections-with-params.rs +tests/ui/specialization/specialization-translate-projections.rs +tests/ui/specialization/transmute-specialization.rs +tests/ui/sse2.rs +tests/ui/stable-addr-of.rs +tests/ui/static/issue-1660.rs +tests/ui/static/refer-to-other-statics-by-value.rs +tests/ui/statics/const_generics.rs +tests/ui/statics/issue-17233.rs +tests/ui/statics/issue-17718-static-unsafe-interior.rs +tests/ui/statics/static-function-pointer.rs +tests/ui/statics/static-impl.rs +tests/ui/statics/static-method-in-trait-with-tps-intracrate.rs +tests/ui/statics/static-methods-in-traits.rs +tests/ui/statics/static-methods-in-traits2.rs +tests/ui/statics/static-promotion.rs +tests/ui/statics/static-recursive.rs +tests/ui/std/channel-stack-overflow-issue-102246.rs +tests/ui/std/issue-3563-3.rs +tests/ui/std/stdio-from.rs +tests/ui/std/thread-sleep-ms.rs +tests/ui/std/windows-bat-args.rs +tests/ui/stdio-is-blocking.rs +tests/ui/stdlib-unit-tests/matches2021.rs +tests/ui/stdlib-unit-tests/raw-fat-ptr.rs +tests/ui/string-box-error.rs +tests/ui/struct-ctor-mangling.rs +tests/ui/structs-enums/align-enum.rs +tests/ui/structs-enums/align-struct.rs +tests/ui/structs-enums/borrow-tuple-fields.rs +tests/ui/structs-enums/class-cast-to-trait-multiple-types.rs +tests/ui/structs-enums/class-cast-to-trait.rs +tests/ui/structs-enums/class-exports.rs +tests/ui/structs-enums/class-impl-very-parameterized-trait.rs +tests/ui/structs-enums/class-implement-traits.rs +tests/ui/structs-enums/class-methods.rs +tests/ui/structs-enums/class-poly-methods.rs +tests/ui/structs-enums/class-separate-impl.rs +tests/ui/structs-enums/class-str-field.rs +tests/ui/structs-enums/class-typarams.rs +tests/ui/structs-enums/classes-simple-method.rs +tests/ui/structs-enums/classes-simple.rs +tests/ui/structs-enums/classes.rs +tests/ui/structs-enums/codegen-tag-static-padding.rs +tests/ui/structs-enums/compare-generic-enums.rs +tests/ui/structs-enums/discrim-explicit-23030.rs +tests/ui/structs-enums/empty-tag.rs +tests/ui/structs-enums/enum-alignment.rs +tests/ui/structs-enums/enum-clike-ffi-as-int.rs +tests/ui/structs-enums/enum-discr.rs +tests/ui/structs-enums/enum-discrim-autosizing.rs +tests/ui/structs-enums/enum-discrim-manual-sizing.rs +tests/ui/structs-enums/enum-discrim-width-stuff.rs +tests/ui/structs-enums/enum-disr-val-pretty.rs +tests/ui/structs-enums/enum-export-inheritance.rs +tests/ui/structs-enums/enum-layout-optimization.rs +tests/ui/structs-enums/enum-non-c-like-repr-c-and-int.rs +tests/ui/structs-enums/enum-non-c-like-repr-c.rs +tests/ui/structs-enums/enum-non-c-like-repr-int.rs +tests/ui/structs-enums/enum-null-pointer-opt.rs +tests/ui/structs-enums/enum-nullable-const-null-with-fields.rs +tests/ui/structs-enums/enum-nullable-simplifycfg-misopt.rs +tests/ui/structs-enums/enum-univariant-repr.rs +tests/ui/structs-enums/enum-variants.rs +tests/ui/structs-enums/enum-vec-initializer.rs +tests/ui/structs-enums/export-abstract-tag.rs +tests/ui/structs-enums/export-tag-variant.rs +tests/ui/structs-enums/expr-if-struct.rs +tests/ui/structs-enums/expr-match-struct.rs +tests/ui/structs-enums/field-destruction-order.rs +tests/ui/structs-enums/functional-struct-upd.rs +tests/ui/structs-enums/issue-1701.rs +tests/ui/structs-enums/issue-38002.rs +tests/ui/structs-enums/issue-50731.rs +tests/ui/structs-enums/ivec-tag.rs +tests/ui/structs-enums/module-qualified-struct-destructure.rs +tests/ui/structs-enums/multiple-reprs.rs +tests/ui/structs-enums/newtype-struct-drop-run.rs +tests/ui/structs-enums/newtype-struct-with-dtor.rs +tests/ui/structs-enums/nonzero-enum.rs +tests/ui/structs-enums/numeric-fields.rs +tests/ui/structs-enums/rec-align-u32.rs +tests/ui/structs-enums/rec-align-u64.rs +tests/ui/structs-enums/rec-auto.rs +tests/ui/structs-enums/rec-extend.rs +tests/ui/structs-enums/rec-tup.rs +tests/ui/structs-enums/rec.rs +tests/ui/structs-enums/record-pat.rs +tests/ui/structs-enums/resource-in-struct.rs +tests/ui/structs-enums/simple-match-generic-tag.rs +tests/ui/structs-enums/small-enum-range-edge.rs +tests/ui/structs-enums/small-enums-with-fields.rs +tests/ui/structs-enums/struct-aliases.rs +tests/ui/structs-enums/struct-field-shorthand.rs +tests/ui/structs-enums/struct-like-variant-construct.rs +tests/ui/structs-enums/struct-like-variant-match.rs +tests/ui/structs-enums/struct-lit-functional-no-fields.rs +tests/ui/structs-enums/struct-literal-dtor.rs +tests/ui/structs-enums/struct-new-as-field-name.rs +tests/ui/structs-enums/struct-order-of-eval-1.rs +tests/ui/structs-enums/struct-order-of-eval-2.rs +tests/ui/structs-enums/struct-order-of-eval-3.rs +tests/ui/structs-enums/struct-order-of-eval-4.rs +tests/ui/structs-enums/struct-partial-move-1.rs +tests/ui/structs-enums/struct-partial-move-2.rs +tests/ui/structs-enums/struct-path-associated-type.rs +tests/ui/structs-enums/struct-path-self.rs +tests/ui/structs-enums/struct-pattern-matching.rs +tests/ui/structs-enums/tag-align-dyn-u64.rs +tests/ui/structs-enums/tag-align-dyn-variants.rs +tests/ui/structs-enums/tag-align-shape.rs +tests/ui/structs-enums/tag-align-u64.rs +tests/ui/structs-enums/tag-disr-val-shape.rs +tests/ui/structs-enums/tag-exports.rs +tests/ui/structs-enums/tag-variant-disr-val.rs +tests/ui/structs-enums/tag.rs +tests/ui/structs-enums/tuple-struct-construct.rs +tests/ui/structs-enums/tuple-struct-constructor-pointer.rs +tests/ui/structs-enums/tuple-struct-destructuring.rs +tests/ui/structs-enums/tuple-struct-matching.rs +tests/ui/structs-enums/tuple-struct-trivial.rs +tests/ui/structs-enums/type-sizes.rs +tests/ui/structs-enums/unit-like-struct-drop-run.rs +tests/ui/structs-enums/unit-like-struct.rs +tests/ui/structs/large-records.rs +tests/ui/super.rs +tests/ui/swap-1.rs +tests/ui/swap-overlapping.rs +tests/ui/syntax-extension-minor.rs +tests/ui/tail-call-arg-leak.rs +tests/ui/tail-cps.rs +tests/ui/test-attrs/test-main-not-dead.rs +tests/ui/test-attrs/test-runner-hides-main.rs +tests/ui/thread-local/tls.rs +tests/ui/threads-sendsync/child-outlives-parent.rs +tests/ui/threads-sendsync/clone-with-exterior.rs +tests/ui/threads-sendsync/comm.rs +tests/ui/threads-sendsync/eprint-on-tls-drop.rs +tests/ui/threads-sendsync/issue-24313.rs +tests/ui/threads-sendsync/issue-29488.rs +tests/ui/threads-sendsync/issue-4446.rs +tests/ui/threads-sendsync/issue-4448.rs +tests/ui/threads-sendsync/issue-8827.rs +tests/ui/threads-sendsync/issue-9396.rs +tests/ui/threads-sendsync/send_str_hashmap.rs +tests/ui/threads-sendsync/send_str_treemap.rs +tests/ui/threads-sendsync/send-is-not-static-par-for.rs +tests/ui/threads-sendsync/send-resource.rs +tests/ui/threads-sendsync/sendable-class.rs +tests/ui/threads-sendsync/sendfn-is-a-block.rs +tests/ui/threads-sendsync/sendfn-spawn-with-fn-arg.rs +tests/ui/threads-sendsync/spawn-fn.rs +tests/ui/threads-sendsync/spawn-types.rs +tests/ui/threads-sendsync/spawn.rs +tests/ui/threads-sendsync/spawn2.rs +tests/ui/threads-sendsync/spawning-with-debug.rs +tests/ui/threads-sendsync/std-sync-right-kind-impls.rs +tests/ui/threads-sendsync/sync-send-in-std.rs +tests/ui/threads-sendsync/sync-send-iterators-in-libcollections.rs +tests/ui/threads-sendsync/sync-send-iterators-in-libcore.rs +tests/ui/threads-sendsync/task-comm-0.rs +tests/ui/threads-sendsync/task-comm-1.rs +tests/ui/threads-sendsync/task-comm-10.rs +tests/ui/threads-sendsync/task-comm-11.rs +tests/ui/threads-sendsync/task-comm-12.rs +tests/ui/threads-sendsync/task-comm-13.rs +tests/ui/threads-sendsync/task-comm-14.rs +tests/ui/threads-sendsync/task-comm-15.rs +tests/ui/threads-sendsync/task-comm-16.rs +tests/ui/threads-sendsync/task-comm-17.rs +tests/ui/threads-sendsync/task-comm-3.rs +tests/ui/threads-sendsync/task-comm-4.rs +tests/ui/threads-sendsync/task-comm-5.rs +tests/ui/threads-sendsync/task-comm-6.rs +tests/ui/threads-sendsync/task-comm-7.rs +tests/ui/threads-sendsync/task-comm-9.rs +tests/ui/threads-sendsync/task-comm-chan-nil.rs +tests/ui/threads-sendsync/task-life-0.rs +tests/ui/threads-sendsync/task-spawn-move-and-copy.rs +tests/ui/threads-sendsync/task-stderr.rs +tests/ui/threads-sendsync/tcp-stress.rs +tests/ui/threads-sendsync/threads.rs +tests/ui/threads-sendsync/tls-dtors-are-run-in-a-static-binary.rs +tests/ui/threads-sendsync/tls-init-on-init.rs +tests/ui/threads-sendsync/tls-try-with.rs +tests/ui/threads-sendsync/trivial-message.rs +tests/ui/threads-sendsync/unwind-resource.rs +tests/ui/threads-sendsync/yield.rs +tests/ui/threads-sendsync/yield1.rs +tests/ui/threads-sendsync/yield2.rs +tests/ui/trailing-comma.rs +tests/ui/traits/alias/bounds.rs +tests/ui/traits/alias/import.rs +tests/ui/traits/alias/object.rs +tests/ui/traits/alignment-gep-tup-like-1.rs +tests/ui/traits/anon-static-method.rs +tests/ui/traits/assignability-trait.rs +tests/ui/traits/assoc-type-in-supertrait.rs +tests/ui/traits/associated_type_bound/check-trait-object-bounds-2-ok.rs +tests/ui/traits/bound/generic_trait.rs +tests/ui/traits/bound/in-arc.rs +tests/ui/traits/bound/multiple.rs +tests/ui/traits/bug-7183-generics.rs +tests/ui/traits/bug-7295.rs +tests/ui/traits/coercion-generic.rs +tests/ui/traits/coercion.rs +tests/ui/traits/conditional-dispatch.rs +tests/ui/traits/const-traits/specialization/const-default-const-specialized.rs +tests/ui/traits/const-traits/specialization/non-const-default-const-specialized.rs +tests/ui/traits/const-traits/trait-where-clause-run.rs +tests/ui/traits/default-method/bound-subst.rs +tests/ui/traits/default-method/bound-subst2.rs +tests/ui/traits/default-method/bound-subst3.rs +tests/ui/traits/default-method/bound-subst4.rs +tests/ui/traits/default-method/bound.rs +tests/ui/traits/default-method/macro.rs +tests/ui/traits/default-method/self.rs +tests/ui/traits/default-method/supervtable.rs +tests/ui/traits/default-method/trivial.rs +tests/ui/traits/dyn-any-prefer-vtable.rs +tests/ui/traits/dyn-drop-principal.rs +tests/ui/traits/dyn-trait.rs +tests/ui/traits/early-vtbl-resolution.rs +tests/ui/traits/elaborate-type-region.rs +tests/ui/traits/false-ambiguity-where-clause-builtin-bound.rs +tests/ui/traits/fmt-pointer-trait.rs +tests/ui/traits/generic.rs +tests/ui/traits/ice-with-dyn-pointee.rs +tests/ui/traits/impl-implicit-trait.rs +tests/ui/traits/impl-inherent-prefer-over-trait.rs +tests/ui/traits/impl-object-overlap-issue-23853.rs +tests/ui/traits/inherent-method-order.rs +tests/ui/traits/inheritance/auto.rs +tests/ui/traits/inheritance/basic.rs +tests/ui/traits/inheritance/call-bound-inherited.rs +tests/ui/traits/inheritance/call-bound-inherited2.rs +tests/ui/traits/inheritance/cast-without-call-to-supertrait.rs +tests/ui/traits/inheritance/cast.rs +tests/ui/traits/inheritance/cross-trait-call.rs +tests/ui/traits/inheritance/diamond.rs +tests/ui/traits/inheritance/multiple-inheritors.rs +tests/ui/traits/inheritance/multiple-params.rs +tests/ui/traits/inheritance/num2.rs +tests/ui/traits/inheritance/num3.rs +tests/ui/traits/inheritance/num5.rs +tests/ui/traits/inheritance/overloading-simple.rs +tests/ui/traits/inheritance/overloading.rs +tests/ui/traits/inheritance/repeated-supertrait.rs +tests/ui/traits/inheritance/self-in-supertype.rs +tests/ui/traits/inheritance/self.rs +tests/ui/traits/inheritance/simple.rs +tests/ui/traits/inheritance/static.rs +tests/ui/traits/inheritance/static2.rs +tests/ui/traits/inheritance/subst.rs +tests/ui/traits/inheritance/subst2.rs +tests/ui/traits/inheritance/visibility.rs +tests/ui/traits/issue-15155.rs +tests/ui/traits/issue-18412.rs +tests/ui/traits/issue-22110.rs +tests/ui/traits/issue-22655.rs +tests/ui/traits/issue-23825.rs +tests/ui/traits/issue-24010.rs +tests/ui/traits/issue-26339.rs +tests/ui/traits/issue-33096.rs +tests/ui/traits/issue-3683.rs +tests/ui/traits/issue-38033.rs +tests/ui/traits/issue-3979-generics.rs +tests/ui/traits/issue-40085.rs +tests/ui/traits/issue-4107.rs +tests/ui/traits/issue-43132.rs +tests/ui/traits/issue-5008-borrowed-traitobject-method-call.rs +tests/ui/traits/issue-6128.rs +tests/ui/traits/issue-6334.rs +tests/ui/traits/issue-9394-inherited-calls.rs +tests/ui/traits/item-inside-macro.rs +tests/ui/traits/kindck-owned-contains-1.rs +tests/ui/traits/monad.rs +tests/ui/traits/monomorphized-callees-with-ty-params-3314.rs +tests/ui/traits/multidispatch-conditional-impl-not-considered.rs +tests/ui/traits/multidispatch-infer-convert-target.rs +tests/ui/traits/multidispatch1.rs +tests/ui/traits/multidispatch2.rs +tests/ui/traits/negative-impls/negated-auto-traits-rpass.rs +tests/ui/traits/next-solver/alias-bound-preference.rs +tests/ui/traits/next-solver/dyn-any-dont-prefer-impl.rs +tests/ui/traits/object-one-type-two-traits.rs +tests/ui/traits/object/auto-dedup.rs +tests/ui/traits/object/exclusion.rs +tests/ui/traits/object/generics.rs +tests/ui/traits/object/lifetime-first.rs +tests/ui/traits/object/with-lifetime-bound.rs +tests/ui/traits/objects-owned-object-borrowed-method-headerless.rs +tests/ui/traits/overlap-permitted-for-marker-traits.rs +tests/ui/traits/pointee-deduction.rs +tests/ui/traits/principal-less-objects.rs +tests/ui/traits/region-pointer-simple.rs +tests/ui/traits/reservation-impl/ok.rs +tests/ui/traits/safety-ok.rs +tests/ui/traits/static-method-overwriting.rs +tests/ui/traits/static-outlives-a-where-clause.rs +tests/ui/traits/superdefault-generics.rs +tests/ui/traits/to-str.rs +tests/ui/traits/trait-upcasting/basic.rs +tests/ui/traits/trait-upcasting/correct-supertrait-substitution.rs +tests/ui/traits/trait-upcasting/diamond.rs +tests/ui/traits/trait-upcasting/issue-11515-upcast-fn_mut-fn.rs +tests/ui/traits/trait-upcasting/lifetime.rs +tests/ui/traits/trait-upcasting/replace-vptr.rs +tests/ui/traits/trait-upcasting/struct.rs +tests/ui/traits/typeclasses-eq-example-static.rs +tests/ui/traits/typeclasses-eq-example.rs +tests/ui/traits/ufcs-object.rs +tests/ui/traits/upcast_reorder.rs +tests/ui/traits/where-clause-vs-impl.rs +tests/ui/traits/with-bounds-default.rs +tests/ui/transmute-non-immediate-to-immediate.rs +tests/ui/transmute/transmute-zst-generics.rs +tests/ui/trivial_casts-rpass.rs +tests/ui/try-block/try-is-identifier-edition2015.rs +tests/ui/try-from-int-error-partial-eq.rs +tests/ui/try-operator-hygiene.rs +tests/ui/try-operator.rs +tests/ui/try-trait/try-as-monad.rs +tests/ui/try-trait/try-operator-custom.rs +tests/ui/try-trait/yeet-for-option.rs +tests/ui/try-trait/yeet-for-result.rs +tests/ui/tuple/nested-index.rs +tests/ui/tuple/one-tuple.rs +tests/ui/tuple/tup.rs +tests/ui/tuple/tuple-index-fat-types.rs +tests/ui/tuple/tuple-index.rs +tests/ui/tydesc-name.rs +tests/ui/type-alias-enum-variants/enum-variant-generic-args-pass.rs +tests/ui/type-alias-enum-variants/type-alias-enum-variants-pass.rs +tests/ui/type-alias-impl-trait/type-alias-nested-impl-trait.rs +tests/ui/type-id-higher-rank-2.rs +tests/ui/type-inference/issue-113283-alllocator-trait-eq.rs +tests/ui/type-namespace.rs +tests/ui/type-param-constraints.rs +tests/ui/type-ptr.rs +tests/ui/type-use-i1-versus-i8.rs +tests/ui/type/issue-94187-verbose-type-name.rs +tests/ui/type/type-ascription.rs +tests/ui/typeck/issue-18937-1.rs +tests/ui/typeck/issue-2063.rs +tests/ui/typeck/typeck_type_placeholder_1.rs +tests/ui/typeck/typeck-closure-to-unsafe-fn-ptr.rs +tests/ui/typeck/typeck-fn-to-unsafe-fn-ptr.rs +tests/ui/typeck/ufcs-type-params.rs +tests/ui/typeck/unify-return-ty.rs +tests/ui/typestate-multi-decl.rs +tests/ui/ufcs/ufcs-polymorphic-paths.rs +tests/ui/unboxed-closures/issue-18652.rs +tests/ui/unboxed-closures/issue-18661.rs +tests/ui/unboxed-closures/type-id-higher-rank.rs +tests/ui/unboxed-closures/unboxed-closures-all-traits.rs +tests/ui/unboxed-closures/unboxed-closures-blanket-fn-mut.rs +tests/ui/unboxed-closures/unboxed-closures-blanket-fn.rs +tests/ui/unboxed-closures/unboxed-closures-boxed.rs +tests/ui/unboxed-closures/unboxed-closures-by-ref.rs +tests/ui/unboxed-closures/unboxed-closures-call-fn-autoderef.rs +tests/ui/unboxed-closures/unboxed-closures-call-sugar-autoderef.rs +tests/ui/unboxed-closures/unboxed-closures-call-sugar-object-autoderef.rs +tests/ui/unboxed-closures/unboxed-closures-call-sugar-object.rs +tests/ui/unboxed-closures/unboxed-closures-counter-not-moved.rs +tests/ui/unboxed-closures/unboxed-closures-direct-sugary-call.rs +tests/ui/unboxed-closures/unboxed-closures-drop.rs +tests/ui/unboxed-closures/unboxed-closures-extern-fn-hr.rs +tests/ui/unboxed-closures/unboxed-closures-extern-fn.rs +tests/ui/unboxed-closures/unboxed-closures-fn-as-fnmut-and-fnonce.rs +tests/ui/unboxed-closures/unboxed-closures-fnmut-as-fnonce.rs +tests/ui/unboxed-closures/unboxed-closures-generic.rs +tests/ui/unboxed-closures/unboxed-closures-infer-arg-types-from-expected-bound.rs +tests/ui/unboxed-closures/unboxed-closures-infer-arg-types-from-expected-object-type.rs +tests/ui/unboxed-closures/unboxed-closures-infer-arg-types-w-bound-regs-from-expected-bound.rs +tests/ui/unboxed-closures/unboxed-closures-infer-explicit-call-early.rs +tests/ui/unboxed-closures/unboxed-closures-infer-fnmut-calling-fnmut.rs +tests/ui/unboxed-closures/unboxed-closures-infer-fnmut-move.rs +tests/ui/unboxed-closures/unboxed-closures-infer-fnmut.rs +tests/ui/unboxed-closures/unboxed-closures-infer-fnonce-move.rs +tests/ui/unboxed-closures/unboxed-closures-infer-fnonce.rs +tests/ui/unboxed-closures/unboxed-closures-infer-kind.rs +tests/ui/unboxed-closures/unboxed-closures-infer-recursive-fn.rs +tests/ui/unboxed-closures/unboxed-closures-infer-upvar.rs +tests/ui/unboxed-closures/unboxed-closures-manual-impl.rs +tests/ui/unboxed-closures/unboxed-closures-monomorphization.rs +tests/ui/unboxed-closures/unboxed-closures-move-from-projection-issue-30046.rs +tests/ui/unboxed-closures/unboxed-closures-move-mutable.rs +tests/ui/unboxed-closures/unboxed-closures-move-some-upvars-in-by-ref-closure.rs +tests/ui/unboxed-closures/unboxed-closures-prelude.rs +tests/ui/unboxed-closures/unboxed-closures-simple.rs +tests/ui/unboxed-closures/unboxed-closures-single-word-env.rs +tests/ui/unboxed-closures/unboxed-closures-static-call-fn-once.rs +tests/ui/unboxed-closures/unboxed-closures-sugar-object.rs +tests/ui/unboxed-closures/unboxed-closures-unique-type-id.rs +tests/ui/unboxed-closures/unboxed-closures-zero-args.rs +tests/ui/underscore-lifetimes.rs +tests/ui/underscore-method-after-integer.rs +tests/ui/union/union-align.rs +tests/ui/union/union-backcomp.rs +tests/ui/union/union-const-codegen.rs +tests/ui/union/union-const-eval-field.rs +tests/ui/union/union-derive-rpass.rs +tests/ui/union/union-drop-assign.rs +tests/ui/union/union-drop.rs +tests/ui/union/union-generic-rpass.rs +tests/ui/union/union-inherent-method.rs +tests/ui/union/union-macro.rs +tests/ui/union/union-manuallydrop-rpass.rs +tests/ui/union/union-nodrop.rs +tests/ui/union/union-nonzero.rs +tests/ui/union/union-overwrite.rs +tests/ui/union/union-packed.rs +tests/ui/union/union-pat-refutability.rs +tests/ui/union/union-trait-impl.rs +tests/ui/union/union-transmute.rs +tests/ui/unit.rs +tests/ui/unnamed_argument_mode.rs +tests/ui/unreachable-code-1.rs +tests/ui/unsafe/new-unsafe-pointers.rs +tests/ui/unsafe/union_destructure.rs +tests/ui/unsafe/union-modification.rs +tests/ui/unsafe/unsafe-fn-called-from-unsafe-blk.rs +tests/ui/unsafe/unsafe-fn-called-from-unsafe-fn.rs +tests/ui/unsafe/unsafe-pointer-assignability.rs +tests/ui/unsized-locals/align.rs +tests/ui/unsized-locals/autoderef.rs +tests/ui/unsized-locals/box-fnonce.rs +tests/ui/unsized-locals/by-value-trait-dyn-compatibility-rpass.rs +tests/ui/unsized-locals/by-value-trait-dyn-compatibility-with-default.rs +tests/ui/unsized-locals/reference-unsized-locals.rs +tests/ui/unsized-locals/simple-unsized-locals.rs +tests/ui/unsized-locals/unsized-exprs-rpass.rs +tests/ui/unsized-locals/unsized-index.rs +tests/ui/unsized-locals/unsized-parameters.rs +tests/ui/unsized/issue-23649-1.rs +tests/ui/unsized/issue-23649-2.rs +tests/ui/unsized/unchanged-param.rs +tests/ui/unsized/unsized-tuple-impls.rs +tests/ui/unsized/unsized.rs +tests/ui/unsized/unsized2.rs +tests/ui/unsized/unsized3-rpass.rs +tests/ui/unused-move-capture.rs +tests/ui/unused-move.rs +tests/ui/unwind-no-uwtable.rs +tests/ui/use-import-export.rs +tests/ui/use-keyword-2.rs +tests/ui/use-module-level-int-consts.rs +tests/ui/use-nested-groups.rs +tests/ui/variance/variance-intersection-of-ref-and-opt-ref.rs +tests/ui/wait-forked-but-failed-child.rs +tests/ui/weak-new-uninhabited-issue-48493.rs +tests/ui/weird-exprs.rs +tests/ui/where-clauses/issue-50825.rs +tests/ui/where-clauses/where-clause-early-bound-lifetimes.rs +tests/ui/where-clauses/where-clause-method-substituion-rpass.rs +tests/ui/where-clauses/where-clause-region-outlives.rs +tests/ui/where-clauses/where-clauses-lifetimes.rs +tests/ui/where-clauses/where-clauses-method.rs +tests/ui/where-clauses/where-clauses-unboxed-closures.rs +tests/ui/where-clauses/where-clauses.rs +tests/ui/write-fmt-errors.rs +tests/ui/wrong-hashset-issue-42918.rs +tests/ui/zero-sized/zero-size-type-destructors.rs +tests/ui/zero-sized/zero-sized-binary-heap-push.rs +tests/ui/zero-sized/zero-sized-btreemap-insert.rs +tests/ui/zero-sized/zero-sized-linkedlist-push.rs +tests/ui/zero-sized/zero-sized-tuple-struct.rs diff --git a/kmir/src/tests/external/test_stable_mir_ui_pass.py b/kmir/src/tests/external/test_stable_mir_ui_pass.py new file mode 100644 index 000000000..0f0860dd8 --- /dev/null +++ b/kmir/src/tests/external/test_stable_mir_ui_pass.py @@ -0,0 +1,84 @@ +from __future__ import annotations + +import os +from pathlib import Path +from typing import TYPE_CHECKING + +import pytest +from pyk.cterm.show import CTermShow +from pyk.kast.pretty import PrettyPrinter +from pyk.proof.show import APRProofShow + +from kmir.kmir import KMIR, KMIRAPRNodePrinter +from kmir.options import ProveOpts, ShowOpts + +if TYPE_CHECKING: + from pyk.proof.reachability import APRProof + + +THIS_DIR = Path(__file__).resolve().parent +REPO_ROOT = THIS_DIR.parents[3] +PASSING_TSV = REPO_ROOT / 'deps' / 'stable-mir-json' / 'tests' / 'ui' / 'passing.tsv' +SKIP_FILE = THIS_DIR / 'data' / 'stable-mir-ui' / 'skip.txt' +PASSING_TESTS: tuple[str, ...] = tuple( + line.split('\t', maxsplit=1)[0] for line in PASSING_TSV.read_text().splitlines() if line.strip() +) +SKIP_ENTRIES: frozenset[str] = ( + frozenset(line for line in SKIP_FILE.read_text().splitlines() if line.strip()) + if SKIP_FILE.is_file() + else frozenset() +) +# In --update-skip mode, each passing case is removed and skip.txt is rewritten immediately. +_update_skip_pending: set[str] = set(SKIP_ENTRIES) + + +@pytest.fixture(scope='session') +def rust_dir_root() -> Path: + rust_dir_root_raw = os.environ.get('RUST_DIR_ROOT') + if not rust_dir_root_raw: + pytest.fail( + 'RUST_DIR_ROOT is required. Example: RUST_DIR_ROOT=/path/to/rust make test-stable-mir-ui', + pytrace=False, + ) + + rust_dir_root = Path(rust_dir_root_raw).expanduser().resolve() + if not rust_dir_root.is_dir(): + pytest.fail(f'RUST_DIR_ROOT is not a directory: {rust_dir_root}', pytrace=False) + + return rust_dir_root + + +def _is_linear_termination(proof: APRProof) -> bool: + return proof.passed and len(proof.kcfg.splits()) == 0 and len(proof.kcfg.ndbranches()) == 0 + + +@pytest.mark.timeout(300) +@pytest.mark.parametrize('test_rel_path', PASSING_TESTS, ids=PASSING_TESTS) +def test_stable_mir_ui( + test_rel_path: str, kmir: KMIR, rust_dir_root: Path, update_skip_mode: bool, tmp_path: Path +) -> None: + if (test_rel_path in SKIP_ENTRIES) != update_skip_mode: + pytest.skip() + + try: + proof = KMIR.prove_program(ProveOpts(rust_dir_root / test_rel_path, proof_dir=tmp_path)) + linear = _is_linear_termination(proof) + except Exception: + if update_skip_mode: + pytest.xfail('Error during proof') + raise + + if update_skip_mode: + if not linear: + pytest.xfail('Still failing strict check') + return + _update_skip_pending.discard(test_rel_path) + SKIP_FILE.write_text('\n'.join(sorted(_update_skip_pending)) + '\n' if _update_skip_pending else '') + elif not linear: + show_file = tmp_path / 'show.txt' + cterm_show = CTermShow(PrettyPrinter(kmir.definition).print) + display_opts = ShowOpts(tmp_path, proof.id, full_printer=False, smir_info=None, omit_current_body=False) + shower = APRProofShow(kmir.definition, node_printer=KMIRAPRNodePrinter(cterm_show, proof, display_opts)) + show_file.write_text('\n'.join(shower.show(proof))) + assert proof.passed, f'Proof did not pass. See: {show_file}' + raise AssertionError(f'Proof is non-linear. See: {show_file}') diff --git a/kmir/src/tests/integration/data/prove-rs/read_volatile.rs b/kmir/src/tests/integration/data/prove-rs/read_volatile.rs new file mode 100644 index 000000000..1d8f96587 --- /dev/null +++ b/kmir/src/tests/integration/data/prove-rs/read_volatile.rs @@ -0,0 +1,11 @@ +fn main() { + let a: i32 = 5555; + let a_ptr = &a as *const _; + + let b: i32; + unsafe { + b = std::ptr::read_volatile(a_ptr); + } + + assert!(b == 5555); +} diff --git a/kmir/src/tests/integration/data/prove-rs/show/spl-multisig-iter-eq-copied-next-fail.repro.expected b/kmir/src/tests/integration/data/prove-rs/show/spl-multisig-iter-eq-copied-next-fail.repro.expected deleted file mode 100644 index 645835cf8..000000000 --- a/kmir/src/tests/integration/data/prove-rs/show/spl-multisig-iter-eq-copied-next-fail.repro.expected +++ /dev/null @@ -1,15 +0,0 @@ - -┌─ 1 (root, init) -│ #execTerminator ( terminator ( ... kind: terminatorKindCall ( ... func: operandC -│ span: 0 -│ -│ (1837 steps) -└─ 3 (stuck, leaf) - #execTerminator ( terminator ( ... kind: terminatorKindCall ( ... func: operandM - span: 149 - - -┌─ 2 (root, leaf, target, terminal) -│ #EndProgram ~> .K - - diff --git a/kmir/src/tests/integration/data/prove-rs/spl-multisig-iter-eq-copied-next-fail.rs b/kmir/src/tests/integration/data/prove-rs/spl-multisig-iter-eq-copied-next.rs similarity index 100% rename from kmir/src/tests/integration/data/prove-rs/spl-multisig-iter-eq-copied-next-fail.rs rename to kmir/src/tests/integration/data/prove-rs/spl-multisig-iter-eq-copied-next.rs diff --git a/kmir/src/tests/integration/data/prove-rs/volatile_load.rs b/kmir/src/tests/integration/data/prove-rs/volatile_load.rs new file mode 100644 index 000000000..313adec3f --- /dev/null +++ b/kmir/src/tests/integration/data/prove-rs/volatile_load.rs @@ -0,0 +1,12 @@ +#![feature(core_intrinsics)] +fn main() { + let a: i32 = 5555; + let a_ptr = &a as *const _; + + let b: i32; + unsafe { + b = std::intrinsics::volatile_load(a_ptr); + } + + assert!(b == 5555); +} diff --git a/kmir/src/tests/integration/test_cli.py b/kmir/src/tests/integration/test_cli.py index 33812669b..78a440453 100644 --- a/kmir/src/tests/integration/test_cli.py +++ b/kmir/src/tests/integration/test_cli.py @@ -7,7 +7,7 @@ import pytest from kmir.__main__ import _kmir_info, _kmir_link, _kmir_prune, _kmir_show -from kmir.options import InfoOpts, LinkOpts, ProveRSOpts, PruneOpts, ShowOpts +from kmir.options import InfoOpts, LinkOpts, ProveOpts, PruneOpts, ShowOpts from kmir.smir import SMIRInfo from kmir.testing.fixtures import assert_or_update_show_output @@ -16,7 +16,7 @@ from kmir.kmir import KMIR -PROVE_RS_DIR = (Path(__file__).parent / 'data' / 'prove-rs').resolve(strict=True) +PROVE_DIR = (Path(__file__).parent / 'data' / 'prove-rs').resolve(strict=True) # Repo root: used to normalise absolute paths in expected-output snapshots so # they don't differ between local checkouts and CI (e.g. symbolic-args-fail.main.cli-stats-leaves). _REPO_ROOT = str(Path(__file__).resolve().parents[4]) @@ -31,8 +31,8 @@ def _prove_and_store( is_smir: bool = False, max_depth: int | None = None, ) -> APRProof: - opts = ProveRSOpts(rs_or_json, proof_dir=tmp_path, smir=is_smir, start_symbol=start_symbol, max_depth=max_depth) - apr_proof = kmir.prove_rs(opts) + opts = ProveOpts(rs_or_json, proof_dir=tmp_path, smir=is_smir, start_symbol=start_symbol, max_depth=max_depth) + apr_proof = kmir.prove_program(opts) apr_proof.write_proof_data() return apr_proof @@ -40,7 +40,7 @@ def _prove_and_store( def test_cli_show_printers_snapshot( kmir: KMIR, tmp_path: Path, capsys: pytest.CaptureFixture[str], update_expected_output: bool ) -> None: - rs_file = PROVE_RS_DIR / 'assert-true.rs' + rs_file = PROVE_DIR / 'assert-true.rs' start_symbol = 'main' apr_proof = _prove_and_store(kmir, rs_file, tmp_path, start_symbol=start_symbol, is_smir=False) @@ -57,7 +57,7 @@ def test_cli_show_printers_snapshot( out_custom = capsys.readouterr().out.rstrip() assert_or_update_show_output( out_custom, - PROVE_RS_DIR / f'show/{rs_file.stem}.{start_symbol}.cli-custom-printer.expected', + PROVE_DIR / f'show/{rs_file.stem}.{start_symbol}.cli-custom-printer.expected', update=update_expected_output, ) @@ -74,7 +74,7 @@ def test_cli_show_printers_snapshot( out_default = capsys.readouterr().out.rstrip() assert_or_update_show_output( out_default, - PROVE_RS_DIR / f'show/{rs_file.stem}.{start_symbol}.cli-default-printer.expected', + PROVE_DIR / f'show/{rs_file.stem}.{start_symbol}.cli-default-printer.expected', update=update_expected_output, ) @@ -83,7 +83,7 @@ def test_cli_show_printers_snapshot( 'src,start_symbol,is_smir', [ pytest.param( - (PROVE_RS_DIR / 'symbolic-args-fail.rs'), + (PROVE_DIR / 'symbolic-args-fail.rs'), 'main', False, id='symbolic-args-fail.main', @@ -122,14 +122,14 @@ def test_cli_show_statistics_and_leaves( assert_or_update_show_output( out, - PROVE_RS_DIR / f'show/{src.stem}.{start_symbol}.cli-stats-leaves.expected', + PROVE_DIR / f'show/{src.stem}.{start_symbol}.cli-stats-leaves.expected', update=update_expected_output, path_replacements=_PATH_REPLACEMENTS, ) def test_cli_info_snapshot(capsys: pytest.CaptureFixture[str], update_expected_output: bool) -> None: - smir_json = PROVE_RS_DIR / 'arith.smir.json' + smir_json = PROVE_DIR / 'arith.smir.json' smir_info = SMIRInfo.from_file(smir_json) # choose first few type ids deterministically chosen_tys = sorted(smir_info.types.keys())[:3] @@ -139,12 +139,12 @@ def test_cli_info_snapshot(capsys: pytest.CaptureFixture[str], update_expected_o _kmir_info(info_opts) out = capsys.readouterr().out.rstrip() assert_or_update_show_output( - out, PROVE_RS_DIR / f'show/{smir_json.stem}.cli-info.expected', update=update_expected_output + out, PROVE_DIR / f'show/{smir_json.stem}.cli-info.expected', update=update_expected_output ) def test_cli_link_counts_snapshot(tmp_path: Path, update_expected_output: bool) -> None: - smir1 = PROVE_RS_DIR / 'arith.smir.json' + smir1 = PROVE_DIR / 'arith.smir.json' smir2 = (Path(__file__).parent / 'data' / 'exec-smir' / 'arithmetic' / 'unary.smir.json').resolve(strict=True) output_file = tmp_path / 'linked.smir.json' @@ -164,7 +164,7 @@ def test_cli_link_counts_snapshot(tmp_path: Path, update_expected_output: bool) assert_or_update_show_output( counts_text, - PROVE_RS_DIR / f'show/link.{smir1.stem}+{smir2.stem}.counts.expected', + PROVE_DIR / f'show/link.{smir1.stem}+{smir2.stem}.counts.expected', update=update_expected_output, ) @@ -172,7 +172,7 @@ def test_cli_link_counts_snapshot(tmp_path: Path, update_expected_output: bool) def test_cli_prune_snapshot( kmir: KMIR, tmp_path: Path, capsys: pytest.CaptureFixture[str], update_expected_output: bool ) -> None: - rs_file = PROVE_RS_DIR / 'assert-true.rs' + rs_file = PROVE_DIR / 'assert-true.rs' start_symbol = 'main' apr_proof = _prove_and_store(kmir, rs_file, tmp_path, start_symbol=start_symbol, is_smir=False) @@ -180,7 +180,7 @@ def test_cli_prune_snapshot( _kmir_prune(prune_opts) out = capsys.readouterr().out.rstrip() assert_or_update_show_output( - out, PROVE_RS_DIR / f'show/{rs_file.stem}.{start_symbol}.cli-prune.expected', update=update_expected_output + out, PROVE_DIR / f'show/{rs_file.stem}.{start_symbol}.cli-prune.expected', update=update_expected_output ) @@ -188,7 +188,7 @@ def test_cli_show_to_module( kmir: KMIR, tmp_path: Path, capsys: pytest.CaptureFixture[str], update_expected_output: bool ) -> None: """Test --to-module option with both K text and JSON output formats.""" - rs_file = PROVE_RS_DIR / 'assert-true.rs' + rs_file = PROVE_DIR / 'assert-true.rs' start_symbol = 'main' apr_proof = _prove_and_store(kmir, rs_file, tmp_path, start_symbol=start_symbol, is_smir=False) @@ -210,7 +210,7 @@ def test_cli_show_to_module( k_content = module_k_output.read_text() assert_or_update_show_output( k_content.rstrip(), - PROVE_RS_DIR / f'show/{rs_file.stem}.{start_symbol}.to-module.k', + PROVE_DIR / f'show/{rs_file.stem}.{start_symbol}.to-module.k', update=update_expected_output, ) @@ -234,14 +234,14 @@ def test_cli_show_to_module( json.loads(json_content) assert_or_update_show_output( json_content.rstrip(), - PROVE_RS_DIR / f'show/{rs_file.stem}.{start_symbol}.to-module.json', + PROVE_DIR / f'show/{rs_file.stem}.{start_symbol}.to-module.json', update=update_expected_output, ) def test_cli_show_minimize_proof(kmir: KMIR, tmp_path: Path, capsys: pytest.CaptureFixture[str]) -> None: """Test --minimize-proof option.""" - rs_file = PROVE_RS_DIR / 'symbolic-args-fail.rs' + rs_file = PROVE_DIR / 'symbolic-args-fail.rs' start_symbol = 'main' # Use limited depth to create a partial proof with intermediate nodes that can be minimized apr_proof = _prove_and_store(kmir, rs_file, tmp_path, start_symbol=start_symbol, is_smir=False, max_depth=5) @@ -275,19 +275,19 @@ def test_cli_show_minimize_proof(kmir: KMIR, tmp_path: Path, capsys: pytest.Capt ), f'Minimization should not increase node count: {minimized_node_count} > {initial_node_count}' -def test_cli_prove_rs_add_module(kmir: KMIR, tmp_path: Path) -> None: - """Test --add-module option for prove-rs using stored module files.""" +def test_cli_prove_add_module(kmir: KMIR, tmp_path: Path) -> None: + """Test --add-module option for prove using stored module files.""" from kmir.kmir import KMIR - rs_file = PROVE_RS_DIR / 'assert-true.rs' + rs_file = PROVE_DIR / 'assert-true.rs' start_symbol = 'main' # Use the stored JSON module file generated by --to-module - stored_module_json = PROVE_RS_DIR / f'show/{rs_file.stem}.{start_symbol}.to-module.json' + stored_module_json = PROVE_DIR / f'show/{rs_file.stem}.{start_symbol}.to-module.json' assert stored_module_json.exists(), f'Stored JSON module file not found: {stored_module_json}' - # Run prove-rs with --add-module and max_depth=1 - opts_with_module = ProveRSOpts( + # Run prove with --add-module and max_depth=1 + opts_with_module = ProveOpts( rs_file, proof_dir=tmp_path, smir=False, @@ -295,7 +295,7 @@ def test_cli_prove_rs_add_module(kmir: KMIR, tmp_path: Path) -> None: max_depth=1, add_module=stored_module_json, ) - proof_with_module = KMIR.prove_rs(opts_with_module) + proof_with_module = KMIR.prove_program(opts_with_module) # With depth=1, we should have 3 nodes: init, one step, target assert len(list(proof_with_module.kcfg.nodes)) == 3 @@ -307,17 +307,17 @@ def test_cli_break_on_function( """Test --break-on-function produces cut points at matching function and intrinsic calls.""" from kmir.kmir import KMIR - rs_file = PROVE_RS_DIR / 'break-on-function.rs' + rs_file = PROVE_DIR / 'break-on-function.rs' start_symbol = 'main' - opts = ProveRSOpts( + opts = ProveOpts( rs_file, proof_dir=tmp_path, smir=False, start_symbol=start_symbol, break_on_function=['foo', 'black_box'], ) - apr_proof = KMIR.prove_rs(opts) + apr_proof = KMIR.prove_program(opts) apr_proof.write_proof_data() show_opts = ShowOpts( @@ -333,6 +333,6 @@ def test_cli_break_on_function( assert_or_update_show_output( out, - PROVE_RS_DIR / f'show/{rs_file.stem}.{start_symbol}.cli-break-on-function.expected', + PROVE_DIR / f'show/{rs_file.stem}.{start_symbol}.cli-break-on-function.expected', update=update_expected_output, ) diff --git a/kmir/src/tests/integration/test_integration.py b/kmir/src/tests/integration/test_integration.py index d9ddc37ae..474303f1b 100644 --- a/kmir/src/tests/integration/test_integration.py +++ b/kmir/src/tests/integration/test_integration.py @@ -14,7 +14,7 @@ from kmir.cargo import CargoProject from kmir.kmir import KMIR, KMIRAPRNodePrinter -from kmir.options import ProveRSOpts, ShowOpts +from kmir.options import ProveOpts, ShowOpts from kmir.parse.parser import Parser from kmir.smir import SMIRInfo from kmir.testing.fixtures import assert_or_update_show_output @@ -25,9 +25,9 @@ from kmir.parse.parser import JSON -PROVE_RS_DIR = (Path(__file__).parent / 'data' / 'prove-rs').resolve(strict=True) -PROVE_RS_FILES = list(PROVE_RS_DIR.glob('*.*')) -PROVE_RS_START_SYMBOLS = { +PROVE_DIR = (Path(__file__).parent / 'data' / 'prove-rs').resolve(strict=True) +PROVE_FILES = list(PROVE_DIR.glob('*.*')) +PROVE_START_SYMBOLS = { 'symbolic-args-fail': ['main', 'eats_all_args'], 'symbolic-structs-fail': ['eats_struct_args'], 'unchecked_arithmetic': ['unchecked_add_i32', 'unchecked_sub_usize', 'unchecked_mul_isize'], @@ -39,10 +39,10 @@ 'transmute-bytes': ['bytes_to_u64', 'u64_to_bytes'], 'test_offset_from-fail': ['testing'], 'iter-eq-copied-take-dereftruncate': ['repro'], - 'spl-multisig-iter-eq-copied-next-fail': ['repro'], + 'spl-multisig-iter-eq-copied-next': ['repro'], 'spl-multisig-signer-index': ['repro'], } -PROVE_RS_SHOW_SPECS = [ +PROVE_SHOW_SPECS = [ 'local-raw-fail', 'interior-mut-fail', 'interior-mut3-fail', @@ -72,28 +72,28 @@ @pytest.mark.parametrize( 'rs_file', - PROVE_RS_FILES, - ids=[spec.stem for spec in PROVE_RS_FILES], + PROVE_FILES, + ids=[spec.stem for spec in PROVE_FILES], ) -def test_prove_rs(rs_file: Path, kmir: KMIR, update_expected_output: bool) -> None: +def test_prove(rs_file: Path, kmir: KMIR, update_expected_output: bool) -> None: should_fail = rs_file.stem.endswith('fail') - should_show = rs_file.stem in PROVE_RS_SHOW_SPECS + should_show = rs_file.stem in PROVE_SHOW_SPECS is_smir = rs_file.suffix == '.json' if update_expected_output and not should_show: pytest.skip() - prove_rs_opts = ProveRSOpts(rs_file, smir=is_smir) + prove_opts = ProveOpts(rs_file, smir=is_smir) printer = PrettyPrinter(kmir.definition) cterm_show = CTermShow(printer.print) start_symbols = ['main'] - if rs_file.stem in PROVE_RS_START_SYMBOLS: - start_symbols = PROVE_RS_START_SYMBOLS[rs_file.stem] + if rs_file.stem in PROVE_START_SYMBOLS: + start_symbols = PROVE_START_SYMBOLS[rs_file.stem] for start_symbol in start_symbols: - prove_rs_opts.start_symbol = start_symbol - apr_proof = kmir.prove_rs(prove_rs_opts) + prove_opts.start_symbol = start_symbol + apr_proof = kmir.prove_program(prove_opts) if should_show: display_opts = ShowOpts( @@ -102,7 +102,7 @@ def test_prove_rs(rs_file: Path, kmir: KMIR, update_expected_output: bool) -> No shower = APRProofShow(kmir.definition, node_printer=KMIRAPRNodePrinter(cterm_show, apr_proof, display_opts)) show_res = '\n'.join(shower.show(apr_proof)) assert_or_update_show_output( - show_res, PROVE_RS_DIR / f'show/{rs_file.stem}.{start_symbol}.expected', update=update_expected_output + show_res, PROVE_DIR / f'show/{rs_file.stem}.{start_symbol}.expected', update=update_expected_output ) if not should_fail: @@ -132,8 +132,8 @@ def test_crate_examples(main_crate: Path, kmir: KMIR, update_expected_output: bo # run proofs for all '.expected' files (failing or not) for file in main_crate.parent.glob('*.expected'): - opts = ProveRSOpts(linked_file, smir=True, start_symbol=file.stem) - proof = kmir.prove_rs(opts) + opts = ProveOpts(linked_file, smir=True, start_symbol=file.stem) + proof = kmir.prove_program(opts) printer = PrettyPrinter(kmir.definition) cterm_show = CTermShow(printer.print) @@ -410,9 +410,9 @@ def test_exec_smir( def test_prove_termination(test_data: tuple[str, Path], tmp_path: Path, kmir: KMIR) -> None: testname, smir_json = test_data - prove_rs_opts = ProveRSOpts(rs_file=smir_json, smir=True) + prove_opts = ProveOpts(rs_file=smir_json, smir=True) - proof = KMIR.prove_rs(prove_rs_opts) + proof = KMIR.prove_program(prove_opts) assert proof.passed diff --git a/kmir/uv.lock b/kmir/uv.lock index 88372f227..846e60edc 100644 --- a/kmir/uv.lock +++ b/kmir/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.10" resolution-markers = [ "python_full_version >= '3.11'", @@ -43,19 +43,16 @@ wheels = [ [[package]] name = "binaryornot" -version = "0.4.4" +version = "0.6.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "chardet" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/fe/7ebfec74d49f97fc55cd38240c7a7d08134002b1e14be8c3897c0dd5e49b/binaryornot-0.4.4.tar.gz", hash = "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061", size = 371054, upload-time = "2017-08-03T15:55:25.08Z" } +sdist = { url = "https://files.pythonhosted.org/packages/86/72/4755b85101f37707c71526a301c1203e413c715a0016ecb592de3d2dcfff/binaryornot-0.6.0.tar.gz", hash = "sha256:cc8d57cfa71d74ff8c28a7726734d53a851d02fad9e3a5581fb807f989f702f0", size = 478718, upload-time = "2026-03-08T16:26:28.804Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/24/7e/f7b6f453e6481d1e233540262ccbfcf89adcd43606f44a028d7f5fae5eb2/binaryornot-0.4.4-py2.py3-none-any.whl", hash = "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4", size = 9006, upload-time = "2017-08-03T15:55:31.23Z" }, + { url = "https://files.pythonhosted.org/packages/cd/0c/31cfaa6b56fe23488ecb993bc9fc526c0d84d89607decdf2a10776426c2e/binaryornot-0.6.0-py3-none-any.whl", hash = "sha256:900adfd5e1b821255ba7e63139b0396b14c88b9286e74e03b6f51e0200331337", size = 14185, upload-time = "2026-03-08T16:26:27.466Z" }, ] [[package]] name = "black" -version = "26.1.0" +version = "26.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -67,34 +64,34 @@ dependencies = [ { name = "tomli", marker = "python_full_version < '3.11'" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/13/88/560b11e521c522440af991d46848a2bde64b5f7202ec14e1f46f9509d328/black-26.1.0.tar.gz", hash = "sha256:d294ac3340eef9c9eb5d29288e96dc719ff269a88e27b396340459dd85da4c58", size = 658785, upload-time = "2026-01-18T04:50:11.993Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/51/1b/523329e713f965ad0ea2b7a047eeb003007792a0353622ac7a8cb2ee6fef/black-26.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ca699710dece84e3ebf6e92ee15f5b8f72870ef984bf944a57a777a48357c168", size = 1849661, upload-time = "2026-01-18T04:59:12.425Z" }, - { url = "https://files.pythonhosted.org/packages/14/82/94c0640f7285fa71c2f32879f23e609dd2aa39ba2641f395487f24a578e7/black-26.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5e8e75dabb6eb83d064b0db46392b25cabb6e784ea624219736e8985a6b3675d", size = 1689065, upload-time = "2026-01-18T04:59:13.993Z" }, - { url = "https://files.pythonhosted.org/packages/f0/78/474373cbd798f9291ed8f7107056e343fd39fef42de4a51c7fd0d360840c/black-26.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eb07665d9a907a1a645ee41a0df8a25ffac8ad9c26cdb557b7b88eeeeec934e0", size = 1751502, upload-time = "2026-01-18T04:59:15.971Z" }, - { url = "https://files.pythonhosted.org/packages/29/89/59d0e350123f97bc32c27c4d79563432d7f3530dca2bff64d855c178af8b/black-26.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:7ed300200918147c963c87700ccf9966dceaefbbb7277450a8d646fc5646bf24", size = 1400102, upload-time = "2026-01-18T04:59:17.8Z" }, - { url = "https://files.pythonhosted.org/packages/e1/bc/5d866c7ae1c9d67d308f83af5462ca7046760158bbf142502bad8f22b3a1/black-26.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:c5b7713daea9bf943f79f8c3b46f361cc5229e0e604dcef6a8bb6d1c37d9df89", size = 1207038, upload-time = "2026-01-18T04:59:19.543Z" }, - { url = "https://files.pythonhosted.org/packages/30/83/f05f22ff13756e1a8ce7891db517dbc06200796a16326258268f4658a745/black-26.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3cee1487a9e4c640dc7467aaa543d6c0097c391dc8ac74eb313f2fbf9d7a7cb5", size = 1831956, upload-time = "2026-01-18T04:59:21.38Z" }, - { url = "https://files.pythonhosted.org/packages/7d/f2/b2c570550e39bedc157715e43927360312d6dd677eed2cc149a802577491/black-26.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d62d14ca31c92adf561ebb2e5f2741bf8dea28aef6deb400d49cca011d186c68", size = 1672499, upload-time = "2026-01-18T04:59:23.257Z" }, - { url = "https://files.pythonhosted.org/packages/7a/d7/990d6a94dc9e169f61374b1c3d4f4dd3037e93c2cc12b6f3b12bc663aa7b/black-26.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fb1dafbbaa3b1ee8b4550a84425aac8874e5f390200f5502cf3aee4a2acb2f14", size = 1735431, upload-time = "2026-01-18T04:59:24.729Z" }, - { url = "https://files.pythonhosted.org/packages/36/1c/cbd7bae7dd3cb315dfe6eeca802bb56662cc92b89af272e014d98c1f2286/black-26.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:101540cb2a77c680f4f80e628ae98bd2bd8812fb9d72ade4f8995c5ff019e82c", size = 1400468, upload-time = "2026-01-18T04:59:27.381Z" }, - { url = "https://files.pythonhosted.org/packages/59/b1/9fe6132bb2d0d1f7094613320b56297a108ae19ecf3041d9678aec381b37/black-26.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:6f3977a16e347f1b115662be07daa93137259c711e526402aa444d7a88fdc9d4", size = 1207332, upload-time = "2026-01-18T04:59:28.711Z" }, - { url = "https://files.pythonhosted.org/packages/f5/13/710298938a61f0f54cdb4d1c0baeb672c01ff0358712eddaf29f76d32a0b/black-26.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6eeca41e70b5f5c84f2f913af857cf2ce17410847e1d54642e658e078da6544f", size = 1878189, upload-time = "2026-01-18T04:59:30.682Z" }, - { url = "https://files.pythonhosted.org/packages/79/a6/5179beaa57e5dbd2ec9f1c64016214057b4265647c62125aa6aeffb05392/black-26.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dd39eef053e58e60204f2cdf059e2442e2eb08f15989eefe259870f89614c8b6", size = 1700178, upload-time = "2026-01-18T04:59:32.387Z" }, - { url = "https://files.pythonhosted.org/packages/8c/04/c96f79d7b93e8f09d9298b333ca0d31cd9b2ee6c46c274fd0f531de9dc61/black-26.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9459ad0d6cd483eacad4c6566b0f8e42af5e8b583cee917d90ffaa3778420a0a", size = 1777029, upload-time = "2026-01-18T04:59:33.767Z" }, - { url = "https://files.pythonhosted.org/packages/49/f9/71c161c4c7aa18bdda3776b66ac2dc07aed62053c7c0ff8bbda8c2624fe2/black-26.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a19915ec61f3a8746e8b10adbac4a577c6ba9851fa4a9e9fbfbcf319887a5791", size = 1406466, upload-time = "2026-01-18T04:59:35.177Z" }, - { url = "https://files.pythonhosted.org/packages/4a/8b/a7b0f974e473b159d0ac1b6bcefffeb6bec465898a516ee5cc989503cbc7/black-26.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:643d27fb5facc167c0b1b59d0315f2674a6e950341aed0fc05cf307d22bf4954", size = 1216393, upload-time = "2026-01-18T04:59:37.18Z" }, - { url = "https://files.pythonhosted.org/packages/79/04/fa2f4784f7237279332aa735cdfd5ae2e7730db0072fb2041dadda9ae551/black-26.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ba1d768fbfb6930fc93b0ecc32a43d8861ded16f47a40f14afa9bb04ab93d304", size = 1877781, upload-time = "2026-01-18T04:59:39.054Z" }, - { url = "https://files.pythonhosted.org/packages/cf/ad/5a131b01acc0e5336740a039628c0ab69d60cf09a2c87a4ec49f5826acda/black-26.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2b807c240b64609cb0e80d2200a35b23c7df82259f80bef1b2c96eb422b4aac9", size = 1699670, upload-time = "2026-01-18T04:59:41.005Z" }, - { url = "https://files.pythonhosted.org/packages/da/7c/b05f22964316a52ab6b4265bcd52c0ad2c30d7ca6bd3d0637e438fc32d6e/black-26.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1de0f7d01cc894066a1153b738145b194414cc6eeaad8ef4397ac9abacf40f6b", size = 1775212, upload-time = "2026-01-18T04:59:42.545Z" }, - { url = "https://files.pythonhosted.org/packages/a6/a3/e8d1526bea0446e040193185353920a9506eab60a7d8beb062029129c7d2/black-26.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:91a68ae46bf07868963671e4d05611b179c2313301bd756a89ad4e3b3db2325b", size = 1409953, upload-time = "2026-01-18T04:59:44.357Z" }, - { url = "https://files.pythonhosted.org/packages/c7/5a/d62ebf4d8f5e3a1daa54adaab94c107b57be1b1a2f115a0249b41931e188/black-26.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:be5e2fe860b9bd9edbf676d5b60a9282994c03fbbd40fe8f5e75d194f96064ca", size = 1217707, upload-time = "2026-01-18T04:59:45.719Z" }, - { url = "https://files.pythonhosted.org/packages/6a/83/be35a175aacfce4b05584ac415fd317dd6c24e93a0af2dcedce0f686f5d8/black-26.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:9dc8c71656a79ca49b8d3e2ce8103210c9481c57798b48deeb3a8bb02db5f115", size = 1871864, upload-time = "2026-01-18T04:59:47.586Z" }, - { url = "https://files.pythonhosted.org/packages/a5/f5/d33696c099450b1274d925a42b7a030cd3ea1f56d72e5ca8bbed5f52759c/black-26.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b22b3810451abe359a964cc88121d57f7bce482b53a066de0f1584988ca36e79", size = 1701009, upload-time = "2026-01-18T04:59:49.443Z" }, - { url = "https://files.pythonhosted.org/packages/1b/87/670dd888c537acb53a863bc15abbd85b22b429237d9de1b77c0ed6b79c42/black-26.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:53c62883b3f999f14e5d30b5a79bd437236658ad45b2f853906c7cbe79de00af", size = 1767806, upload-time = "2026-01-18T04:59:50.769Z" }, - { url = "https://files.pythonhosted.org/packages/fe/9c/cd3deb79bfec5bcf30f9d2100ffeec63eecce826eb63e3961708b9431ff1/black-26.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:f016baaadc423dc960cdddf9acae679e71ee02c4c341f78f3179d7e4819c095f", size = 1433217, upload-time = "2026-01-18T04:59:52.218Z" }, - { url = "https://files.pythonhosted.org/packages/4e/29/f3be41a1cf502a283506f40f5d27203249d181f7a1a2abce1c6ce188035a/black-26.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:66912475200b67ef5a0ab665011964bf924745103f51977a78b4fb92a9fc1bf0", size = 1245773, upload-time = "2026-01-18T04:59:54.457Z" }, - { url = "https://files.pythonhosted.org/packages/e4/3d/51bdb3ecbfadfaf825ec0c75e1de6077422b4afa2091c6c9ba34fbfc0c2d/black-26.1.0-py3-none-any.whl", hash = "sha256:1054e8e47ebd686e078c0bb0eaf31e6ce69c966058d122f2c0c950311f9f3ede", size = 204010, upload-time = "2026-01-18T04:50:09.978Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/11/5f/25b7b149b8b7d3b958efa4faa56446560408c0f2651108a517526de0320a/black-26.3.0.tar.gz", hash = "sha256:4d438dfdba1c807c6c7c63c4f15794dda0820d2222e7c4105042ac9ddfc5dd0b", size = 664127, upload-time = "2026-03-06T17:42:33.7Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/45/0df73428226c2197b8b1e2ca15654f85cece1efe5f060c910b641a35de4a/black-26.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:135bf8a352e35b3bfba4999c256063d8d86514654599eca7635e914a55d60ec3", size = 1866623, upload-time = "2026-03-06T17:46:07.622Z" }, + { url = "https://files.pythonhosted.org/packages/40/e1/7467fcccf3532853b013bee22c9cdef6aa3314a58ccc73eb5a8a2750e50e/black-26.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6024a2959b6c62c311c564ce23ce0eaa977a50ed52a53f7abc83d2c9eb62b8d8", size = 1703733, upload-time = "2026-03-06T17:46:09.334Z" }, + { url = "https://files.pythonhosted.org/packages/e8/72/ceb0a5091b6dff654f77ee6488b91d45fbea1385338798935eb83090d27e/black-26.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:264144203ea3374542a1591b6fb317561662d074bce5d91ad6afa8d8d3e4ec3d", size = 1768094, upload-time = "2026-03-06T17:46:11.182Z" }, + { url = "https://files.pythonhosted.org/packages/49/cc/6af7e15fb728f30f3e3d4257d2f3d3fe5c5f4ada30b0e8feb92f50118d5c/black-26.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:1a15d1386dce3af3993bf9baeb68d3e492cbb003dae05c3ecf8530a9b75edf85", size = 1413004, upload-time = "2026-03-06T17:46:12.867Z" }, + { url = "https://files.pythonhosted.org/packages/c4/04/7f5ffd40078ab54efa738797e1d547a3fce893f1de212a7a2e65b4a36254/black-26.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:d86a70bf048235aff62a79e229fe5d9e7809c7a05a3dd12982e7ccdc2678e096", size = 1219839, upload-time = "2026-03-06T17:46:14.133Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ec/e4db9f2b2db8226ae20d48b589c69fd64477657bf241c8ccaea3bc4feafa/black-26.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3da07abe65732483e915ab7f9c7c50332c293056436e9519373775d62539607c", size = 1851905, upload-time = "2026-03-06T17:46:15.447Z" }, + { url = "https://files.pythonhosted.org/packages/62/2c/ccecfcbd6a0610ecf554e852a146f053eaeb5b281dd9cb634338518c765e/black-26.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fc9fd683ccabc3dc9791b93db494d93b5c6c03b105453b76d71e5474e9dfa6e7", size = 1689299, upload-time = "2026-03-06T17:46:17.396Z" }, + { url = "https://files.pythonhosted.org/packages/1a/53/8dcb860242012d6da9c6b1b930c3e4c947eb42feb1fc70f2a4e7332c90c5/black-26.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e2c7e2c5ee09ff575869258b2c07064c952637918fc5e15f6ebd45e45eae0aa", size = 1753902, upload-time = "2026-03-06T17:46:19.592Z" }, + { url = "https://files.pythonhosted.org/packages/5d/21/f37b3efcc8cf2d01ec9eb5466598aa53bed2292db236723ac4571e24c4de/black-26.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:a849286bfc3054eaeb233b6df9056fcf969ee18bf7ecb71b0257e838a0f05e6d", size = 1413841, upload-time = "2026-03-06T17:46:20.981Z" }, + { url = "https://files.pythonhosted.org/packages/eb/74/e70f5f2a74301d8f10276b90715699d51d7db1c3dd79cf13966d32ba7b18/black-26.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:c93c83af43cda73ed8265d001214779ab245fa7a861a75b3e43828f4fb1f5657", size = 1220105, upload-time = "2026-03-06T17:46:23.269Z" }, + { url = "https://files.pythonhosted.org/packages/1d/76/b21711045b7f4c4f1774048d0b34dd10a265c42255658b251ce3303ae3c7/black-26.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c2b1e5eec220b419e3591a0aaa6351bd3a9c01fe6291fbaf76d84308eb7a2ede", size = 1895944, upload-time = "2026-03-06T17:46:24.841Z" }, + { url = "https://files.pythonhosted.org/packages/f2/c3/8c56e73283326bc92a36101c660228fff09a2403a57a03cacf3f7f84cf62/black-26.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1bab64de70bccc992432bee56cdffbe004ceeaa07352127c386faa87e81f9261", size = 1718669, upload-time = "2026-03-06T17:46:26.639Z" }, + { url = "https://files.pythonhosted.org/packages/7b/8b/712a3ae8f17c1f3cd6f9ac2fffb167a27192f5c7aba68724e8c4ab8474ad/black-26.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5b6c5f734290803b7b26493ffd734b02b72e6c90d82d45ac4d5b862b9bdf7720", size = 1794844, upload-time = "2026-03-06T17:46:28.334Z" }, + { url = "https://files.pythonhosted.org/packages/ba/5b/ee955040e446df86473287dd24dc69c80dd05e02cc358bca90e22059f7b1/black-26.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:7c767396af15b54e1a6aae99ddf241ae97e589f666b1d22c4b6618282a04e4ca", size = 1420461, upload-time = "2026-03-06T17:46:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/12/77/40b8bd44f032bb34c9ebf47ffc5bb47a2520d29e0a4b8a780ab515223b5a/black-26.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:765fd6ddd00f35c55250fdc6b790c272d54ac3f44da719cc42df428269b45980", size = 1229667, upload-time = "2026-03-06T17:46:31.654Z" }, + { url = "https://files.pythonhosted.org/packages/28/c3/21a834ce3de02c64221243f2adac63fa3c3f441efdb3adbf4136b33dfeb0/black-26.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:59754fd8f43ef457be190594c07a52c999e22cb1534dc5344bff1d46fdf1027d", size = 1895195, upload-time = "2026-03-06T17:46:33.12Z" }, + { url = "https://files.pythonhosted.org/packages/1c/f9/212d9697dd78362dadb778d4616b74c8c2cf7f2e4a55aac2adeb0576f2e9/black-26.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1fd94cfee67b8d336761a0b08629a25938e4a491c440951ce517a7209c99b5ff", size = 1718472, upload-time = "2026-03-06T17:46:34.576Z" }, + { url = "https://files.pythonhosted.org/packages/a2/dd/da980b2f512441375b73cb511f38a2c3db4be83ccaa1302b8d39c9fa2dff/black-26.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f7b3e653a90ca1ef4e821c20f8edaee80b649c38d2532ed2e9073a9534b14a7", size = 1793741, upload-time = "2026-03-06T17:46:36.261Z" }, + { url = "https://files.pythonhosted.org/packages/93/11/cd69ae8826fe3bc6eaf525c8c557266d522b258154a2968eb46d6d25fac7/black-26.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:f8fb9d7c2496adc83614856e1f6e55a9ce4b7ae7fc7f45b46af9189ddb493464", size = 1422522, upload-time = "2026-03-06T17:46:37.607Z" }, + { url = "https://files.pythonhosted.org/packages/75/f5/647cf50255203eb286be197925e86eedc101d5409147505db3e463229228/black-26.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:e8618c1d06838f56afbcb3ffa1aa16436cec62b86b38c7b32ca86f53948ffb91", size = 1231807, upload-time = "2026-03-06T17:46:39.072Z" }, + { url = "https://files.pythonhosted.org/packages/ff/77/b197e701f15fd694d20d8ee0001efa2e29eba917aa7c3610ff7b10ae0f88/black-26.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d0c6f64ead44f4369c66f1339ecf68e99b40f2e44253c257f7807c5a3ef0ca32", size = 1889209, upload-time = "2026-03-06T17:46:40.453Z" }, + { url = "https://files.pythonhosted.org/packages/93/85/b4d4924ac898adc2e39fc7a923bed99797535bc16dea4bc63944c3903c2b/black-26.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ed6f0809134e51ec4a7509e069cdfa42bf996bd0fd1df6d3146b907f36e28893", size = 1720830, upload-time = "2026-03-06T17:46:42.009Z" }, + { url = "https://files.pythonhosted.org/packages/00/b1/5c0bf29fe5b43fcc6f3e8480c6566d21a02d4e702b3846944e7daa06dea9/black-26.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cc6ac0ea5dd5fa6311ca82edfa3620cba0ed0426022d10d2d5d39aedbf3e1958", size = 1787676, upload-time = "2026-03-06T17:46:43.382Z" }, + { url = "https://files.pythonhosted.org/packages/b8/ce/cc8cf14806c144d6a16512272c537d5450f50675d3e8c038705430e90fd9/black-26.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:884bc0aefa96adabcba0b77b10e9775fd52d4b766e88c44dc6f41f7c82787fc8", size = 1445406, upload-time = "2026-03-06T17:46:44.948Z" }, + { url = "https://files.pythonhosted.org/packages/cf/bb/049ea0fad9f8bdec7b647948adcf74bb720bd71dcb213decd553e05b2699/black-26.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:be3bd02aab5c4ab03703172f5530ddc8fc8b5b7bb8786230e84c9e011cee9ca1", size = 1257945, upload-time = "2026-03-06T17:46:46.432Z" }, + { url = "https://files.pythonhosted.org/packages/39/d7/7360654ba4f8b41afcaeb5aca973cfea5591da75aff79b0a8ae0bb8883f6/black-26.3.0-py3-none-any.whl", hash = "sha256:e825d6b121910dff6f04d7691f826d2449327e8e71c26254c030c4f3d2311985", size = 206848, upload-time = "2026-03-06T17:42:31.133Z" }, ] [[package]] @@ -106,102 +103,93 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, ] -[[package]] -name = "chardet" -version = "6.0.0.post1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7f/42/fb9436c103a881a377e34b9f58d77b5f503461c702ff654ebe86151bcfe9/chardet-6.0.0.post1.tar.gz", hash = "sha256:6b78048c3c97c7b2ed1fbad7a18f76f5a6547f7d34dbab536cc13887c9a92fa4", size = 12521798, upload-time = "2026-02-22T15:09:17.925Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/66/42/5de54f632c2de53cd3415b3703383d5fff43a94cbc0567ef362515261a21/chardet-6.0.0.post1-py3-none-any.whl", hash = "sha256:c894a36800549adf7bb5f2af47033281b75fdfcd2aa0f0243be0ad22a52e2dcb", size = 627245, upload-time = "2026-02-22T15:09:15.876Z" }, -] - [[package]] name = "charset-normalizer" -version = "3.4.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709, upload-time = "2025-10-14T04:40:11.385Z" }, - { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814, upload-time = "2025-10-14T04:40:13.135Z" }, - { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467, upload-time = "2025-10-14T04:40:14.728Z" }, - { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280, upload-time = "2025-10-14T04:40:16.14Z" }, - { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454, upload-time = "2025-10-14T04:40:17.567Z" }, - { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609, upload-time = "2025-10-14T04:40:19.08Z" }, - { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849, upload-time = "2025-10-14T04:40:20.607Z" }, - { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586, upload-time = "2025-10-14T04:40:21.719Z" }, - { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290, upload-time = "2025-10-14T04:40:23.069Z" }, - { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663, upload-time = "2025-10-14T04:40:24.17Z" }, - { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964, upload-time = "2025-10-14T04:40:25.368Z" }, - { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064, upload-time = "2025-10-14T04:40:26.806Z" }, - { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015, upload-time = "2025-10-14T04:40:28.284Z" }, - { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792, upload-time = "2025-10-14T04:40:29.613Z" }, - { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198, upload-time = "2025-10-14T04:40:30.644Z" }, - { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262, upload-time = "2025-10-14T04:40:32.108Z" }, - { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, - { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, - { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, - { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, - { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, - { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, - { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, - { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, - { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, - { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, - { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, - { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, - { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, - { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, - { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, - { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, - { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, - { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, - { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, - { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, - { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, - { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, - { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, - { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, - { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, - { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, - { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, - { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, - { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, - { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, - { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, - { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, - { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, - { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, - { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, - { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, - { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, - { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, - { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, - { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, - { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, - { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, - { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, - { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, - { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, - { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, - { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, - { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, - { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, - { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, - { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, - { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, - { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, - { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, - { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, - { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, - { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, - { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, - { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, - { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, - { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, - { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, - { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, - { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, - { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/35/02daf95b9cd686320bb622eb148792655c9412dbb9b67abb5694e5910a24/charset_normalizer-3.4.5.tar.gz", hash = "sha256:95adae7b6c42a6c5b5b559b1a99149f090a57128155daeea91732c8d970d8644", size = 134804, upload-time = "2026-03-06T06:03:19.46Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/21/a2b1505639008ba2e6ef03733a81fc6cfd6a07ea6139a2b76421230b8dad/charset_normalizer-3.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4167a621a9a1a986c73777dbc15d4b5eac8ac5c10393374109a343d4013ec765", size = 283319, upload-time = "2026-03-06T06:00:26.433Z" }, + { url = "https://files.pythonhosted.org/packages/70/67/df234c29b68f4e1e095885c9db1cb4b69b8aba49cf94fac041db4aaf1267/charset_normalizer-3.4.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3f64c6bf8f32f9133b668c7f7a7cbdbc453412bc95ecdbd157f3b1e377a92990", size = 189974, upload-time = "2026-03-06T06:00:28.222Z" }, + { url = "https://files.pythonhosted.org/packages/df/7f/fc66af802961c6be42e2c7b69c58f95cbd1f39b0e81b3365d8efe2a02a04/charset_normalizer-3.4.5-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:568e3c34b58422075a1b49575a6abc616d9751b4d61b23f712e12ebb78fe47b2", size = 207866, upload-time = "2026-03-06T06:00:29.769Z" }, + { url = "https://files.pythonhosted.org/packages/c9/23/404eb36fac4e95b833c50e305bba9a241086d427bb2167a42eac7c4f7da4/charset_normalizer-3.4.5-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:036c079aa08a6a592b82487f97c60b439428320ed1b2ea0b3912e99d30c77765", size = 203239, upload-time = "2026-03-06T06:00:31.086Z" }, + { url = "https://files.pythonhosted.org/packages/4b/2f/8a1d989bfadd120c90114ab33e0d2a0cbde05278c1fc15e83e62d570f50a/charset_normalizer-3.4.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:340810d34ef83af92148e96e3e44cb2d3f910d2bf95e5618a5c467d9f102231d", size = 196529, upload-time = "2026-03-06T06:00:32.608Z" }, + { url = "https://files.pythonhosted.org/packages/a5/0c/c75f85ff7ca1f051958bb518cd43922d86f576c03947a050fbedfdfb4f15/charset_normalizer-3.4.5-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:cd2d0f0ec9aa977a27731a3209ebbcacebebaf41f902bd453a928bfd281cf7f8", size = 184152, upload-time = "2026-03-06T06:00:33.93Z" }, + { url = "https://files.pythonhosted.org/packages/f9/20/4ed37f6199af5dde94d4aeaf577f3813a5ec6635834cda1d957013a09c76/charset_normalizer-3.4.5-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0b362bcd27819f9c07cbf23db4e0e8cd4b44c5ecd900c2ff907b2b92274a7412", size = 195226, upload-time = "2026-03-06T06:00:35.469Z" }, + { url = "https://files.pythonhosted.org/packages/28/31/7ba1102178cba7c34dcc050f43d427172f389729e356038f0726253dd914/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:77be992288f720306ab4108fe5c74797de327f3248368dfc7e1a916d6ed9e5a2", size = 192933, upload-time = "2026-03-06T06:00:36.83Z" }, + { url = "https://files.pythonhosted.org/packages/4b/23/f86443ab3921e6a60b33b93f4a1161222231f6c69bc24fb18f3bee7b8518/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:8b78d8a609a4b82c273257ee9d631ded7fac0d875bdcdccc109f3ee8328cfcb1", size = 185647, upload-time = "2026-03-06T06:00:38.367Z" }, + { url = "https://files.pythonhosted.org/packages/82/44/08b8be891760f1f5a6d23ce11d6d50c92981603e6eb740b4f72eea9424e2/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ba20bdf69bd127f66d0174d6f2a93e69045e0b4036dc1ca78e091bcc765830c4", size = 209533, upload-time = "2026-03-06T06:00:41.931Z" }, + { url = "https://files.pythonhosted.org/packages/3b/5f/df114f23406199f8af711ddccfbf409ffbc5b7cdc18fa19644997ff0c9bb/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:76a9d0de4d0eab387822e7b35d8f89367dd237c72e82ab42b9f7bf5e15ada00f", size = 195901, upload-time = "2026-03-06T06:00:43.978Z" }, + { url = "https://files.pythonhosted.org/packages/07/83/71ef34a76fe8aa05ff8f840244bda2d61e043c2ef6f30d200450b9f6a1be/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8fff79bf5978c693c9b1a4d71e4a94fddfb5fe744eb062a318e15f4a2f63a550", size = 204950, upload-time = "2026-03-06T06:00:45.202Z" }, + { url = "https://files.pythonhosted.org/packages/58/40/0253be623995365137d7dc68e45245036207ab2227251e69a3d93ce43183/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c7e84e0c0005e3bdc1a9211cd4e62c78ba80bc37b2365ef4410cd2007a9047f2", size = 198546, upload-time = "2026-03-06T06:00:46.481Z" }, + { url = "https://files.pythonhosted.org/packages/ed/5c/5f3cb5b259a130895ef5ae16b38eaf141430fa3f7af50cd06c5d67e4f7b2/charset_normalizer-3.4.5-cp310-cp310-win32.whl", hash = "sha256:58ad8270cfa5d4bef1bc85bd387217e14ff154d6630e976c6f56f9a040757475", size = 132516, upload-time = "2026-03-06T06:00:47.924Z" }, + { url = "https://files.pythonhosted.org/packages/a5/c3/84fb174e7770f2df2e1a2115090771bfbc2227fb39a765c6d00568d1aab4/charset_normalizer-3.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:02a9d1b01c1e12c27883b0c9349e0bcd9ae92e727ff1a277207e1a262b1cbf05", size = 142906, upload-time = "2026-03-06T06:00:49.389Z" }, + { url = "https://files.pythonhosted.org/packages/d7/b2/6f852f8b969f2cbd0d4092d2e60139ab1af95af9bb651337cae89ec0f684/charset_normalizer-3.4.5-cp310-cp310-win_arm64.whl", hash = "sha256:039215608ac7b358c4da0191d10fc76868567fbf276d54c14721bdedeb6de064", size = 133258, upload-time = "2026-03-06T06:00:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/8f/9e/bcec3b22c64ecec47d39bf5167c2613efd41898c019dccd4183f6aa5d6a7/charset_normalizer-3.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:610f72c0ee565dfb8ae1241b666119582fdbfe7c0975c175be719f940e110694", size = 279531, upload-time = "2026-03-06T06:00:52.252Z" }, + { url = "https://files.pythonhosted.org/packages/58/12/81fd25f7e7078ab5d1eedbb0fac44be4904ae3370a3bf4533c8f2d159acd/charset_normalizer-3.4.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60d68e820af339df4ae8358c7a2e7596badeb61e544438e489035f9fbf3246a5", size = 188006, upload-time = "2026-03-06T06:00:53.8Z" }, + { url = "https://files.pythonhosted.org/packages/ae/6e/f2d30e8c27c1b0736a6520311982cf5286cfc7f6cac77d7bc1325e3a23f2/charset_normalizer-3.4.5-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:10b473fc8dca1c3ad8559985794815f06ca3fc71942c969129070f2c3cdf7281", size = 205085, upload-time = "2026-03-06T06:00:55.311Z" }, + { url = "https://files.pythonhosted.org/packages/d0/90/d12cefcb53b5931e2cf792a33718d7126efb116a320eaa0742c7059a95e4/charset_normalizer-3.4.5-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d4eb8ac7469b2a5d64b5b8c04f84d8bf3ad340f4514b98523805cbf46e3b3923", size = 200545, upload-time = "2026-03-06T06:00:56.532Z" }, + { url = "https://files.pythonhosted.org/packages/03/f4/44d3b830a20e89ff82a3134912d9a1cf6084d64f3b95dcad40f74449a654/charset_normalizer-3.4.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bcb3227c3d9aaf73eaaab1db7ccd80a8995c509ee9941e2aae060ca6e4e5d81", size = 193863, upload-time = "2026-03-06T06:00:57.823Z" }, + { url = "https://files.pythonhosted.org/packages/25/4b/f212119c18a6320a9d4a730d1b4057875cdeabf21b3614f76549042ef8a8/charset_normalizer-3.4.5-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:75ee9c1cce2911581a70a3c0919d8bccf5b1cbc9b0e5171400ec736b4b569497", size = 181827, upload-time = "2026-03-06T06:00:59.323Z" }, + { url = "https://files.pythonhosted.org/packages/74/00/b26158e48b425a202a92965f8069e8a63d9af1481dfa206825d7f74d2a3c/charset_normalizer-3.4.5-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d1401945cb77787dbd3af2446ff2d75912327c4c3a1526ab7955ecf8600687c", size = 191085, upload-time = "2026-03-06T06:01:00.546Z" }, + { url = "https://files.pythonhosted.org/packages/c4/c2/1c1737bf6fd40335fe53d28fe49afd99ee4143cc57a845e99635ce0b9b6d/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a45e504f5e1be0bd385935a8e1507c442349ca36f511a47057a71c9d1d6ea9e", size = 190688, upload-time = "2026-03-06T06:01:02.479Z" }, + { url = "https://files.pythonhosted.org/packages/5a/3d/abb5c22dc2ef493cd56522f811246a63c5427c08f3e3e50ab663de27fcf4/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e09f671a54ce70b79a1fc1dc6da3072b7ef7251fadb894ed92d9aa8218465a5f", size = 183077, upload-time = "2026-03-06T06:01:04.231Z" }, + { url = "https://files.pythonhosted.org/packages/44/33/5298ad4d419a58e25b3508e87f2758d1442ff00c2471f8e0403dab8edad5/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d01de5e768328646e6a3fa9e562706f8f6641708c115c62588aef2b941a4f88e", size = 206706, upload-time = "2026-03-06T06:01:05.773Z" }, + { url = "https://files.pythonhosted.org/packages/7b/17/51e7895ac0f87c3b91d276a449ef09f5532a7529818f59646d7a55089432/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:131716d6786ad5e3dc542f5cc6f397ba3339dc0fb87f87ac30e550e8987756af", size = 191665, upload-time = "2026-03-06T06:01:07.473Z" }, + { url = "https://files.pythonhosted.org/packages/90/8f/cce9adf1883e98906dbae380d769b4852bb0fa0004bc7d7a2243418d3ea8/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a374cc0b88aa710e8865dc1bd6edb3743c59f27830f0293ab101e4cf3ce9f85", size = 201950, upload-time = "2026-03-06T06:01:08.973Z" }, + { url = "https://files.pythonhosted.org/packages/08/ca/bce99cd5c397a52919e2769d126723f27a4c037130374c051c00470bcd38/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d31f0d1671e1534e395f9eb84a68e0fb670e1edb1fe819a9d7f564ae3bc4e53f", size = 195830, upload-time = "2026-03-06T06:01:10.155Z" }, + { url = "https://files.pythonhosted.org/packages/87/4f/2e3d023a06911f1281f97b8f036edc9872167036ca6f55cc874a0be6c12c/charset_normalizer-3.4.5-cp311-cp311-win32.whl", hash = "sha256:cace89841c0599d736d3d74a27bc5821288bb47c5441923277afc6059d7fbcb4", size = 132029, upload-time = "2026-03-06T06:01:11.706Z" }, + { url = "https://files.pythonhosted.org/packages/fe/1f/a853b73d386521fd44b7f67ded6b17b7b2367067d9106a5c4b44f9a34274/charset_normalizer-3.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:f8102ae93c0bc863b1d41ea0f4499c20a83229f52ed870850892df555187154a", size = 142404, upload-time = "2026-03-06T06:01:12.865Z" }, + { url = "https://files.pythonhosted.org/packages/b4/10/dba36f76b71c38e9d391abe0fd8a5b818790e053c431adecfc98c35cd2a9/charset_normalizer-3.4.5-cp311-cp311-win_arm64.whl", hash = "sha256:ed98364e1c262cf5f9363c3eca8c2df37024f52a8fa1180a3610014f26eac51c", size = 132796, upload-time = "2026-03-06T06:01:14.106Z" }, + { url = "https://files.pythonhosted.org/packages/9c/b6/9ee9c1a608916ca5feae81a344dffbaa53b26b90be58cc2159e3332d44ec/charset_normalizer-3.4.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed97c282ee4f994ef814042423a529df9497e3c666dca19be1d4cd1129dc7ade", size = 280976, upload-time = "2026-03-06T06:01:15.276Z" }, + { url = "https://files.pythonhosted.org/packages/f8/d8/a54f7c0b96f1df3563e9190f04daf981e365a9b397eedfdfb5dbef7e5c6c/charset_normalizer-3.4.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0294916d6ccf2d069727d65973c3a1ca477d68708db25fd758dd28b0827cff54", size = 189356, upload-time = "2026-03-06T06:01:16.511Z" }, + { url = "https://files.pythonhosted.org/packages/42/69/2bf7f76ce1446759a5787cb87d38f6a61eb47dbbdf035cfebf6347292a65/charset_normalizer-3.4.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dc57a0baa3eeedd99fafaef7511b5a6ef4581494e8168ee086031744e2679467", size = 206369, upload-time = "2026-03-06T06:01:17.853Z" }, + { url = "https://files.pythonhosted.org/packages/10/9c/949d1a46dab56b959d9a87272482195f1840b515a3380e39986989a893ae/charset_normalizer-3.4.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ed1a9a204f317ef879b32f9af507d47e49cd5e7f8e8d5d96358c98373314fc60", size = 203285, upload-time = "2026-03-06T06:01:19.473Z" }, + { url = "https://files.pythonhosted.org/packages/67/5c/ae30362a88b4da237d71ea214a8c7eb915db3eec941adda511729ac25fa2/charset_normalizer-3.4.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ad83b8f9379176c841f8865884f3514d905bcd2a9a3b210eaa446e7d2223e4d", size = 196274, upload-time = "2026-03-06T06:01:20.728Z" }, + { url = "https://files.pythonhosted.org/packages/b2/07/c9f2cb0e46cb6d64fdcc4f95953747b843bb2181bda678dc4e699b8f0f9a/charset_normalizer-3.4.5-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:a118e2e0b5ae6b0120d5efa5f866e58f2bb826067a646431da4d6a2bdae7950e", size = 184715, upload-time = "2026-03-06T06:01:22.194Z" }, + { url = "https://files.pythonhosted.org/packages/36/64/6b0ca95c44fddf692cd06d642b28f63009d0ce325fad6e9b2b4d0ef86a52/charset_normalizer-3.4.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:754f96058e61a5e22e91483f823e07df16416ce76afa4ebf306f8e1d1296d43f", size = 193426, upload-time = "2026-03-06T06:01:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/50/bc/a730690d726403743795ca3f5bb2baf67838c5fea78236098f324b965e40/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0c300cefd9b0970381a46394902cd18eaf2aa00163f999590ace991989dcd0fc", size = 191780, upload-time = "2026-03-06T06:01:25.053Z" }, + { url = "https://files.pythonhosted.org/packages/97/4f/6c0bc9af68222b22951552d73df4532b5be6447cee32d58e7e8c74ecbb7b/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c108f8619e504140569ee7de3f97d234f0fbae338a7f9f360455071ef9855a95", size = 185805, upload-time = "2026-03-06T06:01:26.294Z" }, + { url = "https://files.pythonhosted.org/packages/dd/b9/a523fb9b0ee90814b503452b2600e4cbc118cd68714d57041564886e7325/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d1028de43596a315e2720a9849ee79007ab742c06ad8b45a50db8cdb7ed4a82a", size = 208342, upload-time = "2026-03-06T06:01:27.55Z" }, + { url = "https://files.pythonhosted.org/packages/4d/61/c59e761dee4464050713e50e27b58266cc8e209e518c0b378c1580c959ba/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:19092dde50335accf365cce21998a1c6dd8eafd42c7b226eb54b2747cdce2fac", size = 193661, upload-time = "2026-03-06T06:01:29.051Z" }, + { url = "https://files.pythonhosted.org/packages/1c/43/729fa30aad69783f755c5ad8649da17ee095311ca42024742701e202dc59/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4354e401eb6dab9aed3c7b4030514328a6c748d05e1c3e19175008ca7de84fb1", size = 204819, upload-time = "2026-03-06T06:01:30.298Z" }, + { url = "https://files.pythonhosted.org/packages/87/33/d9b442ce5a91b96fc0840455a9e49a611bbadae6122778d0a6a79683dd31/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a68766a3c58fde7f9aaa22b3786276f62ab2f594efb02d0a1421b6282e852e98", size = 198080, upload-time = "2026-03-06T06:01:31.478Z" }, + { url = "https://files.pythonhosted.org/packages/56/5a/b8b5a23134978ee9885cee2d6995f4c27cc41f9baded0a9685eabc5338f0/charset_normalizer-3.4.5-cp312-cp312-win32.whl", hash = "sha256:1827734a5b308b65ac54e86a618de66f935a4f63a8a462ff1e19a6788d6c2262", size = 132630, upload-time = "2026-03-06T06:01:33.056Z" }, + { url = "https://files.pythonhosted.org/packages/70/53/e44a4c07e8904500aec95865dc3f6464dc3586a039ef0df606eb3ac38e35/charset_normalizer-3.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:728c6a963dfab66ef865f49286e45239384249672cd598576765acc2a640a636", size = 142856, upload-time = "2026-03-06T06:01:34.489Z" }, + { url = "https://files.pythonhosted.org/packages/ea/aa/c5628f7cad591b1cf45790b7a61483c3e36cf41349c98af7813c483fd6e8/charset_normalizer-3.4.5-cp312-cp312-win_arm64.whl", hash = "sha256:75dfd1afe0b1647449e852f4fb428195a7ed0588947218f7ba929f6538487f02", size = 132982, upload-time = "2026-03-06T06:01:35.641Z" }, + { url = "https://files.pythonhosted.org/packages/f5/48/9f34ec4bb24aa3fdba1890c1bddb97c8a4be1bd84ef5c42ac2352563ad05/charset_normalizer-3.4.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ac59c15e3f1465f722607800c68713f9fbc2f672b9eb649fe831da4019ae9b23", size = 280788, upload-time = "2026-03-06T06:01:37.126Z" }, + { url = "https://files.pythonhosted.org/packages/0e/09/6003e7ffeb90cc0560da893e3208396a44c210c5ee42efff539639def59b/charset_normalizer-3.4.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:165c7b21d19365464e8f70e5ce5e12524c58b48c78c1f5a57524603c1ab003f8", size = 188890, upload-time = "2026-03-06T06:01:38.73Z" }, + { url = "https://files.pythonhosted.org/packages/42/1e/02706edf19e390680daa694d17e2b8eab4b5f7ac285e2a51168b4b22ee6b/charset_normalizer-3.4.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:28269983f25a4da0425743d0d257a2d6921ea7d9b83599d4039486ec5b9f911d", size = 206136, upload-time = "2026-03-06T06:01:40.016Z" }, + { url = "https://files.pythonhosted.org/packages/c7/87/942c3def1b37baf3cf786bad01249190f3ca3d5e63a84f831e704977de1f/charset_normalizer-3.4.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d27ce22ec453564770d29d03a9506d449efbb9fa13c00842262b2f6801c48cce", size = 202551, upload-time = "2026-03-06T06:01:41.522Z" }, + { url = "https://files.pythonhosted.org/packages/94/0a/af49691938dfe175d71b8a929bd7e4ace2809c0c5134e28bc535660d5262/charset_normalizer-3.4.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0625665e4ebdddb553ab185de5db7054393af8879fb0c87bd5690d14379d6819", size = 195572, upload-time = "2026-03-06T06:01:43.208Z" }, + { url = "https://files.pythonhosted.org/packages/20/ea/dfb1792a8050a8e694cfbde1570ff97ff74e48afd874152d38163d1df9ae/charset_normalizer-3.4.5-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:c23eb3263356d94858655b3e63f85ac5d50970c6e8febcdde7830209139cc37d", size = 184438, upload-time = "2026-03-06T06:01:44.755Z" }, + { url = "https://files.pythonhosted.org/packages/72/12/c281e2067466e3ddd0595bfaea58a6946765ace5c72dfa3edc2f5f118026/charset_normalizer-3.4.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e6302ca4ae283deb0af68d2fbf467474b8b6aedcd3dab4db187e07f94c109763", size = 193035, upload-time = "2026-03-06T06:01:46.051Z" }, + { url = "https://files.pythonhosted.org/packages/ba/4f/3792c056e7708e10464bad0438a44708886fb8f92e3c3d29ec5e2d964d42/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e51ae7d81c825761d941962450f50d041db028b7278e7b08930b4541b3e45cb9", size = 191340, upload-time = "2026-03-06T06:01:47.547Z" }, + { url = "https://files.pythonhosted.org/packages/e7/86/80ddba897127b5c7a9bccc481b0cd36c8fefa485d113262f0fe4332f0bf4/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:597d10dec876923e5c59e48dbd366e852eacb2b806029491d307daea6b917d7c", size = 185464, upload-time = "2026-03-06T06:01:48.764Z" }, + { url = "https://files.pythonhosted.org/packages/4d/00/b5eff85ba198faacab83e0e4b6f0648155f072278e3b392a82478f8b988b/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5cffde4032a197bd3b42fd0b9509ec60fb70918d6970e4cc773f20fc9180ca67", size = 208014, upload-time = "2026-03-06T06:01:50.371Z" }, + { url = "https://files.pythonhosted.org/packages/c8/11/d36f70be01597fd30850dde8a1269ebc8efadd23ba5785808454f2389bde/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2da4eedcb6338e2321e831a0165759c0c620e37f8cd044a263ff67493be8ffb3", size = 193297, upload-time = "2026-03-06T06:01:51.933Z" }, + { url = "https://files.pythonhosted.org/packages/1a/1d/259eb0a53d4910536c7c2abb9cb25f4153548efb42800c6a9456764649c0/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:65a126fb4b070d05340a84fc709dd9e7c75d9b063b610ece8a60197a291d0adf", size = 204321, upload-time = "2026-03-06T06:01:53.887Z" }, + { url = "https://files.pythonhosted.org/packages/84/31/faa6c5b9d3688715e1ed1bb9d124c384fe2fc1633a409e503ffe1c6398c1/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c7a80a9242963416bd81f99349d5f3fce1843c303bd404f204918b6d75a75fd6", size = 197509, upload-time = "2026-03-06T06:01:56.439Z" }, + { url = "https://files.pythonhosted.org/packages/fd/a5/c7d9dd1503ffc08950b3260f5d39ec2366dd08254f0900ecbcf3a6197c7c/charset_normalizer-3.4.5-cp313-cp313-win32.whl", hash = "sha256:f1d725b754e967e648046f00c4facc42d414840f5ccc670c5670f59f83693e4f", size = 132284, upload-time = "2026-03-06T06:01:57.812Z" }, + { url = "https://files.pythonhosted.org/packages/b9/0f/57072b253af40c8aa6636e6de7d75985624c1eb392815b2f934199340a89/charset_normalizer-3.4.5-cp313-cp313-win_amd64.whl", hash = "sha256:e37bd100d2c5d3ba35db9c7c5ba5a9228cbcffe5c4778dc824b164e5257813d7", size = 142630, upload-time = "2026-03-06T06:01:59.062Z" }, + { url = "https://files.pythonhosted.org/packages/31/41/1c4b7cc9f13bd9d369ce3bc993e13d374ce25fa38a2663644283ecf422c1/charset_normalizer-3.4.5-cp313-cp313-win_arm64.whl", hash = "sha256:93b3b2cc5cf1b8743660ce77a4f45f3f6d1172068207c1defc779a36eea6bb36", size = 133254, upload-time = "2026-03-06T06:02:00.281Z" }, + { url = "https://files.pythonhosted.org/packages/43/be/0f0fd9bb4a7fa4fb5067fb7d9ac693d4e928d306f80a0d02bde43a7c4aee/charset_normalizer-3.4.5-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8197abe5ca1ffb7d91e78360f915eef5addff270f8a71c1fc5be24a56f3e4873", size = 280232, upload-time = "2026-03-06T06:02:01.508Z" }, + { url = "https://files.pythonhosted.org/packages/28/02/983b5445e4bef49cd8c9da73a8e029f0825f39b74a06d201bfaa2e55142a/charset_normalizer-3.4.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2aecdb364b8a1802afdc7f9327d55dad5366bc97d8502d0f5854e50712dbc5f", size = 189688, upload-time = "2026-03-06T06:02:02.857Z" }, + { url = "https://files.pythonhosted.org/packages/d0/88/152745c5166437687028027dc080e2daed6fe11cfa95a22f4602591c42db/charset_normalizer-3.4.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a66aa5022bf81ab4b1bebfb009db4fd68e0c6d4307a1ce5ef6a26e5878dfc9e4", size = 206833, upload-time = "2026-03-06T06:02:05.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0f/ebc15c8b02af2f19be9678d6eed115feeeccc45ce1f4b098d986c13e8769/charset_normalizer-3.4.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d77f97e515688bd615c1d1f795d540f32542d514242067adcb8ef532504cb9ee", size = 202879, upload-time = "2026-03-06T06:02:06.446Z" }, + { url = "https://files.pythonhosted.org/packages/38/9c/71336bff6934418dc8d1e8a1644176ac9088068bc571da612767619c97b3/charset_normalizer-3.4.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01a1ed54b953303ca7e310fafe0fe347aab348bd81834a0bcd602eb538f89d66", size = 195764, upload-time = "2026-03-06T06:02:08.763Z" }, + { url = "https://files.pythonhosted.org/packages/b7/95/ce92fde4f98615661871bc282a856cf9b8a15f686ba0af012984660d480b/charset_normalizer-3.4.5-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:b2d37d78297b39a9eb9eb92c0f6df98c706467282055419df141389b23f93362", size = 183728, upload-time = "2026-03-06T06:02:10.137Z" }, + { url = "https://files.pythonhosted.org/packages/1c/e7/f5b4588d94e747ce45ae680f0f242bc2d98dbd4eccfab73e6160b6893893/charset_normalizer-3.4.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e71bbb595973622b817c042bd943c3f3667e9c9983ce3d205f973f486fec98a7", size = 192937, upload-time = "2026-03-06T06:02:11.663Z" }, + { url = "https://files.pythonhosted.org/packages/f9/29/9d94ed6b929bf9f48bf6ede6e7474576499f07c4c5e878fb186083622716/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4cd966c2559f501c6fd69294d082c2934c8dd4719deb32c22961a5ac6db0df1d", size = 192040, upload-time = "2026-03-06T06:02:13.489Z" }, + { url = "https://files.pythonhosted.org/packages/15/d2/1a093a1cf827957f9445f2fe7298bcc16f8fc5e05c1ed2ad1af0b239035e/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d5e52d127045d6ae01a1e821acfad2f3a1866c54d0e837828538fabe8d9d1bd6", size = 184107, upload-time = "2026-03-06T06:02:14.83Z" }, + { url = "https://files.pythonhosted.org/packages/0f/7d/82068ce16bd36135df7b97f6333c5d808b94e01d4599a682e2337ed5fd14/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:30a2b1a48478c3428d047ed9690d57c23038dac838a87ad624c85c0a78ebeb39", size = 208310, upload-time = "2026-03-06T06:02:16.165Z" }, + { url = "https://files.pythonhosted.org/packages/84/4e/4dfb52307bb6af4a5c9e73e482d171b81d36f522b21ccd28a49656baa680/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:d8ed79b8f6372ca4254955005830fd61c1ccdd8c0fac6603e2c145c61dd95db6", size = 192918, upload-time = "2026-03-06T06:02:18.144Z" }, + { url = "https://files.pythonhosted.org/packages/08/a4/159ff7da662cf7201502ca89980b8f06acf3e887b278956646a8aeb178ab/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:c5af897b45fa606b12464ccbe0014bbf8c09191e0a66aab6aa9d5cf6e77e0c94", size = 204615, upload-time = "2026-03-06T06:02:19.821Z" }, + { url = "https://files.pythonhosted.org/packages/d6/62/0dd6172203cb6b429ffffc9935001fde42e5250d57f07b0c28c6046deb6b/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1088345bcc93c58d8d8f3d783eca4a6e7a7752bbff26c3eee7e73c597c191c2e", size = 197784, upload-time = "2026-03-06T06:02:21.86Z" }, + { url = "https://files.pythonhosted.org/packages/c7/5e/1aab5cb737039b9c59e63627dc8bbc0d02562a14f831cc450e5f91d84ce1/charset_normalizer-3.4.5-cp314-cp314-win32.whl", hash = "sha256:ee57b926940ba00bca7ba7041e665cc956e55ef482f851b9b65acb20d867e7a2", size = 133009, upload-time = "2026-03-06T06:02:23.289Z" }, + { url = "https://files.pythonhosted.org/packages/40/65/e7c6c77d7aaa4c0d7974f2e403e17f0ed2cb0fc135f77d686b916bf1eead/charset_normalizer-3.4.5-cp314-cp314-win_amd64.whl", hash = "sha256:4481e6da1830c8a1cc0b746b47f603b653dadb690bcd851d039ffaefe70533aa", size = 143511, upload-time = "2026-03-06T06:02:26.195Z" }, + { url = "https://files.pythonhosted.org/packages/ba/91/52b0841c71f152f563b8e072896c14e3d83b195c188b338d3cc2e582d1d4/charset_normalizer-3.4.5-cp314-cp314-win_arm64.whl", hash = "sha256:97ab7787092eb9b50fb47fa04f24c75b768a606af1bcba1957f07f128a7219e4", size = 133775, upload-time = "2026-03-06T06:02:27.473Z" }, + { url = "https://files.pythonhosted.org/packages/c5/60/3a621758945513adfd4db86827a5bafcc615f913dbd0b4c2ed64a65731be/charset_normalizer-3.4.5-py3-none-any.whl", hash = "sha256:9db5e3fcdcee89a78c04dffb3fe33c79f77bd741a624946db2591c81b2fc85b0", size = 55455, upload-time = "2026-03-06T06:03:17.827Z" }, ] [[package]] @@ -248,7 +236,7 @@ wheels = [ [[package]] name = "cookiecutter" -version = "2.7.0" +version = "2.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "arrow" }, @@ -260,9 +248,9 @@ dependencies = [ { name = "requests" }, { name = "rich" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/12/f6/c576423931c725c30f3c97e1eb5bdb53419c27ff7538751cfa6ad1a07f82/cookiecutter-2.7.0.tar.gz", hash = "sha256:b0bf50141201ebf022c95e3fa02a760b64e600b3675d6dabf97563425a62a707", size = 142869, upload-time = "2026-03-02T09:14:13.999Z" } +sdist = { url = "https://files.pythonhosted.org/packages/92/03/f4c96d8fd4f5e8af0210bf896eb63927f35d3014a8e8f3bf9d2c43ad3332/cookiecutter-2.7.1.tar.gz", hash = "sha256:ca7bb7bc8c6ff441fbf53921b5537668000e38d56e28d763a1b73975c66c6138", size = 142854, upload-time = "2026-03-04T04:06:02.786Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/1f/21c082112609cb53d89f86e34ea4fa160c0a5e63556ffa9495ad70566cf1/cookiecutter-2.7.0-py3-none-any.whl", hash = "sha256:08dc4398e2d8a57771c20703fa10f8d03952e870eddd46bbb832161dc784fa3d", size = 41616, upload-time = "2026-03-02T09:14:12.893Z" }, + { url = "https://files.pythonhosted.org/packages/14/a9/8c855c14b401dc67d20739345295af5afce5e930a69600ab20f6cfa50b5c/cookiecutter-2.7.1-py3-none-any.whl", hash = "sha256:cee50defc1eaa7ad0071ee9b9893b746c1b3201b66bf4d3686d0f127c8ed6cf9", size = 41317, upload-time = "2026-03-04T04:06:01.221Z" }, ] [[package]] @@ -388,7 +376,7 @@ name = "exceptiongroup" version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ @@ -596,6 +584,7 @@ dev = [ { name = "pytest" }, { name = "pytest-cov" }, { name = "pytest-mock" }, + { name = "pytest-timeout" }, { name = "pytest-xdist" }, { name = "pyupgrade" }, ] @@ -621,6 +610,7 @@ dev = [ { name = "pytest" }, { name = "pytest-cov" }, { name = "pytest-mock" }, + { name = "pytest-timeout" }, { name = "pytest-xdist" }, { name = "pyupgrade" }, ] @@ -965,11 +955,11 @@ wheels = [ [[package]] name = "platformdirs" -version = "4.9.2" +version = "4.9.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672/platformdirs-4.9.2.tar.gz", hash = "sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291", size = 28394, upload-time = "2026-02-16T03:56:10.574Z" } +sdist = { url = "https://files.pythonhosted.org/packages/19/56/8d4c30c8a1d07013911a8fdbd8f89440ef9f08d07a1b50ab8ca8be5a20f9/platformdirs-4.9.4.tar.gz", hash = "sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934", size = 28737, upload-time = "2026-03-05T18:34:13.271Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8/platformdirs-4.9.2-py3-none-any.whl", hash = "sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd", size = 21168, upload-time = "2026-02-16T03:56:08.891Z" }, + { url = "https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl", hash = "sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868", size = 21216, upload-time = "2026-03-05T18:34:12.172Z" }, ] [[package]] @@ -1084,6 +1074,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5a/cc/06253936f4a7fa2e0f48dfe6d851d9c56df896a9ab09ac019d70b760619c/pytest_mock-3.15.1-py3-none-any.whl", hash = "sha256:0a25e2eb88fe5168d535041d09a4529a188176ae608a6d249ee65abc0949630d", size = 10095, upload-time = "2025-09-16T16:37:25.734Z" }, ] +[[package]] +name = "pytest-timeout" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/82/4c9ecabab13363e72d880f2fb504c5f750433b2b6f16e99f4ec21ada284c/pytest_timeout-2.4.0.tar.gz", hash = "sha256:7e68e90b01f9eff71332b25001f85c75495fc4e3a836701876183c4bcfd0540a", size = 17973, upload-time = "2025-05-05T19:44:34.99Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/b6/3127540ecdf1464a00e5a01ee60a1b09175f6913f0644ac748494d9c4b21/pytest_timeout-2.4.0-py3-none-any.whl", hash = "sha256:c42667e5cdadb151aeb5b26d114aff6bdf5a907f176a007a30b940d3d865b5c2", size = 14382, upload-time = "2025-05-05T19:44:33.502Z" }, +] + [[package]] name = "pytest-xdist" version = "3.8.0" @@ -1275,11 +1277,11 @@ wheels = [ [[package]] name = "setuptools" -version = "82.0.0" +version = "82.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/f3/748f4d6f65d1756b9ae577f329c951cda23fb900e4de9f70900ced962085/setuptools-82.0.0.tar.gz", hash = "sha256:22e0a2d69474c6ae4feb01951cb69d515ed23728cf96d05513d36e42b62b37cb", size = 1144893, upload-time = "2026-02-08T15:08:40.206Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4f/db/cfac1baf10650ab4d1c111714410d2fbb77ac5a616db26775db562c8fab2/setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9", size = 1152316, upload-time = "2026-03-09T12:47:17.221Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/c6/76dc613121b793286a3f91621d7b75a2b493e0390ddca50f11993eadf192/setuptools-82.0.0-py3-none-any.whl", hash = "sha256:70b18734b607bd1da571d097d236cfcfacaf01de45717d59e6e04b96877532e0", size = 1003468, upload-time = "2026-02-08T15:08:38.723Z" }, + { url = "https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb", size = 1006223, upload-time = "2026-03-09T12:47:15.026Z" }, ] [[package]] @@ -1311,7 +1313,7 @@ wheels = [ [[package]] name = "textual" -version = "8.0.1" +version = "8.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py", extra = ["linkify"] }, @@ -1321,9 +1323,9 @@ dependencies = [ { name = "rich" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fb/e4/0f6b6c22a30d2dc2850b4d09c8684742cc4ab79501d4588ea05269c1de3f/textual-8.0.1.tar.gz", hash = "sha256:fe6544e57651a7c2a8249b90ec542b45fa945ce4560e69b0d563fb440e7c4db3", size = 6099133, upload-time = "2026-03-01T19:15:41.537Z" } +sdist = { url = "https://files.pythonhosted.org/packages/be/08/c6bcb1e3c4c9528ec9049f4ac685afdafc72866664270f0deb416ccbba2a/textual-8.0.2.tar.gz", hash = "sha256:7b342f3ee9a5f2f1bd42d7b598cae00ff1275da68536769510db4b7fe8cabf5d", size = 6099270, upload-time = "2026-03-03T20:23:46.858Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/23/40e0019fa60d1e83123b72e3201879b32d68a0d6358b3588d23705107921/textual-8.0.1-py3-none-any.whl", hash = "sha256:6b7522c2bc1a3ab90f534144b7e0ca6e25d35c80942ef92ccfb42a54e945d581", size = 719152, upload-time = "2026-03-01T19:15:43.7Z" }, + { url = "https://files.pythonhosted.org/packages/77/bc/0cd17f96f00b6e8bfbca64c574088c85f3c614912b3030f313752e30a099/textual-8.0.2-py3-none-any.whl", hash = "sha256:4ceadbe0e8a30eb80f9995000f4d031f711420a31b02da38f3482957b7c50ce4", size = 719174, upload-time = "2026-03-03T20:23:50.46Z" }, ] [[package]] diff --git a/package/test-package.sh b/package/test-package.sh index 98919d7ec..9e48d4e01 100755 --- a/package/test-package.sh +++ b/package/test-package.sh @@ -13,4 +13,4 @@ kmir --help # && kmir run \ # ) -# kmir prove-rs kmir/src/tests/integration/data/prove-rs/if.rs +# kmir prove kmir/src/tests/integration/data/prove-rs/if.rs