diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-08-14 05:44:32 +0200 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-08-16 19:24:15 +0200 |
| commit | 4087fc583e543f2801bf2e8c3b8051b31d26a078 (patch) | |
| tree | ff631dfd292346205b113791eb74bede8317deb5 /src/libsyntax/parse | |
| parent | 9dd5c191993aab6c2f1538eb8ab69afdc4b6e67a (diff) | |
| download | rust-4087fc583e543f2801bf2e8c3b8051b31d26a078.tar.gz rust-4087fc583e543f2801bf2e8c3b8051b31d26a078.zip | |
Feature gate 'yield ?' pre-expansion.
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/mod.rs | 3 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser/expr.rs | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 26f78b9c5c7..9088f929372 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -63,6 +63,8 @@ pub struct ParseSess { pub let_chains_spans: Lock<Vec<Span>>, // Places where `async || ..` exprs were used and should be feature gated. pub async_closure_spans: Lock<Vec<Span>>, + // Places where `yield e?` exprs were used and should be feature gated. + pub yield_spans: Lock<Vec<Span>>, pub injected_crate_name: Once<Symbol>, } @@ -92,6 +94,7 @@ impl ParseSess { param_attr_spans: Lock::new(Vec::new()), let_chains_spans: Lock::new(Vec::new()), async_closure_spans: Lock::new(Vec::new()), + yield_spans: Lock::new(Vec::new()), injected_crate_name: Once::new(), } } diff --git a/src/libsyntax/parse/parser/expr.rs b/src/libsyntax/parse/parser/expr.rs index f4b6a926734..ccc6bd15067 100644 --- a/src/libsyntax/parse/parser/expr.rs +++ b/src/libsyntax/parse/parser/expr.rs @@ -997,6 +997,9 @@ impl<'a> Parser<'a> { } else { ex = ExprKind::Yield(None); } + + let span = lo.to(hi); + self.sess.yield_spans.borrow_mut().push(span); } else if self.eat_keyword(kw::Let) { return self.parse_let_expr(attrs); } else if is_span_rust_2018 && self.eat_keyword(kw::Await) { |
