Skip to content

Commit bd74972

Browse files
committed
Deglobify
1 parent ac48758 commit bd74972

File tree

8 files changed

+61
-52
lines changed

8 files changed

+61
-52
lines changed

src/api.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ impl<L: Language> fmt::Display for SyntaxToken<L> {
104104
}
105105
}
106106

107-
pub(crate) type SyntaxElement<L> = NodeOrToken<SyntaxNode<L>, SyntaxToken<L>>;
107+
pub type SyntaxElement<L> = NodeOrToken<SyntaxNode<L>, SyntaxToken<L>>;
108108

109109
impl<L: Language> From<cursor::SyntaxElement> for SyntaxElement<L> {
110110
fn from(raw: cursor::SyntaxElement) -> SyntaxElement<L> {

src/cursor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ use std::{
77
};
88

99
use crate::{
10-
Children, Direction, GreenElementRef, GreenNode, GreenToken, NodeOrToken, SmolStr, SyntaxText,
11-
TextRange, TextUnit, TokenAtOffset, WalkEvent,
10+
green::GreenElementRef, Children, Direction, GreenNode, GreenToken, NodeOrToken, SmolStr,
11+
SyntaxText, TextRange, TextUnit, TokenAtOffset, WalkEvent,
1212
};
1313

1414
/// SyntaxKind is a type tag for each token or node.

src/green.rs

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,35 @@ mod token;
33
mod element;
44
mod builder;
55

6-
pub(crate) use self::element::*;
6+
pub(crate) use self::element::GreenElementRef;
7+
use self::element::{GreenElement, PackedGreenElement};
78

8-
pub use self::{builder::*, node::*, token::*};
9+
pub use self::{
10+
builder::{Checkpoint, GreenNodeBuilder, NodeCache},
11+
node::{Children, GreenNode},
12+
token::GreenToken,
13+
};
14+
15+
#[cfg(test)]
16+
mod tests {
17+
use super::*;
18+
19+
#[test]
20+
fn assert_send_sync() {
21+
fn f<T: Send + Sync>() {}
22+
f::<GreenNode>();
23+
f::<GreenToken>();
24+
f::<GreenElement>();
25+
f::<PackedGreenElement>();
26+
}
27+
28+
#[test]
29+
fn test_size_of() {
30+
use std::mem::size_of;
31+
32+
eprintln!("GreenNode {}", size_of::<GreenNode>());
33+
eprintln!("GreenToken {}", size_of::<GreenToken>());
34+
eprintln!("GreenElement {}", size_of::<GreenElement>());
35+
eprintln!("PackedGreenElement {}", size_of::<PackedGreenElement>());
36+
}
37+
}

src/green/builder.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
use crate::{cursor::SyntaxKind, NodeOrToken, SmolStr};
1+
use rustc_hash::FxHashSet;
22

3-
use super::*;
3+
use crate::{
4+
cursor::SyntaxKind,
5+
green::{GreenElement, GreenNode, GreenToken},
6+
NodeOrToken, SmolStr,
7+
};
48

59
#[derive(Default, Debug)]
610
pub struct NodeCache {
7-
nodes: rustc_hash::FxHashSet<GreenNode>,
8-
tokens: rustc_hash::FxHashSet<GreenToken>,
11+
nodes: FxHashSet<GreenNode>,
12+
tokens: FxHashSet<GreenToken>,
913
}
1014

1115
impl NodeCache {

src/green/element.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@ use std::{fmt, hash, mem};
22

33
use thin_dst::ErasedPtr;
44

5-
use crate::{cursor::SyntaxKind, NodeOrToken, TextUnit};
5+
use crate::{
6+
cursor::SyntaxKind,
7+
green::{GreenNode, GreenToken},
8+
NodeOrToken, TextUnit,
9+
};
610

7-
use super::*;
8-
9-
pub(crate) type GreenElement = NodeOrToken<GreenNode, GreenToken>;
11+
pub(super) type GreenElement = NodeOrToken<GreenNode, GreenToken>;
1012
pub(crate) type GreenElementRef<'a> = NodeOrToken<&'a GreenNode, &'a GreenToken>;
13+
1114
#[repr(transparent)]
12-
pub(crate) struct PackedGreenElement {
15+
pub(super) struct PackedGreenElement {
1316
ptr: ErasedPtr,
1417
}
1518

src/green/node.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ use std::{iter::FusedIterator, slice, sync::Arc};
22

33
use thin_dst::{ThinArc, ThinData};
44

5-
use crate::{cursor::SyntaxKind, TextUnit};
6-
7-
use super::*;
5+
use crate::{
6+
cursor::SyntaxKind,
7+
green::{GreenElement, GreenElementRef, PackedGreenElement},
8+
TextUnit,
9+
};
810

911
#[repr(align(2))] // NB: this is an at-least annotation
1012
#[derive(Debug, Clone, PartialEq, Eq, Hash)]

src/green/token.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ use crate::{cursor::SyntaxKind, SmolStr, TextUnit};
44

55
#[repr(align(2))] // NB: this is an at-least annotation
66
#[derive(Debug, PartialEq, Eq, Hash)]
7-
pub(crate) struct GreenTokenData {
7+
struct GreenTokenData {
88
kind: SyntaxKind,
99
text: SmolStr,
1010
}
1111

1212
/// Leaf node in the immutable tree.
1313
pub struct GreenToken {
14-
pub(super) ptr: ptr::NonNull<GreenTokenData>,
14+
ptr: ptr::NonNull<GreenTokenData>,
1515
}
1616

1717
unsafe impl Send for GreenToken {} // where GreenTokenData: Send + Sync

src/lib.rs

Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,53 +12,24 @@
1212
mod green;
1313
#[allow(unsafe_code)]
1414
pub mod cursor;
15+
1516
pub mod api;
1617
mod syntax_text;
1718
mod utility_types;
1819
#[cfg(feature = "serde1")]
1920
mod serde_impls;
2021

21-
#[allow(unused)]
22-
use green::{GreenElement, GreenElementRef, PackedGreenElement};
23-
2422
// Reexport types for working with strings. We might be too opinionated about
2523
// these, as a custom interner might work better, but `SmolStr` is a pretty good
2624
// default.
2725
pub use smol_str::SmolStr;
2826
pub use text_unit::{TextRange, TextUnit};
2927

3028
pub use crate::{
31-
api::*,
29+
api::{
30+
Language, SyntaxElement, SyntaxElementChildren, SyntaxNode, SyntaxNodeChildren, SyntaxToken,
31+
},
3232
green::{Checkpoint, Children, GreenNode, GreenNodeBuilder, GreenToken},
3333
syntax_text::SyntaxText,
3434
utility_types::{Direction, NodeOrToken, TokenAtOffset, WalkEvent},
3535
};
36-
37-
#[cfg(test)]
38-
mod tests {
39-
use super::*;
40-
41-
#[test]
42-
fn assert_send_sync() {
43-
fn f<T: Send + Sync>() {}
44-
f::<GreenNode>();
45-
f::<GreenToken>();
46-
f::<GreenElement>();
47-
f::<PackedGreenElement>();
48-
f::<green::GreenTokenData>();
49-
}
50-
51-
#[test]
52-
fn test_size_of() {
53-
use std::mem::size_of;
54-
55-
eprintln!("GreenNode {}", size_of::<GreenNode>());
56-
eprintln!("GreenToken {}", size_of::<GreenToken>());
57-
eprintln!("GreenElement {}", size_of::<GreenElement>());
58-
eprintln!("PackedGreenElement {}", size_of::<PackedGreenElement>());
59-
eprintln!();
60-
eprintln!("SyntaxNode {}", size_of::<cursor::SyntaxNode>());
61-
eprintln!("SyntaxToken {}", size_of::<cursor::SyntaxToken>());
62-
eprintln!("SyntaxElement {}", size_of::<cursor::SyntaxElement>());
63-
}
64-
}

0 commit comments

Comments
 (0)