Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 8 pull requests #130919

Merged
merged 19 commits into from
Sep 27, 2024
Merged
Changes from 3 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
561a6c5
[`cfg_match`] Generalize inputs
c410-f3r Sep 13, 2024
ae15032
Rustfmt
c410-f3r Sep 13, 2024
d3e59a5
Revert Break into the debugger on panic (129019)
ChrisDenton Sep 25, 2024
20c0067
add a bootstrap variant of `naked_asm`
folkertdev Sep 13, 2024
42542d8
update `compiler_builtins` to `0.1.126`
folkertdev Sep 13, 2024
fb095cc
cargo update: rustbook
invalid-email-address Sep 22, 2024
fa64fb1
Partially update `library/Cargo.lock`
tgross35 Sep 26, 2024
6915039
Extend rustdoc template check to detect unneeded comments
GuillaumeGomez Sep 22, 2024
575df06
Remove unneeded jinja comments in templates
GuillaumeGomez Sep 22, 2024
c7d171d
On implicit `Sized` bound on fn argument, point at type instead of pa…
estebank Sep 27, 2024
c48b0d4
diagnostics: wrap fn cast suggestions in parens
notriddle Sep 27, 2024
98f567b
Rollup merge of #130313 - c410-f3r:unlock-rfc-2011, r=thomcc
workingjubilee Sep 27, 2024
0b53cec
Rollup merge of #130706 - GuillaumeGomez:remove-unneeded-jinja-commen…
workingjubilee Sep 27, 2024
9734723
Rollup merge of #130846 - ChrisDenton:revert-break, r=Noratrieb
workingjubilee Sep 27, 2024
1e88253
Rollup merge of #130875 - folkertdev:naked-asm-bootstrap, r=tgross35
workingjubilee Sep 27, 2024
dfb3776
Rollup merge of #130889 - tgross35:rustbook-cargo-update, r=tgross35
workingjubilee Sep 27, 2024
081b946
Rollup merge of #130892 - tgross35:library-cargo-update, r=Noratrieb
workingjubilee Sep 27, 2024
6b0c897
Rollup merge of #130911 - notriddle:notriddle/suggest-wrap-parens-fn-…
workingjubilee Sep 27, 2024
b463bd1
Rollup merge of #130912 - estebank:point-at-arg-type, r=compiler-errors
workingjubilee Sep 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions library/core/src/macros/mod.rs
Original file line number Diff line number Diff line change
@@ -229,8 +229,8 @@ pub macro assert_matches {
pub macro cfg_match {
// with a final wildcard
(
$(cfg($initial_meta:meta) => { $($initial_tokens:item)* })+
_ => { $($extra_tokens:item)* }
$(cfg($initial_meta:meta) => { $($initial_tokens:tt)* })+
_ => { $($extra_tokens:tt)* }
) => {
cfg_match! {
@__items ();
@@ -241,7 +241,7 @@ pub macro cfg_match {

// without a final wildcard
(
$(cfg($extra_meta:meta) => { $($extra_tokens:item)* })*
$(cfg($extra_meta:meta) => { $($extra_tokens:tt)* })*
) => {
cfg_match! {
@__items ();
@@ -256,7 +256,7 @@ pub macro cfg_match {
(@__items ($($_:meta,)*);) => {},
(
@__items ($($no:meta,)*);
(($($yes:meta)?) ($($tokens:item)*)),
(($($yes:meta)?) ($($tokens:tt)*)),
$($rest:tt,)*
) => {
// Emit all items within one block, applying an appropriate #[cfg]. The
@@ -279,7 +279,7 @@ pub macro cfg_match {

// Internal macro to make __apply work out right for different match types,
// because of how macros match/expand stuff.
(@__identity $($tokens:item)*) => {
(@__identity $($tokens:tt)*) => {
$($tokens)*
}
}
20 changes: 20 additions & 0 deletions library/core/tests/macros.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![allow(unused_must_use)]

#[allow(dead_code)]
trait Trait {
fn blah(&self);
@@ -173,3 +175,21 @@ fn cfg_match_two_functions() {
bar2();
}
}

fn _accepts_expressions() -> i32 {
cfg_match! {
cfg(unix) => { 1 }
_ => { 2 }
}
}

// The current implementation expands to a macro call, which allows the use of expression
// statements.
fn _allows_stmt_expr_attributes() {
let one = 1;
let two = 2;
cfg_match! {
cfg(unix) => { one * two; }
_ => { one + two; }
}
}