metadata: Remove CrateMetadata::host_lib

It was only used for retreiving edition, which was a bug.
In case of dual proc macros the edition should be taken from the target crate version, like any other metadata.
This commit is contained in:
Vadim Petrochenkov 2019-10-02 02:47:36 +03:00
parent 92386a7ff3
commit f13adc5f9d
3 changed files with 1 additions and 9 deletions

View File

@ -271,7 +271,6 @@ impl<'a> CrateLoader<'a> {
},
private_dep,
span,
host_lib,
raw_proc_macros
};

View File

@ -28,7 +28,6 @@ pub use crate::cstore_impl::{provide, provide_extern};
pub type CrateNumMap = IndexVec<CrateNum, CrateNum>;
pub use rustc_data_structures::sync::MetadataRef;
use crate::creader::Library;
use syntax_pos::Span;
use proc_macro::bridge::client::ProcMacro;
@ -85,7 +84,6 @@ pub struct CrateMetadata {
/// for purposes of the 'exported_private_dependencies' lint
pub private_dep: bool,
pub host_lib: Option<Library>,
pub span: Span,
pub raw_proc_macros: Option<&'static [ProcMacro]>,

View File

@ -543,18 +543,13 @@ impl<'a, 'tcx> CrateMetadata {
name, SyntaxExtensionKind::Bang(Box::new(BangProcMacro { client })), Vec::new()
)
};
let edition = if sess.opts.debugging_opts.dual_proc_macros {
self.host_lib.as_ref().unwrap().metadata.get_root().edition
} else {
self.root.edition
};
SyntaxExtension::new(
&sess.parse_sess,
kind,
self.get_span(id, sess),
helper_attrs,
edition,
self.root.edition,
Symbol::intern(name),
&self.get_attributes(&self.entry(id), sess),
)