]> git.lizzy.rs Git - rust.git/blob - src/librustc/ty/binding.rs
Rollup merge of #67355 - Centril:merge-mut, r=oli-obk
[rust.git] / src / librustc / ty / binding.rs
1 use crate::hir::BindingAnnotation::*;
2 use crate::hir::BindingAnnotation;
3 use crate::hir::Mutability;
4
5 #[derive(Clone, PartialEq, RustcEncodable, RustcDecodable, Debug, Copy, HashStable)]
6 pub enum BindingMode {
7     BindByReference(Mutability),
8     BindByValue(Mutability),
9 }
10
11 CloneTypeFoldableAndLiftImpls! { BindingMode, }
12
13 impl BindingMode {
14     pub fn convert(ba: BindingAnnotation) -> BindingMode {
15         match ba {
16             Unannotated => BindingMode::BindByValue(Mutability::Not),
17             Mutable => BindingMode::BindByValue(Mutability::Mut),
18             Ref => BindingMode::BindByReference(Mutability::Not),
19             RefMut => BindingMode::BindByReference(Mutability::Mut),
20         }
21     }
22 }