Skip to content

Commit e9c3620

Browse files
authored
Merge pull request rust-lang#85 from cdisselkoen/derive-hash
Derive Hash on a bunch of Value types
2 parents 712793e + f5ad17b commit e9c3620

13 files changed

+14
-14
lines changed

src/values/array_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use crate::types::ArrayType;
99
use crate::values::traits::AsValueRef;
1010
use crate::values::{Value, InstructionValue, MetadataValue};
1111

12-
#[derive(PartialEq, Eq, Clone, Copy)]
12+
#[derive(PartialEq, Eq, Clone, Copy, Hash)]
1313
pub struct ArrayValue {
1414
array_value: Value
1515
}

src/values/enums.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use crate::values::{IntValue, FunctionValue, PointerValue, VectorValue, ArrayVal
88

99
macro_rules! enum_value_set {
1010
($enum_name:ident: $($args:ident),*) => (
11-
#[derive(Debug, EnumAsGetters, EnumIntoGetters, EnumIsA, Clone, Copy, PartialEq, Eq)]
11+
#[derive(Debug, EnumAsGetters, EnumIntoGetters, EnumIsA, Clone, Copy, PartialEq, Eq, Hash)]
1212
pub enum $enum_name {
1313
$(
1414
$args($args),

src/values/float_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use crate::types::{AsTypeRef, FloatType, IntType};
99
use crate::values::traits::AsValueRef;
1010
use crate::values::{InstructionValue, IntValue, Value, MetadataValue};
1111

12-
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
12+
#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)]
1313
pub struct FloatValue {
1414
float_value: Value
1515
}

src/values/fn_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use crate::types::{BasicTypeEnum, FunctionType};
1919
use crate::values::traits::AsValueRef;
2020
use crate::values::{BasicValueEnum, GlobalValue, Value, MetadataValue};
2121

22-
#[derive(PartialEq, Eq, Clone, Copy)]
22+
#[derive(PartialEq, Eq, Clone, Copy, Hash)]
2323
pub struct FunctionValue {
2424
fn_value: Value,
2525
}

src/values/global_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use crate::values::{BasicValueEnum, BasicValue, PointerValue, Value};
1616

1717
// REVIEW: GlobalValues are always PointerValues. With SubTypes, we should
1818
// compress this into a PointerValue<Global> type
19-
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
19+
#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)]
2020
pub struct GlobalValue {
2121
global_value: Value,
2222
}

src/values/instruction_value.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use crate::values::{BasicValue, BasicValueEnum, BasicValueUse, Value};
1212
// REVIEW: Split up into structs for SubTypes on InstructionValues?
1313
// REVIEW: This should maybe be split up into InstructionOpcode and ConstOpcode?
1414
// see LLVMGetConstOpcode
15-
#[derive(Debug, PartialEq, Eq)]
15+
#[derive(Debug, PartialEq, Eq, Hash)]
1616
pub enum InstructionOpcode {
1717
// Actual Instructions:
1818
Add,
@@ -236,7 +236,7 @@ impl InstructionOpcode {
236236
}
237237
}
238238

239-
#[derive(Debug, PartialEq, Eq, Copy)]
239+
#[derive(Debug, PartialEq, Eq, Copy, Hash)]
240240
pub struct InstructionValue {
241241
instruction_value: Value,
242242
}

src/values/int_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use crate::types::{AsTypeRef, FloatType, PointerType, IntType};
1111
use crate::values::traits::AsValueRef;
1212
use crate::values::{BasicValue, BasicValueEnum, FloatValue, InstructionValue, PointerValue, Value, MetadataValue};
1313

14-
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
14+
#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)]
1515
pub struct IntValue {
1616
int_value: Value,
1717
}

src/values/metadata_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ pub const FIRST_CUSTOM_METADATA_KIND_ID: u32 = 25;
3333
#[cfg(feature = "llvm7-0")]
3434
pub const FIRST_CUSTOM_METADATA_KIND_ID: u32 = 25;
3535

36-
#[derive(PartialEq, Eq, Clone, Copy)]
36+
#[derive(PartialEq, Eq, Clone, Copy, Hash)]
3737
pub struct MetadataValue {
3838
metadata_value: Value,
3939
}

src/values/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ use std::fmt;
4747

4848
use crate::support::LLVMString;
4949

50-
#[derive(PartialEq, Eq, Clone, Copy)]
50+
#[derive(PartialEq, Eq, Clone, Copy, Hash)]
5151
struct Value {
5252
value: LLVMValueRef,
5353
}

src/values/phi_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use crate::values::{BasicValue, BasicValueEnum, InstructionValue, Value};
1111
// REVIEW: Metadata for phi values?
1212
/// A Phi Instruction returns a value based on which basic block branched into
1313
/// the Phi's containing basic block.
14-
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
14+
#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)]
1515
pub struct PhiValue {
1616
phi_value: Value
1717
}

src/values/ptr_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use crate::support::LLVMString;
77
use crate::types::{AsTypeRef, IntType, PointerType};
88
use crate::values::{AsValueRef, InstructionValue, IntValue, Value, MetadataValue};
99

10-
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
10+
#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)]
1111
pub struct PointerValue {
1212
ptr_value: Value,
1313
}

src/values/struct_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use crate::types::StructType;
77
use crate::values::traits::AsValueRef;
88
use crate::values::{InstructionValue, Value, MetadataValue};
99

10-
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
10+
#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)]
1111
pub struct StructValue {
1212
struct_value: Value
1313
}

src/values/vec_value.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use crate::types::{VectorType};
88
use crate::values::traits::AsValueRef;
99
use crate::values::{BasicValueEnum, BasicValue, InstructionValue, Value, IntValue, MetadataValue};
1010

11-
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
11+
#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)]
1212
pub struct VectorValue {
1313
vec_value: Value,
1414
}

0 commit comments

Comments
 (0)