Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 10 pull requests #79441

Merged
merged 28 commits into from
Nov 26, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
4379a43
Suggest turbofish for uninferred const argument
Stupremee Oct 8, 2020
6e17ab5
Lower `if let` before the arms.
cjgillot Nov 15, 2020
27c60ba
Remove Pat pre-lowering.
cjgillot Nov 15, 2020
1d8c381
Upgrades the coverage map to Version 4
richkadel Nov 23, 2020
5d5dc4c
Updated links to LLVM 11 docs and types
richkadel Nov 24, 2020
51268d2
Check for LLVM 11+ when using `-Z instrument-coverage`
richkadel Nov 24, 2020
5481c1b
Move lev_distance to rustc_ast, make non-generic
sivadeilra Nov 12, 2020
b5fef37
Apply suggestions from code review
richkadel Nov 25, 2020
d61ea56
Clean up rustdoc tests by removing unnecessary features
GuillaumeGomez Nov 25, 2020
1d587d8
Fix persisted doctests on Windows / when using workspaces
Swatinem Nov 25, 2020
b4668ec
Improved version check
richkadel Nov 25, 2020
f4d99d3
fixes a word typo in librustdoc
njasm Nov 25, 2020
29e8e72
Fix typos
bugadani Nov 25, 2020
b1df6c0
replace assert with condition and `fatal` error
richkadel Nov 25, 2020
d334f58
Update compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs
richkadel Nov 25, 2020
46a750e
Fixup compiler docs
camelid Nov 25, 2020
c5c70d4
Fix docs formatting for `thir::pattern::_match`
camelid Nov 25, 2020
fdbc121
fix URLs in doc comment
richkadel Nov 25, 2020
9b2117d
Rollup merge of #77758 - Stupremee:turbofish-help-for-const, r=varkor
jonas-schievink Nov 26, 2020
6fcd589
Rollup merge of #79000 - sivadeilra:user/ardavis/lev_distance, r=wesl…
jonas-schievink Nov 26, 2020
85c11de
Rollup merge of #79362 - cjgillot:relou, r=oli-obk
jonas-schievink Nov 26, 2020
0ae653a
Rollup merge of #79365 - richkadel:llvm-cov-map-version-4, r=wesleywiser
jonas-schievink Nov 26, 2020
005a3e5
Rollup merge of #79402 - bugadani:typos, r=matthewjasper
jonas-schievink Nov 26, 2020
7b72379
Rollup merge of #79412 - GuillaumeGomez:cleanup-rustdoc-tests, r=jyn514
jonas-schievink Nov 26, 2020
eb74eb7
Rollup merge of #79413 - Swatinem:rustdoc-persist-crate, r=GuillaumeG…
jonas-schievink Nov 26, 2020
116ba95
Rollup merge of #79420 - njasm:patch_rustdoc, r=GuillaumeGomez
jonas-schievink Nov 26, 2020
815d961
Rollup merge of #79421 - camelid:_match-docs-fmt, r=petrochenkov
jonas-schievink Nov 26, 2020
89ab563
Rollup merge of #79428 - camelid:fixup-compiler-docs, r=davidtwco
jonas-schievink Nov 26, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion compiler/rustc_ast/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ macro_rules! unwrap_or {
pub mod util {
pub mod classify;
pub mod comments;
pub mod lev_distance;
pub mod literal;
pub mod parser;
}
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_ast_lowering/src/expr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,6 @@ impl<'hir> LoweringContext<'_, 'hir> {
let else_arm = self.arm(else_pat, else_expr);

// Handle then + scrutinee:
let then_expr = self.lower_block_expr(then);
let (then_pat, scrutinee, desugar) = match cond.kind {
// `<pat> => <then>`:
ExprKind::Let(ref pat, ref scrutinee) => {
Expand All @@ -375,6 +374,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
(pat, cond, hir::MatchSource::IfDesugar { contains_else_clause })
}
};
let then_expr = self.lower_block_expr(then);
let then_arm = self.arm(then_pat, self.arena.alloc(then_expr));

hir::ExprKind::Match(scrutinee, arena_vec![self; then_arm, else_arm], desugar)
Expand All @@ -400,7 +400,6 @@ impl<'hir> LoweringContext<'_, 'hir> {
};

// Handle then + scrutinee:
let then_expr = self.lower_block_expr(body);
let (then_pat, scrutinee, desugar, source) = match cond.kind {
ExprKind::Let(ref pat, ref scrutinee) => {
// to:
Expand Down Expand Up @@ -440,6 +439,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
(pat, cond, hir::MatchSource::WhileDesugar, hir::LoopSource::While)
}
};
let then_expr = self.lower_block_expr(body);
let then_arm = self.arm(then_pat, self.arena.alloc(then_expr));

// `match <scrutinee> { ... }`
Expand Down
48 changes: 5 additions & 43 deletions compiler/rustc_ast_lowering/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,6 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
/// declared for every type and trait definition.
struct MiscCollector<'tcx, 'lowering, 'hir> {
lctx: &'tcx mut LoweringContext<'lowering, 'hir>,
hir_id_owner: Option<NodeId>,
}

impl MiscCollector<'_, '_, '_> {
Expand All @@ -452,30 +451,9 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
}
}
}

fn with_hir_id_owner<T>(
&mut self,
owner: Option<NodeId>,
f: impl FnOnce(&mut Self) -> T,
) -> T {
let old = mem::replace(&mut self.hir_id_owner, owner);
let r = f(self);
self.hir_id_owner = old;
r
}
}

impl<'tcx> Visitor<'tcx> for MiscCollector<'tcx, '_, '_> {
fn visit_pat(&mut self, p: &'tcx Pat) {
if let PatKind::Paren(..) | PatKind::Rest = p.kind {
// Doesn't generate a HIR node
} else if let Some(owner) = self.hir_id_owner {
self.lctx.lower_node_id_with_owner(p.id, owner);
}

visit::walk_pat(self, p)
}

fn visit_item(&mut self, item: &'tcx Item) {
let hir_id = self.lctx.allocate_hir_id_counter(item.id);

Expand All @@ -499,24 +477,12 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
_ => {}
}

self.with_hir_id_owner(Some(item.id), |this| {
visit::walk_item(this, item);
});
visit::walk_item(self, item);
}

fn visit_assoc_item(&mut self, item: &'tcx AssocItem, ctxt: AssocCtxt) {
self.lctx.allocate_hir_id_counter(item.id);
let owner = match (&item.kind, ctxt) {
// Ignore patterns in trait methods without bodies.
(AssocItemKind::Fn(_, _, _, None), AssocCtxt::Trait) => None,
_ => Some(item.id),
};
self.with_hir_id_owner(owner, |this| visit::walk_assoc_item(this, item, ctxt));
}

fn visit_foreign_item(&mut self, i: &'tcx ForeignItem) {
// Ignore patterns in foreign items
self.with_hir_id_owner(None, |this| visit::walk_foreign_item(this, i));
visit::walk_assoc_item(self, item, ctxt);
}

fn visit_ty(&mut self, t: &'tcx Ty) {
Expand All @@ -527,18 +493,14 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
// Mirrors visit::walk_fn_decl
for parameter in &f.decl.inputs {
// We don't lower the ids of argument patterns
self.with_hir_id_owner(None, |this| {
this.visit_pat(&parameter.pat);
});
self.visit_pat(&parameter.pat);
self.visit_ty(&parameter.ty)
}
self.visit_fn_ret_ty(&f.decl.output)
}
TyKind::ImplTrait(def_node_id, _) => {
self.lctx.allocate_hir_id_counter(def_node_id);
self.with_hir_id_owner(Some(def_node_id), |this| {
visit::walk_ty(this, t);
});
visit::walk_ty(self, t);
}
_ => visit::walk_ty(self, t),
}
Expand All @@ -548,7 +510,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
self.lower_node_id(CRATE_NODE_ID);
debug_assert!(self.node_id_to_hir_id[CRATE_NODE_ID] == Some(hir::CRATE_HIR_ID));

visit::walk_crate(&mut MiscCollector { lctx: &mut self, hir_id_owner: None }, c);
visit::walk_crate(&mut MiscCollector { lctx: &mut self }, c);
visit::walk_crate(&mut item::ItemLowerer { lctx: &mut self }, c);

let module = self.lower_mod(&c.module);
Expand Down
Loading