Skip to content

Commit 0613dac

Browse files
committed
Avoid aborting after expansion from BuildReducedGraphVisitor errors.
1 parent 634ecf0 commit 0613dac

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/libsyntax/ext/base.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,7 @@ pub struct ExtCtxt<'a> {
708708
pub ecfg: expand::ExpansionConfig<'a>,
709709
pub crate_root: Option<&'static str>,
710710
pub resolver: &'a mut Resolver,
711+
pub resolve_err_count: usize,
711712
pub current_expansion: ExpansionData,
712713
}
713714

@@ -722,6 +723,7 @@ impl<'a> ExtCtxt<'a> {
722723
ecfg: ecfg,
723724
crate_root: None,
724725
resolver: resolver,
726+
resolve_err_count: 0,
725727
current_expansion: ExpansionData {
726728
mark: Mark::root(),
727729
depth: 0,

src/libsyntax/ext/expand.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
200200
_ => unreachable!(),
201201
};
202202

203-
if self.cx.parse_sess.span_diagnostic.err_count() > err_count {
203+
if self.cx.parse_sess.span_diagnostic.err_count() - self.cx.resolve_err_count > err_count {
204204
self.cx.parse_sess.span_diagnostic.abort_if_errors();
205205
}
206206

@@ -271,8 +271,10 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
271271
self.cx.cfg = crate_config;
272272

273273
if self.monotonic {
274+
let err_count = self.cx.parse_sess.span_diagnostic.err_count();
274275
let mark = self.cx.current_expansion.mark;
275276
self.cx.resolver.visit_expansion(mark, &result.0);
277+
self.cx.resolve_err_count += self.cx.parse_sess.span_diagnostic.err_count() - err_count;
276278
}
277279

278280
result

0 commit comments

Comments
 (0)