Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/base-db/src/input.rs')
-rw-r--r--crates/base-db/src/input.rs84
1 files changed, 6 insertions, 78 deletions
diff --git a/crates/base-db/src/input.rs b/crates/base-db/src/input.rs
index b243b37b77..27eb05cd4d 100644
--- a/crates/base-db/src/input.rs
+++ b/crates/base-db/src/input.rs
@@ -6,11 +6,12 @@
//! actual IO. See `vfs` and `project_model` in the `rust-analyzer` crate for how
//! actual IO is done and lowered to input.
-use std::{fmt, mem, ops, str::FromStr};
+use std::{fmt, mem, ops};
use cfg::CfgOptions;
use la_arena::{Arena, Idx, RawIdx};
use rustc_hash::{FxHashMap, FxHashSet};
+use span::Edition;
use syntax::SmolStr;
use triomphe::Arc;
use vfs::{file_set::FileSet, AbsPathBuf, AnchoredPath, FileId, VfsPath};
@@ -293,42 +294,11 @@ pub struct CrateData {
pub is_proc_macro: bool,
}
-#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
-pub enum Edition {
- Edition2015,
- Edition2018,
- Edition2021,
- Edition2024,
-}
-
-impl Edition {
- pub const CURRENT: Edition = Edition::Edition2021;
- pub const DEFAULT: Edition = Edition::Edition2015;
-}
-
#[derive(Default, Debug, Clone, PartialEq, Eq)]
pub struct Env {
entries: FxHashMap<String, String>,
}
-impl Env {
- pub fn new_for_test_fixture() -> Self {
- Env {
- entries: FxHashMap::from_iter([(
- String::from("__ra_is_test_fixture"),
- String::from("__ra_is_test_fixture"),
- )]),
- }
- }
-}
-
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum DependencyKind {
- Normal,
- Dev,
- Build,
-}
-
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Dependency {
pub crate_id: CrateId,
@@ -530,13 +500,6 @@ impl CrateGraph {
}
}
- // FIXME: this only finds one crate with the given root; we could have multiple
- pub fn crate_id_for_crate_root(&self, file_id: FileId) -> Option<CrateId> {
- let (crate_id, _) =
- self.arena.iter().find(|(_crate_id, data)| data.root_file_id == file_id)?;
- Some(crate_id)
- }
-
pub fn sort_deps(&mut self) {
self.arena
.iter_mut()
@@ -653,6 +616,10 @@ impl CrateGraph {
}
id_map
}
+
+ pub fn shrink_to_fit(&mut self) {
+ self.arena.shrink_to_fit();
+ }
}
impl ops::Index<CrateId> for CrateGraph {
@@ -670,32 +637,6 @@ impl CrateData {
}
}
-impl FromStr for Edition {
- type Err = ParseEditionError;
-
- fn from_str(s: &str) -> Result<Self, Self::Err> {
- let res = match s {
- "2015" => Edition::Edition2015,
- "2018" => Edition::Edition2018,
- "2021" => Edition::Edition2021,
- "2024" => Edition::Edition2024,
- _ => return Err(ParseEditionError { invalid_input: s.to_owned() }),
- };
- Ok(res)
- }
-}
-
-impl fmt::Display for Edition {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- f.write_str(match self {
- Edition::Edition2015 => "2015",
- Edition::Edition2018 => "2018",
- Edition::Edition2021 => "2021",
- Edition::Edition2024 => "2024",
- })
- }
-}
-
impl Extend<(String, String)> for Env {
fn extend<T: IntoIterator<Item = (String, String)>>(&mut self, iter: T) {
self.entries.extend(iter);
@@ -723,19 +664,6 @@ impl Env {
}
#[derive(Debug)]
-pub struct ParseEditionError {
- invalid_input: String,
-}
-
-impl fmt::Display for ParseEditionError {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- write!(f, "invalid edition: {:?}", self.invalid_input)
- }
-}
-
-impl std::error::Error for ParseEditionError {}
-
-#[derive(Debug)]
pub struct CyclicDependenciesError {
path: Vec<(CrateId, Option<CrateDisplayName>)>,
}