Skip to content

Commit eb24af1

Browse files
committed
Auto merge of #717 - flodiebold:underscore-const, r=jackh726
Use unnamed consts in chalk-derive This makes the derives work in rust-analyzer. CC rust-lang/rust-analyzer#9562
2 parents 802599c + fecee2b commit eb24af1

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

Cargo.lock

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

chalk-derive/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ edition = "2018"
1313
proc-macro = true
1414

1515
[dependencies]
16-
synstructure = "0.12"
16+
synstructure = "0.12.5"
1717
quote = "1.0"
1818
proc-macro2 = "1.0"
1919
syn = { version = "1.0", features = ["full"] }

chalk-derive/src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ decl_derive!([Fold, attributes(has_interner)] => derive_fold);
124124
decl_derive!([Zip, attributes(has_interner)] => derive_zip);
125125

126126
fn derive_has_interner(mut s: synstructure::Structure) -> TokenStream {
127+
s.underscore_const(true);
127128
let (interner, _) = find_interner(&mut s);
128129

129130
s.add_bounds(synstructure::AddBounds::None);
@@ -157,6 +158,7 @@ fn derive_any_visit(
157158
trait_name: Ident,
158159
method_name: Ident,
159160
) -> TokenStream {
161+
s.underscore_const(true);
160162
let input = s.ast();
161163
let (interner, kind) = find_interner(&mut s);
162164

@@ -216,6 +218,7 @@ where
216218
}
217219

218220
fn derive_zip(mut s: synstructure::Structure) -> TokenStream {
221+
s.underscore_const(true);
219222
let (interner, _) = find_interner(&mut s);
220223

221224
let mut a = s.clone();
@@ -258,6 +261,7 @@ fn derive_zip(mut s: synstructure::Structure) -> TokenStream {
258261
/// - There is a single parameter `T: HasInterner` (does not have to be named `T`)
259262
/// - There is a single parameter `I: Interner` (does not have to be named `I`)
260263
fn derive_fold(mut s: synstructure::Structure) -> TokenStream {
264+
s.underscore_const(true);
261265
s.bind_with(|_| synstructure::BindStyle::Move);
262266

263267
let (interner, kind) = find_interner(&mut s);

0 commit comments

Comments
 (0)