diff options
| author | bors <bors@rust-lang.org> | 2017-03-23 03:53:06 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-03-23 03:53:06 +0000 |
| commit | 7c7753d370ee186219bf369cb0910a20198ea79e (patch) | |
| tree | 7447808378b144534bdac51dce3a48670cda23a9 /src/libsyntax | |
| parent | c62e532f3de4c0254b772c36fe629b2042efd107 (diff) | |
| parent | 93074187b6c7aeeec6a8fd28574bfad7a4608e1f (diff) | |
| download | rust-7c7753d370ee186219bf369cb0910a20198ea79e.tar.gz rust-7c7753d370ee186219bf369cb0910a20198ea79e.zip | |
Auto merge of #40752 - frewsxcv:rollup, r=frewsxcv
Rollup of 6 pull requests - Successful merges: #39891, #40518, #40542, #40617, #40678, #40696 - Failed merges:
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 11 | ||||
| -rw-r--r-- | src/libsyntax/ext/placeholders.rs | 14 |
2 files changed, 14 insertions, 11 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 4347046b6b8..3dd4bdbd14d 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -23,6 +23,7 @@ use abi::Abi; use ext::hygiene::SyntaxContext; use print::pprust; use ptr::P; +use rustc_data_structures::indexed_vec; use symbol::{Symbol, keywords}; use tokenstream::{ThinTokenStream, TokenStream}; @@ -275,6 +276,16 @@ impl serialize::UseSpecializedDecodable for NodeId { } } +impl indexed_vec::Idx for NodeId { + fn new(idx: usize) -> Self { + NodeId::new(idx) + } + + fn index(self) -> usize { + self.as_usize() + } +} + /// Node id used to represent the root of the crate. pub const CRATE_NODE_ID: NodeId = NodeId(0); diff --git a/src/libsyntax/ext/placeholders.rs b/src/libsyntax/ext/placeholders.rs index f60b1d17a5e..f0e328a551d 100644 --- a/src/libsyntax/ext/placeholders.rs +++ b/src/libsyntax/ext/placeholders.rs @@ -178,17 +178,9 @@ impl<'a, 'b> Folder for PlaceholderExpander<'a, 'b> { block.stmts = block.stmts.move_flat_map(|mut stmt| { remaining_stmts -= 1; - match stmt.node { - // Avoid wasting a node id on a trailing expression statement, - // which shares a HIR node with the expression itself. - ast::StmtKind::Expr(ref expr) if remaining_stmts == 0 => stmt.id = expr.id, - - _ if self.monotonic => { - assert_eq!(stmt.id, ast::DUMMY_NODE_ID); - stmt.id = self.cx.resolver.next_node_id(); - } - - _ => {} + if self.monotonic { + assert_eq!(stmt.id, ast::DUMMY_NODE_ID); + stmt.id = self.cx.resolver.next_node_id(); } Some(stmt) |
