Skip to content
Permalink
Browse files

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.
  • Loading branch information...
petrochenkov committed Oct 1, 2019
1 parent 92386a7 commit f13adc5f9d50f66b3b86589c35e49c92af807f23
Showing with 1 addition and 9 deletions.
  1. +0 −1 src/librustc_metadata/creader.rs
  2. +0 −2 src/librustc_metadata/cstore.rs
  3. +1 −6 src/librustc_metadata/decoder.rs
@@ -271,7 +271,6 @@ impl<'a> CrateLoader<'a> {
},
private_dep,
span,
host_lib,
raw_proc_macros
};

@@ -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]>,
@@ -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),
)

0 comments on commit f13adc5

Please sign in to comment.
You can’t perform that action at this time.