Skip to content

Commit 5cd2922

Browse files
committed
Remove all names from Encoder
They aren't used anymore now that the json format has been removed
1 parent ede5ac2 commit 5cd2922

File tree

6 files changed

+120
-168
lines changed

6 files changed

+120
-168
lines changed

compiler/rustc_macros/src/serialize.rs

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -140,23 +140,14 @@ fn encodable_body(
140140

141141
let encode_body = match s.variants() {
142142
[_] => {
143-
let mut field_idx = 0usize;
144143
let encode_inner = s.each_variant(|vi| {
145144
vi.bindings()
146145
.iter()
147146
.map(|binding| {
148147
let bind_ident = &binding.binding;
149-
let field_name = binding
150-
.ast()
151-
.ident
152-
.as_ref()
153-
.map_or_else(|| field_idx.to_string(), |i| i.to_string());
154-
let first = field_idx == 0;
155148
let result = quote! {
156149
match ::rustc_serialize::Encoder::emit_struct_field(
157150
__encoder,
158-
#field_name,
159-
#first,
160151
|__encoder|
161152
::rustc_serialize::Encodable::<#encoder_ty>::encode(#bind_ident, __encoder),
162153
) {
@@ -165,34 +156,27 @@ fn encodable_body(
165156
=> return ::std::result::Result::Err(__err),
166157
}
167158
};
168-
field_idx += 1;
169159
result
170160
})
171161
.collect::<TokenStream>()
172162
});
173-
let no_fields = field_idx == 0;
174163
quote! {
175-
::rustc_serialize::Encoder::emit_struct(__encoder, #no_fields, |__encoder| {
164+
::rustc_serialize::Encoder::emit_struct(__encoder, |__encoder| {
176165
::std::result::Result::Ok(match *self { #encode_inner })
177166
})
178167
}
179168
}
180169
_ => {
181170
let mut variant_idx = 0usize;
182171
let encode_inner = s.each_variant(|vi| {
183-
let variant_name = vi.ast().ident.to_string();
184-
let mut field_idx = 0usize;
185-
186172
let encode_fields: TokenStream = vi
187173
.bindings()
188174
.iter()
189175
.map(|binding| {
190176
let bind_ident = &binding.binding;
191-
let first = field_idx == 0;
192177
let result = quote! {
193178
match ::rustc_serialize::Encoder::emit_enum_variant_arg(
194179
__encoder,
195-
#first,
196180
|__encoder|
197181
::rustc_serialize::Encodable::<#encoder_ty>::encode(#bind_ident, __encoder),
198182
) {
@@ -201,26 +185,22 @@ fn encodable_body(
201185
=> return ::std::result::Result::Err(__err),
202186
}
203187
};
204-
field_idx += 1;
205188
result
206189
})
207190
.collect();
208191

209-
let result = if field_idx != 0 {
192+
let result = if !vi.bindings().is_empty() {
210193
quote! {
211194
::rustc_serialize::Encoder::emit_enum_variant(
212195
__encoder,
213-
#variant_name,
214196
#variant_idx,
215-
#field_idx,
216197
|__encoder| { ::std::result::Result::Ok({ #encode_fields }) }
217198
)
218199
}
219200
} else {
220201
quote! {
221202
::rustc_serialize::Encoder::emit_fieldless_enum_variant::<#variant_idx>(
222203
__encoder,
223-
#variant_name,
224204
)
225205
}
226206
};

compiler/rustc_serialize/src/collection_impls.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ impl<D: Decoder, A: Array<Item: Decodable<D>>> Decodable<D> for SmallVec<A> {
2626
impl<S: Encoder, T: Encodable<S>> Encodable<S> for LinkedList<T> {
2727
fn encode(&self, s: &mut S) -> Result<(), S::Error> {
2828
s.emit_seq(self.len(), |s| {
29-
for (i, e) in self.iter().enumerate() {
30-
s.emit_seq_elt(i, |s| e.encode(s))?;
29+
for e in self.iter() {
30+
s.emit_seq_elt(|s| e.encode(s))?;
3131
}
3232
Ok(())
3333
})
@@ -44,8 +44,8 @@ impl<D: Decoder, T: Decodable<D>> Decodable<D> for LinkedList<T> {
4444
impl<S: Encoder, T: Encodable<S>> Encodable<S> for VecDeque<T> {
4545
fn encode(&self, s: &mut S) -> Result<(), S::Error> {
4646
s.emit_seq(self.len(), |s| {
47-
for (i, e) in self.iter().enumerate() {
48-
s.emit_seq_elt(i, |s| e.encode(s))?;
47+
for e in self.iter() {
48+
s.emit_seq_elt(|s| e.encode(s))?;
4949
}
5050
Ok(())
5151
})
@@ -66,8 +66,8 @@ where
6666
{
6767
fn encode(&self, e: &mut S) -> Result<(), S::Error> {
6868
e.emit_map(self.len(), |e| {
69-
for (i, (key, val)) in self.iter().enumerate() {
70-
e.emit_map_elt_key(i, |e| key.encode(e))?;
69+
for (key, val) in self.iter() {
70+
e.emit_map_elt_key(|e| key.encode(e))?;
7171
e.emit_map_elt_val(|e| val.encode(e))?;
7272
}
7373
Ok(())
@@ -98,8 +98,8 @@ where
9898
{
9999
fn encode(&self, s: &mut S) -> Result<(), S::Error> {
100100
s.emit_seq(self.len(), |s| {
101-
for (i, e) in self.iter().enumerate() {
102-
s.emit_seq_elt(i, |s| e.encode(s))?;
101+
for e in self.iter() {
102+
s.emit_seq_elt(|s| e.encode(s))?;
103103
}
104104
Ok(())
105105
})
@@ -128,8 +128,8 @@ where
128128
{
129129
fn encode(&self, e: &mut E) -> Result<(), E::Error> {
130130
e.emit_map(self.len(), |e| {
131-
for (i, (key, val)) in self.iter().enumerate() {
132-
e.emit_map_elt_key(i, |e| key.encode(e))?;
131+
for (key, val) in self.iter() {
132+
e.emit_map_elt_key(|e| key.encode(e))?;
133133
e.emit_map_elt_val(|e| val.encode(e))?;
134134
}
135135
Ok(())
@@ -163,8 +163,8 @@ where
163163
{
164164
fn encode(&self, s: &mut E) -> Result<(), E::Error> {
165165
s.emit_seq(self.len(), |s| {
166-
for (i, e) in self.iter().enumerate() {
167-
s.emit_seq_elt(i, |s| e.encode(s))?;
166+
for e in self.iter() {
167+
s.emit_seq_elt(|s| e.encode(s))?;
168168
}
169169
Ok(())
170170
})
@@ -195,8 +195,8 @@ where
195195
{
196196
fn encode(&self, e: &mut E) -> Result<(), E::Error> {
197197
e.emit_map(self.len(), |e| {
198-
for (i, (key, val)) in self.iter().enumerate() {
199-
e.emit_map_elt_key(i, |e| key.encode(e))?;
198+
for (key, val) in self.iter() {
199+
e.emit_map_elt_key(|e| key.encode(e))?;
200200
e.emit_map_elt_val(|e| val.encode(e))?;
201201
}
202202
Ok(())
@@ -230,8 +230,8 @@ where
230230
{
231231
fn encode(&self, s: &mut E) -> Result<(), E::Error> {
232232
s.emit_seq(self.len(), |s| {
233-
for (i, e) in self.iter().enumerate() {
234-
s.emit_seq_elt(i, |s| e.encode(s))?;
233+
for e in self.iter() {
234+
s.emit_seq_elt(|s| e.encode(s))?;
235235
}
236236
Ok(())
237237
})

compiler/rustc_serialize/src/serialize.rs

Lines changed: 17 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,7 @@ pub trait Encoder {
4444
f(self)
4545
}
4646

47-
fn emit_enum_variant<F>(
48-
&mut self,
49-
_v_name: &str,
50-
v_id: usize,
51-
_len: usize,
52-
f: F,
53-
) -> Result<(), Self::Error>
47+
fn emit_enum_variant<F>(&mut self, v_id: usize, f: F) -> Result<(), Self::Error>
5448
where
5549
F: FnOnce(&mut Self) -> Result<(), Self::Error>,
5650
{
@@ -65,47 +59,44 @@ pub trait Encoder {
6559
// optimization that would otherwise be necessary here, likely due to the
6660
// multiple levels of inlining and const-prop that are needed.
6761
#[inline]
68-
fn emit_fieldless_enum_variant<const ID: usize>(
69-
&mut self,
70-
_v_name: &str,
71-
) -> Result<(), Self::Error> {
62+
fn emit_fieldless_enum_variant<const ID: usize>(&mut self) -> Result<(), Self::Error> {
7263
self.emit_usize(ID)
7364
}
7465

7566
#[inline]
76-
fn emit_enum_variant_arg<F>(&mut self, _first: bool, f: F) -> Result<(), Self::Error>
67+
fn emit_enum_variant_arg<F>(&mut self, f: F) -> Result<(), Self::Error>
7768
where
7869
F: FnOnce(&mut Self) -> Result<(), Self::Error>,
7970
{
8071
f(self)
8172
}
8273

8374
#[inline]
84-
fn emit_struct<F>(&mut self, _no_fields: bool, f: F) -> Result<(), Self::Error>
75+
fn emit_struct<F>(&mut self, f: F) -> Result<(), Self::Error>
8576
where
8677
F: FnOnce(&mut Self) -> Result<(), Self::Error>,
8778
{
8879
f(self)
8980
}
9081

9182
#[inline]
92-
fn emit_struct_field<F>(&mut self, _f_name: &str, _first: bool, f: F) -> Result<(), Self::Error>
83+
fn emit_struct_field<F>(&mut self, f: F) -> Result<(), Self::Error>
9384
where
9485
F: FnOnce(&mut Self) -> Result<(), Self::Error>,
9586
{
9687
f(self)
9788
}
9889

9990
#[inline]
100-
fn emit_tuple<F>(&mut self, _len: usize, f: F) -> Result<(), Self::Error>
91+
fn emit_tuple<F>(&mut self, f: F) -> Result<(), Self::Error>
10192
where
10293
F: FnOnce(&mut Self) -> Result<(), Self::Error>,
10394
{
10495
f(self)
10596
}
10697

10798
#[inline]
108-
fn emit_tuple_arg<F>(&mut self, _idx: usize, f: F) -> Result<(), Self::Error>
99+
fn emit_tuple_arg<F>(&mut self, f: F) -> Result<(), Self::Error>
109100
where
110101
F: FnOnce(&mut Self) -> Result<(), Self::Error>,
111102
{
@@ -122,14 +113,14 @@ pub trait Encoder {
122113

123114
#[inline]
124115
fn emit_option_none(&mut self) -> Result<(), Self::Error> {
125-
self.emit_enum_variant("None", 0, 0, |_| Ok(()))
116+
self.emit_enum_variant(0, |_| Ok(()))
126117
}
127118

128119
fn emit_option_some<F>(&mut self, f: F) -> Result<(), Self::Error>
129120
where
130121
F: FnOnce(&mut Self) -> Result<(), Self::Error>,
131122
{
132-
self.emit_enum_variant("Some", 1, 1, f)
123+
self.emit_enum_variant(1, f)
133124
}
134125

135126
fn emit_seq<F>(&mut self, len: usize, f: F) -> Result<(), Self::Error>
@@ -141,7 +132,7 @@ pub trait Encoder {
141132
}
142133

143134
#[inline]
144-
fn emit_seq_elt<F>(&mut self, _idx: usize, f: F) -> Result<(), Self::Error>
135+
fn emit_seq_elt<F>(&mut self, f: F) -> Result<(), Self::Error>
145136
where
146137
F: FnOnce(&mut Self) -> Result<(), Self::Error>,
147138
{
@@ -157,7 +148,7 @@ pub trait Encoder {
157148
}
158149

159150
#[inline]
160-
fn emit_map_elt_key<F>(&mut self, _idx: usize, f: F) -> Result<(), Self::Error>
151+
fn emit_map_elt_key<F>(&mut self, f: F) -> Result<(), Self::Error>
161152
where
162153
F: FnOnce(&mut Self) -> Result<(), Self::Error>,
163154
{
@@ -363,8 +354,8 @@ impl<D: Decoder, T: Decodable<D>> Decodable<D> for Rc<T> {
363354
impl<S: Encoder, T: Encodable<S>> Encodable<S> for [T] {
364355
default fn encode(&self, s: &mut S) -> Result<(), S::Error> {
365356
s.emit_seq(self.len(), |s| {
366-
for (i, e) in self.iter().enumerate() {
367-
s.emit_seq_elt(i, |s| e.encode(s))?
357+
for e in self.iter() {
358+
s.emit_seq_elt(|s| e.encode(s))?
368359
}
369360
Ok(())
370361
})
@@ -470,12 +461,8 @@ impl<D: Decoder, T: Decodable<D>> Decodable<D> for Option<T> {
470461
impl<S: Encoder, T1: Encodable<S>, T2: Encodable<S>> Encodable<S> for Result<T1, T2> {
471462
fn encode(&self, s: &mut S) -> Result<(), S::Error> {
472463
s.emit_enum(|s| match *self {
473-
Ok(ref v) => {
474-
s.emit_enum_variant("Ok", 0, 1, |s| s.emit_enum_variant_arg(true, |s| v.encode(s)))
475-
}
476-
Err(ref v) => {
477-
s.emit_enum_variant("Err", 1, 1, |s| s.emit_enum_variant_arg(true, |s| v.encode(s)))
478-
}
464+
Ok(ref v) => s.emit_enum_variant(0, |s| s.emit_enum_variant_arg(|s| v.encode(s))),
465+
Err(ref v) => s.emit_enum_variant(1, |s| s.emit_enum_variant_arg(|s| v.encode(s))),
479466
})
480467
}
481468
}
@@ -494,18 +481,6 @@ macro_rules! peel {
494481
($name:ident, $($other:ident,)*) => (tuple! { $($other,)* })
495482
}
496483

497-
/// Evaluates to the number of tokens passed to it.
498-
///
499-
/// Logarithmic counting: every one or two recursive expansions, the number of
500-
/// tokens to count is divided by two, instead of being reduced by one.
501-
/// Therefore, the recursion depth is the binary logarithm of the number of
502-
/// tokens to count, and the expanded tree is likewise very small.
503-
macro_rules! count {
504-
($one:tt) => (1usize);
505-
($($pairs:tt $_p:tt)*) => (count!($($pairs)*) << 1usize);
506-
($odd:tt $($rest:tt)*) => (count!($($rest)*) | 1usize);
507-
}
508-
509484
macro_rules! tuple {
510485
() => ();
511486
( $($name:ident,)+ ) => (
@@ -518,10 +493,8 @@ macro_rules! tuple {
518493
#[allow(non_snake_case)]
519494
fn encode(&self, s: &mut S) -> Result<(), S::Error> {
520495
let ($(ref $name,)+) = *self;
521-
let len: usize = count!($($name)+);
522-
s.emit_tuple(len, |s| {
523-
let mut i = 0;
524-
$(s.emit_tuple_arg({ i+=1; i-1 }, |s| $name.encode(s))?;)+
496+
s.emit_tuple(|s| {
497+
$(s.emit_tuple_arg(|s| $name.encode(s))?;)+
525498
Ok(())
526499
})
527500
}

compiler/rustc_span/src/def_id.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -307,10 +307,10 @@ impl DefId {
307307

308308
impl<E: Encoder> Encodable<E> for DefId {
309309
default fn encode(&self, s: &mut E) -> Result<(), E::Error> {
310-
s.emit_struct(false, |s| {
311-
s.emit_struct_field("krate", true, |s| self.krate.encode(s))?;
310+
s.emit_struct(|s| {
311+
s.emit_struct_field(|s| self.krate.encode(s))?;
312312

313-
s.emit_struct_field("index", false, |s| self.index.encode(s))
313+
s.emit_struct_field(|s| self.index.encode(s))
314314
})
315315
}
316316
}

0 commit comments

Comments
 (0)