about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-05-20 05:57:41 +0000
committerbors <bors@rust-lang.org>2018-05-20 05:57:41 +0000
commitccb5e973f7546cef6c389a5378cdfbf2fcb595f1 (patch)
tree0f52d956edc7676181f0b045f19943fdf526a8a9 /src/rustllvm/RustWrapper.cpp
parent522aa5e00bde42fa8ad380b30763ed4921a7c3a0 (diff)
parent5e4bac31b82241db4ca8e9234a4f368c30e8966a (diff)
downloadrust-ccb5e973f7546cef6c389a5378cdfbf2fcb595f1.tar.gz
rust-ccb5e973f7546cef6c389a5378cdfbf2fcb595f1.zip
Auto merge of #50820 - alexcrichton:no-modules, r=petrochenkov
rustc: Disallow modules and macros in expansions

This commit feature gates generating modules and macro definitions in procedural
macro expansions. Custom derive is exempt from this check as it would be a large
retroactive breaking change (#50587). It's hoped that we can hopefully stem the
bleeding to figure out a better solution here before opening up the floodgates.

The restriction here is specifically targeted at surprising hygiene results [1]
that result in non-"copy/paste" behavior. Hygiene and procedural macros is
intended to be avoided as much as possible for Macros 1.2 by saying everything
is "as if you copy/pasted the code", but modules and macros are sort of weird
exceptions to this rule that aren't fully fleshed out.

[1]: https://github.com/rust-lang/rust/issues/50504#issuecomment-387734625

cc #50504
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions