By moving this stability check into AST lowering, we effectively make it impossible to accidentally miss, as it must happen to generate HIR. Also, we put the ABI-stability code next to code that actually uses it! This allows code that wants to reason about backend ABI implementations to stop worrying about high-level concerns like syntax stability, while still leaving it as the authority on what ABIs actually exist. It also makes it easy to refactor things to have more consistent errors. For now, we only apply this to generalize the existing messages a bit.
32 lines
1.1 KiB
TOML
32 lines
1.1 KiB
TOML
[package]
|
|
name = "rustc_abi"
|
|
version = "0.0.0"
|
|
edition = "2021"
|
|
|
|
[dependencies]
|
|
# tidy-alphabetical-start
|
|
bitflags = "2.4.1"
|
|
rand = { version = "0.8.4", default-features = false, optional = true }
|
|
rand_xoshiro = { version = "0.6.0", optional = true }
|
|
rustc_data_structures = { path = "../rustc_data_structures", optional = true }
|
|
rustc_index = { path = "../rustc_index", default-features = false }
|
|
rustc_macros = { path = "../rustc_macros", optional = true }
|
|
rustc_serialize = { path = "../rustc_serialize", optional = true }
|
|
rustc_span = { path = "../rustc_span", optional = true }
|
|
tracing = "0.1"
|
|
# tidy-alphabetical-end
|
|
|
|
[features]
|
|
# tidy-alphabetical-start
|
|
default = ["nightly", "randomize"]
|
|
# rust-analyzer depends on this crate and we therefore require it to built on a stable toolchain
|
|
# without depending on rustc_data_structures, rustc_macros and rustc_serialize
|
|
nightly = [
|
|
"dep:rustc_data_structures",
|
|
"dep:rustc_macros",
|
|
"dep:rustc_serialize",
|
|
"dep:rustc_span",
|
|
"rustc_index/nightly",
|
|
]
|
|
randomize = ["dep:rand", "dep:rand_xoshiro", "nightly"]
|
|
# tidy-alphabetical-end
|