Skip to content

Commit 75f8283

Browse files
committed
Add Hash traits where needed
1 parent 6408a3a commit 75f8283

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

chalk-parse/src/ast.rs

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::fmt;
22
use string_cache::DefaultAtom as Atom;
33

4-
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
4+
#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
55
pub struct Span {
66
pub lo: usize,
77
pub hi: usize,
@@ -98,7 +98,7 @@ pub struct AdtRepr {
9898
pub int: Option<Ty>,
9999
}
100100

101-
#[derive(Clone, PartialEq, Eq, Debug)]
101+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
102102
pub struct FnSig {
103103
pub abi: FnAbi,
104104
pub safety: Safety,
@@ -126,7 +126,7 @@ pub struct ClosureDefn {
126126
pub upvars: Vec<Ty>,
127127
}
128128

129-
#[derive(Clone, Eq, PartialEq, Debug)]
129+
#[derive(Clone, Eq, PartialEq, Debug, Hash)]
130130
pub struct FnAbi(pub Atom);
131131

132132
impl Default for FnAbi {
@@ -189,7 +189,7 @@ pub struct OpaqueTyDefn {
189189
pub where_clauses: Vec<QuantifiedWhereClause>,
190190
}
191191

192-
#[derive(Clone, PartialEq, Eq, Debug)]
192+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
193193
pub enum VariableKind {
194194
Ty(Identifier),
195195
IntegerTy(Identifier),
@@ -198,42 +198,42 @@ pub enum VariableKind {
198198
Const(Identifier),
199199
}
200200

201-
#[derive(Clone, PartialEq, Eq, Debug)]
201+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
202202
pub enum GenericArg {
203203
Ty(Ty),
204204
Lifetime(Lifetime),
205205
Id(Identifier),
206206
Const(Const),
207207
}
208208

209-
#[derive(Clone, PartialEq, Eq, Debug)]
209+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
210210
pub enum Const {
211211
Id(Identifier),
212212
Value(u32),
213213
}
214214

215-
#[derive(Clone, PartialEq, Eq, Debug)]
215+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
216216
/// An inline bound, e.g. `: Foo<K>` in `impl<K, T: Foo<K>> SomeType<T>`.
217217
pub enum InlineBound {
218218
TraitBound(TraitBound),
219219
AliasEqBound(AliasEqBound),
220220
}
221221

222-
#[derive(Clone, PartialEq, Eq, Debug)]
222+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
223223
pub struct QuantifiedInlineBound {
224224
pub variable_kinds: Vec<VariableKind>,
225225
pub bound: InlineBound,
226226
}
227227

228-
#[derive(Clone, PartialEq, Eq, Debug)]
228+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
229229
/// Represents a trait bound on e.g. a type or type parameter.
230230
/// Does not know anything about what it's binding.
231231
pub struct TraitBound {
232232
pub trait_name: Identifier,
233233
pub args_no_self: Vec<GenericArg>,
234234
}
235235

236-
#[derive(Clone, PartialEq, Eq, Debug)]
236+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
237237
/// Represents an alias equality bound on e.g. a type or type parameter.
238238
/// Does not know anything about what it's binding.
239239
pub struct AliasEqBound {
@@ -284,7 +284,7 @@ pub struct AssocTyValue {
284284
pub default: bool,
285285
}
286286

287-
#[derive(Clone, PartialEq, Eq, Debug)]
287+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
288288
pub enum Ty {
289289
Id {
290290
name: Identifier,
@@ -331,7 +331,7 @@ pub enum Ty {
331331
Never,
332332
}
333333

334-
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
334+
#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
335335
pub enum IntTy {
336336
Isize,
337337
I8,
@@ -341,7 +341,7 @@ pub enum IntTy {
341341
I128,
342342
}
343343

344-
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
344+
#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
345345
pub enum UintTy {
346346
Usize,
347347
U8,
@@ -351,13 +351,13 @@ pub enum UintTy {
351351
U128,
352352
}
353353

354-
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
354+
#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
355355
pub enum FloatTy {
356356
F32,
357357
F64,
358358
}
359359

360-
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
360+
#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
361361
pub enum ScalarType {
362362
Bool,
363363
Char,
@@ -366,13 +366,13 @@ pub enum ScalarType {
366366
Float(FloatTy),
367367
}
368368

369-
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
369+
#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
370370
pub enum Mutability {
371371
Mut,
372372
Not,
373373
}
374374

375-
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
375+
#[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)]
376376
pub enum Safety {
377377
Safe,
378378
Unsafe,
@@ -384,22 +384,22 @@ impl Default for Safety {
384384
}
385385
}
386386

387-
#[derive(Clone, PartialEq, Eq, Debug)]
387+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
388388
pub enum Lifetime {
389389
Id { name: Identifier },
390390
Static,
391391
Erased,
392392
Empty,
393393
}
394394

395-
#[derive(Clone, PartialEq, Eq, Debug)]
395+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
396396
pub struct ProjectionTy {
397397
pub trait_ref: TraitRef,
398398
pub name: Identifier,
399399
pub args: Vec<GenericArg>,
400400
}
401401

402-
#[derive(Clone, PartialEq, Eq, Debug)]
402+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
403403
pub struct TraitRef {
404404
pub trait_name: Identifier,
405405
pub args: Vec<GenericArg>,
@@ -424,7 +424,7 @@ impl Polarity {
424424
}
425425
}
426426

427-
#[derive(Clone, PartialEq, Eq, Debug)]
427+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
428428
pub struct Identifier {
429429
pub str: Atom,
430430
pub span: Span,
@@ -436,7 +436,7 @@ impl fmt::Display for Identifier {
436436
}
437437
}
438438

439-
#[derive(Clone, PartialEq, Eq, Debug)]
439+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
440440
pub enum WhereClause {
441441
Implemented { trait_ref: TraitRef },
442442
ProjectionEq { projection: ProjectionTy, ty: Ty },
@@ -469,7 +469,7 @@ pub enum LeafGoal {
469469
SubtypeGenericArgs { a: Ty, b: Ty },
470470
}
471471

472-
#[derive(Clone, PartialEq, Eq, Debug)]
472+
#[derive(Clone, PartialEq, Eq, Debug, Hash)]
473473
pub struct QuantifiedWhereClause {
474474
pub variable_kinds: Vec<VariableKind>,
475475
pub where_clause: WhereClause,

0 commit comments

Comments
 (0)