Avoid aborting after expansion from BuildReducedGraphVisitor errors.

This commit is contained in:
Jeffrey Seyfried
2016-09-20 06:33:42 +00:00
parent 634ecf038d
commit 0613dac042
2 changed files with 5 additions and 1 deletions

View File

@@ -708,6 +708,7 @@ pub struct ExtCtxt<'a> {
pub ecfg: expand::ExpansionConfig<'a>, pub ecfg: expand::ExpansionConfig<'a>,
pub crate_root: Option<&'static str>, pub crate_root: Option<&'static str>,
pub resolver: &'a mut Resolver, pub resolver: &'a mut Resolver,
pub resolve_err_count: usize,
pub current_expansion: ExpansionData, pub current_expansion: ExpansionData,
} }
@@ -722,6 +723,7 @@ impl<'a> ExtCtxt<'a> {
ecfg: ecfg, ecfg: ecfg,
crate_root: None, crate_root: None,
resolver: resolver, resolver: resolver,
resolve_err_count: 0,
current_expansion: ExpansionData { current_expansion: ExpansionData {
mark: Mark::root(), mark: Mark::root(),
depth: 0, depth: 0,

View File

@@ -200,7 +200,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
_ => unreachable!(), _ => unreachable!(),
}; };
if self.cx.parse_sess.span_diagnostic.err_count() > err_count { if self.cx.parse_sess.span_diagnostic.err_count() - self.cx.resolve_err_count > err_count {
self.cx.parse_sess.span_diagnostic.abort_if_errors(); self.cx.parse_sess.span_diagnostic.abort_if_errors();
} }
@@ -271,8 +271,10 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
self.cx.cfg = crate_config; self.cx.cfg = crate_config;
if self.monotonic { if self.monotonic {
let err_count = self.cx.parse_sess.span_diagnostic.err_count();
let mark = self.cx.current_expansion.mark; let mark = self.cx.current_expansion.mark;
self.cx.resolver.visit_expansion(mark, &result.0); self.cx.resolver.visit_expansion(mark, &result.0);
self.cx.resolve_err_count += self.cx.parse_sess.span_diagnostic.err_count() - err_count;
} }
result result