Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/span/src/hygiene.rs')
-rw-r--r--crates/span/src/hygiene.rs34
1 files changed, 15 insertions, 19 deletions
diff --git a/crates/span/src/hygiene.rs b/crates/span/src/hygiene.rs
index a6402e8701..7cb1676a29 100644
--- a/crates/span/src/hygiene.rs
+++ b/crates/span/src/hygiene.rs
@@ -23,9 +23,6 @@ use std::fmt;
use crate::{Edition, MacroCallId};
-// Recursive expansion of interned macro
-// ======================================
-
/// A syntax context describes a hierarchy tracking order of macro definitions.
#[derive(Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)]
pub struct SyntaxContext(
@@ -33,22 +30,21 @@ pub struct SyntaxContext(
std::marker::PhantomData<&'static salsa::plumbing::interned::Value<SyntaxContext>>,
);
-/// The underlying data interned by Salsa.
-#[derive(Clone, Eq, Debug)]
-pub struct SyntaxContextUnderlyingData {
- pub outer_expn: Option<MacroCallId>,
- pub outer_transparency: Transparency,
- pub edition: Edition,
- pub parent: SyntaxContext,
- pub opaque: SyntaxContext,
- pub opaque_and_semitransparent: SyntaxContext,
-}
-
const _: () = {
use salsa::plumbing as zalsa_;
use salsa::plumbing::interned as zalsa_struct_;
- impl PartialEq for SyntaxContextUnderlyingData {
+ #[derive(Clone, Eq, Debug)]
+ pub struct SyntaxContextData {
+ outer_expn: Option<MacroCallId>,
+ outer_transparency: Transparency,
+ edition: Edition,
+ parent: SyntaxContext,
+ opaque: SyntaxContext,
+ opaque_and_semitransparent: SyntaxContext,
+ }
+
+ impl PartialEq for SyntaxContextData {
fn eq(&self, other: &Self) -> bool {
self.outer_expn == other.outer_expn
&& self.outer_transparency == other.outer_transparency
@@ -57,7 +53,7 @@ const _: () = {
}
}
- impl std::hash::Hash for SyntaxContextUnderlyingData {
+ impl std::hash::Hash for SyntaxContextData {
fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
self.outer_expn.hash(state);
self.outer_transparency.hash(state);
@@ -71,7 +67,7 @@ const _: () = {
struct StructKey<'db, T0, T1, T2, T3>(T0, T1, T2, T3, std::marker::PhantomData<&'db ()>);
impl<'db, T0, T1, T2, T3> zalsa_::interned::HashEqLike<StructKey<'db, T0, T1, T2, T3>>
- for SyntaxContextUnderlyingData
+ for SyntaxContextData
where
Option<MacroCallId>: zalsa_::interned::HashEqLike<T0>,
Transparency: zalsa_::interned::HashEqLike<T1>,
@@ -93,7 +89,7 @@ const _: () = {
}
impl zalsa_struct_::Configuration for SyntaxContext {
const DEBUG_NAME: &'static str = "SyntaxContextData";
- type Fields<'a> = SyntaxContextUnderlyingData;
+ type Fields<'a> = SyntaxContextData;
type Struct<'a> = SyntaxContext;
fn struct_from_id<'db>(id: salsa::Id) -> Self::Struct<'db> {
SyntaxContext(id, std::marker::PhantomData)
@@ -189,7 +185,7 @@ const _: () = {
parent,
std::marker::PhantomData,
),
- |id, data| SyntaxContextUnderlyingData {
+ |id, data| SyntaxContextData {
outer_expn: zalsa_::interned::Lookup::into_owned(data.0),
outer_transparency: zalsa_::interned::Lookup::into_owned(data.1),
edition: zalsa_::interned::Lookup::into_owned(data.2),