diff options
| author | bors <bors@rust-lang.org> | 2018-12-19 12:49:32 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-12-19 12:49:32 +0000 |
| commit | 6f839fbb0d407956777529b029fbb0d6cc6e4318 (patch) | |
| tree | 7efc541878cc49a26d67b9eb036d16657c6a5937 /src/libsyntax | |
| parent | 74ebf026fe927ffa99d541479454f45791806802 (diff) | |
| parent | 1ba6ec4a327d978471cdac31d17d9202106b15bd (diff) | |
| download | rust-6f839fbb0d407956777529b029fbb0d6cc6e4318.tar.gz rust-6f839fbb0d407956777529b029fbb0d6cc6e4318.zip | |
Auto merge of #56977 - pietroalbini:rollup, r=pietroalbini
Rollup of 15 pull requests Successful merges: - #56363 (Defactored Bytes::read) - #56663 (Remove lifetime from Resolver) - #56689 (add a lint group for lints emitted by rustdoc) - #56772 (fix issue 54153 by not testing issue-18804 on Windows nor OS X.) - #56820 (format-related tweaks) - #56881 (Implement Eq, PartialEq and Hash for atomic::Ordering) - #56907 (Fix grammar in compiler error for array iterators) - #56908 (rustc: Don't ICE on usage of two new target features) - #56910 (Do not point at delim spans for complete correct blocks) - #56913 (Enable stack probes for UEFI images) - #56918 (Profiler: simplify total_duration, improve readability) - #56931 (Update release notes for Rust 1.31.1) - #56947 (Add targets thumbv7neon-linux-androideabi and thumbv7neon-unknown-linux-gnueabihf) - #56948 (Update LLVM submodule) - #56959 (Fix mobile menu rendering collision with tooltip.) Failed merges: - #56914 (Ignore ui/target-feature-gate on sparc, sparc64, powerpc, powerpc64 and powerpc64le) r? @ghost
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/feature_gate.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/parse/lexer/tokentrees.rs | 10 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 3 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 4eca0c942f3..844f49fe842 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -417,6 +417,8 @@ declare_features! ( (active, sse4a_target_feature, "1.27.0", Some(44839), None), (active, tbm_target_feature, "1.27.0", Some(44839), None), (active, wasm_target_feature, "1.30.0", Some(44839), None), + (active, adx_target_feature, "1.32.0", Some(44839), None), + (active, cmpxchg16b_target_feature, "1.32.0", Some(44839), None), // Allows macro invocations on modules expressions and statements and // procedural macros to expand to non-items. diff --git a/src/libsyntax/parse/lexer/tokentrees.rs b/src/libsyntax/parse/lexer/tokentrees.rs index 0906c25cab3..6f9dc247a78 100644 --- a/src/libsyntax/parse/lexer/tokentrees.rs +++ b/src/libsyntax/parse/lexer/tokentrees.rs @@ -97,7 +97,15 @@ impl<'a> StringReader<'a> { // Correct delimiter. token::CloseDelim(d) if d == delim => { let (open_brace, open_brace_span) = self.open_braces.pop().unwrap(); - self.matching_delim_spans.push((open_brace, open_brace_span, self.span)); + if self.open_braces.len() == 0 { + // Clear up these spans to avoid suggesting them as we've found + // properly matched delimiters so far for an entire block. + self.matching_delim_spans.clear(); + } else { + self.matching_delim_spans.push( + (open_brace, open_brace_span, self.span), + ); + } // Parse the close delimiter. self.real_token(); } diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index a672a08a15a..5a51b629826 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -3062,6 +3062,7 @@ impl<'a> Parser<'a> { /// /// This parses an expression accounting for associativity and precedence of the operators in /// the expression. + #[inline] fn parse_assoc_expr(&mut self, already_parsed_attrs: Option<ThinVec<Attribute>>) -> PResult<'a, P<Expr>> { @@ -3722,6 +3723,7 @@ impl<'a> Parser<'a> { } /// Parse an expression + #[inline] pub fn parse_expr(&mut self) -> PResult<'a, P<Expr>> { self.parse_expr_res(Restrictions::empty(), None) } @@ -3741,6 +3743,7 @@ impl<'a> Parser<'a> { } /// Parse an expression, subject to the given restrictions + #[inline] fn parse_expr_res(&mut self, r: Restrictions, already_parsed_attrs: Option<ThinVec<Attribute>>) -> PResult<'a, P<Expr>> { |
