Skip to content

Commit f36e4fc

Browse files
committed
Move SyntaxKind into green, where it belongs
1 parent bd74972 commit f36e4fc

File tree

11 files changed

+28
-28
lines changed

11 files changed

+28
-28
lines changed

examples/math.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ enum SyntaxKind {
3434
}
3535
use SyntaxKind::*;
3636

37-
impl From<SyntaxKind> for rowan::cursor::SyntaxKind {
37+
impl From<SyntaxKind> for rowan::SyntaxKind {
3838
fn from(kind: SyntaxKind) -> Self {
3939
Self(kind as u16)
4040
}
@@ -44,11 +44,11 @@ impl From<SyntaxKind> for rowan::cursor::SyntaxKind {
4444
enum Lang {}
4545
impl rowan::Language for Lang {
4646
type Kind = SyntaxKind;
47-
fn kind_from_raw(raw: rowan::cursor::SyntaxKind) -> Self::Kind {
47+
fn kind_from_raw(raw: rowan::SyntaxKind) -> Self::Kind {
4848
assert!(raw.0 <= ROOT as u16);
4949
unsafe { std::mem::transmute::<u16, SyntaxKind>(raw.0) }
5050
}
51-
fn kind_to_raw(kind: Self::Kind) -> rowan::cursor::SyntaxKind {
51+
fn kind_to_raw(kind: Self::Kind) -> rowan::SyntaxKind {
5252
kind.into()
5353
}
5454
}

examples/s_expressions.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ enum SyntaxKind {
3131
}
3232
use SyntaxKind::*;
3333

34-
impl From<SyntaxKind> for rowan::cursor::SyntaxKind {
34+
impl From<SyntaxKind> for rowan::SyntaxKind {
3535
fn from(kind: SyntaxKind) -> Self {
3636
Self(kind as u16)
3737
}
@@ -41,11 +41,11 @@ impl From<SyntaxKind> for rowan::cursor::SyntaxKind {
4141
enum Lang {}
4242
impl rowan::Language for Lang {
4343
type Kind = SyntaxKind;
44-
fn kind_from_raw(raw: rowan::cursor::SyntaxKind) -> Self::Kind {
44+
fn kind_from_raw(raw: rowan::SyntaxKind) -> Self::Kind {
4545
assert!(raw.0 <= ROOT as u16);
4646
unsafe { std::mem::transmute::<u16, SyntaxKind>(raw.0) }
4747
}
48-
fn kind_to_raw(kind: Self::Kind) -> rowan::cursor::SyntaxKind {
48+
fn kind_to_raw(kind: Self::Kind) -> rowan::SyntaxKind {
4949
kind.into()
5050
}
5151
}
@@ -368,7 +368,7 @@ nan
368368

369369
fn lex(text: &str) -> Vec<(SyntaxKind, SmolStr)> {
370370
fn tok(t: SyntaxKind) -> m_lexer::TokenKind {
371-
m_lexer::TokenKind(rowan::cursor::SyntaxKind::from(t).0)
371+
m_lexer::TokenKind(rowan::SyntaxKind::from(t).0)
372372
}
373373
fn kind(t: m_lexer::TokenKind) -> SyntaxKind {
374374
match t.0 {

src/api.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
use std::{fmt, marker::PhantomData};
22

33
use crate::{
4-
cursor, Direction, GreenNode, GreenToken, NodeOrToken, SmolStr, SyntaxText, TextRange,
5-
TextUnit, TokenAtOffset, WalkEvent,
4+
cursor, Direction, GreenNode, GreenToken, NodeOrToken, SmolStr, SyntaxKind, SyntaxText,
5+
TextRange, TextUnit, TokenAtOffset, WalkEvent,
66
};
77

88
pub trait Language: Sized + Clone + Copy + fmt::Debug + Eq + Ord + std::hash::Hash {
99
type Kind: fmt::Debug;
1010

11-
fn kind_from_raw(raw: cursor::SyntaxKind) -> Self::Kind;
12-
fn kind_to_raw(kind: Self::Kind) -> cursor::SyntaxKind;
11+
fn kind_from_raw(raw: SyntaxKind) -> Self::Kind;
12+
fn kind_to_raw(kind: Self::Kind) -> SyntaxKind;
1313
}
1414

1515
#[derive(Clone, PartialEq, Eq, Hash)]

src/cursor.rs

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

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

14-
/// SyntaxKind is a type tag for each token or node.
15-
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
16-
pub struct SyntaxKind(pub u16);
17-
1815
#[derive(Debug, Clone)]
1916
pub struct SyntaxNode(Rc<NodeData>);
2017

@@ -24,6 +21,7 @@ impl Drop for SyntaxNode {
2421
}
2522
}
2623

24+
// Identity semantics for hash & eq
2725
impl PartialEq for SyntaxNode {
2826
fn eq(&self, other: &SyntaxNode) -> bool {
2927
ptr::eq(self.green(), other.green())
@@ -64,7 +62,7 @@ impl fmt::Display for SyntaxToken {
6462
}
6563
}
6664

67-
pub(crate) type SyntaxElement = NodeOrToken<SyntaxNode, SyntaxToken>;
65+
pub type SyntaxElement = NodeOrToken<SyntaxNode, SyntaxToken>;
6866

6967
impl From<SyntaxNode> for SyntaxElement {
7068
fn from(node: SyntaxNode) -> SyntaxElement {

src/green.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ pub use self::{
1212
token::GreenToken,
1313
};
1414

15+
/// SyntaxKind is a type tag for each token or node.
16+
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
17+
pub struct SyntaxKind(pub u16);
18+
1519
#[cfg(test)]
1620
mod tests {
1721
use super::*;

src/green/builder.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use rustc_hash::FxHashSet;
22

33
use crate::{
4-
cursor::SyntaxKind,
5-
green::{GreenElement, GreenNode, GreenToken},
4+
green::{GreenElement, GreenNode, GreenToken, SyntaxKind},
65
NodeOrToken, SmolStr,
76
};
87

@@ -135,7 +134,7 @@ impl GreenNodeBuilder<'_> {
135134
/// `start_node_at`.
136135
/// Example:
137136
/// ```rust
138-
/// # use rowan::{GreenNodeBuilder, cursor::SyntaxKind};
137+
/// # use rowan::{GreenNodeBuilder, SyntaxKind};
139138
/// # const PLUS: SyntaxKind = SyntaxKind(0);
140139
/// # const OPERATION: SyntaxKind = SyntaxKind(1);
141140
/// # struct Parser;

src/green/element.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ use std::{fmt, hash, mem};
33
use thin_dst::ErasedPtr;
44

55
use crate::{
6-
cursor::SyntaxKind,
7-
green::{GreenNode, GreenToken},
6+
green::{GreenNode, GreenToken, SyntaxKind},
87
NodeOrToken, TextUnit,
98
};
109

src/green/node.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ use std::{iter::FusedIterator, slice, sync::Arc};
33
use thin_dst::{ThinArc, ThinData};
44

55
use crate::{
6-
cursor::SyntaxKind,
7-
green::{GreenElement, GreenElementRef, PackedGreenElement},
6+
green::{GreenElement, GreenElementRef, PackedGreenElement, SyntaxKind},
87
TextUnit,
98
};
109

src/green/token.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::{fmt, hash, mem::ManuallyDrop, ptr, sync::Arc};
22

3-
use crate::{cursor::SyntaxKind, SmolStr, TextUnit};
3+
use crate::{green::SyntaxKind, SmolStr, TextUnit};
44

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

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ pub use crate::{
2929
api::{
3030
Language, SyntaxElement, SyntaxElementChildren, SyntaxNode, SyntaxNodeChildren, SyntaxToken,
3131
},
32-
green::{Checkpoint, Children, GreenNode, GreenNodeBuilder, GreenToken},
32+
green::{Checkpoint, Children, GreenNode, GreenNodeBuilder, GreenToken, SyntaxKind},
3333
syntax_text::SyntaxText,
3434
utility_types::{Direction, NodeOrToken, TokenAtOffset, WalkEvent},
3535
};

0 commit comments

Comments
 (0)