)]}'
{
  "commit": "b9f8e25f6e405b87ec56aba082eb75d70836c243",
  "tree": "3dcf34c206e5f2127f70a6d41c52eecf497018b9",
  "parents": [
    "6a7aaf97b53841a60f2113e8aa0b172126d34ffc",
    "ab36d506d21287dfe1b8d3f1c70024b6e6af18cf"
  ],
  "author": {
    "name": "Jonathan Brouwer",
    "email": "jonathantbrouwer@gmail.com",
    "time": "Sat Mar 21 00:42:47 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Mar 21 00:42:47 2026 +0100"
  },
  "message": "Rollup merge of #146961 - Jules-Bertholet:expr-cfg, r\u003dJonathanBrouwer\n\nAllow passing `expr` metavariable as `cfg` predicate\n\nThis PR allows expanding `expr` metavariables inside the configuration predicates of `cfg` and `cfg_attr` invocations.\nFor example, the following code will now compile:\n\n```rust\nmacro_rules! mac {\n    ($e:expr) \u003d\u003e {\n        #[cfg_attr($e, inline)]\n        #[cfg($e)]\n        fn func() {}\n\n        #[cfg(not($e))]\n        fn func() {\n            panic!()\n        }\n    }\n}\n\nmac!(any(unix, feature \u003d \"foo\"));\n```\n\nThere is currently no `macro_rules` fragment specifier that can represent all valid `cfg` predicates. `meta` comes closest, but excludes `true` and `false`. By fixing that, this change makes it easier to write declarative macros that parse `cfg` or `cfg_attr` invocations, for example https://github.com/rust-lang/rust/pull/146281/.\n\n@rustbot label T-lang needs-fcp A-attributes A-cfg A-macros\n",
  "tree_diff": []
}
