diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2018-11-09 09:57:02 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2018-11-13 06:21:57 +1100 |
| commit | ab8a947fa0e8f8397ad9c831741e6429fbed2c0b (patch) | |
| tree | 7bbcaea5d39b040288b9493b2b75e57e3cb1f3ba /src | |
| parent | 5a2ca1a6f18aa93d3120761f614ec2d39b4cb1ac (diff) | |
| download | rust-ab8a947fa0e8f8397ad9c831741e6429fbed2c0b.tar.gz rust-ab8a947fa0e8f8397ad9c831741e6429fbed2c0b.zip | |
Move `static_assert!` into librustc_data_structures.
This means it can be used by more crates.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/macros.rs | 10 | ||||
| -rw-r--r-- | src/librustc_data_structures/lib.rs | 1 | ||||
| -rw-r--r-- | src/librustc_data_structures/macros.rs | 21 |
3 files changed, 22 insertions, 10 deletions
diff --git a/src/librustc/macros.rs b/src/librustc/macros.rs index f21f949c9f5..781a0fa3f66 100644 --- a/src/librustc/macros.rs +++ b/src/librustc/macros.rs @@ -63,16 +63,6 @@ macro_rules! span_bug { } #[macro_export] -macro_rules! static_assert { - ($name:ident: $test:expr) => { - // Use the bool to access an array such that if the bool is false, the access - // is out-of-bounds. - #[allow(dead_code)] - static $name: () = [()][!$test as usize]; - } -} - -#[macro_export] macro_rules! __impl_stable_hash_field { ($field:ident, $ctx:expr, $hasher:expr) => ($field.hash_stable($ctx, $hasher)); ($field:ident, $ctx:expr, $hasher:expr, _) => ({ let _ = $field; }); diff --git a/src/librustc_data_structures/lib.rs b/src/librustc_data_structures/lib.rs index 07e5548216f..135abebdacb 100644 --- a/src/librustc_data_structures/lib.rs +++ b/src/librustc_data_structures/lib.rs @@ -57,6 +57,7 @@ extern crate rustc_cratesio_shim; pub use rustc_serialize::hex::ToHex; +pub mod macros; pub mod svh; pub mod base_n; pub mod bit_set; diff --git a/src/librustc_data_structures/macros.rs b/src/librustc_data_structures/macros.rs new file mode 100644 index 00000000000..3cc91b0e93f --- /dev/null +++ b/src/librustc_data_structures/macros.rs @@ -0,0 +1,21 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +/// A simple static assertion macro. The first argument should be a unique +/// ALL_CAPS identifier that describes the condition. +#[macro_export] +macro_rules! static_assert { + ($name:ident: $test:expr) => { + // Use the bool to access an array such that if the bool is false, the access + // is out-of-bounds. + #[allow(dead_code)] + static $name: () = [()][!$test as usize]; + } +} |
