mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-01 11:13:43 +00:00
Auto merge of #15616 - HKalbasi:rustc-deps, r=HKalbasi
Switch to in-tree rustc dependencies with a cfg flag We can use this flag to detect and prevent breakages in rustc CI. (see #14846 and #15569) ~The `IN_RUSTC_REPOSITORY` is just a placeholder. Is there any existing cfg flag that rustc CI sets?~
This commit is contained in:
commit
22b18b9f77
22
Cargo.lock
generated
22
Cargo.lock
generated
@ -531,8 +531,6 @@ dependencies = [
|
|||||||
"fst",
|
"fst",
|
||||||
"hashbrown 0.12.3",
|
"hashbrown 0.12.3",
|
||||||
"hir-expand",
|
"hir-expand",
|
||||||
"hkalbasi-rustc-ap-rustc_abi",
|
|
||||||
"hkalbasi-rustc-ap-rustc_index",
|
|
||||||
"indexmap 2.0.0",
|
"indexmap 2.0.0",
|
||||||
"intern",
|
"intern",
|
||||||
"itertools",
|
"itertools",
|
||||||
@ -541,7 +539,7 @@ dependencies = [
|
|||||||
"mbe",
|
"mbe",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"profile",
|
"profile",
|
||||||
"ra-ap-rustc_parse_format",
|
"rustc-dependencies",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"stdx",
|
"stdx",
|
||||||
@ -594,7 +592,6 @@ dependencies = [
|
|||||||
"expect-test",
|
"expect-test",
|
||||||
"hir-def",
|
"hir-def",
|
||||||
"hir-expand",
|
"hir-expand",
|
||||||
"hkalbasi-rustc-ap-rustc_index",
|
|
||||||
"intern",
|
"intern",
|
||||||
"itertools",
|
"itertools",
|
||||||
"la-arena 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"la-arena 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -604,6 +601,7 @@ dependencies = [
|
|||||||
"oorandom",
|
"oorandom",
|
||||||
"profile",
|
"profile",
|
||||||
"project-model",
|
"project-model",
|
||||||
|
"rustc-dependencies",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"scoped-tls",
|
"scoped-tls",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
@ -1277,7 +1275,7 @@ dependencies = [
|
|||||||
"drop_bomb",
|
"drop_bomb",
|
||||||
"expect-test",
|
"expect-test",
|
||||||
"limit",
|
"limit",
|
||||||
"ra-ap-rustc_lexer",
|
"rustc-dependencies",
|
||||||
"sourcegen",
|
"sourcegen",
|
||||||
"stdx",
|
"stdx",
|
||||||
]
|
]
|
||||||
@ -1594,10 +1592,12 @@ dependencies = [
|
|||||||
"oorandom",
|
"oorandom",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"parking_lot_core 0.9.6",
|
"parking_lot_core 0.9.6",
|
||||||
|
"parser",
|
||||||
"proc-macro-api",
|
"proc-macro-api",
|
||||||
"profile",
|
"profile",
|
||||||
"project-model",
|
"project-model",
|
||||||
"rayon",
|
"rayon",
|
||||||
|
"rustc-dependencies",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"scip",
|
"scip",
|
||||||
"serde",
|
"serde",
|
||||||
@ -1626,6 +1626,16 @@ version = "0.1.23"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
|
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustc-dependencies"
|
||||||
|
version = "0.0.0"
|
||||||
|
dependencies = [
|
||||||
|
"hkalbasi-rustc-ap-rustc_abi",
|
||||||
|
"hkalbasi-rustc-ap-rustc_index",
|
||||||
|
"ra-ap-rustc_lexer",
|
||||||
|
"ra-ap-rustc_parse_format",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc-hash"
|
name = "rustc-hash"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
@ -1853,9 +1863,9 @@ dependencies = [
|
|||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"profile",
|
"profile",
|
||||||
"quote",
|
"quote",
|
||||||
"ra-ap-rustc_lexer",
|
|
||||||
"rayon",
|
"rayon",
|
||||||
"rowan",
|
"rowan",
|
||||||
|
"rustc-dependencies",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"smol_str",
|
"smol_str",
|
||||||
"sourcegen",
|
"sourcegen",
|
||||||
|
18
Cargo.toml
18
Cargo.toml
@ -79,6 +79,7 @@ toolchain = { path = "./crates/toolchain", version = "0.0.0" }
|
|||||||
tt = { path = "./crates/tt", version = "0.0.0" }
|
tt = { path = "./crates/tt", version = "0.0.0" }
|
||||||
vfs-notify = { path = "./crates/vfs-notify", version = "0.0.0" }
|
vfs-notify = { path = "./crates/vfs-notify", version = "0.0.0" }
|
||||||
vfs = { path = "./crates/vfs", version = "0.0.0" }
|
vfs = { path = "./crates/vfs", version = "0.0.0" }
|
||||||
|
rustc-dependencies = { path = "./crates/rustc-dependencies", version = "0.0.0" }
|
||||||
|
|
||||||
# local crates that aren't published to crates.io. These should not have versions.
|
# local crates that aren't published to crates.io. These should not have versions.
|
||||||
proc-macro-test = { path = "./crates/proc-macro-test" }
|
proc-macro-test = { path = "./crates/proc-macro-test" }
|
||||||
@ -90,9 +91,9 @@ lsp-server = { version = "0.7.4" }
|
|||||||
|
|
||||||
# non-local crates
|
# non-local crates
|
||||||
smallvec = { version = "1.10.0", features = [
|
smallvec = { version = "1.10.0", features = [
|
||||||
"const_new",
|
"const_new",
|
||||||
"union",
|
"union",
|
||||||
"const_generics",
|
"const_generics",
|
||||||
] }
|
] }
|
||||||
smol_str = "0.2.0"
|
smol_str = "0.2.0"
|
||||||
nohash-hasher = "0.2.0"
|
nohash-hasher = "0.2.0"
|
||||||
@ -101,11 +102,6 @@ serde = { version = "1.0.156", features = ["derive"] }
|
|||||||
serde_json = "1.0.96"
|
serde_json = "1.0.96"
|
||||||
triomphe = { version = "0.1.8", default-features = false, features = ["std"] }
|
triomphe = { version = "0.1.8", default-features = false, features = ["std"] }
|
||||||
# can't upgrade due to dashmap depending on 0.12.3 currently
|
# can't upgrade due to dashmap depending on 0.12.3 currently
|
||||||
hashbrown = { version = "0.12.3", features = ["inline-more"], default-features = false }
|
hashbrown = { version = "0.12.3", features = [
|
||||||
|
"inline-more",
|
||||||
rustc_lexer = { version = "0.10.0", package = "ra-ap-rustc_lexer" }
|
], default-features = false }
|
||||||
rustc_parse_format = { version = "0.10.0", package = "ra-ap-rustc_parse_format", default-features = false }
|
|
||||||
|
|
||||||
# Upstream broke this for us so we can't update it
|
|
||||||
rustc_abi = { version = "0.0.20221221", package = "hkalbasi-rustc-ap-rustc_abi", default-features = false }
|
|
||||||
rustc_index = { version = "0.0.20221221", package = "hkalbasi-rustc-ap-rustc_index", default-features = false }
|
|
||||||
|
@ -31,10 +31,7 @@ smallvec.workspace = true
|
|||||||
hashbrown.workspace = true
|
hashbrown.workspace = true
|
||||||
triomphe.workspace = true
|
triomphe.workspace = true
|
||||||
|
|
||||||
rustc_abi.workspace = true
|
rustc-dependencies.workspace = true
|
||||||
rustc_index.workspace = true
|
|
||||||
rustc_parse_format.workspace = true
|
|
||||||
|
|
||||||
|
|
||||||
# local deps
|
# local deps
|
||||||
stdx.workspace = true
|
stdx.workspace = true
|
||||||
@ -53,3 +50,6 @@ expect-test = "1.4.0"
|
|||||||
|
|
||||||
# local deps
|
# local deps
|
||||||
test-utils.workspace = true
|
test-utils.workspace = true
|
||||||
|
|
||||||
|
[features]
|
||||||
|
in-rust-tree = ["rustc-dependencies/in-rust-tree"]
|
||||||
|
@ -11,7 +11,7 @@ use hir_expand::{
|
|||||||
};
|
};
|
||||||
use intern::Interned;
|
use intern::Interned;
|
||||||
use la_arena::{Arena, ArenaMap};
|
use la_arena::{Arena, ArenaMap};
|
||||||
use rustc_abi::{Align, Integer, IntegerType, ReprFlags, ReprOptions};
|
use rustc_dependencies::abi::{Align, Integer, IntegerType, ReprFlags, ReprOptions};
|
||||||
use syntax::ast::{self, HasName, HasVisibility};
|
use syntax::ast::{self, HasName, HasVisibility};
|
||||||
use triomphe::Arc;
|
use triomphe::Arc;
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
use std::mem;
|
use std::mem;
|
||||||
|
|
||||||
use hir_expand::name::Name;
|
use hir_expand::name::Name;
|
||||||
use rustc_parse_format as parse;
|
use rustc_dependencies::parse_format as parse;
|
||||||
use syntax::{
|
use syntax::{
|
||||||
ast::{self, IsString},
|
ast::{self, IsString},
|
||||||
AstToken, SmolStr, TextRange,
|
AstToken, SmolStr, TextRange,
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
//! actually true.
|
//! actually true.
|
||||||
|
|
||||||
#![warn(rust_2018_idioms, unused_lifetimes, semicolon_in_expressions_from_macros)]
|
#![warn(rust_2018_idioms, unused_lifetimes, semicolon_in_expressions_from_macros)]
|
||||||
|
#![cfg_attr(feature = "in-rust-tree", feature(rustc_private))]
|
||||||
|
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
macro_rules! eprintln {
|
macro_rules! eprintln {
|
||||||
@ -48,7 +49,7 @@ pub mod visibility;
|
|||||||
pub mod find_path;
|
pub mod find_path;
|
||||||
pub mod import_map;
|
pub mod import_map;
|
||||||
|
|
||||||
pub use rustc_abi as layout;
|
pub use rustc_dependencies::abi as layout;
|
||||||
use triomphe::Arc;
|
use triomphe::Arc;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
@ -33,7 +33,7 @@ triomphe.workspace = true
|
|||||||
nohash-hasher.workspace = true
|
nohash-hasher.workspace = true
|
||||||
typed-arena = "2.0.1"
|
typed-arena = "2.0.1"
|
||||||
|
|
||||||
rustc_index.workspace = true
|
rustc-dependencies.workspace = true
|
||||||
|
|
||||||
# local deps
|
# local deps
|
||||||
stdx.workspace = true
|
stdx.workspace = true
|
||||||
@ -56,3 +56,6 @@ project-model = { path = "../project-model" }
|
|||||||
|
|
||||||
# local deps
|
# local deps
|
||||||
test-utils.workspace = true
|
test-utils.workspace = true
|
||||||
|
|
||||||
|
[features]
|
||||||
|
in-rust-tree = ["rustc-dependencies/in-rust-tree"]
|
||||||
|
@ -34,7 +34,7 @@ mod target;
|
|||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||||
pub struct RustcEnumVariantIdx(pub LocalEnumVariantId);
|
pub struct RustcEnumVariantIdx(pub LocalEnumVariantId);
|
||||||
|
|
||||||
impl rustc_index::vec::Idx for RustcEnumVariantIdx {
|
impl rustc_dependencies::index::vec::Idx for RustcEnumVariantIdx {
|
||||||
fn new(idx: usize) -> Self {
|
fn new(idx: usize) -> Self {
|
||||||
RustcEnumVariantIdx(Idx::from_raw(RawIdx::from(idx as u32)))
|
RustcEnumVariantIdx(Idx::from_raw(RawIdx::from(idx as u32)))
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ doctest = false
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
drop_bomb = "0.1.5"
|
drop_bomb = "0.1.5"
|
||||||
rustc_lexer.workspace = true
|
rustc-dependencies.workspace = true
|
||||||
|
|
||||||
limit.workspace = true
|
limit.workspace = true
|
||||||
|
|
||||||
@ -22,3 +22,6 @@ expect-test = "1.4.0"
|
|||||||
|
|
||||||
stdx.workspace = true
|
stdx.workspace = true
|
||||||
sourcegen.workspace = true
|
sourcegen.workspace = true
|
||||||
|
|
||||||
|
[features]
|
||||||
|
in-rust-tree = ["rustc-dependencies/in-rust-tree"]
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
//! Note that these tokens, unlike the tokens we feed into the parser, do
|
//! Note that these tokens, unlike the tokens we feed into the parser, do
|
||||||
//! include info about comments and whitespace.
|
//! include info about comments and whitespace.
|
||||||
|
|
||||||
|
use rustc_dependencies::lexer as rustc_lexer;
|
||||||
use std::ops;
|
use std::ops;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#![warn(rust_2018_idioms, unused_lifetimes, semicolon_in_expressions_from_macros)]
|
#![warn(rust_2018_idioms, unused_lifetimes, semicolon_in_expressions_from_macros)]
|
||||||
#![allow(rustdoc::private_intra_doc_links)]
|
#![allow(rustdoc::private_intra_doc_links)]
|
||||||
|
#![cfg_attr(feature = "in-rust-tree", feature(rustc_private))]
|
||||||
|
|
||||||
mod lexed_str;
|
mod lexed_str;
|
||||||
mod token_set;
|
mod token_set;
|
||||||
|
@ -57,6 +57,7 @@ flycheck.workspace = true
|
|||||||
hir-def.workspace = true
|
hir-def.workspace = true
|
||||||
hir-ty.workspace = true
|
hir-ty.workspace = true
|
||||||
hir.workspace = true
|
hir.workspace = true
|
||||||
|
rustc-dependencies.workspace = true
|
||||||
ide-db.workspace = true
|
ide-db.workspace = true
|
||||||
# This should only be used in CLI
|
# This should only be used in CLI
|
||||||
ide-ssr.workspace = true
|
ide-ssr.workspace = true
|
||||||
@ -67,6 +68,7 @@ profile.workspace = true
|
|||||||
project-model.workspace = true
|
project-model.workspace = true
|
||||||
stdx.workspace = true
|
stdx.workspace = true
|
||||||
syntax.workspace = true
|
syntax.workspace = true
|
||||||
|
parser.workspace = true
|
||||||
toolchain.workspace = true
|
toolchain.workspace = true
|
||||||
vfs-notify.workspace = true
|
vfs-notify.workspace = true
|
||||||
vfs.workspace = true
|
vfs.workspace = true
|
||||||
@ -89,4 +91,12 @@ mbe.workspace = true
|
|||||||
jemalloc = ["jemallocator", "profile/jemalloc"]
|
jemalloc = ["jemallocator", "profile/jemalloc"]
|
||||||
force-always-assert = ["always-assert/force"]
|
force-always-assert = ["always-assert/force"]
|
||||||
sysroot-abi = []
|
sysroot-abi = []
|
||||||
in-rust-tree = ["sysroot-abi", "ide/in-rust-tree", "syntax/in-rust-tree"]
|
in-rust-tree = [
|
||||||
|
"sysroot-abi",
|
||||||
|
"ide/in-rust-tree",
|
||||||
|
"syntax/in-rust-tree",
|
||||||
|
"parser/in-rust-tree",
|
||||||
|
"rustc-dependencies/in-rust-tree",
|
||||||
|
"hir-def/in-rust-tree",
|
||||||
|
"hir-ty/in-rust-tree",
|
||||||
|
]
|
||||||
|
20
crates/rustc-dependencies/Cargo.toml
Normal file
20
crates/rustc-dependencies/Cargo.toml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[package]
|
||||||
|
name = "rustc-dependencies"
|
||||||
|
version = "0.0.0"
|
||||||
|
rust-version.workspace = true
|
||||||
|
edition.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
ra-ap-rustc_lexer = { version = "0.10.0" }
|
||||||
|
ra-ap-rustc_parse_format = { version = "0.10.0", default-features = false }
|
||||||
|
|
||||||
|
# Upstream broke this for us so we can't update it
|
||||||
|
hkalbasi-rustc-ap-rustc_abi = { version = "0.0.20221221", default-features = false }
|
||||||
|
hkalbasi-rustc-ap-rustc_index = { version = "0.0.20221221", default-features = false }
|
||||||
|
|
||||||
|
[features]
|
||||||
|
in-rust-tree = []
|
39
crates/rustc-dependencies/src/lib.rs
Normal file
39
crates/rustc-dependencies/src/lib.rs
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
//! A wrapper around rustc internal crates, which enables switching between compiler provided
|
||||||
|
//! ones and stable ones published in crates.io
|
||||||
|
|
||||||
|
#![cfg_attr(feature = "in-rust-tree", feature(rustc_private))]
|
||||||
|
|
||||||
|
#[cfg(feature = "in-rust-tree")]
|
||||||
|
extern crate rustc_lexer;
|
||||||
|
|
||||||
|
#[cfg(feature = "in-rust-tree")]
|
||||||
|
pub mod lexer {
|
||||||
|
pub use ::rustc_lexer::*;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(feature = "in-rust-tree"))]
|
||||||
|
pub mod lexer {
|
||||||
|
pub use ::ra_ap_rustc_lexer::*;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "in-rust-tree")]
|
||||||
|
extern crate rustc_parse_format;
|
||||||
|
|
||||||
|
#[cfg(feature = "in-rust-tree")]
|
||||||
|
pub mod parse_format {
|
||||||
|
pub use ::rustc_parse_format::*;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(feature = "in-rust-tree"))]
|
||||||
|
pub mod parse_format {
|
||||||
|
pub use ::ra_ap_rustc_parse_format::*;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Upstream broke this for us so we can't update it
|
||||||
|
pub mod abi {
|
||||||
|
pub use ::hkalbasi_rustc_ap_rustc_abi::*;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub mod index {
|
||||||
|
pub use ::hkalbasi_rustc_ap_rustc_index::*;
|
||||||
|
}
|
@ -23,7 +23,7 @@ indexmap = "2.0.0"
|
|||||||
smol_str.workspace = true
|
smol_str.workspace = true
|
||||||
triomphe.workspace = true
|
triomphe.workspace = true
|
||||||
|
|
||||||
rustc_lexer.workspace = true
|
rustc-dependencies.workspace = true
|
||||||
|
|
||||||
parser.workspace = true
|
parser.workspace = true
|
||||||
profile.workspace = true
|
profile.workspace = true
|
||||||
@ -41,4 +41,4 @@ test-utils.workspace = true
|
|||||||
sourcegen.workspace = true
|
sourcegen.workspace = true
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
in-rust-tree = []
|
in-rust-tree = ["rustc-dependencies/in-rust-tree"]
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
|
|
||||||
|
use rustc_dependencies::lexer as rustc_lexer;
|
||||||
|
|
||||||
use rustc_lexer::unescape::{
|
use rustc_lexer::unescape::{
|
||||||
unescape_byte, unescape_c_string, unescape_char, unescape_literal, CStrUnit, Mode,
|
unescape_byte, unescape_c_string, unescape_char, unescape_literal, CStrUnit, Mode,
|
||||||
};
|
};
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
//! [RFC]: <https://github.com/rust-lang/rfcs/pull/2256>
|
//! [RFC]: <https://github.com/rust-lang/rfcs/pull/2256>
|
||||||
//! [Swift]: <https://github.com/apple/swift/blob/13d593df6f359d0cb2fc81cfaac273297c539455/lib/Syntax/README.md>
|
//! [Swift]: <https://github.com/apple/swift/blob/13d593df6f359d0cb2fc81cfaac273297c539455/lib/Syntax/README.md>
|
||||||
|
|
||||||
|
#![cfg_attr(feature = "in-rust-tree", feature(rustc_private))]
|
||||||
#![warn(rust_2018_idioms, unused_lifetimes, semicolon_in_expressions_from_macros)]
|
#![warn(rust_2018_idioms, unused_lifetimes, semicolon_in_expressions_from_macros)]
|
||||||
|
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
mod block;
|
mod block;
|
||||||
|
|
||||||
use rowan::Direction;
|
use rowan::Direction;
|
||||||
use rustc_lexer::unescape::{self, unescape_literal, Mode};
|
use rustc_dependencies::lexer::unescape::{self, unescape_literal, Mode};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
algo,
|
algo,
|
||||||
|
Loading…
Reference in New Issue
Block a user