Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/span/src/lib.rs')
-rw-r--r--crates/span/src/lib.rs126
1 files changed, 0 insertions, 126 deletions
diff --git a/crates/span/src/lib.rs b/crates/span/src/lib.rs
index 67f49928f8..54f90908f3 100644
--- a/crates/span/src/lib.rs
+++ b/crates/span/src/lib.rs
@@ -184,16 +184,6 @@ impl EditionedFileId {
mod salsa {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct Id(u32);
-
- impl Id {
- pub(crate) const fn from_u32(u32: u32) -> Self {
- Self(u32)
- }
-
- pub(crate) const fn as_u32(self) -> u32 {
- self.0
- }
- }
}
/// Input to the analyzer is a set of files, where each file is identified by
@@ -216,127 +206,11 @@ mod salsa {
#[derive(Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct HirFileId(pub salsa::Id);
-impl From<MacroCallId> for HirFileId {
- fn from(value: MacroCallId) -> Self {
- value.as_file()
- }
-}
-
-impl fmt::Debug for HirFileId {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- self.repr().fmt(f)
- }
-}
-
-impl PartialEq<FileId> for HirFileId {
- fn eq(&self, &other: &FileId) -> bool {
- self.file_id().map(EditionedFileId::file_id) == Some(other)
- }
-}
-impl PartialEq<HirFileId> for FileId {
- fn eq(&self, other: &HirFileId) -> bool {
- other.file_id().map(EditionedFileId::file_id) == Some(*self)
- }
-}
-
-#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
-pub struct MacroFileId {
- pub macro_call_id: MacroCallId,
-}
-
/// `MacroCallId` identifies a particular macro invocation, like
/// `println!("Hello, {}", world)`.
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct MacroCallId(pub salsa::Id);
-impl MacroCallId {
- pub const MAX_ID: u32 = 0x7fff_ffff;
-
- pub fn as_file(self) -> HirFileId {
- MacroFileId { macro_call_id: self }.into()
- }
-
- pub fn as_macro_file(self) -> MacroFileId {
- MacroFileId { macro_call_id: self }
- }
-}
-
-#[derive(Clone, Copy, PartialEq, Eq, Hash)]
-pub enum HirFileIdRepr {
- FileId(EditionedFileId),
- MacroFile(MacroFileId),
-}
-
-impl fmt::Debug for HirFileIdRepr {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- match self {
- Self::FileId(arg0) => arg0.fmt(f),
- Self::MacroFile(arg0) => {
- f.debug_tuple("MacroFile").field(&arg0.macro_call_id.0).finish()
- }
- }
- }
-}
-
-impl From<EditionedFileId> for HirFileId {
- #[allow(clippy::let_unit_value)]
- fn from(id: EditionedFileId) -> Self {
- assert!(id.as_u32() <= Self::MAX_HIR_FILE_ID, "FileId index {} is too large", id.as_u32());
- HirFileId(salsa::Id::from_u32(id.0))
- }
-}
-
-impl From<MacroFileId> for HirFileId {
- #[allow(clippy::let_unit_value)]
- fn from(MacroFileId { macro_call_id: MacroCallId(id) }: MacroFileId) -> Self {
- let id: u32 = id.as_u32();
- assert!(id <= Self::MAX_HIR_FILE_ID, "MacroCallId index {id} is too large");
- HirFileId(salsa::Id::from_u32(id | Self::MACRO_FILE_TAG_MASK))
- }
-}
-
-impl HirFileId {
- const MAX_HIR_FILE_ID: u32 = u32::MAX ^ Self::MACRO_FILE_TAG_MASK;
- const MACRO_FILE_TAG_MASK: u32 = 1 << 31;
-
- #[inline]
- pub fn is_macro(self) -> bool {
- self.0.as_u32() & Self::MACRO_FILE_TAG_MASK != 0
- }
-
- #[inline]
- pub fn macro_file(self) -> Option<MacroFileId> {
- match self.0.as_u32() & Self::MACRO_FILE_TAG_MASK {
- 0 => None,
- _ => Some(MacroFileId {
- macro_call_id: MacroCallId(salsa::Id::from_u32(
- self.0.as_u32() ^ Self::MACRO_FILE_TAG_MASK,
- )),
- }),
- }
- }
-
- #[inline]
- pub fn file_id(self) -> Option<EditionedFileId> {
- match self.0.as_u32() & Self::MACRO_FILE_TAG_MASK {
- 0 => Some(EditionedFileId(self.0.as_u32())),
- _ => None,
- }
- }
-
- #[inline]
- pub fn repr(self) -> HirFileIdRepr {
- match self.0.as_u32() & Self::MACRO_FILE_TAG_MASK {
- 0 => HirFileIdRepr::FileId(EditionedFileId(self.0.as_u32())),
- _ => HirFileIdRepr::MacroFile(MacroFileId {
- macro_call_id: MacroCallId(salsa::Id::from_u32(
- self.0.as_u32() ^ Self::MACRO_FILE_TAG_MASK,
- )),
- }),
- }
- }
-}
-
/// Legacy span type, only defined here as it is still used by the proc-macro server.
/// While rust-analyzer doesn't use this anymore at all, RustRover relies on the legacy type for
/// proc-macro expansion.