Turn alloc's force_expr macro into a regular macro_rules!{}.
Otherwise rust-analyzer doesn't understand vec![].
This commit is contained in:
parent
339e19697a
commit
8f28a3269e
2 changed files with 13 additions and 10 deletions
|
@ -189,11 +189,4 @@ pub mod vec;
|
|||
#[unstable(feature = "liballoc_internals", issue = "none", reason = "implementation detail")]
|
||||
pub mod __export {
|
||||
pub use core::format_args;
|
||||
|
||||
/// Force AST node to an expression to improve diagnostics in pattern position.
|
||||
#[rustc_macro_transparency = "semitransparent"]
|
||||
#[unstable(feature = "liballoc_internals", issue = "none", reason = "implementation detail")]
|
||||
pub macro force_expr($e:expr) {
|
||||
$e
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,13 +40,13 @@
|
|||
#[allow_internal_unstable(box_syntax, liballoc_internals)]
|
||||
macro_rules! vec {
|
||||
() => (
|
||||
$crate::__export::force_expr!($crate::vec::Vec::new())
|
||||
$crate::force_expr!($crate::vec::Vec::new())
|
||||
);
|
||||
($elem:expr; $n:expr) => (
|
||||
$crate::__export::force_expr!($crate::vec::from_elem($elem, $n))
|
||||
$crate::force_expr!($crate::vec::from_elem($elem, $n))
|
||||
);
|
||||
($($x:expr),+ $(,)?) => (
|
||||
$crate::__export::force_expr!(<[_]>::into_vec(box [$($x),+]))
|
||||
$crate::force_expr!(<[_]>::into_vec(box [$($x),+]))
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -111,3 +111,13 @@ macro_rules! format {
|
|||
res
|
||||
}}
|
||||
}
|
||||
|
||||
/// Force AST node to an expression to improve diagnostics in pattern position.
|
||||
#[doc(hidden)]
|
||||
#[macro_export]
|
||||
#[unstable(feature = "liballoc_internals", issue = "none", reason = "implementation detail")]
|
||||
macro_rules! force_expr {
|
||||
($e:expr) => {
|
||||
$e
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue