diff --git a/compiler/rustc_expand/src/base.rs b/compiler/rustc_expand/src/base.rs index cf7cff739b3..00c5fe791f9 100644 --- a/compiler/rustc_expand/src/base.rs +++ b/compiler/rustc_expand/src/base.rs @@ -5,6 +5,7 @@ use crate::expand::{self, AstFragment, Invocation}; use crate::module::DirOwnership; use rustc_ast::attr::MarkedAttrs; +use rustc_ast::mut_visit::DummyAstNode; use rustc_ast::ptr::P; use rustc_ast::token::{self, Nonterminal}; use rustc_ast::tokenstream::TokenStream; @@ -640,6 +641,10 @@ impl MacResult for DummyResult { fn make_variants(self: Box) -> Option> { Some(SmallVec::new()) } + + fn make_crate(self: Box) -> Option { + Some(DummyAstNode::dummy()) + } } /// A syntax extension kind. diff --git a/tests/ui/recursion_limit/issue_21102.rs b/tests/ui/recursion_limit/issue_21102.rs new file mode 100644 index 00000000000..e1fee46313d --- /dev/null +++ b/tests/ui/recursion_limit/issue_21102.rs @@ -0,0 +1,9 @@ +#![recursion_limit="4"] +#![invalid_attribute] +#![invalid_attribute] +#![invalid_attribute] +#![invalid_attribute] +#![invalid_attribute] +//~^ERROR recursion limit reached while expanding + +fn main() {} diff --git a/tests/ui/recursion_limit/issue_21102.stderr b/tests/ui/recursion_limit/issue_21102.stderr new file mode 100644 index 00000000000..1bd722c492b --- /dev/null +++ b/tests/ui/recursion_limit/issue_21102.stderr @@ -0,0 +1,10 @@ +error: recursion limit reached while expanding `#[invalid_attribute]` + --> $DIR/issue_21102.rs:6:1 + | +LL | #![invalid_attribute] + | ^^^^^^^^^^^^^^^^^^^^^ + | + = help: consider increasing the recursion limit by adding a `#![recursion_limit = "8"]` attribute to your crate (`issue_21102`) + +error: aborting due to previous error +