Skip to content

Commit 8022579

Browse files
authored
Merge pull request #505 from ratmice/cache_info_rust_edition
Add `RustEdition` entry to cache info. Simplify `Visibility` entry.
2 parents 139603a + 4501e89 commit 8022579

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

lrpar/src/lib/ctbuilder.rs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,16 @@ pub enum RustEdition {
184184
Rust2021,
185185
}
186186

187+
impl RustEdition {
188+
fn to_variant_tokens(self) -> TokenStream {
189+
match self {
190+
RustEdition::Rust2015 => quote!(::lrpar::RustEdition::Rust2015),
191+
RustEdition::Rust2018 => quote!(::lrpar::RustEdition::Rust2018),
192+
RustEdition::Rust2021 => quote!(::lrpar::RustEdition::Rust2021),
193+
}
194+
}
195+
}
196+
187197
impl ToTokens for Visibility {
188198
fn to_tokens(&self, tokens: &mut TokenStream) {
189199
tokens.extend(match self {
@@ -201,8 +211,8 @@ impl ToTokens for Visibility {
201211
}
202212

203213
impl Visibility {
204-
fn to_variant_tokens(&self, tokens: &mut TokenStream) {
205-
tokens.extend(match self {
214+
fn to_variant_tokens(&self) -> TokenStream {
215+
match self {
206216
Visibility::Private => quote!(::lrpar::Visibility::Private),
207217
Visibility::Public => quote!(::lrpar::Visibility::Public),
208218
Visibility::PublicSuper => quote!(::lrpar::Visibility::PublicSuper),
@@ -212,7 +222,7 @@ impl Visibility {
212222
let data = QuoteToString(data);
213223
quote!(::lrpar::Visibility::PublicIn(#data))
214224
}
215-
})
225+
}
216226
}
217227
}
218228

@@ -806,10 +816,9 @@ where
806816
let mod_name = QuoteOption(self.mod_name);
807817
let recoverer = self.recoverer;
808818
let yacckind = self.yacckind;
809-
let mut visibility = TokenStream::new();
810-
self.visibility.to_variant_tokens(&mut visibility);
819+
let visibility = self.visibility.to_variant_tokens();
820+
let rust_edition = self.rust_edition.to_variant_tokens();
811821
let error_on_conflicts = self.error_on_conflicts;
812-
813822
let rule_map = grm
814823
.iter_tidxs()
815824
.map(|tidx| {
@@ -832,6 +841,7 @@ where
832841
const RECOVERER: RecoveryKind = #recoverer;
833842
const YACC_KIND: YaccKind = #yacckind;
834843
const ERROR_ON_CONFLICTS: bool = #error_on_conflicts;
844+
const RUST_EDITION: RustEdition = #rust_edition;
835845
const RULE_IDS_MAP: [(usize, &str); #rule_map_len] = [#(#rule_map,)*];
836846
fn visibility() -> Visibility {
837847
#visibility

0 commit comments

Comments
 (0)