Use LocalExpnId where possible.
This commit is contained in:
parent
6e78d6c9d6
commit
078dd37f88
19 changed files with 169 additions and 147 deletions
|
@ -36,8 +36,9 @@ pub fn expand_deriving_clone(
|
|||
Annotatable::Item(ref annitem) => match annitem.kind {
|
||||
ItemKind::Struct(_, Generics { ref params, .. })
|
||||
| ItemKind::Enum(_, Generics { ref params, .. }) => {
|
||||
let container_id = cx.current_expansion.id.expn_data().parent;
|
||||
if cx.resolver.has_derive_copy(container_id)
|
||||
let container_id = cx.current_expansion.id.expn_data().parent.expect_local();
|
||||
let has_derive_copy = cx.resolver.has_derive_copy(container_id);
|
||||
if has_derive_copy
|
||||
&& !params
|
||||
.iter()
|
||||
.any(|param| matches!(param.kind, ast::GenericParamKind::Type { .. }))
|
||||
|
|
|
@ -410,7 +410,7 @@ impl<'a> TraitDef<'a> {
|
|||
.any(|param| matches!(param.kind, ast::GenericParamKind::Type { .. })),
|
||||
_ => unreachable!(),
|
||||
};
|
||||
let container_id = cx.current_expansion.id.expn_data().parent;
|
||||
let container_id = cx.current_expansion.id.expn_data().parent.expect_local();
|
||||
let always_copy = has_no_type_params && cx.resolver.has_derive_copy(container_id);
|
||||
let use_temporaries = is_packed && always_copy;
|
||||
|
||||
|
|
|
@ -304,7 +304,7 @@ fn mk_decls(
|
|||
&[sym::rustc_attrs, sym::proc_macro_internals],
|
||||
None,
|
||||
);
|
||||
let span = DUMMY_SP.with_def_site_ctxt(expn_id);
|
||||
let span = DUMMY_SP.with_def_site_ctxt(expn_id.to_expn_id());
|
||||
|
||||
let proc_macro = Ident::new(sym::proc_macro, span);
|
||||
let krate = cx.item(span, proc_macro, Vec::new(), ast::ItemKind::ExternCrate(None));
|
||||
|
|
|
@ -34,8 +34,8 @@ pub fn inject(
|
|||
&[sym::prelude_import],
|
||||
None,
|
||||
);
|
||||
let span = DUMMY_SP.with_def_site_ctxt(expn_id);
|
||||
let call_site = DUMMY_SP.with_call_site_ctxt(expn_id);
|
||||
let span = DUMMY_SP.with_def_site_ctxt(expn_id.to_expn_id());
|
||||
let call_site = DUMMY_SP.with_call_site_ctxt(expn_id.to_expn_id());
|
||||
|
||||
let ecfg = ExpansionConfig::default("std_lib_injection".to_string());
|
||||
let cx = ExtCtxt::new(sess, ecfg, resolver, None);
|
||||
|
|
|
@ -126,7 +126,8 @@ impl<'a> MutVisitor for TestHarnessGenerator<'a> {
|
|||
for test in &mut tests {
|
||||
// See the comment on `mk_main` for why we're using
|
||||
// `apply_mark` directly.
|
||||
test.ident.span = test.ident.span.apply_mark(expn_id, Transparency::Opaque);
|
||||
test.ident.span =
|
||||
test.ident.span.apply_mark(expn_id.to_expn_id(), Transparency::Opaque);
|
||||
}
|
||||
self.cx.test_cases.extend(tests);
|
||||
}
|
||||
|
@ -223,7 +224,7 @@ fn generate_test_harness(
|
|||
&[sym::test, sym::rustc_attrs],
|
||||
None,
|
||||
);
|
||||
let def_site = DUMMY_SP.with_def_site_ctxt(expn_id);
|
||||
let def_site = DUMMY_SP.with_def_site_ctxt(expn_id.to_expn_id());
|
||||
|
||||
// Remove the entry points
|
||||
let mut cleaner = EntryPointCleaner { sess, depth: 0, def_site };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue